Dear Minkyu Kang, Am 11.01.2011 11:57, schrieb Minkyu Kang:
>> Regardless of the patch, if your code writes to panel_info or any other BSS >> variable before relocation it will trash the relocation tables that exist at >> BSS location at this point. >> >> IOW, accessing BSS before relocation is forbidden, not just out of fancy, >> but for a serious reason. > > This patch is not for accessing BSS before relocation, > it's for prevent exceptions. The real error is writing to BSS before relocation. This leads to a corrupted .rel.dyn section which is placed at the same address as .bss at this moment (bss is overloaded to save space). If you look in your ELF (e.g. readelf -R .rel.dyn u-boot) you may see, that the .rel.dyn section does _not_ include a pointer to 0x0 with relative relocation (0x17) as you showed in a previous post. If you look in your u-boot.map you may find the function in question (test_func() was it in your example) is placed in .bss section. Setting the function pointer to 0 (e.g. test_func() = NULL, as described in previous mail) before relocation will destroy your .rel.dyn section and then you will see a zero in .rel.dyn section at some place ... please investigate the ELF and do not step through the code to find those issues. I may be wrong, please show it to us. regards Andreas Bießmann _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot