On Mon, Dec 16, 2024 at 09:55:47AM +0100, Ahmad Fatoum wrote: > Hello Sascha, > > On 16.12.24 09:18, Sascha Hauer wrote: > > Hi Jonas, > > > > On Fri, Dec 13, 2024 at 03:06:59PM +0100, Jonas Rebmann wrote: > >> +static void eth_init(void) > >> +{ > >> + void __iomem *iomux = (void *)MX6_IOMUXC_BASE_ADDR; > > > > IOMEM() instead of casting to void *. > > > >> +ENTRY_FUNCTION(start_imx6dl_colibri_iris, r0, r1, r2) > >> +{ > >> + void *fdt; > >> + > >> + imx6_cpu_lowlevel_init(); > >> + > >> + if (IS_ENABLED(CONFIG_DEBUG_LL)) { > >> + setup_uart(); > >> + } > >> + > >> + fdt = __dtb_z_imx6dl_colibri_iris_start + get_runtime_offset(); > >> + barebox_arm_entry(0x10000000, SZ_512M, fdt); > >> +} > > > > Rather do a: > > > > relocate_to_current_adr(); > > setup_c(); > > > > Then jump to a noinline function to continue startup. > > > > Additionally to setting up the UART for _ll access you can do > > a > > > > pbl_set_putc(imx_uart_putc, uart1base); > > > > The advantage is that you no longer have to enable CONFIG_DEBUG_LL to > > get early console output, but only CONFIG_PBL_CONSOLE. > > > > You can do the UART setup unconditionally, no need to hide that behind > > CONFIG_DEBUG_LL. > > By using the DCD table, the benefit of the console so early is greatly > reduced, that's why I told Jonas that DEBUG_LL would be enough. Ok. Nevertheless the IS_ENABLED(CONFIG_DEBUG_LL) can be removed. > > > > >> + > >> +ENTRY_FUNCTION(start_imx6s_colibri_iris, r0, r1, r2) > >> +{ > >> + void *fdt; > >> + > >> + imx6_cpu_lowlevel_init(); > >> + > >> + if (IS_ENABLED(CONFIG_DEBUG_LL)) { > >> + setup_uart(); > >> + } > >> + > >> + fdt = __dtb_z_imx6dl_colibri_iris_start + get_runtime_offset(); > >> + barebox_arm_entry(0x10000000, SZ_256M, fdt); > >> +} > > > > You should be able to call imx6q_barebox_entry() instead here. This > > will read the amount of DRAM back from the controller. No need to > > distinguish between both board anymore and you can merge both images > > into one. > > The images have different DCD tables, so combining the entry point > won't work. You can't have different imxcfg files for a single entry point. Ah, right. Would __alias work for ENTRY_FUNCTION? Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |