Re: [U-Boot] Regression in bootcmd handling in v2015.04-rc3? (was: [ANN] U-Boot v2015.04-rc3 released)

On Wed, Mar 11, 2015 at 09:20:46PM +0100, Karsten Merker wrote:
On Wed, Mar 04, 2015 at 08:53:37PM +0100, Karsten Merker wrote:
On Tue, Mar 03, 2015 at 06:31:37PM -0500, Tom Rini wrote:
I've pushed v2015.04-rc3 out to the repository and tarballs should exist soon.
[...]
As always, if anything is broken please speak up.
Hello,
I have tested v2015.04-rc3 and have stumbled over a problem with the distro_bootcmd framework when trying to boot from a specific device at the u-boot command prompt by using "run <device>_boot". Autobooting without user interruption of the boot process works fine:
U-Boot SPL 2015.04-rc3 (Mar 04 2015 - 19:43:43) DRAM: 1024 MiB CPU: 960000000Hz, AXI/AHB/APB: 3/2/2
U-Boot 2015.04-rc3 (Mar 04 2015 - 19:43:43) Allwinner Technology
CPU: Allwinner A20 (SUN7I) I2C: ready DRAM: 1 GiB MMC: SUNXI SD/MMC: 0 *** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial SCSI: SUNXI SCSI INIT SATA link 0 timeout. AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode flags: ncq stag pm led clo only pmp pio slum part ccc apst Net: dwmac.1c50000 starting USB... USB0: USB EHCI 1.00 scanning bus 0 for devices... 2 USB Device(s) found USB1: USB EHCI 1.00 scanning bus 1 for devices... 1 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device scanning bus for devices... Found 0 device(s).
SCSI device 0: Device 0: not available
USB device 0: Device 0: Vendor: Intenso Rev: Prod: Rainbow Type: Removable Hard Disk Capacity: 7620.0 MB = 7.4 GB (15605760 x 512) ... is now current device Scanning usb 0:1... Found U-Boot script /boot.scr reading /boot.scr 1263 bytes read in 22 ms (55.7 KiB/s) ## Executing script at 43100000 [...]
Interrupting the boot sequence and then manually executing e.g. "run usb_boot" results in a "** Bad device specification usb devplist **" error message:
sunxi# run usb_boot
USB device 0: Vendor: Intenso Rev: Prod: Rainbow Type: Removable Hard Disk Capacity: 7620.0 MB = 7.4 GB (15605760 x 512) ** Bad device specification usb devplist ** sunxi#
The reason for this is that in this constellation ${devnum} is undefined, which leads to a failure of the "part list ${devtype} ${devnum} devplist" command in ${scan_dev_for_boot_part}. Older versions of u-boot did not use the part list command, so this problem did not occur there. Using "run bootcmd_usb0" instead of "run usb_boot" works, but my understanding (which may of course be wrong) was that the user is expected to use "run <device>_boot" for booting from a specific device at the u-boot command prompt, and that has worked without problems in previous u-boot versions.
Hello,
as my original email appears to have fallen through the cracks, I'd like to ask again whether using "run <device>_boot" is "officially" expected to work or not. If it is not, what is the officially supported way for a user to boot from a certain device at the u-boot prompt? Should people use "setenv boot_targets foo; run bootcmd" instead?
Can you git bisect down to the problem commit and then we can poke the authors and other folks with a strong opinion on the distro bootcmd bits? Thanks again!
participants (1)
-
Tom Rini