Note that UEFI firmware support is already available on LS2080A-RDB and allows Booting distributions like CentOS on the same.
Regards, Bhupesh > -----Original Message----- > From: U-Boot [mailto:u-boot-boun...@lists.denx.de] On Behalf Of York > Sun > Sent: Saturday, May 14, 2016 1:23 AM > To: Alexander Graf <ag...@suse.de> > Cc: u-boot@lists.denx.de; Peter Newton <peter.new...@nxp.com> > Subject: Re: [U-Boot] [PATCH 5/5] ls2080ardb: Convert to distro boot > > On 05/13/2016 12:36 PM, Alexander Graf wrote: > > > > > > On 13.05.16 19:05, York Sun wrote: > >> On 05/13/2016 10:03 AM, Alexander Graf wrote: > >>> > >>> > >>>> Am 13.05.2016 um 18:21 schrieb York Sun <york....@nxp.com>: > >>>> > >>>>> On 05/13/2016 07:32 AM, Alexander Graf wrote: > >>>>> > >>>>>> Am 13.05.2016 um 16:26 schrieb Stuart Yoder > <stuart.yo...@nxp.com>: > >>>>>> > >>>>>> > >>>>>> > >>>>>>> -----Original Message----- > >>>>>>> From: Alexander Graf [mailto:ag...@suse.de] > >>>>>>> Sent: Friday, May 13, 2016 7:22 AM > >>>>>>> To: u-boot@lists.denx.de > >>>>>>> Cc: Stuart Yoder <stuart.yo...@nxp.com>; york sun > >>>>>>> <york....@nxp.com> > >>>>>>> Subject: [PATCH 5/5] ls2080ardb: Convert to distro boot > >>>>>>> > >>>>>>> Most new systems in U-Boot these days make use of the generic > "distro" > >>>>>>> framework which allows a user to have U-Boot scan for a > bootable > >>>>>>> OS on all available media types. > >>>>>>> > >>>>>>> This patch converts the LS2080ARDB board to use that framework > >>>>>>> instead of booting from a hard coded flash offset. > >>>>>>> > >>>>>>> Signed-off-by: Alexander Graf <ag...@suse.de> > >>>>>>> > >>>>>>> --- > >>>>>>> > >>>>>>> This obviously means that we can no longer boot from said > >>>>>>> offset. Is that a reasonable thing to do or should I put the > >>>>>>> bootm back into the default boot command and only do distro > boot if it fails? > >>>>>> > >>>>>> To date all armv8 FSL/NXP sdk releases, field engineers, etc > have > >>>>>> been using bootm. I'm a little concerned about changing the > >>>>>> default boot command right now...as I assume things will > >>>>>> unexpectedly appear to just stop working. Or, is booting from > >>>>>> the NOR flash one of the distro boot "media" types? > >>>>> > >>>>> The problem with boot from NOR is that we have no source of > information on what lies where. So distro boot can't have it in its > target list, as you have to know magical offsets. > >>>>> > >>>>> We could put the magical bootm after tge distro list, but that > would mean that field engineers get pxe boot with long timeouts first > and then their NOR bootm booted. > >>>>> > >>>>> So the only option left that I can see is to always try magical > offset NOR bootm and do distro boot if it fails. Then just tell people > to write zeros to the NOR kernel offset and they get distro boot > automatically. > >>>> > >>>> Alex, > >>>> > >>>> I suggest to attempt current boot method before moving on to other > >>>> sources. I presume booting from NOR would check the image header > >>>> first. If the image is valid, go ahead to boot it. Otherwise, move > on. > >>> > >>> Ok, will do. > >>> > >>>> > >>>> Beside, it would be helpful to define a list and order of boot > source. > >>> > >>> That's what the patch does, no? See the BOOT_TARGET_DEVICES define. > It's probably incomplete, but describes the boot order and boot > sources. > >>> > >> > >> Yes I saw it. Would it be possible to use environmental variable for > >> this purpose, so users can specify the list and order? If it is too > >> complicated, we can live with the macro and recompile as needed. > > > > With the patches applied as is, the environment looks like this: > > > > => printenv > > arch=arm > > baudrate=115200 > > board=ls2080ardb > > board_name=ls2080ardb > > boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} > > ${scriptaddr} ${prefix}${script}; source ${scriptaddr} > > boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} > > ${kernel_addr_r} efi/boot/bootaa64.efi; if fdt addr ${fdt_addr_r}; > > then bootefi ${kernel_addr_r} ${fdt_addr_r};elsebootefi > > ${kernel_addr_r} ${fdtcontroladdr};fi boot_extlinux=sysboot > ${devtype} > > ${devnum}:${distro_bootpart} any ${scriptaddr} > > ${prefix}extlinux/extlinux.conf boot_net_usb_start=usb start > > boot_prefixes=/ /boot/ boot_script_dhcp=boot.scr.uimg > > boot_scripts=boot.scr.uimg boot.scr > > boot_targets=mmc0 scsi0 dhcp > > bootargs=console=ttyS1,115200 root=/dev/ram0 > > earlycon=uart8250,mmio,0x21c0600 ramdisk_size=0x2000000 > > default_hugepagesz=2m hugepagesz=2m hugepages=256 bootcmd=run > > mcinitcmd && fsl_mc lazyapply dpl 0x580700000 && setenv ethact > > DPMAC5@xgmii && run distro_bootcmd bootcmd_dhcp=run > > boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then > > source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; setenv > > efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv > > bootp_vci PXEClient:Arch:00011:UNDI:003000;setenv > > bootp_arch 0xb;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} > > dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi > > ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} > > ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv > > bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv > > efi_old_arch;setenv efi_old_vci; bootcmd_mmc0=setenv devnum 0; run > > mmc_boot bootcmd_scsi0=setenv devnum 0; run scsi_boot > > bootdelay=2 > > cpu=armv8 > > distro_bootcmd=setenv scsi_need_init; for target in ${boot_targets}; > > do run bootcmd_${target}; done efi_dtb_prefixes=/ /dtb/ /dtb/current/ > > ethact=DPMAC1@xgmii > > ethprime=DPNI1 > > fdt_addr_r=0x88000000 > > fdt_high=0xa0000000 > > fdtcontroladdr=ffcfd498 > > fdtfile=fsl-ls2080a-rdb.dtb > > hwconfig=fsl_ddr:bank_intlv=auto > > initrd_high=0xffffffffffffffff > > kernel_addr=0x100000 > > kernel_addr_r=0x81000000 > > kernel_load=0xa0000000 > > kernel_size=0x2800000 > > kernel_start=0x581100000 > > load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} > > ${fdt_addr_r} ${prefix}${efi_fdtfile} > > loadaddr=0x80100000 > > mcinitcmd=fsl_mc start mc 0x580300000 0x580800000 mmc_boot=if mmc dev > > ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi > > pxefile_addr_r=0x81000000 > > ramdisk_addr=0x800000 > > ramdisk_addr_r=0x89000000 > > ramdisk_size=0x2000000 > > scan_dev_for_boot=echo Scanning ${devtype} > > ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do > > run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run > > scan_dev_for_efi; scan_dev_for_boot_part=part list ${devtype} > > ${devnum} -bootable devplist; env exists devplist || setenv devplist > > 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} > > ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; > > fi; done scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix > in > > ${efi_dtb_prefixes}; do if test -e ${devtype} > > ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run > > load_efi_dtb; fi;done;if test -e ${devtype} > > ${devnum}:${distro_bootpart} efi/boot/bootaa64.efi; then echo Found > > EFI removable media binary efi/boot/bootaa64.efi; run > boot_efi_binary; echo EFI LOAD FAILED: > > continuing...; fi; setenv efi_fdtfile > > scan_dev_for_extlinux=if test -e ${devtype} > > ${devnum}:${distro_bootpart} ${prefix}extlinux/extlinux.conf; then > > echo Found ${prefix}extlinux/extlinux.conf; run boot_extlinux; echo > SCRIPT FAILED: > > continuing...; fi > > scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e > > ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo > > Found U-Boot script ${prefix}${script}; run boot_a_script; echo > SCRIPT > > FAILED: continuing...; fi; done > > scriptaddr=0x80800000 > > scsi_boot=run scsi_init; if scsi dev ${devnum}; then setenv devtype > > scsi; run scan_dev_for_boot_part; fi scsi_init=if ${scsi_need_init}; > > then setenv scsi_need_init false; scsi scan; fi > > scsidevs=0 > > soc=fsl-layerscape > > stderr=serial > > stdin=serial > > stdout=serial > > usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; > run > > scan_dev_for_boot_part; fi vendor=freescale > > > > ################# > > > > In there you can see a variable called "boot_targets" which contains > > the values "mmc0 scsi0 dhcp". > > > > Ah, thanks. I didn't realize the macro ends up in the boot_targets. > > York > > _______________________________________________ > 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