Boot failure triggered by USB on rockpro64-rk3399 and pinebook-pro-rk3399

It seems rockpro64-rk3399 and pinebook-pro-rk3399 fail to boot when usb is started. It hangs indefinitely at:
## Flattened Device Tree blob at 01f00000 Booting using the fdt blob at 0x1f00000
I have observed this also using 2020.10 on rockpro64-rk3399, though on pinebook-pro-rk3399 usb does not work and so it basically avoids triggering the issue.
Setting CONFIG_USE_PREBOOT=n in the config works around the problem, though obviously by breaking usb keyboard support or booting from USB devices.
Related bugs in Debian and manjaro:
https://bugs.debian.org/973323 https://bugs.debian.org/980434 https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-rockpro64/-/issue...
Boot log:
U-Boot 2021.01+dfsg-1 (Jan 17 2021 - 03:50:13 +0000)
SoC: Rockchip rk3399 Reset cause: POR Model: Pine64 RockPro64 v2.1 DRAM: 3.9 GiB PMIC: RK808 MMC: mmc@fe310000: 2, mmc@fe320000: 1, sdhci@fe330000: 0 Loading Environment from SPIFlash... SF: Detected gd25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB *** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial Model: Pine64 RockPro64 v2.1 Net: eth0: ethernet@fe300000 starting USB... Bus usb@fe380000: USB EHCI 1.00 Bus usb@fe3a0000: USB OHCI 1.0 Bus usb@fe3c0000: USB EHCI 1.00 Bus usb@fe3e0000: USB OHCI 1.0 Bus dwc3: usb maximum-speed not found Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 scanning bus usb@fe380000 for devices... 1 USB Device(s) found scanning bus usb@fe3a0000 for devices... 1 USB Device(s) found scanning bus usb@fe3c0000 for devices... 1 USB Device(s) found scanning bus usb@fe3e0000 for devices... 1 USB Device(s) found scanning bus dwc3 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Hit any key to stop autoboot: 0 => printenv preboot preboot=usb start => usb reset resetting USB... Bus usb@fe380000: USB EHCI 1.00 Bus usb@fe3a0000: USB OHCI 1.0 Bus usb@fe3c0000: USB EHCI 1.00 Bus usb@fe3e0000: USB OHCI 1.0 Bus dwc3: usb maximum-speed not found Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 scanning bus usb@fe380000 for devices... 1 USB Device(s) found scanning bus usb@fe3a0000 for devices... 1 USB Device(s) found scanning bus usb@fe3c0000 for devices... 1 USB Device(s) found scanning bus usb@fe3e0000 for devices... 1 USB Device(s) found scanning bus dwc3 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found => boot Card did not respond to voltage select! : -110 switch to partitions #0, OK mmc1 is current device Scanning mmc 1:1... Found /extlinux/extlinux.conf Retrieving file: /extlinux/extlinux.conf 144 bytes read in 5 ms (27.3 KiB/s) 1: Debian-Installer Retrieving file: /initrd.gz 28995285 bytes read in 1287 ms (21.5 MiB/s) Retrieving file: /vmlinuz 26922864 bytes read in 1195 ms (21.5 MiB/s) Retrieving file: /dtbs/rockchip/rk3399-rockpro64.dtb 56849 bytes read in 13 ms (4.2 MiB/s) Moving Image from 0x2080000 to 0x2200000, end=3c50000 ## Flattened Device Tree blob at 01f00000 Booting using the fdt blob at 0x1f00000
live well, vagrant

