From mboxrd@z Thu Jan 1 00:00:00 1970 From: J.Hwan.Kim Date: Wed, 17 Jun 2009 10:01:36 +0900 Subject: [U-Boot] question on do_bootm() Message-ID: <4A384070.2010002@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, everyone I have a question on relocation of boot function table in do_bootm(). The boot function table boot_os[] has a pointer of functions such as do_bootm_linux(). I think the address of the symbol "do_bootm_linux" has relocated address by linker. But there is address-modifying routine in do_bootm() if (!relocated) { int i; for (i = 0; i < ARRAY_SIZE(boot_os); i++) boot_os[i] += gd->reloc_off; relocated = 1; } Why the routine above is needed? Isn't the addresses of boot functions already relocated one? Thanks in advance. Regards, J.H.Kim