From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jonathan Gray Date: Tue, 21 Nov 2017 16:59:33 +1100 Subject: [U-Boot] [PATCH] efi_loader: Fix disk dp's for pre-DM/legacy devices In-Reply-To: <20171118042529.GB23537@largo.jsg.id.au> References: <20171009033308.GA16143@largo.jsg.id.au> <20171009122556.GB66255@largo.jsg.id.au> <20171009153553.GC66255@largo.jsg.id.au> <20171009164131.GD66255@largo.jsg.id.au> <20171009174801.GE66255@largo.jsg.id.au> <20171118042529.GB23537@largo.jsg.id.au> Message-ID: <20171121055933.GA68379@largo.jsg.id.au> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Sat, Nov 18, 2017 at 03:25:29PM +1100, Jonathan Gray wrote: > > While U-Boot 2017.11 release works with vexpress/qemu with the > efi loader it is broken on at least rpi_3 and tinker-rk3288. > MEDIA_DEVICE is not found again. The loaded image paths look like the below. vexpress and qemu_arm (virt) have a MEDIA_DEVICE, rpi_3 and tinkerboard do not. Having boot_targets load bootarm.efi from mmc on rpi_3 works but having it load from usb does not. vexpress Found EFI removable media binary efi/boot/bootarm.efi Scanning disks on mmc... efi_disk_add_dev: name: mmc0 if_typename: mmc part: 1 efi_disk_add_dev: name: mmc0 if_typename: mmc part: 4 efi_disk_add_dev: name: mmc0 if_typename: mmc part: 0 MMC Device 1 not found MMC Device 2 not found MMC Device 3 not found Found 1 disks reading efi/boot/bootarm.efi 67436 bytes read in 45 ms (1.4 MiB/s) ## Starting EFI application at a0008000 ... efi_setup_loaded_image: device_path: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Usb(0x6,0x0)/HD(Part0,MBRType=01,SigType=00) efi_setup_loaded_image: file_path /\efi\boot\bootarm.efi => dm tree Unknown command 'dm' - try 'help' => part list mmc 0 Partition Map for MMC device 0 -- Partition Type: DOS Part Start Sector Num Sectors UUID Type 1 2048 4096 00000000-01 0c Boot 4 6144 30720 00000000-04 a6 qemu_arm Found EFI removable media binary efi/boot/bootarm.efi Scanning disk ahci_scsi.id0lun0... efi_disk_add_dev: name: ahci_scsi.id0lun0 if_typename: scsi_blk part: 1 efi_disk_add_dev: name: ahci_scsi.id0lun0 if_typename: scsi_blk part: 4 efi_disk_add_dev: name: ahci_scsi.id0lun0 if_typename: scsi_blk part: 0 Found 1 disks reading efi/boot/bootarm.efi 67436 bytes read in 9 ms (7.1 MiB/s) ## Starting EFI application at 40400000 ... efi_setup_loaded_image: device_path: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/HD(Part0,MBRType=01,SigType=00) efi_setup_loaded_image: file_path /\efi\boot\bootarm.efi => dm tree Class Probed Driver Name ---------------------------------------- root [ + ] root_drive root_driver simple_bus [ ] generic_si |-- platform at c000000 pci [ + ] pci_generi |-- pcie at 10000000 pci_generi [ ] pci_generi | |-- pci_0:0.0 pci_generi [ ] pci_generi | |-- pci_0:1.0 ahci [ ] ahci_pci | `-- ahci_pci scsi [ ] ahci_scsi | `-- ahci_scsi serial [ + ] serial_pl0 |-- pl011 at 9000000 firmware [ ] psci `-- psci sysreset [ ] psci-sysre `-- psci-sysreset => part list scsi 0 Partition Map for SCSI device 0 -- Partition Type: DOS Part Start Sector Num Sectors UUID Type 1 2048 4096 00000000-01 0c Boot 4 6144 30720 00000000-04 a6 rpi3 U-Boot> printenv boot_targets boot_targets=usb0 mmc0 pxe dhcp ## Starting EFI application at 01000000 ... Scanning disk sdhci at 7e300000.blk... efi_disk_add_dev: name: sdhci at 7e300000.blk if_typename: mmc_blk part: 1 efi_disk_add_dev: name: sdhci at 7e300000.blk if_typename: mmc_blk part: 4 efi_disk_add_dev: name: sdhci at 7e300000.blk if_typename: mmc_blk part: 0 Scanning disk usb_mass_storage.lun0... efi_disk_add_dev: name: usb_mass_storage.lun0 if_typename: usb_storage_blk part: 1 efi_disk_add_dev: name: usb_mass_storage.lun0 if_typename: usb_storage_blk part: 4 efi_disk_add_dev: name: usb_mass_storage.lun0 if_typename: usb_storage_blk part: 0 Found 2 disks efi_setup_loaded_image: device_path: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/USBClass(0,0,9,0,0)/USBClass(424,9514,9,0,2)/USBClass(781,5581,0,0,0)/HD(Part0,MBRType=01,SigType=00) efi_setup_loaded_image: file_path /\efi\boot\bootaa64.efi U-Boot> printenv boot_targets boot_targets=mmc0 usb0 pxe dhcp mmc0 is current device Scanning mmc 0:1... Found EFI removable media binary efi/boot/bootaa64.efi reading efi/boot/bootaa64.efi 78623 bytes read in 31 ms (2.4 MiB/s) ## Starting EFI application at 01000000 ... Scanning disk sdhci at 7e300000.blk... efi_disk_add_dev: name: sdhci at 7e300000.blk if_typename: mmc_blk part: 1 efi_disk_add_dev: name: sdhci at 7e300000.blk if_typename: mmc_blk part: 4 efi_disk_add_dev: name: sdhci at 7e300000.blk if_typename: mmc_blk part: 0 Scanning disk usb_mass_storage.lun0... efi_disk_add_dev: name: usb_mass_storage.lun0 if_typename: usb_storage_blk part: 1 efi_disk_add_dev: name: usb_mass_storage.lun0 if_typename: usb_storage_blk part: 4 efi_disk_add_dev: name: usb_mass_storage.lun0 if_typename: usb_storage_blk part: 0 Found 2 disks efi_setup_loaded_image: device_path: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/MMC(Slot0)/HD(Part0,MBRType=01,SigType=00) efi_setup_loaded_image: file_path /\efi\boot\bootaa64.efi U-Boot> dm tree Class Probed Driver Name ---------------------------------------- root [ + ] root_drive root_driver simple_bus [ + ] generic_si |-- soc gpio [ + ] gpio_bcm28 | |-- gpio at 7e200000 serial [ + ] serial_bcm | |-- serial at 7e215040 mmc [ + ] sdhci-bcm2 | |-- sdhci at 7e300000 blk [ + ] mmc_blk | | `-- sdhci at 7e300000.blk video [ + ] bcm2835_vi | |-- hdmi at 7e902000 vidconsole [ + ] vidconsole | | `-- hdmi at 7e902000.vidconsole0 usb [ + ] dwc2_usb | `-- usb at 7e980000 usb_hub [ + ] usb_hub | `-- usb_hub usb_hub [ + ] usb_hub | `-- usb_hub eth [ + ] smsc95xx_e | |-- smsc95xx_eth usb_mass_s [ + ] usb_mass_s | `-- usb_mass_storage blk [ ] usb_storag | `-- usb_mass_storage.lun0 simple_bus [ ] generic_si `-- clocks U-Boot> part list usb 0 Partition Map for USB device 0 -- Partition Type: DOS Part Start Sector Num Sectors UUID Type 1 8192 32768 00000000-01 0c Boot 4 40960 60021540 00000000-04 a6 U-Boot> part list mmc 0 Partition Map for MMC device 0 -- Partition Type: DOS Part Start Sector Num Sectors UUID Type 1 8192 8192 00000000-01 0c Boot 4 16384 26624 00000000-04 a6 tinkerboard Scanning mmc 1:1... Found EFI removable media binary efi/boot/bootarm.efi libfdt fdt_check_header(): FDT_ERR_BADMAGIC Scanning disk dwmmc at ff0c0000.blk... efi_disk_add_dev: name: dwmmc at ff0c0000.blk if_typename: mmc_blk part: 1 efi_disk_add_dev: name: dwmmc at ff0c0000.blk if_typename: mmc_blk part: 4 efi_disk_add_dev: name: dwmmc at ff0c0000.blk if_typename: mmc_blk part: 0 Found 1 disks reading efi/boot/bootarm.efi 67356 bytes read in 10 ms (6.4 MiB/s) libfdt fdt_check_header(): FDT_ERR_BADMAGIC ## Starting EFI application at 02000000 ... efi_setup_loaded_image: device_path: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/MMC(Slot1)/HD(Part0,MBRType=01,SigType=00) efi_setup_loaded_image: file_path /\efi\boot\bootarm.efi => part list mmc 1 Partition Map for MMC device 1 -- Partition Type: DOS Part Start Sector Num Sectors UUID Type 1 2048 32768 00000000-01 0c Boot 4 34816 62299136 00000000-04 a6 => dm tree Class Probed Driver Name ---------------------------------------- root [ + ] root_drive root_driver clk [ ] fixed_rate |-- oscillator mmc [ + ] rockchip_r |-- dwmmc at ff0c0000 blk [ + ] mmc_blk | `-- dwmmc at ff0c0000.blk adc [ ] rockchip_s |-- saradc at ff100000 i2c [ ] i2c_rockch |-- i2c at ff170000 serial [ ] ns16550_se |-- serial at ff180000 serial [ ] ns16550_se |-- serial at ff190000 serial [ + ] ns16550_se |-- serial at ff690000 serial [ ] ns16550_se |-- serial at ff1b0000 serial [ ] ns16550_se |-- serial at ff1c0000 eth [ + ] gmac_rockc |-- ethernet at ff290000 usb [ ] dwc2_usb |-- usb at ff540000 usb [ ] dwc2_usb |-- usb at ff580000 ram [ ] rockchip_r |-- dmc at ff610000 i2c [ + ] i2c_rockch |-- i2c at ff650000 pmic [ + ] rk8xx pmic | `-- pmic at 1b regulator [ ] rk8xx_buck | |-- DCDC_REG1 regulator [ ] rk8xx_buck | |-- DCDC_REG2 regulator [ ] rk8xx_buck | |-- DCDC_REG3 regulator [ ] rk8xx_buck | |-- DCDC_REG4 regulator [ ] rk8xx_ldo | |-- LDO_REG1 regulator [ ] rk8xx_ldo | |-- LDO_REG2 regulator [ ] rk8xx_ldo | |-- LDO_REG3 regulator [ ] rk8xx_ldo | |-- LDO_REG4 regulator [ ] rk8xx_ldo | |-- LDO_REG5 regulator [ ] rk8xx_ldo | |-- LDO_REG6 regulator [ ] rk8xx_ldo | |-- LDO_REG7 regulator [ ] rk8xx_ldo | |-- LDO_REG8 regulator [ ] rk8xx_swit | |-- SWITCH_REG1 regulator [ + ] rk8xx_swit | `-- SWITCH_REG2 i2c [ + ] i2c_rockch |-- i2c at ff660000 i2c_eeprom [ + ] i2c_eeprom | `-- m24c08 at 50 pwm [ ] rk_pwm |-- pwm at ff680000 pwm [ ] rk_pwm |-- pwm at ff680010 syscon [ + ] rk3288_sys |-- power-management at ff730000 syscon [ ] rk3288_sys |-- syscon at ff740000 clk [ + ] rockchip_r |-- clock-controller at ff760000 sysreset [ ] rk3288_sys |-- reset syscon [ + ] rk3288_sys |-- syscon at ff770000 syscon [ ] rk3288_sys |-- syscon at ffac0000 pinctrl [ + ] rockchip_r |-- pinctrl gpio [ ] gpio_rockc | |-- gpio0 at ff750000 gpio [ ] gpio_rockc | |-- gpio1 at ff780000 gpio [ ] gpio_rockc | |-- gpio2 at ff790000 gpio [ ] gpio_rockc | |-- gpio3 at ff7a0000 gpio [ + ] gpio_rockc | |-- gpio4 at ff7b0000 gpio [ ] gpio_rockc | |-- gpio5 at ff7c0000 gpio [ ] gpio_rockc | |-- gpio6 at ff7d0000 gpio [ + ] gpio_rockc | |-- gpio7 at ff7e0000 gpio [ ] gpio_rockc | |-- gpio8 at ff7f0000 pinconfig [ ] pinconfig | |-- pcfg-pull-up pinconfig [ ] pinconfig | |-- pcfg-pull-down pinconfig [ ] pinconfig | |-- pcfg-pull-none pinconfig [ ] pinconfig | |-- pcfg-pull-none-12ma pinconfig [ + ] pinconfig | |-- sleep pinconfig [ + ] pinconfig | | |-- global-pwroff pinconfig [ ] pinconfig | | |-- ddrio-pwroff pinconfig [ ] pinconfig | | |-- ddr0-retention pinconfig [ ] pinconfig | | `-- ddr1-retention pinconfig [ + ] pinconfig | |-- i2c0 pinconfig [ + ] pinconfig | | `-- i2c0-xfer pinconfig [ ] pinconfig | |-- i2c1 pinconfig [ ] pinconfig | | `-- i2c1-xfer pinconfig [ + ] pinconfig | |-- i2c2 pinconfig [ + ] pinconfig | | `-- i2c2-xfer pinconfig [ ] pinconfig | |-- i2c3 pinconfig [ ] pinconfig | | `-- i2c3-xfer pinconfig [ ] pinconfig | |-- i2c4 pinconfig [ ] pinconfig | | `-- i2c4-xfer pinconfig [ ] pinconfig | |-- i2c5 pinconfig [ ] pinconfig | | `-- i2c5-xfer pinconfig [ ] pinconfig | |-- i2s0 pinconfig [ ] pinconfig | | `-- i2s0-bus pinconfig [ ] pinconfig | |-- lcdc0 pinconfig [ ] pinconfig | | `-- lcdc0-ctl pinconfig [ + ] pinconfig | |-- sdmmc pinconfig [ + ] pinconfig | | |-- sdmmc-clk pinconfig [ + ] pinconfig | | |-- sdmmc-cmd pinconfig [ + ] pinconfig | | |-- sdmcc-cd pinconfig [ ] pinconfig | | |-- sdmmc-bus1 pinconfig [ + ] pinconfig | | |-- sdmmc-bus4 pinconfig [ + ] pinconfig | | `-- sdmmc-pwr pinconfig [ ] pinconfig | |-- sdio0 pinconfig [ ] pinconfig | | |-- sdio0-bus1 pinconfig [ ] pinconfig | | |-- sdio0-bus4 pinconfig [ ] pinconfig | | |-- sdio0-cmd pinconfig [ ] pinconfig | | |-- sdio0-clk pinconfig [ ] pinconfig | | |-- sdio0-cd pinconfig [ ] pinconfig | | |-- sdio0-wp pinconfig [ ] pinconfig | | |-- sdio0-pwr pinconfig [ ] pinconfig | | |-- sdio0-bkpwr pinconfig [ ] pinconfig | | `-- sdio0-int pinconfig [ ] pinconfig | |-- sdio1 pinconfig [ ] pinconfig | | |-- sdio1-bus1 pinconfig [ ] pinconfig | | |-- sdio1-bus4 pinconfig [ ] pinconfig | | |-- sdio1-cd pinconfig [ ] pinconfig | | |-- sdio1-wp pinconfig [ ] pinconfig | | |-- sdio1-bkpwr pinconfig [ ] pinconfig | | |-- sdio1-int pinconfig [ ] pinconfig | | |-- sdio1-cmd pinconfig [ ] pinconfig | | |-- sdio1-clk pinconfig [ ] pinconfig | | `-- sdio1-pwr pinconfig [ ] pinconfig | |-- emmc pinconfig [ ] pinconfig | | |-- emmc-clk pinconfig [ ] pinconfig | | |-- emmc-cmd pinconfig [ ] pinconfig | | |-- emmc-pwr pinconfig [ ] pinconfig | | |-- emmc-bus1 pinconfig [ ] pinconfig | | |-- emmc-bus4 pinconfig [ ] pinconfig | | `-- emmc-bus8 pinconfig [ ] pinconfig | |-- spi0 pinconfig [ ] pinconfig | | |-- spi0-clk pinconfig [ ] pinconfig | | |-- spi0-cs0 pinconfig [ ] pinconfig | | |-- spi0-tx pinconfig [ ] pinconfig | | |-- spi0-rx pinconfig [ ] pinconfig | | `-- spi0-cs1 pinconfig [ ] pinconfig | |-- spi1 pinconfig [ ] pinconfig | | |-- spi1-clk pinconfig [ ] pinconfig | | |-- spi1-cs0 pinconfig [ ] pinconfig | | |-- spi1-rx pinconfig [ ] pinconfig | | `-- spi1-tx pinconfig [ ] pinconfig | |-- spi2 pinconfig [ ] pinconfig | | |-- spi2-cs1 pinconfig [ ] pinconfig | | |-- spi2-clk pinconfig [ ] pinconfig | | |-- spi2-cs0 pinconfig [ ] pinconfig | | |-- spi2-rx pinconfig [ ] pinconfig | | `-- spi2-tx pinconfig [ ] pinconfig | |-- uart0 pinconfig [ ] pinconfig | | |-- uart0-xfer pinconfig [ ] pinconfig | | |-- uart0-cts pinconfig [ ] pinconfig | | `-- uart0-rts pinconfig [ ] pinconfig | |-- uart1 pinconfig [ ] pinconfig | | |-- uart1-xfer pinconfig [ ] pinconfig | | |-- uart1-cts pinconfig [ ] pinconfig | | `-- uart1-rts pinconfig [ + ] pinconfig | |-- uart2 pinconfig [ + ] pinconfig | | `-- uart2-xfer pinconfig [ ] pinconfig | |-- uart3 pinconfig [ ] pinconfig | | |-- uart3-xfer pinconfig [ ] pinconfig | | |-- uart3-cts pinconfig [ ] pinconfig | | `-- uart3-rts pinconfig [ ] pinconfig | |-- uart4 pinconfig [ ] pinconfig | | |-- uart4-xfer pinconfig [ ] pinconfig | | |-- uart4-cts pinconfig [ ] pinconfig | | `-- uart4-rts pinconfig [ ] pinconfig | |-- tsadc pinconfig [ ] pinconfig | | `-- otp-out pinconfig [ ] pinconfig | |-- pwm0 pinconfig [ ] pinconfig | | `-- pwm0-pin pinconfig [ ] pinconfig | |-- pwm1 pinconfig [ ] pinconfig | | `-- pwm1-pin pinconfig [ ] pinconfig | |-- pwm2 pinconfig [ ] pinconfig | | `-- pwm2-pin pinconfig [ ] pinconfig | |-- pwm3 pinconfig [ ] pinconfig | | `-- pwm3-pin pinconfig [ + ] pinconfig | |-- gmac pinconfig [ + ] pinconfig | | |-- rgmii-pins pinconfig [ ] pinconfig | | `-- rmii-pins pinconfig [ ] pinconfig | |-- spdif pinconfig [ ] pinconfig | | `-- spdif-tx pinconfig [ ] pinconfig | |-- pcfg-pull-none-drv-8ma pinconfig [ ] pinconfig | |-- pcfg-pull-up-drv-8ma pinconfig [ ] pinconfig | |-- backlight pinconfig [ ] pinconfig | | `-- bl-en pinconfig [ ] pinconfig | |-- buttons pinconfig [ ] pinconfig | | `-- pwrbtn pinconfig [ ] pinconfig | |-- eth_phy pinconfig [ ] pinconfig | | `-- eth-phy-pwr pinconfig [ + ] pinconfig | |-- pmic pinconfig [ + ] pinconfig | | `-- pmic-int pinconfig [ ] pinconfig | `-- usb pinconfig [ ] pinconfig | |-- host-vbus-drv pinconfig [ ] pinconfig | `-- pwr-3g clk [ ] fixed_rate |-- external-gmac-clock regulator [ ] fixed regu |-- vsys-regulator regulator [ + ] fixed regu |-- sdmmc-regulator regulator [ ] fixed regu `-- usb-host-regulator => > > U-Boot 2017.09 (Nov 16 2017 - 04:05:33 -0700) > > DRAM: 948 MiB > RPI 3 Model B (0xa02082) > MMC: sdhci at 7e300000: 0 > reading uboot.env > In: serial > Out: vidconsole > Err: vidconsole > Net: No ethernet found. > starting USB... > USB0: Core Release: 2.80a > scanning bus 0 for devices... 4 USB Device(s) found > scanning usb for storage devices... 1 Storage Device(s) found > Hit any key to stop autoboot: 0 > > Device 0: Vendor: SanDisk Rev: 1.00 Prod: Ultra > Type: Removable Hard Disk > Capacity: 29327.3 MB = 28.6 GB (60062500 x 512) > ... is now current device > Scanning usb 0:1... > Found EFI removable media binary efi/boot/bootaa64.efi > reading efi/boot/bootaa64.efi > 78959 bytes read in 75 ms (1 MiB/s) > ## Starting EFI application at 01000000 ... > Scanning disk sdhci at 7e300000.blk... > Scanning disk usb_mass_storage.lun0... > Found 2 disks > efi_diskprobe > efi_device_path_depth looking for type 4 i=0 type 4 > depth=0 > i=0 > efi_bootdp=Dusbmassstoragelun dp=Dsdhcieblk > i=1 > efi_bootdp=Dusbmassstoragelun dp=Dusbmassstoragelun > >> OpenBSD/arm64 BOOTAA64 0.8 > boot> > booting sd0a:/bsd: 3871708+578596+509352+803952 [283845+96+451968+239920]=0x82f330 > > U-Boot 2017.11 (Nov 15 2017 - 13:14:19 +1100) > > DRAM: 948 MiB > RPI 3 Model B (0xa02082) > MMC: sdhci at 7e300000: 0 > reading uboot.env > In: serial > Out: vidconsole > Err: vidconsole > Net: No ethernet found. > starting USB... > USB0: Core Release: 2.80a > scanning bus 0 for devices... 4 USB Device(s) found > scanning usb for storage devices... 1 Storage Device(s) found > Hit any key to stop autoboot: 0 > > Device 0: Vendor: SanDisk Rev: 1.00 Prod: Ultra > Type: Removable Hard Disk > Capacity: 29327.3 MB = 28.6 GB (60062500 x 512) > ... is now current device > Scanning usb 0:1... > Found EFI removable media binary efi/boot/bootaa64.efi > reading efi/boot/bootaa64.efi > 78959 bytes read in 86 ms (896.5 KiB/s) > ## Starting EFI application at 01000000 ... > Scanning disk sdhci at 7e300000.blk... > Scanning disk usb_mass_storage.lun0... > Found 2 disks > efi_diskprobe > efi_device_path_depth looking for type 4 i=0 type 1 > efi_device_path_depth looking for type 4 i=1 type 3 > efi_device_path_depth looking for type 4 i=2 type 3 > efi_device_path_depth looking for type 4 i=3 type 3 > efi_device_path_depth no match for type 4 > depth=-1 > i=0 > i=1 > i=2 > i=3 > i=4 > i=5 > >> OpenBSD/arm64 BOOTAA64 0.8 > boot> > cannot open sd0a:/etc/random.seed: Device not configured > booting sd0a:/bsd: open sd0a:/bsd: Device not configured > failed(6). will try /bsd > boot> > cannot open sd0a:/etc/random.seed: Device not configured > booting sd0a:/bsd: open sd0a:/bsd: Device not configured > failed(6). will try /bsd > Turning timeout off. > boot> > _______________________________________________ > U-Boot mailing list > U-Boot at lists.denx.de > https://lists.denx.de/listinfo/u-boot