U-Boot issueshttps://source.denx.de/groups/u-boot/-/issues2021-07-06T01:11:59Zhttps://source.denx.de/u-boot/custodians/u-boot-mips/-/issues/10MIPS: ci20_mmc: migrate ethernet driver to driver model2021-07-06T01:11:59ZDaniel Schwierzeckdaniel.schwierzeck@gmail.comMIPS: ci20_mmc: migrate ethernet driver to driver modelBuild warnings:
```
+===================== WARNING ======================
+This board does not use CONFIG_DM_ETH (Driver Model
+for Ethernet drivers). Please update the board to use
+CONFIG_DM_ETH before the v2020.07 release. Failure to...Build warnings:
```
+===================== WARNING ======================
+This board does not use CONFIG_DM_ETH (Driver Model
+for Ethernet drivers). Please update the board to use
+CONFIG_DM_ETH before the v2020.07 release. Failure to
+update by the deadline may result in board removal.
+See doc/driver-model/migration.rst for more info.
+====================================================
```v2021.10https://source.denx.de/u-boot/custodians/u-boot-marvell/-/issues/2Zyxel NSA320S USB power not enabled by default2024-02-11T00:22:05ZPeter GranillaZyxel NSA320S USB power not enabled by default#### Introduction:
Through testing with real hardware and the kwboot utility I've determined that the usb ports on the Zyxel NSA320S nas aren't getting any power when using the latest U-boot built from the master branch with the nsa310s...#### Introduction:
Through testing with real hardware and the kwboot utility I've determined that the usb ports on the Zyxel NSA320S nas aren't getting any power when using the latest U-boot built from the master branch with the nsa310s_defconfig configuration. I came to this conclusion after trying both usb start and usb reset commands multiple times, after which the device still didn't recognize any attached usb storage media.
#### The problem:
After looking at the device tree file for this specific nas, and trying different GPIO configurations with the built in gpio command line tool in U-boot, I came to the conclusion that certain pins that would need to be set to output mode are incorrectly set to input mode. This affects the usb interface, because on this device the the usb power supply is tied to a gpio pin that is expected to output a high (1) signal, but it is instead waiting for input getting a low (0) signal.
#### Solution:
In the following source file (``board/zyxel/nsa310s/nsa310s.c``) on lines 35, 36, 41 and 42 there seem to be macros defining the initial values and output_enable properties of the lower and higher gpio registers. Although the values are initialized, the corresponding output bits aren't set for those pins so they revert to beeing input pins. I suggest altering the ``NSA310S_OE_LOW`` and ``NSA310S_OE_HIGH`` macros, replacing the constant ``0`` with the pins whose values are needed as ouput.
```c
// The bitwise inversion is intentional
#define NSA310S_OE_LOW (~(SYS_GREEN_LED | USB_POWER))
#define NSA310S_VAL_LOW (SYS_GREEN_LED | USB_POWER)
```
```c
// The bitwise inversion is intentional
#define NSA310S_OE_HIGH (~(HDD2_POWER))
#define NSA310S_VAL_HIGH (HDD2_POWER)
```
#### Note:
This fix works for the Zyxel NSA320S nas, but it's not clear that it would work, and have the same effect on the NSA310S model. It is because of this I suggest counting the two boards as separate.https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/17Hang with bootstd with broken SD card socket2024-01-26T14:25:53ZSimon Glasssjg@chromium.orgHang with bootstd with broken SD card socketFrom <calebccff> caleb
sjg1: o/, I've been running into this bootflow issue with standard boot. This board has a working internal MMC controller, working USB storage, and a broken sdcard slot, and "bootflow scan -b" gets stuck in this ...From <calebccff> caleb
sjg1: o/, I've been running into this bootflow issue with standard boot. This board has a working internal MMC controller, working USB storage, and a broken sdcard slot, and "bootflow scan -b" gets stuck in this infinite loop https://p.calebs.dev/ae02f4@raw
ah bootdev_next_prio() always returns 0 at the end, i guess it should return ret instead
welp that doesn't fix it, im stumped
(from sjg): calebccff: There was a patch 'bootdev: avoid infinite probe loop' - does that help?
sjg1: no, because the loop is external to bootdev_next_prio()
U-Boot 2024.01-00167-g60d4fb06e5b5-dirty (Jan 23 2024 - 20:22:56 +0000)
Model: Qualcomm Technologies, Inc. QRB4210 RB2
DRAM: 1003 MiB (effective 2 GiB)
Configured memory map:
0x0000000000001000 - 0x0000000040000000: DDR bank 0
0x0000000040000000 - 0x000000007eb00000: DDR bank 1
0x0000000080000000 - 0x00000000c0000000: DDR bank 2
Prev TTBR: 0x0000000000000000
Button 'Volume Up' bound to driver 'button_gpio'
PSCI: v1.0
Core: 74 devices, 24 uclasses, devicetree: board
MMC: sdhci_reset: Reset 0x1 never completed.
mmc@4784000 - probe failed: -19
mmc@4744000: 0
Loading Environment from nowhere... OK
qcom_pmic_pinctrl_probe(gpio@c000)
In: serial,button-kbd
Out: serial,vidconsole
Err: serial,vidconsole
Failed to get bootargs
Net: No ethernet found.
Card did not respond to voltage select! : -110
mmc_init: -95, time 27
No EFI system partition
No EFI system partition
Failed to persist EFI variables
Hit any key to stop autoboot: 0
=> log level 9
=> boot
Sending event 5/(unknown) to spy 'efi_disk add'
0
- 0 'efi'
- found
Sending event 5/(unknown) to spy 'efi_disk add'
1
- 0 'efi'
- 1 'efi_mgr'
- found
Sending event 5/(unknown) to spy 'efi_disk add'
2
- 0 'efi'
- 1 'efi_mgr'
- not found
3
- 0 'efi'
- 1 'efi_mgr'
- not found
4
- 0 'efi'
- 1 'efi_mgr'
- not found
5
- 0 'efi'
- 1 'efi_mgr'
- not found
6
- 0 'efi'
- 1 'efi_mgr'
- not found
7
- 0 'efi'
- 1 'efi_mgr'
- not found
8
- 0 'efi'
- 1 'efi_mgr'
- not found
9
- 0 'efi'
- 1 'efi_mgr'
- not found
10
- 0 'efi'
- 1 'efi_mgr'
- not found
11
- 0 'efi'
- 1 'efi_mgr'
- not found
12
- 0 'efi'
- 1 'efi_mgr'
- not found
13
- 0 'efi'
- 1 'efi_mgr'
- not found
14
- 0 'efi'
- 1 'efi_mgr'
- not found
15
- 0 'efi'
- 1 'efi_mgr'
- not found
16
- 0 'efi'
- 1 'efi_mgr'
- not found
17
- 0 'efi'
- 1 'efi_mgr'
- not found
18
- 0 'efi'
- 1 'efi_mgr'
- not found
19
- 0 'efi'
- 1 'efi_mgr'
- not found
20
- 0 'efi'
- 1 'efi_mgr'
- not found
21
- 0 'efi'
- 1 'efi_mgr'
- not found
22
- 0 'efi'
- 1 'efi_mgr'
- not found
23
- 0 'efi'
- 1 'efi_mgr'
- not found
0
- 0 'efi'
- found
1
- 0 'efi'
- 1 'efi_mgr'
- found
iter: Setting dev to (none), flags 0
check - ret=-22
entry: err=-22
inc_dev=0
Hunting for priority 1
exit 0
- bootdev_hunt_prio() ret 0
- targets <NULL> 0000000000000000
setup labels 0000000000000000
next prio 0: dev=0000000000000000/none
- mmc@4744000.bootdev: 2, want 0
- mmc@4784000.bootdev: 2, want 0
None found at prio 0, moving to 1
Hunting for priority 1
exit 0
- bootdev_hunt_prio() ret 0
- mmc@4744000.bootdev: 2, want 1
- mmc@4784000.bootdev: 2, want 1
None found at prio 1, moving to 2
Hunting for priority 2
Hunting with: mmc
bootdev_hunt_drv() return 0
exit 0
- bootdev_hunt_prio() ret 0
- mmc@4744000.bootdev: 2, want 2
Sending event 5/(unknown) to spy 'efi_disk add'
Selected bootdev: mmc@4744000.bootdev
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 27
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000
Looking for iommu@c600000
- checking iommu@59a0000
- checking iommu@c600000
- result for iommu@c600000: iommu@c600000 (ret=0)
- result for iommu@c600000: iommu@c600000 (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller
Looking for clock-controller
- checking qcom_clk
- checking xo-board
- checking sleep-clk
- checking can-clk
- result for clock-controller: (none) (ret=-19)
- result for clock-controller: (none) (ret=-19)
Device 'mmc@4784000.bootdev' failed to probe
- mmc@4744000.bootdev: 2, want 2
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 28
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000
Looking for iommu@c600000
- checking iommu@59a0000
- checking iommu@c600000
- result for iommu@c600000: iommu@c600000 (ret=0)
- result for iommu@c600000: iommu@c600000 (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller
Looking for clock-controller
- checking qcom_clk
- checking xo-board
- checking sleep-clk
- checking can-clk
- result for clock-controller: (none) (ret=-19)
- result for clock-controller: (none) (ret=-19)
Device 'mmc@4784000.bootdev' failed to probe
- mmc@4744000.bootdev: 2, want 2
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 28
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000
Looking for iommu@c600000
- checking iommu@59a0000
- checking iommu@c600000
- result for iommu@c600000: iommu@c600000 (ret=0)
- result for iommu@c600000: iommu@c600000 (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller
Looking for clock-controller
- checking qcom_clk
- checking xo-board
- checking sleep-clk
- checking can-clk
- result for clock-controller: (none) (ret=-19)
- result for clock-controller: (none) (ret=-19)
Device 'mmc@4784000.bootdev' failed to probe
- mmc@4744000.bootdev: 2, want 2
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 28
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000
Looking for iommu@c600000
- checking iommu@59a0000
- checking iommu@c600000
- result for iommu@c600000: iommu@c600000 (ret=0)
- result for iommu@c600000: iommu@c600000 (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller
Looking for clock-controller
- checking qcom_clk
- checking xo-board
- checking sleep-clk
- checking can-clk
- result for clock-controller: (none) (ret=-19)
- result for clock-controller: (none) (ret=-19)
Device 'mmc@4784000.bootdev' failed to probe
- mmc@4744000.bootdev: 2, want 2
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 28
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000
Looking for iommu@c600000
- checking iommu@59a0000
- checking iommu@c600000
- result for iommu@c600000: iommu@c600000 (ret=0)
- result for iommu@c600000: iommu@c600000 (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller
Looking for clock-controller
- checking qcom_clk
- checking xo-board
- checking sleep-clk
- checking can-clk
- result for clock-controller: (none) (ret=-19)
- result for clock-controller: (none) (ret=-19)
Device 'mmc@4784000.bootdev' failed to probe
- mmc@4744000.bootdev: 2, want 2
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 28
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000
Looking for iommu@c600000
- checking iommu@59a0000
- checking iommu@c600000
- result for iommu@c600000: iommu@c600000 (ret=0)
- result for iommu@c600000: iommu@c600000 (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller
Looking for clock-controller
- checking qcom_clk
- checking xo-board
- checking sleep-clk
- checking can-clk
- result for clock-controller: (none) (ret=-19)
- result for clock-controller: (none) (ret=-19)
Device 'mmc@4784000.bootdev' failed to probe
- mmc@4744000.bootdev: 2, want 2
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 28
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000
Looking for iommu@c600000
- checking iommu@59a0000
- checking iommu@c600000
- result for iommu@c600000: iommu@c600000 (ret=0)
- result for iommu@c600000: iommu@c600000 (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller
Looking for clock-controller
- checking qcom_clk
- checking xo-board
- checking sleep-clk
- checking can-clk
- result for clock-controller: (none) (ret=-19)
- result for clock-controller: (none) (ret=-19)
Device 'mmc@4784000.bootdev' failed to probe
- mmc@4744000.bootdev: 2, want 2
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 28
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000
Looking for iommu@c600000
- checking iommu@59a0000
- checking iommu@c600000
- result for iommu@c600000: iommu@c600000 (ret=0)
- result for iommu@c600000: iommu@c600000 (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller
Looking for clock-controller
- checking qcom_clk
- checking xo-board
- checking sleep-clk
- checking can-clk
- result for clock-controller: (none) (ret=-19)
- result for clock-controller: (none) (ret=-19)
Device 'mmc@4784000.bootdev' failed to probe
- mmc@4744000.bootdev: 2, want 2
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 28
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000
Looking for iommu@c600000
- checking iommu@59a0000
- checking iommu@c600000
- result for iommu@c600000: iommu@c600000 (ret=0)
- result for iommu@c600000: iommu@c600000 (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller
Looking for clock-controller
- checking qcom_clk
- checking xo-board
- checking sleep-clk
- checking can-clk
- result for clock-controller: (none) (ret=-19)
- result for clock-controller: (none) (ret=-19)
Device 'mmc@4784000.bootdev' failed to probe
- mmc@4744000.bootdev: 2, want 2
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 28
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000
Looking for iommu@c600000
- checking iommu@59a0000
- checking iommu@c600000
- result for iommu@c600000: iommu@c600000 (ret=0)
- result for iommu@c600000: iommu@c600000 (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller
Looking for clock-controller
- checking qcom_clk
- checking xo-board
- checking sleep-clk
- checking can-clk
- result for clock-controller: (none) (ret=-19)
- result for clock-controller: (none) (ret=-19)
Device 'mmc@4784000.bootdev' failed to probe
- mmc@4744000.bootdev: 2, want 2
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 28
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000
Looking for iommu@c600000
- checking iommu@59a0000
- checking iommu@c600000
- result for iommu@c600000: iommu@c600000 (ret=0)
- result for iommu@c600000: iommu@c600000 (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller
Looking for clock-controller
- checking qcom_clk
- checking xo-board
- checking sleep-clk
- checking can-clk
- result for clock-controller: (none) (ret=-19)
- result for clock-controller: (none) (ret=-19)
Device 'mmc@4784000.bootdev' failed to probe
- mmc@4744000.bootdev: 2, want 2
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 28
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000
Looking for iommu@c600000
- checking iommu@59a0000
- checking iommu@c600000
- result for iommu@c600000: iommu@c600000 (ret=0)
- result for iommu@c600000: iommu@c600000 (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller
Looking for clock-controller
- checking qcom_clk
- checking xo-board
- checking sleep-clk
- checking can-clk
- result for clock-controller: (none) (ret=-19)
- result for clock-controller: (none) (ret=-19)
Device 'mmc@4784000.bootdev' failed to probe
- mmc@4744000.bootdev: 2, want 2
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 28
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000
Looking for iommu@c600000
- checking iommu@59a0000
- checking iommu@c600000
- result for iommu@c600000: iommu@c600000 (ret=0)
- result for iommu@c600000: iommu@c600000 (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller
Looking for clock-controller
- checking qcom_clk
- checking xo-board
- checking sleep-clk
- checking can-clk
- result for clock-controller: (none) (ret=-19)
- result for clock-controller: (none) (ret=-19)
Device 'mmc@4784000.bootdev' failed to probe
- mmc@4744000.bootdev: 2, want 2
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 28
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000
Looking for iommu@c600000
- checking iommu@59a0000
- checking iommu@c600000
- result for iommu@c600000: iommu@c600000 (ret=0)
- result for iommu@c600000: iommu@c600000 (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller@1400000
Looking for clock-controller@1400000
- checking qcom_clk
- result for clock-controller@1400000: qcom_clk (ret=0)
- result for clock-controller@1400000: qcom_clk (ret=0)
Looking for clock-controller
Looking for clock-controller
- checking qcom_clk
- checking xo-board
- checking sleep-clk
- checking can-clk
- result for clock-controller: (none) (ret=-19)
- result for clock-controller: (none) (ret=-19)
Device 'mmc@4784000.bootdev' failed to probe
- mmc@4744000.bootdev: 2, want 2
ret=0, dev=000000007e660050 mmc@4744000.bootdev
probe mmc@4744000.bootdev 0
iter: Setting dev to mmc@4744000.bootdev, flags 0
iter_incr: ret=0
->get_bootflow mmc@4744000.bootdev,0=0000000000000000
Card did not respond to voltage select! : -110
mmc_init: -95, time 27
sibling_blk ret=-95, blk=(none)
check - ret=-108
entry: err=-108
inc_dev=1
labels 0000000000000000
next prio 2: dev=000000007e660050/mmc@4744000.bootdev
- mmc@4784000.bootdev: 2, want 2
Looking for iommu@c600000https://source.denx.de/u-boot/custodians/u-boot-usb/-/issues/1Raspberry Pi 4 cannot boot when both of the USB 3.0 ports have storage device...2024-02-06T19:19:11ZDouglas SilvaRaspberry Pi 4 cannot boot when both of the USB 3.0 ports have storage devices attached### To reproduce
You'll need two identical USB sticks - same size, same brand and model. Let's assume you would boot the OS from one of them, while the other would be just a removable storage medium. Also, remove the SD card from the slo...### To reproduce
You'll need two identical USB sticks - same size, same brand and model. Let's assume you would boot the OS from one of them, while the other would be just a removable storage medium. Also, remove the SD card from the slot, if present. Let's go USB-only.
When you turn on the Pi with both sticks connected, it will first throw up these errors:
```
ERROR: failure to add disk device usb_mass_storage.lun0, r = 20
Cannot initialize UEFI sub-system, r = 20
```
> I see the output from the serial console.
And then it will give up on USB and attempt to do a network-boot, at which point I can press `Ctrl + C` until I'm dropped to the U-Boot prompt.
OK, turn it off now. We'll start it again, but this time leaving only the bootable OS disk. With only one USB device plugged in, it should boot successfully from it.
### System info
- U-Boot 2021.10 (Sep 08 2023 - 11:13:24 -0600)
- Latest EEPROM version installed with raspi-config on Raspberry Pi OS (bookworm).
- Boot order set to boot from USB/NVMe first.
- OS: OpenBSD 7.4 (with full-disk encryption)
- Device: Raspberry Pi 4B (4GB)
### Additional info
The second (not-bootable) disk does not have the bootable MBR flag - I removed it. [OpenBSD's version] of `fdisk` automatically adds it. But it didn't make any difference.
I've experimented a bit with the U-Boot CLI, in an attempt to manually boot the OS. For example, when I run `bootefi bootmgr` I get the error `Cannot initialize UEFI sub-system`.
I will later gather and upload more detailed logs to this issue.
I believe the same problem was reported before on the [FreeBSD Bugzilla tracker](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256441).https://source.denx.de/u-boot/custodians/u-boot-efi/-/issues/16RISC-V: Separate text and data sections in EFI binaries2024-01-19T22:50:59ZHeinrich Schuchardtxypron.glpk@gmx.deRISC-V: Separate text and data sections in EFI binariesEFI binaries should not have sections that are both writable and executable.
We already corrected this for arm64.EFI binaries should not have sections that are both writable and executable.
We already corrected this for arm64.Heinrich Schuchardtxypron.glpk@gmx.deHeinrich Schuchardtxypron.glpk@gmx.dehttps://source.denx.de/u-boot/u-boot/-/issues/32CONFIG_VAL change not detected by fixdep2024-01-19T14:25:18ZSimon Glasssjg@chromium.orgCONFIG_VAL change not detected by fixdepI noticed that changing CONFIG_VPL_SYS_MALLOC_F did not result in rebuilding crt0_64.S and so the build failed to boot.
This could be because main() in fixdep.c does not include VPL
However, changing that did not seem to correct the pr...I noticed that changing CONFIG_VPL_SYS_MALLOC_F did not result in rebuilding crt0_64.S and so the build failed to boot.
This could be because main() in fixdep.c does not include VPL
However, changing that did not seem to correct the problem.https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/16Create rk3399 board using VBE2024-02-12T12:21:23ZSimon Glasssjg@chromium.orgCreate rk3399 board using VBEThe only board currently using VBE through all stages is sandbox_vpl. We should create an implementation on a real board, so it is easier for other boards to adopt it.The only board currently using VBE through all stages is sandbox_vpl. We should create an implementation on a real board, so it is easier for other boards to adopt it.Simon Glasssjg@chromium.orgSimon Glasssjg@chromium.org2024-01-31https://source.denx.de/u-boot/custodians/u-boot-efi/-/issues/15tcg2_measure_smbios() should check if the table is SMBIOS 2.1 or SMBiOS 32024-01-19T22:51:34ZHeinrich Schuchardtxypron.glpk@gmx.detcg2_measure_smbios() should check if the table is SMBIOS 2.1 or SMBiOS 3Two different versions of the SMBIOS entry point exist with different positions of the table length field.Two different versions of the SMBIOS entry point exist with different positions of the table length field.Ilias ApalodimasIlias Apalodimashttps://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/15Use the same u-boot.bin for multiple boards to show devicetree approach2023-12-28T12:29:03ZSimon Glasssjg@chromium.orgUse the same u-boot.bin for multiple boards to show devicetree approachWe already have OF_LIST which lists the devicetrees which can be provided to U-Boot at runtime.
This feature is not widely used, though.
We should try this with another SoC (e.g. rk3399) to demonstrate how a single u-boot-nodtb.bin can...We already have OF_LIST which lists the devicetrees which can be provided to U-Boot at runtime.
This feature is not widely used, though.
We should try this with another SoC (e.g. rk3399) to demonstrate how a single u-boot-nodtb.bin can be used with any devicetree for that SoChttps://source.denx.de/u-boot/u-boot/-/issues/31Resync with kbuild infrastructure2023-12-26T17:01:13ZTom RiniResync with kbuild infrastructureOur current build system is only synced with the Linux Kernel as of v4.20 and should be updated. In addition, there are some cleanups to what we have today that can be done, as noted by Yamada-san here: https://lore.kernel.org/all/CAK7LN...Our current build system is only synced with the Linux Kernel as of v4.20 and should be updated. In addition, there are some cleanups to what we have today that can be done, as noted by Yamada-san here: https://lore.kernel.org/all/CAK7LNAQbsaWV8abUzQS-XWB+mi+0uxy5fLvFJ=XPAmEPDUs_-Q@mail.gmail.com/https://source.denx.de/u-boot/u-boot/-/issues/30U-Boot should ensure dtb usage is 8 byte aligned as much as feasible2023-12-26T16:48:38ZTom RiniU-Boot should ensure dtb usage is 8 byte aligned as much as feasibleThe device tree specification requires that a device tree start at an 8 byte aligned memory address. Today, in some places we only ensure at a minimum 4 bytes of alignment and often this is OK. When passing on to the OS we do (with some ...The device tree specification requires that a device tree start at an 8 byte aligned memory address. Today, in some places we only ensure at a minimum 4 bytes of alignment and often this is OK. When passing on to the OS we do (with some unfortunate exceptions) ensure full proper alignment.
In at least some corner cases (certain PowerPC platform/image formats) 4 byte rather than 8 byte alignment is functionally required and so must not be broken.
One patch that started this work, but did not complete it (and did not cover all cases) is:
https://lore.kernel.org/all/20221215115825.827111-1-eugen.hristev@microchip.com/
and this thread also has other feedback to the approach that must be incorporated.Tom RiniTom Rinihttps://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/14test_ut[ut_dm_dm_test_rtc_dual] fails in CI sometimes2023-12-26T17:56:23ZTom Rinitest_ut[ut_dm_dm_test_rtc_dual] fails in CI sometimesAs of today we still sometimes see this test fail in CI. For example, in Azure:
```
=================================== FAILURES ===================================
_______________________ test_ut[ut_dm_dm_test_rtc_dual] _______________...As of today we still sometimes see this test fail in CI. For example, in Azure:
```
=================================== FAILURES ===================================
_______________________ test_ut[ut_dm_dm_test_rtc_dual] ________________________
test/py/tests/test_ut.py:504: in test_ut
assert output.endswith('Failures: 0')
test/dm/rtc.c:308, dm_test_rtc_dual(): -EINVAL == cmp_times(&now1, &cmp, false): Expected 0xffffffea (-22), got 0x0 (0)
Test: dm_test_rtc_dual: rtc.c (flat tree)
Test dm_test_rtc_dual failed 1 times
Failures: 1
=>
----------------- generated Nunit xml file: /u/test-output.xml -----------------
```2024-01-31https://source.denx.de/u-boot/u-boot/-/issues/29binman: improve scoping of pad-byte property2023-12-19T19:22:13ZSimon Glasssjg@chromium.orgbinman: improve scoping of pad-byte propertyAs per previous bug reportAs per previous bug reporthttps://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/13Add more BOOTSTD_FULL features to BOOTSTD2024-01-03T14:40:01ZSimon Glasssjg@chromium.orgAdd more BOOTSTD_FULL features to BOOTSTDIt seems that the current minimalist approach is not working too well, so we should make some changes.
Comments from Tom:
Right. But now that we've tried this, some of the feedback has been that
it's just too minimal right now. Like lo...It seems that the current minimalist approach is not working too well, so we should make some changes.
Comments from Tom:
Right. But now that we've tried this, some of the feedback has been that
it's just too minimal right now. Like looking at the help message for
bootflow, list and info should probably always be available. And maybe
the flags for "scan" should be re-thought? Too late to change things now
but "bootflow scan -b" should maybe how it's always been for "scan and
boot".https://source.denx.de/u-boot/u-boot/-/issues/28Support baud rate tables in the serial API2023-12-02T17:21:42ZSimon Glasssjg@chromium.orgSupport baud rate tables in the serial APIThis is in service of removing CFG_SYS_BAUDRATE_TABLE
Pali originally sent this series:
https://patchwork.ozlabs.org/project/uboot/list/?series=262148&state=*
The discussion here provided a suitable approach
http://patchwork.ozlabs.o...This is in service of removing CFG_SYS_BAUDRATE_TABLE
Pali originally sent this series:
https://patchwork.ozlabs.org/project/uboot/list/?series=262148&state=*
The discussion here provided a suitable approach
http://patchwork.ozlabs.org/project/uboot/patch/20210925121958.26001-1-pali@kernel.org/
This should be rebased and another driver added, e.g. ns16550 and sandboxhttps://source.denx.de/u-boot/u-boot/-/issues/27Move CFG_SYS_SDRAM_BASE/SIZE to Kconfig2023-12-09T19:28:26ZSimon Glasssjg@chromium.orgMove CFG_SYS_SDRAM_BASE/SIZE to KconfigLook at creating a tool which can read things from the devicetree and put its values into Kconfig options.
From discussion here:
https://patchwork.ozlabs.org/project/uboot/patch/20231117225313.2144665-4-trini@konsulko.com/
@trini sai...Look at creating a tool which can read things from the devicetree and put its values into Kconfig options.
From discussion here:
https://patchwork.ozlabs.org/project/uboot/patch/20231117225313.2144665-4-trini@konsulko.com/
@trini said:
> Possible? Sure. But I think it would end up being fairly horrible. What would be nice I think is some Zephyr-style "convert CONFIG_DEFAULT_DEVICE_TREE to some defines" because we could parse out /memory to CFG_SYS_SDRAM_BASE/SIZE and that's something we _need_ at build time.
@simon.glass replied:
> That would be pretty easy to do. But I would prefer to have it create CONFIG_SYS_SDRAM_BASE/SIZE so that it fits in with Kconfig, just that the value is set for you.https://source.denx.de/u-boot/custodians/u-boot-efi/-/issues/14ConnectController() expects DriverImageHandle to be a pointer to a NULL termi...2023-11-28T18:01:25ZHeinrich Schuchardtxypron.glpk@gmx.deConnectController() expects DriverImageHandle to be a pointer to a NULL terminated list of handles.Our implementation treats parameter DriverImageHandle as a single handle. According to the UEFI specification it is a pointer to a NULL terminated list of handles.Our implementation treats parameter DriverImageHandle as a single handle. According to the UEFI specification it is a pointer to a NULL terminated list of handles.Ilias ApalodimasIlias Apalodimashttps://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/11Add a struct for base, size in image.h2023-12-13T16:53:09ZSimon Glasssjg@chromium.orgAdd a struct for base, size in image.hQuite a few things have a base address and a size, particularly in image.h
It might be better to have a 'struct range' like Linux:
struct range {
ulong start;
ulong end;
};
Or we could use a different name and use start and size...Quite a few things have a base address and a size, particularly in image.h
It might be better to have a 'struct range' like Linux:
struct range {
ulong start;
ulong end;
};
Or we could use a different name and use start and size
Advantages:
- can pass a single arg to bootm_find_images() etc. instead of two
- can have generic function to check for overlaphttps://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/10Change bootm_headers->ft_addr to be an address2023-11-11T18:41:05ZSimon Glasssjg@chromium.orgChange bootm_headers->ft_addr to be an addressThis var is currently a pointer, but it is described as an address. It looks like having it as an address would be more convenient (like rd_start and image_start)
Also we have rd_start/end and initrd_start/end which seems oddThis var is currently a pointer, but it is described as an address. It looks like having it as an address would be more convenient (like rd_start and image_start)
Also we have rd_start/end and initrd_start/end which seems oddhttps://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/9buildman -a should use config fragments2023-11-10T14:23:06ZTom Rinibuildman -a should use config fragmentsIt dawned on me recently why `buildman -a ~CMDLINE` works differently than `echo '# CONFIG_CMDLINE is not set' >> configs/sandbox_defconfig` and that is because the former does a cycle of using the base defconfig, then modifying the .con...It dawned on me recently why `buildman -a ~CMDLINE` works differently than `echo '# CONFIG_CMDLINE is not set' >> configs/sandbox_defconfig` and that is because the former does a cycle of using the base defconfig, then modifying the .config whereas the latter modifies the config outright. If buildman instead made a tempfile to put the changes in and did "make defconfig /temp/changes.config" it would invoke merge_config.sh and get the same resulting .config as if the echo example had been done.