Round 34: ROOT CAUSE - mtu3 node never bound; simple-mfd fix; payload 9c55f520
This commit is contained in:
+44
@@ -1297,3 +1297,47 @@ from pumpkin minus all USB/PHY configs.
|
||||
| prompt but keys do nothing | keyboard not enumerated (pogo not seated?) or stdin mux — re-seat keyboard and power-cycle |
|
||||
|
||||
Awaiting user reboot report.
|
||||
|
||||
## Round 34 — [ROOT CAUSE] mtu3 node never bound; "No USB controllers found"
|
||||
|
||||
Round 33 report: "no usb controller detected" — matches
|
||||
usb-uclass.c:467 `No USB controllers found`, printed when
|
||||
`controllers_initialized == 0`, i.e. NO UCLASS_USB bus device was even
|
||||
probed (a probed-but-failed controller would have printed
|
||||
"Bus usb@11200000: probe failed, error N"). So the xHCI node was never
|
||||
BOUND. Not a driver/pin problem: xhci-mtk.o was linked, the dtb had
|
||||
mac+ippc+phys, and pinctrl is irrelevant to the controller.
|
||||
|
||||
### Root cause (found in source, drivers/core/root.c)
|
||||
|
||||
`dm_scan_fdt_node()` walks ONLY the immediate subnodes of a bound node.
|
||||
Recursion into a node's children happens solely when some driver binds
|
||||
that node (bus drivers recurse via dm_scan_fdt_dev, e.g. the generic
|
||||
simple-bus driver's uclass post_bind, drivers/core/simple-bus.c).
|
||||
`usb@11200000` is a child of `ssusb@11201000` ("mediatek,mtu3"), which
|
||||
has NO U-Boot driver ⇒ its subtree was never scanned ⇒ usb_host never
|
||||
bound ⇒ zero UCLASS_USB devices. MMC/video bind because they are
|
||||
direct children of /soc (simple-bus).
|
||||
|
||||
### Fix (u-boot `75fe5bc9`, payload `9c55f520…`)
|
||||
|
||||
The R33 overlay now also sets
|
||||
`compatible = "mediatek,mt8183-mtu3", "mediatek,mtu3", "simple-mfd"`
|
||||
on ssusb: the generic simple-bus driver binds the node (CONFIG_SIMPLE_BUS=y)
|
||||
and its post_bind scans the xhci child. No MMIO touched by that driver
|
||||
(empty `ranges` → plat read skipped harmlessly).
|
||||
|
||||
Build OK, `_start` still 0x4C001000, dtb verified (simple-mfd present).
|
||||
Flashed `9c55f520…`, cmp OK, vbutil body verification succeeded.
|
||||
|
||||
### Decision tree for the reboot
|
||||
|
||||
| observation | meaning |
|
||||
|---|---|
|
||||
| banner → `Bus usb@11200000: ...` lines → `N USB Device(s) found` → prompt; typing works | WORKING |
|
||||
| banner → `Bus usb@11200000: probe failed, error -N` | xhci/phy/clk probe failed at stage N — transcribe |
|
||||
| banner → `Scanning bus ... failed, error N` | root-hub enumeration failed — transcribe |
|
||||
| `Bus usb@11200000: No USB Device found` then prompt | controller OK, nothing on the bus — re-seat the keyboard on the pogo pins, power-cycle |
|
||||
| `No USB controllers found` again | binding still failing — next step: krane_fb_log in lists_bind_fdt path |
|
||||
|
||||
Awaiting user reboot report.
|
||||
|
||||
Reference in New Issue
Block a user