void board_init_f(ulong dummy) { /* Set global data pointer */ gd = &gdata; /* Linux expects the internal registers to be at 0xf1000000 */ arch_cpu_init(); /* * Pin muxing needs to be done before UART output, since * on A38x the UART pins need some re-muxing for output * to work. */ board_early_init_f(); preloader_console_init(); timer_init(); /* First init the serdes PHY's */ serdes_phy_config(); /* Setup DDR */ ddr3_init(); board_init_r(NULL, 0); }
void board_init_f(ulong dummy) { int ret; /* * Pin muxing needs to be done before UART output, since * on A38x the UART pins need some re-muxing for output * to work. */ board_early_init_f(); /* Example code showing how to enable the debug UART on MVEBU */ #ifdef EARLY_UART /* * Debug UART can be used from here if required: * * debug_uart_init(); * printch('a'); * printhex8(0x1234); * printascii("string"); */ #endif ret = spl_init(); if (ret) { debug("spl_init() failed: %d\n", ret); hang(); } /* Use special translation offset for SPL */ dm_set_translation_offset(0xd0000000 - 0xf1000000); preloader_console_init(); timer_init(); /* Armada 375 does not support SerDes and DDR3 init yet */ #if !defined(CONFIG_ARMADA_375) /* First init the serdes PHY's */ serdes_phy_config(); /* Setup DDR */ ddr3_init(); #endif /* * Return to the BootROM to continue the Marvell xmodem * UART boot protocol. As initiated by the kwboot tool. * * This can only be done by the BootROM and not by the * U-Boot SPL infrastructure, since the beginning of the * image is already read and interpreted by the BootROM. * SPL has no chance to receive this information. So we * need to return to the BootROM to enable this xmodem * UART download. */ if (get_boot_device() == BOOT_DEVICE_UART) return_to_bootrom(); }