> Date: Tue, 26 Apr 2022 19:02:46 +0200 > From: Heinrich Schuchardt <xypron.g...@gmx.de> > > On 4/26/22 16:44, AKASHI Takahiro wrote: > > On Tue, Apr 26, 2022 at 03:57:26PM +0200, Heinrich Schuchardt wrote: > >> On 4/26/22 01:44, AKASHI Takahiro wrote: > >> I expect that boards that booted with previous versions of U-Boot using > >> the respective defconfig still boot. But they don't. Here is one example > >> (orangepi_pc_defconfig): > >> > >> Found U-Boot script /boot.scr.uimg > >> 189 bytes read in 2 ms (91.8 KiB/s) > >> ## Executing script at 43100000 > >> 22979 bytes read in 8 ms (2.7 MiB/s) > >> 98304 bytes read in 8 ms (11.7 MiB/s) > >> Booting /EFI\debian\grubarm.efi > >> Welcome to GRUB! > >> > >> error: disk `,msdos2' not found. > >> grub rescue> > >> > >> In U-Boot v2022.04 function efi_disk_register() ensured that all block > >> devices and their partitions were added as EFI handles. > > Not the all block devices, but the block devices which have already > > enumerated when efi_init_obj_list() is called. > > > >> But that > >> function is missing now. > > What (boot) device are you using here? > > > > Please show me the values of env variables, particularly, "boot_targets". > > > > Please show me the content of boot.scr.uimg, too. > > > > Please show me the output from > > => dm tree > > => efidebug devices > > for 2022.04 and 2022.07-rc1. > > > > -Takahiro Akashi > > > > > > > > > I am booting from mmc. Boot.scr just loads the device-tree from mmc- > > mmcblk0 179:0 0 29.8G 0 disk > ├─mmcblk0p1 179:1 0 1G 0 part /boot/efi > ├─mmcblk0p2 179:2 0 1G 0 part /boot > └─mmcblk0p3 179:3 0 27.8G 0 part / > > > U-Boot 2022.04 (Apr 26 2022 - 16:02:27 +0000) Allwinner Technology > ------------------------------------------------------------------ > > grub> ls > (hd0) (hd0,msdos1) (hd1) (hd1,msdos3) (hd1,msdos2) (hd1,msdos1) > > hd0 is a USB stick > hd1 is the SD card > > boot.scr > -------- > > # > # flash-kernel: bootscr.sunxi > # > > # boot script for Allwinner SunXi-based devices > > # Mainline u-boot v2014.10 introduces a new default environment and > # a new common bootcmd handling for all platforms, which is not fully > # compatible with the old-style environment used by u-boot-sunxi. > # This script therefore needs to check in which environment it > # is running and set some variables accordingly. > > # On u-boot-sunxi, this script assumes that ${device} and ${partition} > # are set. > > # The new-style environment predefines ${boot_targets}, the old-style > # environment does not. > if test -n "${boot_targets}" > then > echo "Mainline u-boot / new-style environment detected." > # Mainline u-boot v2014.10 uses ${devtype}, ${devnum} and > # ${bootpart} where u-boot-sunxi uses ${device} and ${partition}. > # ${distro_bootpart} replaced ${bootpart} in u-boot v2016.01. > if test -z "${device}"; then setenv device "${devtype}"; fi > if test -z "${partition}${distro_bootpart}"; then setenv partition > "${devnum}:${bootpart}"; fi > if test -z "${partition}"; then setenv partition > "${devnum}:${distro_bootpart}"; fi > else > echo "U-boot-sunxi / old-style environment detected." > # U-boot-sunxi does not predefine kernel_addr_r, fdt_addr_r and > # ramdisk_addr_r, so they have to be manually set. Use the values > # from mainline u-boot v2014.10, except for ramdisk_addr_r, > # which is set to 0x44300000 to allow for initrds larger than > # 13MB on u-boot-sunxi. > setenv kernel_addr_r 0x42000000 > setenv fdt_addr_r 0x43000000 > setenv ramdisk_addr_r 0x44300000 > fi > > if test -n "${console}"; then > setenv bootargs "${bootargs} console=${console}" > fi > > setenv bootargs ${bootargs} quiet > > > if test -z "${image_locations}"; then > setenv image_locations ${prefix} > fi > if test -z "${image_locations}"; then > setenv image_locations /boot/ / > fi > > if test -z "${fk_kvers}"; then > setenv fk_kvers '5.16.0-4-armmp-lpae' > fi > > if test -n "${fdtfile}"; then > setenv fdtpath dtbs/${fk_kvers}/${fdtfile} > else > setenv fdtpath dtb-${fk_kvers} > fi > > for pathprefix in ${image_locations} > do > if test -e ${device} ${partition} ${pathprefix}vmlinuz-${fk_kvers} > then > load ${device} ${partition} ${kernel_addr_r} > ${pathprefix}vmlinuz-${fk_kvers} \ > && load ${device} ${partition} ${fdt_addr_r} ${pathprefix}${fdtpath} \ > && load ${device} ${partition} ${ramdisk_addr_r} > ${pathprefix}initrd.img-${fk_kvers} \ > && echo "Booting Debian ${fk_kvers} from ${device} ${partition}..." \ > && bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r} > fi > done > > > U-Boot 2022.04 (Apr 26 2022 - 16:02:27 +0000) Allwinner Technology > > => echo $boot_targets > fel mmc0 usb0 pxe dhcp > > => dm tree > Class Index Probed Driver Name > ----------------------------------------------------------- > root 0 [ + ] root_driver root_driver > video 0 [ ] sunxi_de2 |-- sunxi_de2 > display 0 [ ] sunxi_dw_hdmi |-- sunxi_dw_hdmi > simple_bus 0 [ + ] simple_bus |-- soc > mmc 0 [ + ] sunxi_mmc | |-- mmc@1c0f000 > blk 0 [ + ] mmc_blk | | `-- m...@1c0f000.blk > phy 0 [ + ] sun4i_usb_phy | |-- phy@1c19400 > usb 0 [ + ] ehci_generic | |-- usb@1c1a000 > usb_hub 0 [ + ] usb_hub | | `-- usb_hub > usb 1 [ + ] ohci_generic | |-- usb@1c1a400 > usb_hub 1 [ + ] usb_hub | | `-- usb_hub > usb 2 [ + ] ehci_generic | |-- usb@1c1b000 > usb_hub 2 [ + ] usb_hub | | `-- usb_hub > usb 3 [ + ] ohci_generic | |-- usb@1c1b400 > usb_hub 3 [ + ] usb_hub | | `-- usb_hub > usb 4 [ + ] ehci_generic | |-- usb@1c1c000 > usb_hub 4 [ + ] usb_hub | | `-- usb_hub > usb_mass_s 0 [ + ] usb_mass_storage | | `-- > usb_mass_storage > blk 1 [ ] usb_storage_blk | | `-- > usb_mass_storage.lun0 > usb 5 [ + ] ohci_generic | |-- usb@1c1c400 > usb_hub 5 [ + ] usb_hub | | `-- usb_hub > usb 6 [ + ] ehci_generic | |-- usb@1c1d000 > usb_hub 6 [ + ] usb_hub | | `-- usb_hub > usb 7 [ + ] ohci_generic | |-- usb@1c1d400 > usb_hub 7 [ + ] usb_hub | | `-- usb_hub > clk 0 [ + ] sun8i_h3_ccu | |-- clock@1c20000 > reset 0 [ + ] sunxi_reset | | `-- reset > gpio 0 [ + ] gpio_sunxi | |-- pinctrl@1c20800 > gpio 1 [ + ] gpio_sunxi | | |-- PA > gpio 2 [ + ] gpio_sunxi | | |-- PB > gpio 3 [ + ] gpio_sunxi | | |-- PC > gpio 4 [ + ] gpio_sunxi | | |-- PD > gpio 5 [ + ] gpio_sunxi | | |-- PE > gpio 6 [ + ] gpio_sunxi | | |-- PF > gpio 7 [ + ] gpio_sunxi | | |-- PG > gpio 8 [ + ] gpio_sunxi | | |-- PH > gpio 9 [ + ] gpio_sunxi | | `-- PI > ethernet 0 [ + ] eth_sun8i_emac | |-- ethernet@1c30000 > watchdog 0 [ + ] sunxi_wdt | |-- watchdog@1c20ca0 > sysreset 0 [ ] wdt_reboot | | `-- watchdog@1c20ca0 > serial 0 [ + ] ns16550_serial | |-- serial@1c28000 > clk 1 [ + ] clk_sun6i_rtc | |-- rtc@1f00000 > clk 2 [ ] sun6i_a31_r_ccu | |-- clock@1f01400 > reset 1 [ ] sunxi_reset | | `-- reset > i2c 0 [ ] i2c_mvtwsi | |-- i2c@1f02400 > gpio 10 [ + ] gpio_sunxi | `-- pinctrl@1f02c00 > gpio 11 [ + ] gpio_sunxi | `-- PL > clk 3 [ + ] fixed_clock |-- osc24M_clk > clk 4 [ ] fixed_clock `-- osc32k_clk > > > > U-Boot 2022.07-rc1 (Apr 26 2022 - 07:00:52 +0000) Allwinner Technology > > => echo $boot_targets > fel mmc0 usb0 pxe dhcp > > => dm tree > Class Index Probed Driver Name > ----------------------------------------------------------- > root 0 [ + ] root_driver root_driver > video 0 [ ] sunxi_de2 |-- sunxi_de2 > display 0 [ ] sunxi_dw_hdmi |-- sunxi_dw_hdmi > simple_bus 0 [ + ] simple_bus |-- soc > mmc 0 [ + ] sunxi_mmc | |-- mmc@1c0f000 > blk 0 [ + ] mmc_blk | | |-- m...@1c0f000.blk > partition 0 [ + ] blk_partition | | | |-- > m...@1c0f000.blk:1 > partition 1 [ + ] blk_partition | | | |-- > m...@1c0f000.blk:2 > partition 2 [ + ] blk_partition | | | `-- > m...@1c0f000.blk:3 > bootdev 0 [ ] mmc_bootdev | | `-- > mmc@1c0f000.bootdev > phy 0 [ + ] sun4i_usb_phy | |-- phy@1c19400 > usb 0 [ + ] ehci_generic | |-- usb@1c1a000 > usb_hub 0 [ + ] usb_hub | | `-- usb_hub > usb 1 [ + ] ohci_generic | |-- usb@1c1a400 > usb_hub 1 [ + ] usb_hub | | `-- usb_hub > usb 2 [ + ] ehci_generic | |-- usb@1c1b000 > usb_hub 2 [ + ] usb_hub | | `-- usb_hub > usb 3 [ + ] ohci_generic | |-- usb@1c1b400 > usb_hub 3 [ + ] usb_hub | | `-- usb_hub > usb 4 [ + ] ehci_generic | |-- usb@1c1c000 > usb_hub 4 [ + ] usb_hub | | `-- usb_hub > usb_mass_s 0 [ + ] usb_mass_storage | | `-- > usb_mass_storage > blk 1 [ + ] usb_storage_blk | | |-- > usb_mass_storage.lun0 > partition 3 [ + ] blk_partition | | | `-- > usb_mass_storage.lun0:1 > bootdev 3 [ ] usb_bootdev | | `-- > usb_mass_storage.lun0.bootdev > usb 5 [ + ] ohci_generic | |-- usb@1c1c400 > usb_hub 5 [ + ] usb_hub | | `-- usb_hub > usb 6 [ + ] ehci_generic | |-- usb@1c1d000 > usb_hub 6 [ + ] usb_hub | | `-- usb_hub > usb 7 [ + ] ohci_generic | |-- usb@1c1d400 > usb_hub 7 [ + ] usb_hub | | `-- usb_hub > clk 0 [ + ] sun8i_h3_ccu | |-- clock@1c20000 > reset 0 [ + ] sunxi_reset | | `-- reset > pinctrl 0 [ + ] sunxi-pinctrl | |-- pinctrl@1c20800 > gpio 0 [ + ] gpio_sunxi | | |-- pinctrl@1c20800 > gpio 1 [ + ] gpio_sunxi | | | |-- PA > gpio 2 [ + ] gpio_sunxi | | | |-- PB > gpio 3 [ + ] gpio_sunxi | | | |-- PC > gpio 4 [ + ] gpio_sunxi | | | |-- PD > gpio 5 [ + ] gpio_sunxi | | | |-- PE > gpio 6 [ + ] gpio_sunxi | | | |-- PF > gpio 7 [ + ] gpio_sunxi | | | `-- PG > pinconfig 0 [ ] pinconfig | | |-- csi-pins > pinconfig 1 [ ] pinconfig | | |-- emac-rgmii-pins > pinconfig 2 [ ] pinconfig | | |-- i2c0-pins > pinconfig 3 [ ] pinconfig | | |-- i2c1-pins > pinconfig 4 [ ] pinconfig | | |-- i2c2-pins > pinconfig 5 [ + ] pinconfig | | |-- mmc0-pins > pinconfig 6 [ ] pinconfig | | |-- mmc1-pins > pinconfig 7 [ ] pinconfig | | |-- mmc2-8bit-pins > pinconfig 8 [ ] pinconfig | | |-- spdif-tx-pin > pinconfig 9 [ ] pinconfig | | |-- spi0-pins > pinconfig 10 [ ] pinconfig | | |-- spi1-pins > pinconfig 11 [ + ] pinconfig | | |-- uart0-pa-pins > pinconfig 12 [ ] pinconfig | | |-- uart1-pins > pinconfig 13 [ ] pinconfig | | |-- > uart1-rts-cts-pins > pinconfig 14 [ ] pinconfig | | |-- uart2-pins > pinconfig 15 [ ] pinconfig | | |-- > uart2-rts-cts-pins > pinconfig 16 [ ] pinconfig | | |-- uart3-pins > pinconfig 17 [ ] pinconfig | | |-- > uart3-rts-cts-pins > pinconfig 18 [ ] pinconfig | | |-- ahci_pwr_pin@0 > pinconfig 19 [ ] pinconfig | | |-- usb0_vbus_pin@0 > pinconfig 20 [ ] pinconfig | | |-- usb1_vbus_pin@0 > pinconfig 21 [ ] pinconfig | | `-- usb2_vbus_pin@0 > ethernet 0 [ + ] eth_sun8i_emac | |-- ethernet@1c30000 > bootdev 1 [ ] eth_bootdev | | `-- > ethernet@1c30000.bootdev > watchdog 0 [ + ] sunxi_wdt | |-- watchdog@1c20ca0 > sysreset 0 [ ] wdt_reboot | | `-- watchdog@1c20ca0 > serial 0 [ + ] ns16550_serial | |-- serial@1c28000 > clk 1 [ + ] clk_sun6i_rtc | |-- rtc@1f00000 > clk 2 [ + ] sun6i_a31_r_ccu | |-- clock@1f01400 > reset 1 [ ] sunxi_reset | | `-- reset > i2c 0 [ ] i2c_mvtwsi | |-- i2c@1f02400 > pinctrl 1 [ + ] sunxi-pinctrl | `-- pinctrl@1f02c00 > gpio 8 [ + ] gpio_sunxi | |-- pinctrl@1f02c00 > gpio 9 [ + ] gpio_sunxi | | `-- PL > pinconfig 22 [ ] pinconfig | |-- r-ir-rx-pin > pinconfig 23 [ ] pinconfig | |-- r-i2c-pins > pinconfig 24 [ ] pinconfig | `-- r-pwm-pin > clk 3 [ + ] fixed_clock |-- osc24M_clk > clk 4 [ ] fixed_clock |-- osc32k_clk > bootstd 0 [ ] bootstd_drv `-- bootstd > bootmeth 0 [ ] bootmeth_distro |-- distro > bootmeth 1 [ ] bootmeth_efi |-- efi > bootmeth 2 [ ] bootmeth_pxe |-- pxe > bootdev 2 [ ] system_bootdev `-- system-bootdev > > grub rescue> ls > (hd0) > > Grub does not see any partition at all. > > Loading a device from a partition does not create a handle for the device: > > => efidebug devices > ** Unable to read file ubootefi.var ** > Failed to load EFI variables > Device Device Path > ======== ==================== > 79f80f08 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b) > 7dffc7ec /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Uart(0,0,D,D) > 79f7f1f8 > /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/UsbClass(0x0,0x0,0x9,0x0,0x1)/UsbClass(0x781,0x5571,0x0,0x0,0x0) > 79f7f2a0 > /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/UsbClass(0x0,0x0,0x9,0x0,0x1)/UsbClass(0x781,0x5571,0x0,0x0,0x0)/HD(1,MBR,0x0c449046,0x800,0x800) > 79fdc188 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/MAC(0281431d5371,1) > => bootefi $kernel_addr_r > Booting /helloworld.efi > invalid image type: 0 > Hello, world! > => efidebug devices > Device Device Path > ======== ==================== > 79f80f08 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b) > 7dffc7ec /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Uart(0,0,D,D) > 79f7f1f8 > /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/UsbClass(0x0,0x0,0x9,0x0,0x1)/UsbClass(0x781,0x5571,0x0,0x0,0x0) > 79f7f2a0 > /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/UsbClass(0x0,0x0,0x9,0x0,0x1)/UsbClass(0x781,0x5571,0x0,0x0,0x0)/HD(1,MBR,0x0c449046,0x800,0x800) > 79fdc188 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/MAC(0281431d5371,1) > => > > So the current state is a complete mess.
Also see the breakage I just found concerning raw disk access. Should this series be reverted?