[U-Boot] [PATCH] efi_loader: Fix disk dp's for pre-DM/legacy devices
Jonathan Gray
jsg at jsg.id.au
Tue Nov 21 05:59:33 UTC 2017
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
More information about the U-Boot
mailing list