Add a function to fixup the command tables to board_init_r.c file when
the CONFIG_NEEDS_MANUAL_RELOC variable has been defined. This is used
by the SPARC, AVR32, NDS32 and M68K architectures.

Signed-off-by: Francois Retief <fgret...@spaceteq.co.za>
---

Changes in v2:
 - Add patch to relocate the command tables

 common/board_r.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/common/board_r.c b/common/board_r.c
index 6d6c7e8..04d2e61 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -569,6 +569,16 @@ static int initr_status_led(void)
 }
 #endif

+#if defined(CONFIG_NEEDS_MANUAL_RELOC)
+static int initr_cmdtable_reloc(void)
+{
+       /* We have to relocate the command table manually */
+       fixup_cmdtable( ll_entry_start(cmd_tbl_t, cmd),
+                       ll_entry_count(cmd_tbl_t, cmd) );
+       return 0;
+}
+#endif
+
 #if defined(CONFIG_CMD_AMBAPP) && defined(CONFIG_SYS_AMBAPP_PRINT_ON_STARTUP)
 extern int do_ambapp_print(cmd_tbl_t * cmdtp, int flag, int argc, char * const 
argv[]);

@@ -872,6 +882,9 @@ init_fnc_t init_sequence_r[] = {
 #ifdef CONFIG_BOARD_LATE_INIT
        board_late_init,
 #endif
+#if defined(CONFIG_NEEDS_MANUAL_RELOC)
+       initr_cmdtable_reloc,
+#endif
 #if defined(CONFIG_CMD_AMBAPP)
        ambapp_init_reloc,
 #if defined(CONFIG_SYS_AMBAPP_PRINT_ON_STARTUP)
--
1.9.3


________________________________
Disclaimer and confidentiality note – refer to our website for further details: 
www.spaceteq.co.za <http://www.spaceteq.co.za/home/emaildisclaimer/>
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to