On 23.07.2022 10:42, Simon Glass wrote: > Hi Jan, > > On Sat, 23 Jul 2022 at 09:03, Jan Palus <jpa...@fastmail.com> wrote: > > > > On 23.07.2022 16:43, Jan Palus wrote: > > > On 23.07.2022 16:19, Jan Palus wrote: > > > > On 22.07.2022 02:59, Simon Glass wrote: > > > > > Hi Jan, > > > > > > > > > > On Mon, 18 Jul 2022 at 11:48, Jan Palus <jpa...@fastmail.com> wrote: > > > > > > > > > > > > u-boot 2022.07 boots fine without any USB devices attached to > > > > > > RaspberryPi 2 however it hangs early on if external USB drive is > > > > > > connected, right after: > > > > > > > > > > > > Request Sense returned 02 04 01 > > > > > > > > > > > > git bisect indicates first commit to cause regression is: > > > > > > > > > > > > 8c9812a5d557c4eacf164147d7380b3af1b222ec is the first bad commit > > > > > > commit 8c9812a5d557c4eacf164147d7380b3af1b222ec > > > > > > Author: AKASHI Takahiro <takahiro.aka...@linaro.org> > > > > > > Date: Tue Mar 8 20:36:40 2022 +0900 > > > > > > > > > > > > usb: storage: call device_probe() after scanning > > > > > > > > > > > > Every time a usb bus/port is scanned and a new device is > > > > > > detected, > > > > > > we want to call device_probe() as it will give us a chance to > > > > > > run > > > > > > additional post-processings for some purposes. > > > > > > > > > > > > In particular, support for creating partitions on a device > > > > > > will be added. > > > > > > > > > > > > Signed-off-by: AKASHI Takahiro <takahiro.aka...@linaro.org> > > > > > > Reviewed-by: Simon Glass <s...@chromium.org> > > > > > > > > > > > > Reverting this commit fixes the issue. > > > > > > > > > > > > Note that USB drive is TOSHIBA MQ04UBD200 and it's not used for > > > > > > booting. > > > > > > Also note that without this change 0 storage devices are detected > > > > > > even > > > > > > when drive is attached. > > > > > > > > > > I am not sure what is going on here. Can you provide the full console > > > > > trace of the boot? Any idea where it is hanging? > > > > > > > ... > > > > > > > > Now the place where it hangs is: > > > > > > > > part_efi.c: > > > > > > > > static int part_test_efi(struct blk_desc *dev_desc) > > > > { > > > > ALLOC_CACHE_ALIGN_BUFFER_PAD(legacy_mbr, legacymbr, 1, > > > > dev_desc->blksz); > > > > > > > > where dev_desc->blksz is 3782209548. > > > > > > > > > > So it appears block size is read incorrectly? Should be 512 but not sure > > > where this value 3782209548 is coming from, it's not block capacity > > > either. After plugging in Linux reports: > > > > > > sd 0:0:0:0: [sda] 3907029168 512-byte logical blocks: (2.00 TB/1.82 TiB) > > > > Since this was logged: > > > > Device NOT ready > > Request Sense returned 02 04 01 > > > > then it seems capacity/block size were never determined (happens right > > after these log messages if they *don't* occur) so I guess they are > > random values and this usb storage should never have been probed? I'll > > stop here due to my cluelessness. > > Are you able to post the full console log? It should start with the > 'U-Boot' banner and end with the hang
Sure. Full log without debug logging: U-Boot 2022.07 (Jul 23 2022 - 20:53:41 +0200) DRAM: 832 MiB RPI 2 Model B (0xa01041) Core: 64 devices, 14 uclasses, devicetree: embed MMC: mmc@7e202000: 0 Loading Environment from FAT... Unable to read "uboot.env" from mmc0:1... In: serial Out: vidconsole Err: vidconsole Net: No ethernet found. starting USB... Bus usb@7e980000: USB DWC2 scanning bus usb@7e980000 for devices... Device NOT ready Request Sense returned 02 04 01 And with debug logging: U-Boot 2022.07 (Jul 23 2022 - 20:58:39 +0200) DRAM: size=18, ptr=388, limit=400: 7fffe50 size=4, ptr=38c, limit=400: 7fffe68 832 MiB bind node aliases Device 'aliases' has no compatible string bind node chosen Device 'chosen' has no compatible string bind node reserved-memory Device 'reserved-memory' has no compatible string bind node thermal-zones Device 'thermal-zones' has no compatible string bind node soc - attempt to match compatible string 'simple-bus' - found match at 'simple_bus': 'simple-bus' matches 'simple-bus' bind node timer@7e003000 - attempt to match compatible string 'brcm,bcm2835-system-timer' No match for node 'timer@7e003000' bind node txp@7e004000 - attempt to match compatible string 'brcm,bcm2835-txp' No match for node 'txp@7e004000' bind node cprman@7e101000 - attempt to match compatible string 'brcm,bcm2835-cprman' No match for node 'cprman@7e101000' bind node mailbox@7e00b880 - attempt to match compatible string 'brcm,bcm2835-mbox' No match for node 'mailbox@7e00b880' bind node gpio@7e200000 - attempt to match compatible string 'brcm,bcm2835-gpio' - found match at 'bcm283x_pinctrl': 'brcm,bcm2835-gpio' matches 'brcm,bcm2835-gpio' bind node serial@7e201000 - attempt to match compatible string 'arm,pl011' - found match at 'serial_pl01x': 'arm,pl011' matches 'arm,pl011' - seq=0 bind node mmc@7e202000 - attempt to match compatible string 'brcm,bcm2835-sdhost' - found match at 'bcm2835-sdhost': 'brcm,bcm2835-sdhost' matches 'brcm,bcm2835-sdhost' bind node i2c@7e205000 - attempt to match compatible string 'brcm,bcm2835-i2c' No match for node 'i2c@7e205000' bind node aux@7e215000 - attempt to match compatible string 'brcm,bcm2835-aux' No match for node 'aux@7e215000' bind node pwm@7e20c000 - attempt to match compatible string 'brcm,bcm2835-pwm' No match for node 'pwm@7e20c000' bind node hvs@7e400000 - attempt to match compatible string 'brcm,bcm2835-hvs' No match for node 'hvs@7e400000' bind node i2c@7e804000 - attempt to match compatible string 'brcm,bcm2835-i2c' No match for node 'i2c@7e804000' bind node usb@7e980000 - attempt to match compatible string 'brcm,bcm2835-usb' - found match at 'dwc2_usb': 'brcm,bcm2835-usb' matches 'brcm,bcm2835-usb' bind node usb1@1 - attempt to match compatible string 'usb424,9514' No match for node 'usb1@1' bind node dma@7e007000 - attempt to match compatible string 'brcm,bcm2835-dma' No match for node 'dma@7e007000' bind node interrupt-controller@7e00b200 - attempt to match compatible string 'brcm,bcm2836-armctrl-ic' No match for node 'interrupt-controller@7e00b200' bind node watchdog@7e100000 - attempt to match compatible string 'brcm,bcm2835-pm' - attempt to match compatible string 'brcm,bcm2835-pm-wdt' No match for node 'watchdog@7e100000' bind node rng@7e104000 - attempt to match compatible string 'brcm,bcm2835-rng' No match for node 'rng@7e104000' bind node pixelvalve@7e206000 - attempt to match compatible string 'brcm,bcm2835-pixelvalve0' No match for node 'pixelvalve@7e206000' bind node pixelvalve@7e207000 - attempt to match compatible string 'brcm,bcm2835-pixelvalve1' No match for node 'pixelvalve@7e207000' bind node thermal@7e212000 - attempt to match compatible string 'brcm,bcm2836-thermal' No match for node 'thermal@7e212000' bind node i2c@7e805000 - attempt to match compatible string 'brcm,bcm2835-i2c' No match for node 'i2c@7e805000' bind node vec@7e806000 - attempt to match compatible string 'brcm,bcm2835-vec' No match for node 'vec@7e806000' bind node pixelvalve@7e807000 - attempt to match compatible string 'brcm,bcm2835-pixelvalve2' No match for node 'pixelvalve@7e807000' bind node hdmi@7e902000 - attempt to match compatible string 'brcm,bcm2835-hdmi' - found match at 'bcm2835_video': 'brcm,bcm2835-hdmi' matches 'brcm,bcm2835-hdmi' bind node v3d@7ec00000 - attempt to match compatible string 'brcm,bcm2835-v3d' No match for node 'v3d@7ec00000' bind node gpu - attempt to match compatible string 'brcm,bcm2835-vc4' No match for node 'gpu' bind node local_intc@40000000 - attempt to match compatible string 'brcm,bcm2836-l1-intc' No match for node 'local_intc@40000000' bind node firmware - attempt to match compatible string 'raspberrypi,bcm2835-firmware' - attempt to match compatible string 'simple-mfd' - found match at 'simple_bus': 'simple-bus' matches 'simple-mfd' bind node power - attempt to match compatible string 'raspberrypi,bcm2835-power' No match for node 'power' bind node mailbox@7e00b840 - attempt to match compatible string 'brcm,bcm2836-vchiq' - attempt to match compatible string 'brcm,bcm2835-vchiq' No match for node 'mailbox@7e00b840' bind node clocks Device 'clocks' has no compatible string bind node phy - attempt to match compatible string 'usb-nop-xceiv' No match for node 'phy' bind node arm-pmu - attempt to match compatible string 'arm,cortex-a7-pmu' No match for node 'arm-pmu' bind node timer - attempt to match compatible string 'arm,armv7-timer' No match for node 'timer' bind node cpus Device 'cpus' has no compatible string bind node leds - attempt to match compatible string 'gpio-leds' No match for node 'leds' bind node memory@0 Device 'memory@0' has no compatible string bind node smbios - attempt to match compatible string 'u-boot,sysinfo-smbios' - found match at 'sysinfo_smbios': 'u-boot,sysinfo-smbios' matches 'u-boot,sysinfo-smbios' bind node smbios Device 'smbios' has no compatible string bind node __symbols__ Device '__symbols__' has no compatible string bind node clk-osc - attempt to match compatible string 'fixed-clock' No match for node 'clk-osc' bind node clk-usb - attempt to match compatible string 'fixed-clock' No match for node 'clk-usb' 0 - 0 'gpio@7e200000' - found 0 - 0 'gpio@7e200000' - found pinconfig gpioout: set_state_simple op missing 0 - 0 'gpio@7e200000' - found pinconfig alt0: set_state_simple op missing 0 - 0 'gpio@7e200000' - found pinconfig i2s_alt0: set_state_simple op missing simple_bus soc: set_state_simple op missing RPI 2 Model B (0xa01041) 0 - 0 'gpio@7e200000' - found pinconfig uart0_gpio14: set_state_simple op missing Core: 64 devices, 14 uclasses, devicetree: embed MMC: 0 - 0 'mmc@7e202000' - found 0 - 0 'gpio@7e200000' - found pinconfig sdhost_gpio48: set_state_simple op missing Sending event 4/(unknown) to spy 'efi_disk add' bcm2835-sdhost mmc@7e202000: f_max 250000000, f_min 122129 bcm2835-sdhost mmc@7e202000: bcm2835_probe -> OK Sending event 4/(unknown) to spy 'efi_disk add' 1 - 0 'mmc@7e202000' - not found mmc@7e202000: 0 Loading Environment from FAT... Sending event 4/(unknown) to spy 'efi_disk add' Sending event 4/(unknown) to spy 'efi_disk add' Sending event 4/(unknown) to spy 'efi_disk add' <2, 0, 1024> <8, 0, 64> <8488, 256, 128> FAT read(sect=8098), clust_size=1, read_size=1 FAT read(sect=94922), clust_size=1, read_size=1 FAT read(sect=152022), clust_size=1, read_size=1 FAT read(sect=170944), clust_size=1, read_size=1 FAT read(sect=8108), clust_size=1, read_size=1 FAT read(sect=81128), clust_size=1, read_size=1 FAT read(sect=54597), clust_size=1, read_size=1 FAT read(sect=28307), clust_size=1, read_size=1 FAT read(sect=173533), clust_size=1, read_size=1 FAT read(sect=235690), clust_size=1, read_size=1 FAT read(sect=156342), clust_size=1, read_size=1 Unable to read "uboot.env" from mmc0:1... 0 - 0 'hdmi@7e902000' - found 0 - 0 'gpio@7e200000' - found bcm2835_video hdmi@7e902000: set_state_simple op missing Sending event 4/(unknown) to spy 'efi_disk add' Sending event 4/(unknown) to spy 'efi_disk add' In: serial Out: vidconsole Err: vidconsole 0 - not found Net: No ethernet found. starting USB... Bus usb@7e980000: 0 - 0 'gpio@7e200000' - found dwc2_usb usb@7e980000: set_state_simple op missing dwc2_usb usb@7e980000: Can't get reset: -524 dwc2_usb usb@7e980000: Core Release: 2.80a USB DWC2 Sending event 4/(unknown) to spy 'efi_disk add' scanning bus usb@7e980000 for devices... bind node usb1@1 - attempt to match compatible string 'usb424,9514' No match for node 'usb1@1' 0 - 0 'gpio@7e200000' - found usb_hub usb_hub: set_state_simple op missing bind node usbether@1 - attempt to match compatible string 'usb424,ec00' No match for node 'usbether@1' 0 - 0 'gpio@7e200000' - found usb_hub usb_hub: set_state_simple op missing Sending event 4/(unknown) to spy 'efi_disk add' - seq=0 0 - 0 'gpio@7e200000' - found smsc95xx_eth smsc95xx_eth: set_state_simple op missing Sending event 4/(unknown) to spy 'efi_disk add' Device NOT ready Request Sense returned 02 04 01 > Takahiro-san, so you have any ideas? > > Regards, > Simon