Hi Vagrant,
Do you know which version is the last version that works in this case?
The firmware is from eMMC and it's wired for USB to affect the boot process.
Thanks,
- Kever
On 2021/1/21 上午8:08, Vagrant Cascadian wrote:
It seems rockpro64-rk3399 and pinebook-pro-rk3399 fail to boot when usb is started. It hangs indefinitely at:
## Flattened Device Tree blob at 01f00000 Booting using the fdt blob at 0x1f00000
I have observed this also using 2020.10 on rockpro64-rk3399, though on pinebook-pro-rk3399 usb does not work and so it basically avoids triggering the issue.
Setting CONFIG_USE_PREBOOT=n in the config works around the problem, though obviously by breaking usb keyboard support or booting from USB devices.
Related bugs in Debian and manjaro:
https://bugs.debian.org/973323 https://bugs.debian.org/980434 https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-rockpro64/-/issue...
Boot log:
U-Boot 2021.01+dfsg-1 (Jan 17 2021 - 03:50:13 +0000)
SoC: Rockchip rk3399 Reset cause: POR Model: Pine64 RockPro64 v2.1 DRAM: 3.9 GiB PMIC: RK808 MMC: mmc@fe310000: 2, mmc@fe320000: 1, sdhci@fe330000: 0 Loading Environment from SPIFlash... SF: Detected gd25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB *** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial Model: Pine64 RockPro64 v2.1 Net: eth0: ethernet@fe300000 starting USB... Bus usb@fe380000: USB EHCI 1.00 Bus usb@fe3a0000: USB OHCI 1.0 Bus usb@fe3c0000: USB EHCI 1.00 Bus usb@fe3e0000: USB OHCI 1.0 Bus dwc3: usb maximum-speed not found Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 scanning bus usb@fe380000 for devices... 1 USB Device(s) found scanning bus usb@fe3a0000 for devices... 1 USB Device(s) found scanning bus usb@fe3c0000 for devices... 1 USB Device(s) found scanning bus usb@fe3e0000 for devices... 1 USB Device(s) found scanning bus dwc3 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Hit any key to stop autoboot: 0 => printenv preboot preboot=usb start => usb reset resetting USB... Bus usb@fe380000: USB EHCI 1.00 Bus usb@fe3a0000: USB OHCI 1.0 Bus usb@fe3c0000: USB EHCI 1.00 Bus usb@fe3e0000: USB OHCI 1.0 Bus dwc3: usb maximum-speed not found Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 scanning bus usb@fe380000 for devices... 1 USB Device(s) found scanning bus usb@fe3a0000 for devices... 1 USB Device(s) found scanning bus usb@fe3c0000 for devices... 1 USB Device(s) found scanning bus usb@fe3e0000 for devices... 1 USB Device(s) found scanning bus dwc3 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found => boot Card did not respond to voltage select! : -110 switch to partitions #0, OK mmc1 is current device Scanning mmc 1:1... Found /extlinux/extlinux.conf Retrieving file: /extlinux/extlinux.conf 144 bytes read in 5 ms (27.3 KiB/s) 1: Debian-Installer Retrieving file: /initrd.gz 28995285 bytes read in 1287 ms (21.5 MiB/s) Retrieving file: /vmlinuz 26922864 bytes read in 1195 ms (21.5 MiB/s) Retrieving file: /dtbs/rockchip/rk3399-rockpro64.dtb 56849 bytes read in 13 ms (4.2 MiB/s) Moving Image from 0x2080000 to 0x2200000, end=3c50000 ## Flattened Device Tree blob at 01f00000 Booting using the fdt blob at 0x1f00000
live well, vagrant

On 21/01/2021 03:08, Vagrant Cascadian wrote:
It seems rockpro64-rk3399 and pinebook-pro-rk3399 fail to boot when usb is started. It hangs indefinitely at:
## Flattened Device Tree blob at 01f00000 Booting using the fdt blob at 0x1f00000
I have observed this also using 2020.10 on rockpro64-rk3399, though on pinebook-pro-rk3399 usb does not work and so it basically avoids triggering the issue.
Setting CONFIG_USE_PREBOOT=n in the config works around the problem, though obviously by breaking usb keyboard support or booting from USB devices.
This might be the same as [1] where running "usb stop" would hang, but disabling CONFIG_USB_OHCI_HCD and CONFIG_USB_OHCI_GENERIC gets the board to boot (still breaks the keyboard). Might help narrow things down.
[1] https://lists.denx.de/pipermail/u-boot/2020-November/432931.html
On 21/01/2021 06:37, Kever Yang wrote:
Do you know which version is the last version that works in this case?
The email I linked above has some versions they've tested, in case this is the same issue.

