Re: [U-Boot] [PATCH v5 4/6] mx53loco: Add support to dynamically choose between fdt use or not
-Original Message- From: u-boot-boun...@lists.denx.de [mailto:u-boot-boun...@lists.denx.de] On Behalf Of Otavio Salvador Sent: Wednesday, January 09, 2013 7:58 PM To: U-Boot Mailing List Cc: Estevam Fabio-R49496; Otavio Salvador Subject: [U-Boot] [PATCH v5 4/6] mx53loco: Add support to dynamically choose between fdt use or not Signed-off-by: Otavio Salvador ota...@ossystems.com.br --- Changes in v5: - Change subject - Reword the warning Changes in v4: - Use a warning, instead of error when failing to fetch fdt - Drop exit use - Fix netboot - Use fdt instead of ftd Changes in v3: - Add loadfdt - Use loadfdt - Call exit to abort script Changes in v2: - Allow use of dynamic/static ip - Allow force use, or not, of fdt - Change 'auto' to 'try' include/configs/mx53loco.h | 40 ++-- 1 file changed, 38 insertions(+), 2 deletions(-) Acked-by: Jason Liu r64...@freescale.com diff --git a/include/configs/mx53loco.h b/include/configs/mx53loco.h index 996396b..cbc3a82 100644 --- a/include/configs/mx53loco.h +++ b/include/configs/mx53loco.h @@ -119,6 +119,10 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ script=boot.scr\0 \ uimage=uImage\0 \ + fdt_file=imx53-qsb.dtb\0 \ + fdt_addr=0x7100\0 \ + boot_fdt=try\0 \ + ip_dyn=yes\0 \ mmcdev=0\0 \ mmcpart=2\0 \ mmcroot=/dev/mmcblk0p3 rw rootwait\0 \ @@ -128,15 +132,47 @@ bootscript=echo Running bootscript from mmc ...; \ source\0 \ loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0 \ + loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0 \ mmcboot=echo Booting from mmc ...; \ run mmcargs; \ - bootm\0 \ + if test ${boot_fdt} = yes; then \ + if run loadfdt; then \ + bootm ${loadaddr} - ${fdt_addr}; \ + else \ + if test ${boot_fdt} = try; then \ + bootm; \ + else \ + echo WARN: Cannot load the DT; \ + fi; \ + fi; \ + else \ + bootm; \ + fi;\0 \ netargs=setenv bootargs console=ttymxc0,${baudrate} \ root=/dev/nfs \ ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0 \ netboot=echo Booting from net ...; \ run netargs; \ - dhcp ${uimage}; bootm\0 \ + if test ${ip_dyn} = yes; then \ + setenv get_cmd dhcp; \ + else \ + setenv get_cmd tftp; \ + fi; \ + ${get_cmd} ${uimage}; \ + if test ${boot_fdt} = yes; then \ + if ${get_cmd} ${fdt_addr} ${fdt_file}; then \ + bootm ${loadaddr} - ${fdt_addr}; \ + else \ + if test ${boot_fdt} = try; then \ + bootm; \ + else \ + echo ERROR: Cannot load the DT; \ + exit; \ + fi; \ + fi; \ + else \ + bootm; \ + fi;\0 #define CONFIG_BOOTCOMMAND \ mmc dev ${mmcdev}; if mmc rescan; then \ -- 1.7.10.4 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v5 4/6] mx53loco: Add support to dynamically choose between fdt use or not
On 09/01/2013 12:57, Otavio Salvador wrote: Signed-off-by: Otavio Salvador ota...@ossystems.com.br --- Hi Otavio, Changes in v5: - Change subject - Reword the warning Changes in v4: - Use a warning, instead of error when failing to fetch fdt - Drop exit use - Fix netboot - Use fdt instead of ftd Changes in v3: - Add loadfdt - Use loadfdt - Call exit to abort script Changes in v2: - Allow use of dynamic/static ip - Allow force use, or not, of fdt - Change 'auto' to 'try' I get some problems: - loadbootscript is not correctly set. In fact: env default -f -a ## Resetting to default environment MX53LOCO U-Boot pri mmcargs mmcargs=setenv bootargs console=ttymxc0,${baudrate} root=${mmcroot} loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script}; There is still a '0' missing for mmcargs, and loadbootscript is not set. Then there is a problem with netboot. It is set correctly, but pri netboot crashes: pri netboot netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; ${get_cmd} ${uimage}; if test ${boot_fdt} = yes; then if ${get_cmd} ${fdt_addr} ${fdt_file}; then bootm ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootm; else echo ERROR: Cannot load the DT; exit; fi; fi; else bootm; fi; prefetch abort pc : [203b6d78] lr : [203b6d74] sp : af565e00 ip : fp : r10: 0002 r9 : r8 : af565f58 r7 : af568c7c r6 : 0001 r5 : r4 : 6f6f6220 r3 : 0083 r2 : 0060 r1 : af565cc0 r0 : 0173 Flags: nZCv IRQs off FIQs off Mode SVC_32 Resetting CPU ... Then I do not understand the boot_fdt when set to try. I have imagined that it tries to start a DT kernel, and if no fdt find is found, it tries with a legacy kernel without fdt. But it does not try to load the FDT file, because this is done only when boot_fdt = yes. When boot_fdt = try, it starts always a legacy kernel. Best regards, Stefano Babic -- = DENX Software Engineering GmbH, MD: Wolfgang Denk Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de = ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot