Date: Thu, 23 Apr 2020 09:21:24 -0700 From: bob prohaska <fbsd@www.zefox.net> To: Georg Lindenberg <georg.lindenberg@web.de> Cc: freebsd-arm@freebsd.org, bob prohaska <fbsd@www.zefox.net> Subject: Re: Booting from USB on RPI3 Message-ID: <20200423162124.GA3583@www.zefox.net> In-Reply-To: <trinity-19081201-3024-4046-817a-48321c51a515-1587587309088@3c-app-webde-bap64> References: <mailman.61.1587470402.80084.freebsd-arm@freebsd.org> <trinity-4938b1d4-f29f-4907-bedd-65be21112e48-1587489497227@3c-app-webde-bs65> <20200421181224.GC96994@www.zefox.net> <trinity-19081201-3024-4046-817a-48321c51a515-1587587309088@3c-app-webde-bap64>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Apr 22, 2020 at 10:28:29PM +0200, Georg Lindenberg wrote: > > Uboot will run bootcmd, unless you hit a key. Then it will enter the shell. > > You can track down bootcmd (env print bootcmd): > > bootcmd=distro_bootcmd > distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target} > boot_targets=mmc0 mmc1 usb0 pxe dhcp > > So, in this loop, usb0 is in third place. :-/ mmc will boot first. > > U-Boot> env print bootcmd_usb0 > bootcmd_usb0=devnum=0; run usb_boot > For some reason I can't use run usb_boot, it's necessary to use U-Boot> usb reset resetting USB... Bus usb@7e980000: scanning bus usb@7e980000 for devices... 8 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found U-Boot> run bootcmd_usb0 Device 0: Vendor: Initio Rev: 1.06 Prod: MHT2040AH Type: Hard Disk Capacity: 38154.3 MB = 37.2 GB (78140160 x 512) ... is now current device Scanning usb 0:1... Found EFI removable media binary efi/boot/bootaa64.efi libfdt fdt_check_header(): FDT_ERR_BADMAGIC Scanning disk mmc@7e300000.blk... Scanning disk usb_mass_storage.lun0... Found 6 disks BootOrder not defined ^^^^^^^^^^^^^^^^^^^^^ this is trouble if it includes microsd devices EFI boot manager: Cannot load any image ^^^^^^^^^^^^^^^^^^^^^ more bad news 687984 bytes read in 402 ms (1.6 MiB/s) libfdt fdt_check_header(): FDT_ERR_BADMAGIC ^^^^^^^^^^^^^^^^ not sure about this Next comes a couple screens of linefeeds, then: Consoles: EFI console Reading loader env vars from /efi/freebsd/loader.env Setting currdev to disk1p1: FreeBSD/arm64 EFI loader, Revision 1.1 (Thu Apr 16 06:59:37 UTC 2020 root@releng1.nyi.freebsd.org) Command line arguments: loader.efi Image base: 0x39e91000 EFI version: 2.80 EFI Firmware: Das U-Boot (rev 8217.4096) Console: comconsole (0) Load Path: /efi\boot\bootaa64.efi Load Device: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/UsbClass(0x0,0x0,0x9,0x0,0x0)/UsbClass(0x424,0x9514,0x9,0x0,0x2)/UsbClass(0x2109,0x2811,0x9,0x0,0x1)/UsbClass(0x13fd,0x1040,0x0,0x0,0x0)/HD(1,0x01,0,0x81f,0x18fa8) Trying ESP: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/UsbClass(0x0,0x0,0x9,0x0,0x0)/UsbClass(0x424,0x9514,0x9,0x0,0x2)/UsbClass(0x2109,0x2811,0x9,0x0,0x1)/UsbClass(0x13fd,0x1040,0x0,0x0,0x0)/HD(1,0x01,0,0x81f,0x18fa8) Setting currdev to disk1p1: Trying: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/UsbClass(0x0,0x0,0x9,0x0,0x0)/UsbClass(0x424,0x9514,0x9,0x0,0x2)/UsbClass(0x2109,0x2811,0x9,0x0,0x1)/UsbClass(0x13fd,0x1040,0x0,0x0,0x0)/HD(2,0x01,0,0x197c7,0x4a6bb39) Setting currdev to disk1p2: Loading /boot/defaults/loader.conf Loading /boot/device.hints Loading /boot/loader.conf Loading /boot/loader.conf.local Loading kernel... /boot/kernel/kernel text=0x9b804c data=0x192958 data=0x0+0x3a21fe syms=[0x8+0x10f740+0x8+0x134f85] Loading configured modules... /boot/kernel/umodem.ko text=0x2100 text=0x1390 data=0x6e0+0x10 syms=[0x8+0xf48+0x8+0xb6e] can't find '/boot/entropy' Hit [Enter] to boot immediately, or any other key for command prompt. Type '?' for a list of commands, 'help' for more detailed help. It's unclear where the kernel loaded from, but at this point a listing of /boot reports the files on the USB disk, not microSD. The image is from a 12.1 snapshot. /firstboot has been renamed no.firstboot, might that be significant? It looks as if loader is confused about what disk it's on: OK show rootdev variable 'rootdev' not found OK Running show reports, among many other things: currdev=disk1p2: kernel=kernel kernel_options= kernel_path=/boot/kernel kernelname=/boot/kernel/kernel kernels_autodetect=YES loaddev=disk1p2: ^ the colon looks a little odd The loaddev would make sense if mmcsd is device 0, I'm not sure that's true. What's the simplest way to inform loader on the usb device it's actually _on_ the usb device. I've tried setting rootdev=da0s2a, didn't work. Thanks for reading, and all your help! bob prohaska
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20200423162124.GA3583>