U-Boot 2020.07 worked, broken on rockpro64 by
commit 3ae64582fb8ceead4fc464cd2055eb3eaef78ccc (refs/bisect/bad) Author: Jagan Teki jagan@amarulasolutions.com Date: Mon Jul 20 14:53:09 2020 +0530
rockchip: rockpro64: Enable USB3.0 Host
Enable USB3.0 Host support for RockPro64 boards.
Signed-off-by: Jagan Teki jagan@amarulasolutions.com Reviewed-by: Kever Yang kever.yang@rock-chips.com
according to Kurt Miller who bisected this when the same problem was encountered booting OpenBSD. I don't have any rk3399 myself.
https://marc.info/?l=openbsd-ports&m=161005506031482&w=2 https://marc.info/?l=openbsd-ports&m=161012461223737&w=2
We ended up disabling CONFIG_USE_PREBOOT in rk3399 targets to fix booting via non-usb as well.
On Thu, Jan 21, 2021 at 11:37:16AM +0800, Kever Yang wrote:
Hi Vagrant,
Do you know which version is the last version that works in this case?
The firmware is from eMMC and it's wired for USB to affect the boot process.
Thanks,
- Kever
On 2021/1/21 上午8:08, Vagrant Cascadian wrote:
It seems rockpro64-rk3399 and pinebook-pro-rk3399 fail to boot when usb is started. It hangs indefinitely at:
## Flattened Device Tree blob at 01f00000 Booting using the fdt blob at 0x1f00000
I have observed this also using 2020.10 on rockpro64-rk3399, though on pinebook-pro-rk3399 usb does not work and so it basically avoids triggering the issue.
Setting CONFIG_USE_PREBOOT=n in the config works around the problem, though obviously by breaking usb keyboard support or booting from USB devices.
Related bugs in Debian and manjaro:
https://bugs.debian.org/973323 https://bugs.debian.org/980434 https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-rockpro64/-/issue...
Boot log:
U-Boot 2021.01+dfsg-1 (Jan 17 2021 - 03:50:13 +0000)
SoC: Rockchip rk3399 Reset cause: POR Model: Pine64 RockPro64 v2.1 DRAM: 3.9 GiB PMIC: RK808 MMC: mmc@fe310000: 2, mmc@fe320000: 1, sdhci@fe330000: 0 Loading Environment from SPIFlash... SF: Detected gd25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB *** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial Model: Pine64 RockPro64 v2.1 Net: eth0: ethernet@fe300000 starting USB... Bus usb@fe380000: USB EHCI 1.00 Bus usb@fe3a0000: USB OHCI 1.0 Bus usb@fe3c0000: USB EHCI 1.00 Bus usb@fe3e0000: USB OHCI 1.0 Bus dwc3: usb maximum-speed not found Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 scanning bus usb@fe380000 for devices... 1 USB Device(s) found scanning bus usb@fe3a0000 for devices... 1 USB Device(s) found scanning bus usb@fe3c0000 for devices... 1 USB Device(s) found scanning bus usb@fe3e0000 for devices... 1 USB Device(s) found scanning bus dwc3 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Hit any key to stop autoboot: 0 => printenv preboot preboot=usb start => usb reset resetting USB... Bus usb@fe380000: USB EHCI 1.00 Bus usb@fe3a0000: USB OHCI 1.0 Bus usb@fe3c0000: USB EHCI 1.00 Bus usb@fe3e0000: USB OHCI 1.0 Bus dwc3: usb maximum-speed not found Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 scanning bus usb@fe380000 for devices... 1 USB Device(s) found scanning bus usb@fe3a0000 for devices... 1 USB Device(s) found scanning bus usb@fe3c0000 for devices... 1 USB Device(s) found scanning bus usb@fe3e0000 for devices... 1 USB Device(s) found scanning bus dwc3 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found => boot Card did not respond to voltage select! : -110 switch to partitions #0, OK mmc1 is current device Scanning mmc 1:1... Found /extlinux/extlinux.conf Retrieving file: /extlinux/extlinux.conf 144 bytes read in 5 ms (27.3 KiB/s) 1: Debian-Installer Retrieving file: /initrd.gz 28995285 bytes read in 1287 ms (21.5 MiB/s) Retrieving file: /vmlinuz 26922864 bytes read in 1195 ms (21.5 MiB/s) Retrieving file: /dtbs/rockchip/rk3399-rockpro64.dtb 56849 bytes read in 13 ms (4.2 MiB/s) Moving Image from 0x2080000 to 0x2200000, end=3c50000 ## Flattened Device Tree blob at 01f00000 Booting using the fdt blob at 0x1f00000
live well, vagrant
participants (4)
-
Alper Nebi Yasak
-
Jonathan Gray
-
Kever Yang
-
Vagrant Cascadian