2021-09-05 08:42:54

by Andre Muller

[permalink] [raw]
Subject: [Bisected Regression] OLPC XO-1.5: Internal drive and SD card (mmcblk*) gone since commit ea718c699055

With linux-5.13 and linux-5.14, the internal drive and SD card reader are gone from the XO-1.5. I bisected the issue to come up with ea718c699055:

# first bad commit: [ea718c699055c8566eb64432388a04974c43b2ea] Revert "Revert "driver core: Set fw_devlink=on by default""

The /dev/mmcblk* nodes are not generated since this patch.

Please find the output of lspsi -vv and lshw below.

I will be happy to provide more info and/or test patches.

Thank you,
Andre M?ller

===

# lspci -vv

00:00.0 Host bridge: VIA Technologies, Inc. VX855/VX875 Host Bridge: Host Control (rev 03)
Subsystem: QUANTA Computer Inc VX855/VX875 Host Bridge: Host Control
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32, Cache Line Size: 32 bytes

00:00.1 Host bridge: VIA Technologies, Inc. VX855/VX875 Error Reporting
Subsystem: QUANTA Computer Inc VX855/VX875 Error Reporting
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes

00:00.2 Host bridge: VIA Technologies, Inc. VX855/VX875 Host Bus Control
Subsystem: QUANTA Computer Inc VX855/VX875 Host Bus Control
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes

00:00.3 Host bridge: VIA Technologies, Inc. VX855/VX875 DRAM Bus Control
Subsystem: QUANTA Computer Inc VX855/VX875 DRAM Bus Control
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0

00:00.4 Host bridge: VIA Technologies, Inc. VX855/VX875 Power Management Control
Subsystem: QUANTA Computer Inc VX855/VX875 Power Management Control
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes

00:00.5 PIC: VIA Technologies, Inc. VX855/VX875 APIC and Central Traffic Control (prog-if 20 [IO(X)-APIC])
Subsystem: QUANTA Computer Inc VX855/VX875 APIC and Central Traffic Control
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes

00:00.6 Host bridge: VIA Technologies, Inc. VX855/VX875 Scratch Registers
Subsystem: QUANTA Computer Inc VX855/VX875 Scratch Registers
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes

00:00.7 Host bridge: VIA Technologies, Inc. VX855/VX875 North-South Module Interface Control
Subsystem: QUANTA Computer Inc VX855/VX875 North-South Module Interface Control
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes

00:01.0 VGA compatible controller: VIA Technologies, Inc. VX855/VX875 Chrome 9 HCM Integrated Graphics (prog-if 00 [VGA controller])
Subsystem: QUANTA Computer Inc VX855/VX875 Chrome 9 HCM Integrated Graphics
Device tree node: /sys/firmware/devicetree/base/pci/display@1
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32
Interrupt: pin A routed to IRQ 16
Region 0: Memory at d0000000 (32-bit, prefetchable) [size=64M]
Region 1: Memory at f0000000 (32-bit, non-prefetchable) [size=16M]
Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
Capabilities: [60] Power Management version 2
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
Address: 00000000 Data: 0000
Kernel driver in use: viafb

00:0c.0 SD Host controller: VIA Technologies, Inc. SDIO Host Controller (rev 10) (prog-if 01)
Subsystem: QUANTA Computer Inc SDIO Host Controller
Device tree node: /sys/firmware/devicetree/base/pci/sd@c
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 22
Region 0: Memory at 80000000 (32-bit, non-prefetchable) [size=256]
Region 1: Memory at 80001000 (32-bit, non-prefetchable) [size=256]
Region 2: Memory at 80002000 (32-bit, non-prefetchable) [size=256]
Capabilities: [80] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: sdhci-pci

00:10.0 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev a0) (prog-if 00 [UHCI])
Subsystem: QUANTA Computer Inc VT82xx/62xx UHCI USB 1.1 Controller
Device tree node: /sys/firmware/devicetree/base/pci/usb@10
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 20
Region 4: I/O ports at 8000 [size=32]
Capabilities: [80] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: uhci_hcd

00:10.1 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev a0) (prog-if 00 [UHCI])
Subsystem: QUANTA Computer Inc VT82xx/62xx UHCI USB 1.1 Controller
Device tree node: /sys/firmware/devicetree/base/pci/usb@10,1
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32, Cache Line Size: 32 bytes
Interrupt: pin B routed to IRQ 22
Region 4: I/O ports at 8020 [size=32]
Capabilities: [80] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: uhci_hcd

00:10.2 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev a0) (prog-if 00 [UHCI])
Subsystem: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller
Device tree node: /sys/firmware/devicetree/base/pci/usb@10,2
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32, Cache Line Size: 32 bytes
Interrupt: pin C routed to IRQ 21
Region 4: I/O ports at 8040 [size=32]
Capabilities: [80] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: uhci_hcd

00:10.4 USB controller: VIA Technologies, Inc. USB 2.0 (rev 90) (prog-if 20 [EHCI])
Subsystem: QUANTA Computer Inc USB 2.0
Device tree node: /sys/firmware/devicetree/base/pci/usb@10,4
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32, Cache Line Size: 64 bytes
Interrupt: pin D routed to IRQ 23
Region 0: Memory at 80003000 (32-bit, non-prefetchable) [size=256]
Capabilities: [80] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [88] Debug port: BAR=1 offset=00a0
Kernel driver in use: ehci-pci

00:11.0 ISA bridge: VIA Technologies, Inc. VX855/VX875 Bus Control and Power Management
Subsystem: QUANTA Computer Inc VX855/VX875 Bus Control and Power Management
Device tree node: /sys/firmware/devicetree/base/pci/isa@11
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Capabilities: [c0] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-

00:11.7 Host bridge: VIA Technologies, Inc. VX8xx South-North Module Interface Control
Subsystem: VIA Technologies, Inc. VX8xx South-North Module Interface Control
Device tree node: /sys/firmware/devicetree/base/pci/host@11,7
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-

00:13.0 PCI bridge: VIA Technologies, Inc. VX855/VX875/VX900 PCI to PCI Bridge (prog-if 00 [Normal decode])
Device tree node: /sys/firmware/devicetree/base/pci/pci@13
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
Latency: 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: [disabled]
Prefetchable memory behind bridge: [disabled]
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA+ VGA- VGA16- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [70] Subsystem: VIA Technologies, Inc. VX855/VX875/VX900 PCI to PCI Bridge

00:14.0 Audio device: VIA Technologies, Inc. VT8237A/VT8251 HDA Controller (rev 20)
Subsystem: QUANTA Computer Inc VT8237A/VT8251 HDA Controller
Device tree node: /sys/firmware/devicetree/base/pci/audio@14
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 17
Region 0: Memory at 80004000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [60] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0
ExtTag- RBE- FLReset-
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
Kernel driver in use: snd_hda_intel

===

# lshw

xo
description: Laptop
product: DA
vendor: OLPC
version: 1.5
serial: SHC1470003A
width: 32 bits
capabilities: smbios-2.1 dmi-2.1
configuration: chassis=laptop uuid=5a6dddd6-4fbe-32d5-50e9-786f7411eb8e
*-core
description: Motherboard
product: XO
vendor: QUANTA
physical id: 0
version: 1.5
serial: SHC1470003A
*-firmware:0
description: BIOS
vendor: IE8y2D ScD%g4r2bAIFA.
physical id: 0
version: OLPC Ver 1.00.15
date: 06/13/2014
size: 64KiB
capacity: 1MiB
capabilities: pci upgrade shadowing cdboot bootselect edd acpi
*-cpu:0
description: CPU
product: VIA C7-M Processor 1000MHz
vendor: CentaurHauls
physical id: 400
bus info: cpu@0
version: 6.13.0
size: 997MHz
capacity: 997MHz
width: 32 bits
clock: 33MHz
capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge cmov pat clflush acpi mmx fxsr sse sse2 tm nx cpuid pni est tm2 xtpr rng rng_en ace ace_en ace2 ace2_en phe phe_en pmm pmm_en cpufreq
*-cache:0
description: L1 cache
physical id: 701
size: 128KiB
capacity: 128KiB
capabilities: internal write-back unified
configuration: level=1
*-cache:1
description: L2 cache
physical id: 703
size: 128KiB
capacity: 128KiB
capabilities: internal write-back unified
configuration: level=2
*-memory
description: System Memory
physical id: 1001
slot: System board or motherboard
size: 1GiB
capacity: 1GiB
*-bank
description: Row of chips DDR2 Synchronous
physical id: 0
slot: Soldered
size: 1GiB
width: 64 bits
*-firmware:1
product: CL1 Q3C17 Q3C
physical id: 1
logical name: /proc/device-tree
*-cpu:1 DISABLED
description: CPU
product: cpu
physical id: 2
bus info: cpu@0
size: 1GHz
*-pci:0
description: Host bridge
product: VX855/VX875 Host Bridge: Host Control
vendor: VIA Technologies, Inc.
physical id: 100
bus info: pci@0000:00:00.0
version: 03
width: 32 bits
clock: 33MHz
configuration: latency=32
*-generic:0 UNCLAIMED
description: PIC
product: VX855/VX875 APIC and Central Traffic Control
vendor: VIA Technologies, Inc.
physical id: 0.5
bus info: pci@0000:00:00.5
version: 00
width: 32 bits
clock: 33MHz
capabilities: io_x_-apic bus_master
configuration: latency=0
*-display
description: VGA compatible controller
product: VX855/VX875 Chrome 9 HCM Integrated Graphics
vendor: VIA Technologies, Inc.
physical id: 1
bus info: pci@0000:00:01.0
logical name: /dev/fb0
version: 00
width: 32 bits
clock: 33MHz
capabilities: pm msi vga_controller bus_master cap_list rom fb
configuration: depth=32 driver=viafb latency=32 resolution=1200,900
resources: irq:16 memory:d0000000-d3ffffff memory:f0000000-f0ffffff memory:c0000-dffff
*-generic:1
description: MMC Host
product: SDIO Host Controller
vendor: VIA Technologies, Inc.
physical id: c
bus info: pci@0000:00:0c.0
logical name: mmc0
logical name: mmc1
logical name: mmc2
version: 10
width: 32 bits
clock: 33MHz
capabilities: pm bus_master cap_list
configuration: driver=sdhci-pci latency=0
resources: irq:22 memory:80000000-800000ff memory:80001000-800010ff memory:80002000-800020ff
*-device:0
description: SD Card
product: SD08G
vendor: SanDisk
physical id: aaaa
logical name: /dev/mmcblk0
version: 8.0
date: 09/2010
serial: 167437691
size: 7580MiB (7948MB)
capabilities: sd partitioned partitioned:dos
configuration: logicalsectorsize=512 sectorsize=512 signature=304f4eb5
*-volume:0
description: Linux filesystem partition
vendor: Linux
physical id: 1
logical name: /dev/mmcblk0p1
logical name: /boot
version: 1.0
serial: 0e879075-94ae-487d-b65f-86c6f4814cc7
size: 7MiB
capacity: 7MiB
capabilities: primary extended_attributes ext2 initialized
configuration: filesystem=ext2 lastmountpoint=/mnt/sdb1 modified=2021-09-04 23:01:46 mount.fstype=ext2 mount.options=rw,noatime mounted=2021-09-04 23:01:46 state=mounted
*-volume:1
description: Linux filesystem partition
physical id: 2
logical name: /dev/mmcblk0p2
capacity: 7572MiB
capabilities: primary
*-device:1
description: SDIO Device
physical id: 1
bus info: mmc@1:0001:1
logical name: mmc1:0001:1
serial: 0
capabilities: sdio
*-device:2
description: SD Card
product: SU04G
vendor: SanDisk
physical id: e624
logical name: /dev/mmcblk2
version: 8.0
date: 09/2011
serial: 290732065
size: 3781MiB (3965MB)
capabilities: sd partitioned partitioned:dos
configuration: logicalsectorsize=512 sectorsize=512
*-volume:0
description: Linux filesystem partition
vendor: Linux
physical id: 1
logical name: /dev/mmcblk2p1
version: 1.0
serial: ad2652ce-fee6-48ba-be72-86fb96ae288b
size: 64MiB
capacity: 64MiB
capabilities: primary bootable extended_attributes ext2 initialized
configuration: filesystem=ext2 label=Boot lastmountpoint=/var/lib/random-seed modified=2021-09-03 01:06:44 mounted=2021-09-03 01:06:32 state=unknown
*-volume:1
description: EXT4 volume
vendor: Linux
physical id: 2
logical name: /dev/mmcblk2p2
version: 1.0
serial: 8a90ac7c-4c44-4750-83c5-0857f41ade6a
size: 3713MiB
capacity: 3713MiB
capabilities: primary journaled extended_attributes large_files dir_nlink recover extents ext4 ext2 initialized
configuration: created=2020-01-29 04:49:55 filesystem=ext4 label=OLPCRoot lastmountpoint=/ modified=2020-10-19 19:23:30 mounted=2021-09-03 01:06:32 state=clean
*-usb:0
description: USB controller
product: VT82xx/62xx UHCI USB 1.1 Controller
vendor: VIA Technologies, Inc.
physical id: 10
bus info: pci@0000:00:10.0
version: a0
width: 32 bits
clock: 33MHz
capabilities: pm uhci bus_master cap_list
configuration: driver=uhci_hcd latency=32
resources: irq:20 ioport:8000(size=32)
*-usb:1
description: USB controller
product: VT82xx/62xx UHCI USB 1.1 Controller
vendor: VIA Technologies, Inc.
physical id: 10.1
bus info: pci@0000:00:10.1
version: a0
width: 32 bits
clock: 33MHz
capabilities: pm uhci bus_master cap_list
configuration: driver=uhci_hcd latency=32
resources: irq:22 ioport:8020(size=32)
*-usb:2
description: USB controller
product: VT82xx/62xx UHCI USB 1.1 Controller
vendor: VIA Technologies, Inc.
physical id: 10.2
bus info: pci@0000:00:10.2
version: a0
width: 32 bits
clock: 33MHz
capabilities: pm uhci bus_master cap_list
configuration: driver=uhci_hcd latency=32
resources: irq:21 ioport:8040(size=32)
*-usb:3
description: USB controller
product: USB 2.0
vendor: VIA Technologies, Inc.
physical id: 10.4
bus info: pci@0000:00:10.4
version: 90
width: 32 bits
clock: 33MHz
capabilities: pm debug ehci bus_master cap_list
configuration: driver=ehci-pci latency=32
resources: irq:23 memory:80003000-800030ff
*-isa
description: ISA bridge
product: VX855/VX875 Bus Control and Power Management
vendor: VIA Technologies, Inc.
physical id: 11
bus info: pci@0000:00:11.0
version: 00
width: 32 bits
clock: 33MHz
capabilities: isa pm cap_list
configuration: latency=0
*-pnp00:00
product: System Board
physical id: 0
capabilities: pnp
configuration: driver=system
*-pnp00:01
product: Motherboard registers
physical id: 1
capabilities: pnp
configuration: driver=system
*-pnp00:02
product: PS/2 Port for PS/2-style Mice
physical id: 2
capabilities: pnp
configuration: driver=i8042 aux
*-pnp00:03
product: IBM Enhanced keyboard controller (101/2-key)
physical id: 3
capabilities: pnp
configuration: driver=i8042 kbd
*-pnp00:04
product: AT Real-Time Clock
physical id: 4
capabilities: pnp
configuration: driver=rtc_cmos
*-pnp00:05
product: Motherboard registers
physical id: 5
capabilities: pnp
configuration: driver=system
*-pnp00:06
product: System Board
physical id: 6
capabilities: pnp
configuration: driver=system
*-pci
description: PCI bridge
product: VX855/VX875/VX900 PCI to PCI Bridge
vendor: VIA Technologies, Inc.
physical id: 13
bus info: pci@0000:00:13.0
version: 00
width: 32 bits
clock: 33MHz
capabilities: pci normal_decode bus_master cap_list
*-multimedia
description: Audio device
product: VT8237A/VT8251 HDA Controller
vendor: VIA Technologies, Inc.
physical id: 14
bus info: pci@0000:00:14.0
logical name: card0
logical name: /dev/snd/controlC0
logical name: /dev/snd/pcmC0D0c
logical name: /dev/snd/pcmC0D0p
version: 20
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list
configuration: driver=snd_hda_intel latency=0
resources: irq:17 memory:80004000-80007fff
*-input:0
product: HDA VIA VT82xx Mic
physical id: 0
logical name: input6
logical name: /dev/input/event4
*-input:1
product: HDA VIA VT82xx Headphone
physical id: 1
logical name: input7
logical name: /dev/input/event5
*-pci:1
description: Host bridge
product: VX855/VX875 Error Reporting
vendor: VIA Technologies, Inc.
physical id: 101
bus info: pci@0000:00:00.1
version: 00
width: 32 bits
clock: 33MHz
*-pci:2
description: Host bridge
product: VX855/VX875 Host Bus Control
vendor: VIA Technologies, Inc.
physical id: 102
bus info: pci@0000:00:00.2
version: 00
width: 32 bits
clock: 33MHz
*-pci:3
description: Host bridge
product: VX855/VX875 DRAM Bus Control
vendor: VIA Technologies, Inc.
physical id: 103
bus info: pci@0000:00:00.3
version: 00
width: 32 bits
clock: 33MHz
*-pci:4
description: Host bridge
product: VX855/VX875 Power Management Control
vendor: VIA Technologies, Inc.
physical id: 104
bus info: pci@0000:00:00.4
version: 00
width: 32 bits
clock: 33MHz
*-pci:5
description: Host bridge
product: VX855/VX875 Scratch Registers
vendor: VIA Technologies, Inc.
physical id: 105
bus info: pci@0000:00:00.6
version: 00
width: 32 bits
clock: 33MHz
*-pci:6
description: Host bridge
product: VX855/VX875 North-South Module Interface Control
vendor: VIA Technologies, Inc.
physical id: 106
bus info: pci@0000:00:00.7
version: 00
width: 32 bits
clock: 33MHz
*-pci:7
description: Host bridge
product: VX8xx South-North Module Interface Control
vendor: VIA Technologies, Inc.
physical id: 107
bus info: pci@0000:00:11.7
version: 00
width: 32 bits
clock: 33MHz
configuration: latency=8
*-input:0
product: Lid Switch
physical id: 1
logical name: input0
logical name: /dev/input/event0
capabilities: platform
*-input:1
product: Power Button
physical id: 2
logical name: input1
logical name: /dev/input/event1
capabilities: platform
*-input:2
product: AT Translated Set 2 keyboard
physical id: 3
logical name: input2
logical name: /dev/input/event2
capabilities: i8042
*-input:3
product: FSPPS/2 Sentelic FingerSensingPad
physical id: 4
logical name: input4
logical name: /dev/input/event6
capabilities: i8042
*-input:4
product: EBook Switch
physical id: 5
logical name: input5
logical name: /dev/input/event3
capabilities: platform
*-network
description: Wireless interface
physical id: 6
logical name: wlan0
serial: 68:a3:c4:cf:8d:fa
capabilities: ethernet physical wireless
configuration: broadcast=yes driver=libertas driverversion=COMM-USB8388-323.p0 firmware=9.70.20.p0 multicast=yes wireless=IEEE 802.11


2021-09-07 22:08:25

by Saravana Kannan

[permalink] [raw]
Subject: Re: [Bisected Regression] OLPC XO-1.5: Internal drive and SD card (mmcblk*) gone since commit ea718c699055

On Sun, Sep 5, 2021 at 1:15 AM Andre Muller <[email protected]> wrote:
>
> With linux-5.13 and linux-5.14, the internal drive and SD card reader are gone from the XO-1.5. I bisected the issue to come up with ea718c699055:
>
> # first bad commit: [ea718c699055c8566eb64432388a04974c43b2ea] Revert "Revert "driver core: Set fw_devlink=on by default""
>
> The /dev/mmcblk* nodes are not generated since this patch.
>
> Please find the output of lspsi -vv and lshw below.
>
> I will be happy to provide more info and/or test patches.

Hi Andre,

Can you point me to the dts file in upstream that corresponds to this system?

Also, if you can give the output of:
cat /sys/kernel/debug/devices_deferred

Thanks,
Saravana

>
> Thank you,
> Andre Müller
>
> ===
>
> # lspci -vv
>
> 00:00.0 Host bridge: VIA Technologies, Inc. VX855/VX875 Host Bridge: Host Control (rev 03)
> Subsystem: QUANTA Computer Inc VX855/VX875 Host Bridge: Host Control
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 32, Cache Line Size: 32 bytes
>
> 00:00.1 Host bridge: VIA Technologies, Inc. VX855/VX875 Error Reporting
> Subsystem: QUANTA Computer Inc VX855/VX875 Error Reporting
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 32 bytes
>
> 00:00.2 Host bridge: VIA Technologies, Inc. VX855/VX875 Host Bus Control
> Subsystem: QUANTA Computer Inc VX855/VX875 Host Bus Control
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 32 bytes
>
> 00:00.3 Host bridge: VIA Technologies, Inc. VX855/VX875 DRAM Bus Control
> Subsystem: QUANTA Computer Inc VX855/VX875 DRAM Bus Control
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
>
> 00:00.4 Host bridge: VIA Technologies, Inc. VX855/VX875 Power Management Control
> Subsystem: QUANTA Computer Inc VX855/VX875 Power Management Control
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 32 bytes
>
> 00:00.5 PIC: VIA Technologies, Inc. VX855/VX875 APIC and Central Traffic Control (prog-if 20 [IO(X)-APIC])
> Subsystem: QUANTA Computer Inc VX855/VX875 APIC and Central Traffic Control
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 32 bytes
>
> 00:00.6 Host bridge: VIA Technologies, Inc. VX855/VX875 Scratch Registers
> Subsystem: QUANTA Computer Inc VX855/VX875 Scratch Registers
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 32 bytes
>
> 00:00.7 Host bridge: VIA Technologies, Inc. VX855/VX875 North-South Module Interface Control
> Subsystem: QUANTA Computer Inc VX855/VX875 North-South Module Interface Control
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 32 bytes
>
> 00:01.0 VGA compatible controller: VIA Technologies, Inc. VX855/VX875 Chrome 9 HCM Integrated Graphics (prog-if 00 [VGA controller])
> Subsystem: QUANTA Computer Inc VX855/VX875 Chrome 9 HCM Integrated Graphics
> Device tree node: /sys/firmware/devicetree/base/pci/display@1
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 32
> Interrupt: pin A routed to IRQ 16
> Region 0: Memory at d0000000 (32-bit, prefetchable) [size=64M]
> Region 1: Memory at f0000000 (32-bit, non-prefetchable) [size=16M]
> Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
> Capabilities: [60] Power Management version 2
> Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
> Address: 00000000 Data: 0000
> Kernel driver in use: viafb
>
> 00:0c.0 SD Host controller: VIA Technologies, Inc. SDIO Host Controller (rev 10) (prog-if 01)
> Subsystem: QUANTA Computer Inc SDIO Host Controller
> Device tree node: /sys/firmware/devicetree/base/pci/sd@c
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin A routed to IRQ 22
> Region 0: Memory at 80000000 (32-bit, non-prefetchable) [size=256]
> Region 1: Memory at 80001000 (32-bit, non-prefetchable) [size=256]
> Region 2: Memory at 80002000 (32-bit, non-prefetchable) [size=256]
> Capabilities: [80] Power Management version 2
> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Kernel driver in use: sdhci-pci
>
> 00:10.0 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev a0) (prog-if 00 [UHCI])
> Subsystem: QUANTA Computer Inc VT82xx/62xx UHCI USB 1.1 Controller
> Device tree node: /sys/firmware/devicetree/base/pci/usb@10
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 32, Cache Line Size: 32 bytes
> Interrupt: pin A routed to IRQ 20
> Region 4: I/O ports at 8000 [size=32]
> Capabilities: [80] Power Management version 2
> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Kernel driver in use: uhci_hcd
>
> 00:10.1 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev a0) (prog-if 00 [UHCI])
> Subsystem: QUANTA Computer Inc VT82xx/62xx UHCI USB 1.1 Controller
> Device tree node: /sys/firmware/devicetree/base/pci/usb@10,1
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 32, Cache Line Size: 32 bytes
> Interrupt: pin B routed to IRQ 22
> Region 4: I/O ports at 8020 [size=32]
> Capabilities: [80] Power Management version 2
> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Kernel driver in use: uhci_hcd
>
> 00:10.2 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev a0) (prog-if 00 [UHCI])
> Subsystem: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller
> Device tree node: /sys/firmware/devicetree/base/pci/usb@10,2
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 32, Cache Line Size: 32 bytes
> Interrupt: pin C routed to IRQ 21
> Region 4: I/O ports at 8040 [size=32]
> Capabilities: [80] Power Management version 2
> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Kernel driver in use: uhci_hcd
>
> 00:10.4 USB controller: VIA Technologies, Inc. USB 2.0 (rev 90) (prog-if 20 [EHCI])
> Subsystem: QUANTA Computer Inc USB 2.0
> Device tree node: /sys/firmware/devicetree/base/pci/usb@10,4
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 32, Cache Line Size: 64 bytes
> Interrupt: pin D routed to IRQ 23
> Region 0: Memory at 80003000 (32-bit, non-prefetchable) [size=256]
> Capabilities: [80] Power Management version 2
> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [88] Debug port: BAR=1 offset=00a0
> Kernel driver in use: ehci-pci
>
> 00:11.0 ISA bridge: VIA Technologies, Inc. VX855/VX875 Bus Control and Power Management
> Subsystem: QUANTA Computer Inc VX855/VX875 Bus Control and Power Management
> Device tree node: /sys/firmware/devicetree/base/pci/isa@11
> Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Capabilities: [c0] Power Management version 2
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>
> 00:11.7 Host bridge: VIA Technologies, Inc. VX8xx South-North Module Interface Control
> Subsystem: VIA Technologies, Inc. VX8xx South-North Module Interface Control
> Device tree node: /sys/firmware/devicetree/base/pci/host@11,7
> Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>
> 00:13.0 PCI bridge: VIA Technologies, Inc. VX855/VX875/VX900 PCI to PCI Bridge (prog-if 00 [Normal decode])
> Device tree node: /sys/firmware/devicetree/base/pci/pci@13
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> Latency: 0
> Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> I/O behind bridge: [disabled]
> Memory behind bridge: [disabled]
> Prefetchable memory behind bridge: [disabled]
> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> BridgeCtl: Parity- SERR+ NoISA+ VGA- VGA16- MAbort- >Reset- FastB2B-
> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> Capabilities: [70] Subsystem: VIA Technologies, Inc. VX855/VX875/VX900 PCI to PCI Bridge
>
> 00:14.0 Audio device: VIA Technologies, Inc. VT8237A/VT8251 HDA Controller (rev 20)
> Subsystem: QUANTA Computer Inc VT8237A/VT8251 HDA Controller
> Device tree node: /sys/firmware/devicetree/base/pci/audio@14
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 32 bytes
> Interrupt: pin A routed to IRQ 17
> Region 0: Memory at 80004000 (64-bit, non-prefetchable) [size=16K]
> Capabilities: [50] Power Management version 2
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [60] MSI: Enable- Count=1/1 Maskable- 64bit+
> Address: 0000000000000000 Data: 0000
> Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
> DevCap: MaxPayload 128 bytes, PhantFunc 0
> ExtTag- RBE- FLReset-
> DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
> Kernel driver in use: snd_hda_intel
>
> ===
>
> # lshw
>
> xo
> description: Laptop
> product: DA
> vendor: OLPC
> version: 1.5
> serial: SHC1470003A
> width: 32 bits
> capabilities: smbios-2.1 dmi-2.1
> configuration: chassis=laptop uuid=5a6dddd6-4fbe-32d5-50e9-786f7411eb8e
> *-core
> description: Motherboard
> product: XO
> vendor: QUANTA
> physical id: 0
> version: 1.5
> serial: SHC1470003A
> *-firmware:0
> description: BIOS
> vendor: IE8y2D ScD%g4r2bAIFA.
> physical id: 0
> version: OLPC Ver 1.00.15
> date: 06/13/2014
> size: 64KiB
> capacity: 1MiB
> capabilities: pci upgrade shadowing cdboot bootselect edd acpi
> *-cpu:0
> description: CPU
> product: VIA C7-M Processor 1000MHz
> vendor: CentaurHauls
> physical id: 400
> bus info: cpu@0
> version: 6.13.0
> size: 997MHz
> capacity: 997MHz
> width: 32 bits
> clock: 33MHz
> capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge cmov pat clflush acpi mmx fxsr sse sse2 tm nx cpuid pni est tm2 xtpr rng rng_en ace ace_en ace2 ace2_en phe phe_en pmm pmm_en cpufreq
> *-cache:0
> description: L1 cache
> physical id: 701
> size: 128KiB
> capacity: 128KiB
> capabilities: internal write-back unified
> configuration: level=1
> *-cache:1
> description: L2 cache
> physical id: 703
> size: 128KiB
> capacity: 128KiB
> capabilities: internal write-back unified
> configuration: level=2
> *-memory
> description: System Memory
> physical id: 1001
> slot: System board or motherboard
> size: 1GiB
> capacity: 1GiB
> *-bank
> description: Row of chips DDR2 Synchronous
> physical id: 0
> slot: Soldered
> size: 1GiB
> width: 64 bits
> *-firmware:1
> product: CL1 Q3C17 Q3C
> physical id: 1
> logical name: /proc/device-tree
> *-cpu:1 DISABLED
> description: CPU
> product: cpu
> physical id: 2
> bus info: cpu@0
> size: 1GHz
> *-pci:0
> description: Host bridge
> product: VX855/VX875 Host Bridge: Host Control
> vendor: VIA Technologies, Inc.
> physical id: 100
> bus info: pci@0000:00:00.0
> version: 03
> width: 32 bits
> clock: 33MHz
> configuration: latency=32
> *-generic:0 UNCLAIMED
> description: PIC
> product: VX855/VX875 APIC and Central Traffic Control
> vendor: VIA Technologies, Inc.
> physical id: 0.5
> bus info: pci@0000:00:00.5
> version: 00
> width: 32 bits
> clock: 33MHz
> capabilities: io_x_-apic bus_master
> configuration: latency=0
> *-display
> description: VGA compatible controller
> product: VX855/VX875 Chrome 9 HCM Integrated Graphics
> vendor: VIA Technologies, Inc.
> physical id: 1
> bus info: pci@0000:00:01.0
> logical name: /dev/fb0
> version: 00
> width: 32 bits
> clock: 33MHz
> capabilities: pm msi vga_controller bus_master cap_list rom fb
> configuration: depth=32 driver=viafb latency=32 resolution=1200,900
> resources: irq:16 memory:d0000000-d3ffffff memory:f0000000-f0ffffff memory:c0000-dffff
> *-generic:1
> description: MMC Host
> product: SDIO Host Controller
> vendor: VIA Technologies, Inc.
> physical id: c
> bus info: pci@0000:00:0c.0
> logical name: mmc0
> logical name: mmc1
> logical name: mmc2
> version: 10
> width: 32 bits
> clock: 33MHz
> capabilities: pm bus_master cap_list
> configuration: driver=sdhci-pci latency=0
> resources: irq:22 memory:80000000-800000ff memory:80001000-800010ff memory:80002000-800020ff
> *-device:0
> description: SD Card
> product: SD08G
> vendor: SanDisk
> physical id: aaaa
> logical name: /dev/mmcblk0
> version: 8.0
> date: 09/2010
> serial: 167437691
> size: 7580MiB (7948MB)
> capabilities: sd partitioned partitioned:dos
> configuration: logicalsectorsize=512 sectorsize=512 signature=304f4eb5
> *-volume:0
> description: Linux filesystem partition
> vendor: Linux
> physical id: 1
> logical name: /dev/mmcblk0p1
> logical name: /boot
> version: 1.0
> serial: 0e879075-94ae-487d-b65f-86c6f4814cc7
> size: 7MiB
> capacity: 7MiB
> capabilities: primary extended_attributes ext2 initialized
> configuration: filesystem=ext2 lastmountpoint=/mnt/sdb1 modified=2021-09-04 23:01:46 mount.fstype=ext2 mount.options=rw,noatime mounted=2021-09-04 23:01:46 state=mounted
> *-volume:1
> description: Linux filesystem partition
> physical id: 2
> logical name: /dev/mmcblk0p2
> capacity: 7572MiB
> capabilities: primary
> *-device:1
> description: SDIO Device
> physical id: 1
> bus info: mmc@1:0001:1
> logical name: mmc1:0001:1
> serial: 0
> capabilities: sdio
> *-device:2
> description: SD Card
> product: SU04G
> vendor: SanDisk
> physical id: e624
> logical name: /dev/mmcblk2
> version: 8.0
> date: 09/2011
> serial: 290732065
> size: 3781MiB (3965MB)
> capabilities: sd partitioned partitioned:dos
> configuration: logicalsectorsize=512 sectorsize=512
> *-volume:0
> description: Linux filesystem partition
> vendor: Linux
> physical id: 1
> logical name: /dev/mmcblk2p1
> version: 1.0
> serial: ad2652ce-fee6-48ba-be72-86fb96ae288b
> size: 64MiB
> capacity: 64MiB
> capabilities: primary bootable extended_attributes ext2 initialized
> configuration: filesystem=ext2 label=Boot lastmountpoint=/var/lib/random-seed modified=2021-09-03 01:06:44 mounted=2021-09-03 01:06:32 state=unknown
> *-volume:1
> description: EXT4 volume
> vendor: Linux
> physical id: 2
> logical name: /dev/mmcblk2p2
> version: 1.0
> serial: 8a90ac7c-4c44-4750-83c5-0857f41ade6a
> size: 3713MiB
> capacity: 3713MiB
> capabilities: primary journaled extended_attributes large_files dir_nlink recover extents ext4 ext2 initialized
> configuration: created=2020-01-29 04:49:55 filesystem=ext4 label=OLPCRoot lastmountpoint=/ modified=2020-10-19 19:23:30 mounted=2021-09-03 01:06:32 state=clean
> *-usb:0
> description: USB controller
> product: VT82xx/62xx UHCI USB 1.1 Controller
> vendor: VIA Technologies, Inc.
> physical id: 10
> bus info: pci@0000:00:10.0
> version: a0
> width: 32 bits
> clock: 33MHz
> capabilities: pm uhci bus_master cap_list
> configuration: driver=uhci_hcd latency=32
> resources: irq:20 ioport:8000(size=32)
> *-usb:1
> description: USB controller
> product: VT82xx/62xx UHCI USB 1.1 Controller
> vendor: VIA Technologies, Inc.
> physical id: 10.1
> bus info: pci@0000:00:10.1
> version: a0
> width: 32 bits
> clock: 33MHz
> capabilities: pm uhci bus_master cap_list
> configuration: driver=uhci_hcd latency=32
> resources: irq:22 ioport:8020(size=32)
> *-usb:2
> description: USB controller
> product: VT82xx/62xx UHCI USB 1.1 Controller
> vendor: VIA Technologies, Inc.
> physical id: 10.2
> bus info: pci@0000:00:10.2
> version: a0
> width: 32 bits
> clock: 33MHz
> capabilities: pm uhci bus_master cap_list
> configuration: driver=uhci_hcd latency=32
> resources: irq:21 ioport:8040(size=32)
> *-usb:3
> description: USB controller
> product: USB 2.0
> vendor: VIA Technologies, Inc.
> physical id: 10.4
> bus info: pci@0000:00:10.4
> version: 90
> width: 32 bits
> clock: 33MHz
> capabilities: pm debug ehci bus_master cap_list
> configuration: driver=ehci-pci latency=32
> resources: irq:23 memory:80003000-800030ff
> *-isa
> description: ISA bridge
> product: VX855/VX875 Bus Control and Power Management
> vendor: VIA Technologies, Inc.
> physical id: 11
> bus info: pci@0000:00:11.0
> version: 00
> width: 32 bits
> clock: 33MHz
> capabilities: isa pm cap_list
> configuration: latency=0
> *-pnp00:00
> product: System Board
> physical id: 0
> capabilities: pnp
> configuration: driver=system
> *-pnp00:01
> product: Motherboard registers
> physical id: 1
> capabilities: pnp
> configuration: driver=system
> *-pnp00:02
> product: PS/2 Port for PS/2-style Mice
> physical id: 2
> capabilities: pnp
> configuration: driver=i8042 aux
> *-pnp00:03
> product: IBM Enhanced keyboard controller (101/2-key)
> physical id: 3
> capabilities: pnp
> configuration: driver=i8042 kbd
> *-pnp00:04
> product: AT Real-Time Clock
> physical id: 4
> capabilities: pnp
> configuration: driver=rtc_cmos
> *-pnp00:05
> product: Motherboard registers
> physical id: 5
> capabilities: pnp
> configuration: driver=system
> *-pnp00:06
> product: System Board
> physical id: 6
> capabilities: pnp
> configuration: driver=system
> *-pci
> description: PCI bridge
> product: VX855/VX875/VX900 PCI to PCI Bridge
> vendor: VIA Technologies, Inc.
> physical id: 13
> bus info: pci@0000:00:13.0
> version: 00
> width: 32 bits
> clock: 33MHz
> capabilities: pci normal_decode bus_master cap_list
> *-multimedia
> description: Audio device
> product: VT8237A/VT8251 HDA Controller
> vendor: VIA Technologies, Inc.
> physical id: 14
> bus info: pci@0000:00:14.0
> logical name: card0
> logical name: /dev/snd/controlC0
> logical name: /dev/snd/pcmC0D0c
> logical name: /dev/snd/pcmC0D0p
> version: 20
> width: 64 bits
> clock: 33MHz
> capabilities: pm msi pciexpress bus_master cap_list
> configuration: driver=snd_hda_intel latency=0
> resources: irq:17 memory:80004000-80007fff
> *-input:0
> product: HDA VIA VT82xx Mic
> physical id: 0
> logical name: input6
> logical name: /dev/input/event4
> *-input:1
> product: HDA VIA VT82xx Headphone
> physical id: 1
> logical name: input7
> logical name: /dev/input/event5
> *-pci:1
> description: Host bridge
> product: VX855/VX875 Error Reporting
> vendor: VIA Technologies, Inc.
> physical id: 101
> bus info: pci@0000:00:00.1
> version: 00
> width: 32 bits
> clock: 33MHz
> *-pci:2
> description: Host bridge
> product: VX855/VX875 Host Bus Control
> vendor: VIA Technologies, Inc.
> physical id: 102
> bus info: pci@0000:00:00.2
> version: 00
> width: 32 bits
> clock: 33MHz
> *-pci:3
> description: Host bridge
> product: VX855/VX875 DRAM Bus Control
> vendor: VIA Technologies, Inc.
> physical id: 103
> bus info: pci@0000:00:00.3
> version: 00
> width: 32 bits
> clock: 33MHz
> *-pci:4
> description: Host bridge
> product: VX855/VX875 Power Management Control
> vendor: VIA Technologies, Inc.
> physical id: 104
> bus info: pci@0000:00:00.4
> version: 00
> width: 32 bits
> clock: 33MHz
> *-pci:5
> description: Host bridge
> product: VX855/VX875 Scratch Registers
> vendor: VIA Technologies, Inc.
> physical id: 105
> bus info: pci@0000:00:00.6
> version: 00
> width: 32 bits
> clock: 33MHz
> *-pci:6
> description: Host bridge
> product: VX855/VX875 North-South Module Interface Control
> vendor: VIA Technologies, Inc.
> physical id: 106
> bus info: pci@0000:00:00.7
> version: 00
> width: 32 bits
> clock: 33MHz
> *-pci:7
> description: Host bridge
> product: VX8xx South-North Module Interface Control
> vendor: VIA Technologies, Inc.
> physical id: 107
> bus info: pci@0000:00:11.7
> version: 00
> width: 32 bits
> clock: 33MHz
> configuration: latency=8
> *-input:0
> product: Lid Switch
> physical id: 1
> logical name: input0
> logical name: /dev/input/event0
> capabilities: platform
> *-input:1
> product: Power Button
> physical id: 2
> logical name: input1
> logical name: /dev/input/event1
> capabilities: platform
> *-input:2
> product: AT Translated Set 2 keyboard
> physical id: 3
> logical name: input2
> logical name: /dev/input/event2
> capabilities: i8042
> *-input:3
> product: FSPPS/2 Sentelic FingerSensingPad
> physical id: 4
> logical name: input4
> logical name: /dev/input/event6
> capabilities: i8042
> *-input:4
> product: EBook Switch
> physical id: 5
> logical name: input5
> logical name: /dev/input/event3
> capabilities: platform
> *-network
> description: Wireless interface
> physical id: 6
> logical name: wlan0
> serial: 68:a3:c4:cf:8d:fa
> capabilities: ethernet physical wireless
> configuration: broadcast=yes driver=libertas driverversion=COMM-USB8388-323.p0 firmware=9.70.20.p0 multicast=yes wireless=IEEE 802.11

2021-09-08 02:15:32

by Andre Muller

[permalink] [raw]
Subject: Re: [Bisected Regression] OLPC XO-1.5: Internal drive and SD card (mmcblk*) gone since commit ea718c699055

On 08/09/2021 00.05, Saravana Kannan wrote:
> On Sun, Sep 5, 2021 at 1:15 AM Andre Muller <[email protected]> wrote:
>>
>> With linux-5.13 and linux-5.14, the internal drive and SD card reader are gone from the XO-1.5. I bisected the issue to come up with ea718c699055:
>>
>> # first bad commit: [ea718c699055c8566eb64432388a04974c43b2ea] Revert "Revert "driver core: Set fw_devlink=on by default""
>>
>> The /dev/mmcblk* nodes are not generated since this patch.
>>
>> Please find the output of lspsi -vv and lshw below.
>>
>> I will be happy to provide more info and/or test patches.
>
> Hi Andre,
>
> Can you point me to the dts file in upstream that corresponds to this system?
>
> Also, if you can give the output of:
> cat /sys/kernel/debug/devices_deferred

Hi Saravana,


/sys/kernel/debug/devices_deferred is empty.
I used the last good commit b6f617.

The XO-1.5 has an x86 compatible VIA C7 processor.
It uses the VX855 chip for about all I/O tasks, including SDIO.
I am not aware of a device tree file for it.

It is a bit of a strange beast, it uses OFW to initialize the hardware and provide a FORTH shell.
Which also is the boot manager, configured via FORTH scripts.

From the linux side of the fence, dmesg's line 2 is:

"OFW detected in memory, cif @ 0xff83ae68 (reserving top 8MB)"

AIUI, this mechanism is used in lieu of a device tree file, like UEFI on most x86 hardware.
But my understanding of device trees is severely limited, I might be allwrong.


Anyway, the firmware source is here:
http://dev.laptop.org/git/users/quozl/openfirmware/

This file is the closest dt-analogous thing for the XO-1.5 I can find therein:
cpu/x86/pc/olpc/via/devices.fth

My machine runs the latest version:
http://wiki.laptop.org/go/OLPC_Firmware_q3c17

The XO-1.5 hardware specs are here:
http://wiki.laptop.org/images/f/f0/CL1B_Hdwe_Design_Spec.pdf
http://wiki.laptop.org/go/Hardware_specification_1.5

Would the .config or dmesg help?

Thank you,
Andre

>
> Thanks,
> Saravana
>
>>
>> Thank you,
>> Andre Müller
>>
>> ===
>>
>> # lspci -vv
>>
>> 00:00.0 Host bridge: VIA Technologies, Inc. VX855/VX875 Host Bridge: Host Control (rev 03)
>> Subsystem: QUANTA Computer Inc VX855/VX875 Host Bridge: Host Control
>> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 32, Cache Line Size: 32 bytes
>>
>> 00:00.1 Host bridge: VIA Technologies, Inc. VX855/VX875 Error Reporting
>> Subsystem: QUANTA Computer Inc VX855/VX875 Error Reporting
>> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 0, Cache Line Size: 32 bytes
>>
>> 00:00.2 Host bridge: VIA Technologies, Inc. VX855/VX875 Host Bus Control
>> Subsystem: QUANTA Computer Inc VX855/VX875 Host Bus Control
>> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 0, Cache Line Size: 32 bytes
>>
>> 00:00.3 Host bridge: VIA Technologies, Inc. VX855/VX875 DRAM Bus Control
>> Subsystem: QUANTA Computer Inc VX855/VX875 DRAM Bus Control
>> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 0
>>
>> 00:00.4 Host bridge: VIA Technologies, Inc. VX855/VX875 Power Management Control
>> Subsystem: QUANTA Computer Inc VX855/VX875 Power Management Control
>> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 0, Cache Line Size: 32 bytes
>>
>> 00:00.5 PIC: VIA Technologies, Inc. VX855/VX875 APIC and Central Traffic Control (prog-if 20 [IO(X)-APIC])
>> Subsystem: QUANTA Computer Inc VX855/VX875 APIC and Central Traffic Control
>> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 0, Cache Line Size: 32 bytes
>>
>> 00:00.6 Host bridge: VIA Technologies, Inc. VX855/VX875 Scratch Registers
>> Subsystem: QUANTA Computer Inc VX855/VX875 Scratch Registers
>> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 0, Cache Line Size: 32 bytes
>>
>> 00:00.7 Host bridge: VIA Technologies, Inc. VX855/VX875 North-South Module Interface Control
>> Subsystem: QUANTA Computer Inc VX855/VX875 North-South Module Interface Control
>> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 0, Cache Line Size: 32 bytes
>>
>> 00:01.0 VGA compatible controller: VIA Technologies, Inc. VX855/VX875 Chrome 9 HCM Integrated Graphics (prog-if 00 [VGA controller])
>> Subsystem: QUANTA Computer Inc VX855/VX875 Chrome 9 HCM Integrated Graphics
>> Device tree node: /sys/firmware/devicetree/base/pci/display@1
>> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 32
>> Interrupt: pin A routed to IRQ 16
>> Region 0: Memory at d0000000 (32-bit, prefetchable) [size=64M]
>> Region 1: Memory at f0000000 (32-bit, non-prefetchable) [size=16M]
>> Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
>> Capabilities: [60] Power Management version 2
>> Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
>> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>> Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
>> Address: 00000000 Data: 0000
>> Kernel driver in use: viafb
>>
>> 00:0c.0 SD Host controller: VIA Technologies, Inc. SDIO Host Controller (rev 10) (prog-if 01)
>> Subsystem: QUANTA Computer Inc SDIO Host Controller
>> Device tree node: /sys/firmware/devicetree/base/pci/sd@c
>> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 0
>> Interrupt: pin A routed to IRQ 22
>> Region 0: Memory at 80000000 (32-bit, non-prefetchable) [size=256]
>> Region 1: Memory at 80001000 (32-bit, non-prefetchable) [size=256]
>> Region 2: Memory at 80002000 (32-bit, non-prefetchable) [size=256]
>> Capabilities: [80] Power Management version 2
>> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
>> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>> Kernel driver in use: sdhci-pci
>>
>> 00:10.0 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev a0) (prog-if 00 [UHCI])
>> Subsystem: QUANTA Computer Inc VT82xx/62xx UHCI USB 1.1 Controller
>> Device tree node: /sys/firmware/devicetree/base/pci/usb@10
>> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 32, Cache Line Size: 32 bytes
>> Interrupt: pin A routed to IRQ 20
>> Region 4: I/O ports at 8000 [size=32]
>> Capabilities: [80] Power Management version 2
>> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
>> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>> Kernel driver in use: uhci_hcd
>>
>> 00:10.1 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev a0) (prog-if 00 [UHCI])
>> Subsystem: QUANTA Computer Inc VT82xx/62xx UHCI USB 1.1 Controller
>> Device tree node: /sys/firmware/devicetree/base/pci/usb@10,1
>> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 32, Cache Line Size: 32 bytes
>> Interrupt: pin B routed to IRQ 22
>> Region 4: I/O ports at 8020 [size=32]
>> Capabilities: [80] Power Management version 2
>> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
>> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>> Kernel driver in use: uhci_hcd
>>
>> 00:10.2 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev a0) (prog-if 00 [UHCI])
>> Subsystem: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller
>> Device tree node: /sys/firmware/devicetree/base/pci/usb@10,2
>> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 32, Cache Line Size: 32 bytes
>> Interrupt: pin C routed to IRQ 21
>> Region 4: I/O ports at 8040 [size=32]
>> Capabilities: [80] Power Management version 2
>> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
>> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>> Kernel driver in use: uhci_hcd
>>
>> 00:10.4 USB controller: VIA Technologies, Inc. USB 2.0 (rev 90) (prog-if 20 [EHCI])
>> Subsystem: QUANTA Computer Inc USB 2.0
>> Device tree node: /sys/firmware/devicetree/base/pci/usb@10,4
>> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 32, Cache Line Size: 64 bytes
>> Interrupt: pin D routed to IRQ 23
>> Region 0: Memory at 80003000 (32-bit, non-prefetchable) [size=256]
>> Capabilities: [80] Power Management version 2
>> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
>> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>> Capabilities: [88] Debug port: BAR=1 offset=00a0
>> Kernel driver in use: ehci-pci
>>
>> 00:11.0 ISA bridge: VIA Technologies, Inc. VX855/VX875 Bus Control and Power Management
>> Subsystem: QUANTA Computer Inc VX855/VX875 Bus Control and Power Management
>> Device tree node: /sys/firmware/devicetree/base/pci/isa@11
>> Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Capabilities: [c0] Power Management version 2
>> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
>> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>
>> 00:11.7 Host bridge: VIA Technologies, Inc. VX8xx South-North Module Interface Control
>> Subsystem: VIA Technologies, Inc. VX8xx South-North Module Interface Control
>> Device tree node: /sys/firmware/devicetree/base/pci/host@11,7
>> Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>>
>> 00:13.0 PCI bridge: VIA Technologies, Inc. VX855/VX875/VX900 PCI to PCI Bridge (prog-if 00 [Normal decode])
>> Device tree node: /sys/firmware/devicetree/base/pci/pci@13
>> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>> Latency: 0
>> Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
>> I/O behind bridge: [disabled]
>> Memory behind bridge: [disabled]
>> Prefetchable memory behind bridge: [disabled]
>> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- <SERR- <PERR-
>> BridgeCtl: Parity- SERR+ NoISA+ VGA- VGA16- MAbort- >Reset- FastB2B-
>> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>> Capabilities: [70] Subsystem: VIA Technologies, Inc. VX855/VX875/VX900 PCI to PCI Bridge
>>
>> 00:14.0 Audio device: VIA Technologies, Inc. VT8237A/VT8251 HDA Controller (rev 20)
>> Subsystem: QUANTA Computer Inc VT8237A/VT8251 HDA Controller
>> Device tree node: /sys/firmware/devicetree/base/pci/audio@14
>> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> Latency: 0, Cache Line Size: 32 bytes
>> Interrupt: pin A routed to IRQ 17
>> Region 0: Memory at 80004000 (64-bit, non-prefetchable) [size=16K]
>> Capabilities: [50] Power Management version 2
>> Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>> Capabilities: [60] MSI: Enable- Count=1/1 Maskable- 64bit+
>> Address: 0000000000000000 Data: 0000
>> Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
>> DevCap: MaxPayload 128 bytes, PhantFunc 0
>> ExtTag- RBE- FLReset-
>> DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
>> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
>> MaxPayload 128 bytes, MaxReadReq 128 bytes
>> DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
>> Kernel driver in use: snd_hda_intel
>>
>> ===
>>
>> # lshw
>>
>> xo
>> description: Laptop
>> product: DA
>> vendor: OLPC
>> version: 1.5
>> serial: SHC1470003A
>> width: 32 bits
>> capabilities: smbios-2.1 dmi-2.1
>> configuration: chassis=laptop uuid=5a6dddd6-4fbe-32d5-50e9-786f7411eb8e
>> *-core
>> description: Motherboard
>> product: XO
>> vendor: QUANTA
>> physical id: 0
>> version: 1.5
>> serial: SHC1470003A
>> *-firmware:0
>> description: BIOS
>> vendor: IE8y2D ScD%g4r2bAIFA.
>> physical id: 0
>> version: OLPC Ver 1.00.15
>> date: 06/13/2014
>> size: 64KiB
>> capacity: 1MiB
>> capabilities: pci upgrade shadowing cdboot bootselect edd acpi
>> *-cpu:0
>> description: CPU
>> product: VIA C7-M Processor 1000MHz
>> vendor: CentaurHauls
>> physical id: 400
>> bus info: cpu@0
>> version: 6.13.0
>> size: 997MHz
>> capacity: 997MHz
>> width: 32 bits
>> clock: 33MHz
>> capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge cmov pat clflush acpi mmx fxsr sse sse2 tm nx cpuid pni est tm2 xtpr rng rng_en ace ace_en ace2 ace2_en phe phe_en pmm pmm_en cpufreq
>> *-cache:0
>> description: L1 cache
>> physical id: 701
>> size: 128KiB
>> capacity: 128KiB
>> capabilities: internal write-back unified
>> configuration: level=1
>> *-cache:1
>> description: L2 cache
>> physical id: 703
>> size: 128KiB
>> capacity: 128KiB
>> capabilities: internal write-back unified
>> configuration: level=2
>> *-memory
>> description: System Memory
>> physical id: 1001
>> slot: System board or motherboard
>> size: 1GiB
>> capacity: 1GiB
>> *-bank
>> description: Row of chips DDR2 Synchronous
>> physical id: 0
>> slot: Soldered
>> size: 1GiB
>> width: 64 bits
>> *-firmware:1
>> product: CL1 Q3C17 Q3C
>> physical id: 1
>> logical name: /proc/device-tree
>> *-cpu:1 DISABLED
>> description: CPU
>> product: cpu
>> physical id: 2
>> bus info: cpu@0
>> size: 1GHz
>> *-pci:0
>> description: Host bridge
>> product: VX855/VX875 Host Bridge: Host Control
>> vendor: VIA Technologies, Inc.
>> physical id: 100
>> bus info: pci@0000:00:00.0
>> version: 03
>> width: 32 bits
>> clock: 33MHz
>> configuration: latency=32
>> *-generic:0 UNCLAIMED
>> description: PIC
>> product: VX855/VX875 APIC and Central Traffic Control
>> vendor: VIA Technologies, Inc.
>> physical id: 0.5
>> bus info: pci@0000:00:00.5
>> version: 00
>> width: 32 bits
>> clock: 33MHz
>> capabilities: io_x_-apic bus_master
>> configuration: latency=0
>> *-display
>> description: VGA compatible controller
>> product: VX855/VX875 Chrome 9 HCM Integrated Graphics
>> vendor: VIA Technologies, Inc.
>> physical id: 1
>> bus info: pci@0000:00:01.0
>> logical name: /dev/fb0
>> version: 00
>> width: 32 bits
>> clock: 33MHz
>> capabilities: pm msi vga_controller bus_master cap_list rom fb
>> configuration: depth=32 driver=viafb latency=32 resolution=1200,900
>> resources: irq:16 memory:d0000000-d3ffffff memory:f0000000-f0ffffff memory:c0000-dffff
>> *-generic:1
>> description: MMC Host
>> product: SDIO Host Controller
>> vendor: VIA Technologies, Inc.
>> physical id: c
>> bus info: pci@0000:00:0c.0
>> logical name: mmc0
>> logical name: mmc1
>> logical name: mmc2
>> version: 10
>> width: 32 bits
>> clock: 33MHz
>> capabilities: pm bus_master cap_list
>> configuration: driver=sdhci-pci latency=0
>> resources: irq:22 memory:80000000-800000ff memory:80001000-800010ff memory:80002000-800020ff
>> *-device:0
>> description: SD Card
>> product: SD08G
>> vendor: SanDisk
>> physical id: aaaa
>> logical name: /dev/mmcblk0
>> version: 8.0
>> date: 09/2010
>> serial: 167437691
>> size: 7580MiB (7948MB)
>> capabilities: sd partitioned partitioned:dos
>> configuration: logicalsectorsize=512 sectorsize=512 signature=304f4eb5
>> *-volume:0
>> description: Linux filesystem partition
>> vendor: Linux
>> physical id: 1
>> logical name: /dev/mmcblk0p1
>> logical name: /boot
>> version: 1.0
>> serial: 0e879075-94ae-487d-b65f-86c6f4814cc7
>> size: 7MiB
>> capacity: 7MiB
>> capabilities: primary extended_attributes ext2 initialized
>> configuration: filesystem=ext2 lastmountpoint=/mnt/sdb1 modified=2021-09-04 23:01:46 mount.fstype=ext2 mount.options=rw,noatime mounted=2021-09-04 23:01:46 state=mounted
>> *-volume:1
>> description: Linux filesystem partition
>> physical id: 2
>> logical name: /dev/mmcblk0p2
>> capacity: 7572MiB
>> capabilities: primary
>> *-device:1
>> description: SDIO Device
>> physical id: 1
>> bus info: mmc@1:0001:1
>> logical name: mmc1:0001:1
>> serial: 0
>> capabilities: sdio
>> *-device:2
>> description: SD Card
>> product: SU04G
>> vendor: SanDisk
>> physical id: e624
>> logical name: /dev/mmcblk2
>> version: 8.0
>> date: 09/2011
>> serial: 290732065
>> size: 3781MiB (3965MB)
>> capabilities: sd partitioned partitioned:dos
>> configuration: logicalsectorsize=512 sectorsize=512
>> *-volume:0
>> description: Linux filesystem partition
>> vendor: Linux
>> physical id: 1
>> logical name: /dev/mmcblk2p1
>> version: 1.0
>> serial: ad2652ce-fee6-48ba-be72-86fb96ae288b
>> size: 64MiB
>> capacity: 64MiB
>> capabilities: primary bootable extended_attributes ext2 initialized
>> configuration: filesystem=ext2 label=Boot lastmountpoint=/var/lib/random-seed modified=2021-09-03 01:06:44 mounted=2021-09-03 01:06:32 state=unknown
>> *-volume:1
>> description: EXT4 volume
>> vendor: Linux
>> physical id: 2
>> logical name: /dev/mmcblk2p2
>> version: 1.0
>> serial: 8a90ac7c-4c44-4750-83c5-0857f41ade6a
>> size: 3713MiB
>> capacity: 3713MiB
>> capabilities: primary journaled extended_attributes large_files dir_nlink recover extents ext4 ext2 initialized
>> configuration: created=2020-01-29 04:49:55 filesystem=ext4 label=OLPCRoot lastmountpoint=/ modified=2020-10-19 19:23:30 mounted=2021-09-03 01:06:32 state=clean
>> *-usb:0
>> description: USB controller
>> product: VT82xx/62xx UHCI USB 1.1 Controller
>> vendor: VIA Technologies, Inc.
>> physical id: 10
>> bus info: pci@0000:00:10.0
>> version: a0
>> width: 32 bits
>> clock: 33MHz
>> capabilities: pm uhci bus_master cap_list
>> configuration: driver=uhci_hcd latency=32
>> resources: irq:20 ioport:8000(size=32)
>> *-usb:1
>> description: USB controller
>> product: VT82xx/62xx UHCI USB 1.1 Controller
>> vendor: VIA Technologies, Inc.
>> physical id: 10.1
>> bus info: pci@0000:00:10.1
>> version: a0
>> width: 32 bits
>> clock: 33MHz
>> capabilities: pm uhci bus_master cap_list
>> configuration: driver=uhci_hcd latency=32
>> resources: irq:22 ioport:8020(size=32)
>> *-usb:2
>> description: USB controller
>> product: VT82xx/62xx UHCI USB 1.1 Controller
>> vendor: VIA Technologies, Inc.
>> physical id: 10.2
>> bus info: pci@0000:00:10.2
>> version: a0
>> width: 32 bits
>> clock: 33MHz
>> capabilities: pm uhci bus_master cap_list
>> configuration: driver=uhci_hcd latency=32
>> resources: irq:21 ioport:8040(size=32)
>> *-usb:3
>> description: USB controller
>> product: USB 2.0
>> vendor: VIA Technologies, Inc.
>> physical id: 10.4
>> bus info: pci@0000:00:10.4
>> version: 90
>> width: 32 bits
>> clock: 33MHz
>> capabilities: pm debug ehci bus_master cap_list
>> configuration: driver=ehci-pci latency=32
>> resources: irq:23 memory:80003000-800030ff
>> *-isa
>> description: ISA bridge
>> product: VX855/VX875 Bus Control and Power Management
>> vendor: VIA Technologies, Inc.
>> physical id: 11
>> bus info: pci@0000:00:11.0
>> version: 00
>> width: 32 bits
>> clock: 33MHz
>> capabilities: isa pm cap_list
>> configuration: latency=0
>> *-pnp00:00
>> product: System Board
>> physical id: 0
>> capabilities: pnp
>> configuration: driver=system
>> *-pnp00:01
>> product: Motherboard registers
>> physical id: 1
>> capabilities: pnp
>> configuration: driver=system
>> *-pnp00:02
>> product: PS/2 Port for PS/2-style Mice
>> physical id: 2
>> capabilities: pnp
>> configuration: driver=i8042 aux
>> *-pnp00:03
>> product: IBM Enhanced keyboard controller (101/2-key)
>> physical id: 3
>> capabilities: pnp
>> configuration: driver=i8042 kbd
>> *-pnp00:04
>> product: AT Real-Time Clock
>> physical id: 4
>> capabilities: pnp
>> configuration: driver=rtc_cmos
>> *-pnp00:05
>> product: Motherboard registers
>> physical id: 5
>> capabilities: pnp
>> configuration: driver=system
>> *-pnp00:06
>> product: System Board
>> physical id: 6
>> capabilities: pnp
>> configuration: driver=system
>> *-pci
>> description: PCI bridge
>> product: VX855/VX875/VX900 PCI to PCI Bridge
>> vendor: VIA Technologies, Inc.
>> physical id: 13
>> bus info: pci@0000:00:13.0
>> version: 00
>> width: 32 bits
>> clock: 33MHz
>> capabilities: pci normal_decode bus_master cap_list
>> *-multimedia
>> description: Audio device
>> product: VT8237A/VT8251 HDA Controller
>> vendor: VIA Technologies, Inc.
>> physical id: 14
>> bus info: pci@0000:00:14.0
>> logical name: card0
>> logical name: /dev/snd/controlC0
>> logical name: /dev/snd/pcmC0D0c
>> logical name: /dev/snd/pcmC0D0p
>> version: 20
>> width: 64 bits
>> clock: 33MHz
>> capabilities: pm msi pciexpress bus_master cap_list
>> configuration: driver=snd_hda_intel latency=0
>> resources: irq:17 memory:80004000-80007fff
>> *-input:0
>> product: HDA VIA VT82xx Mic
>> physical id: 0
>> logical name: input6
>> logical name: /dev/input/event4
>> *-input:1
>> product: HDA VIA VT82xx Headphone
>> physical id: 1
>> logical name: input7
>> logical name: /dev/input/event5
>> *-pci:1
>> description: Host bridge
>> product: VX855/VX875 Error Reporting
>> vendor: VIA Technologies, Inc.
>> physical id: 101
>> bus info: pci@0000:00:00.1
>> version: 00
>> width: 32 bits
>> clock: 33MHz
>> *-pci:2
>> description: Host bridge
>> product: VX855/VX875 Host Bus Control
>> vendor: VIA Technologies, Inc.
>> physical id: 102
>> bus info: pci@0000:00:00.2
>> version: 00
>> width: 32 bits
>> clock: 33MHz
>> *-pci:3
>> description: Host bridge
>> product: VX855/VX875 DRAM Bus Control
>> vendor: VIA Technologies, Inc.
>> physical id: 103
>> bus info: pci@0000:00:00.3
>> version: 00
>> width: 32 bits
>> clock: 33MHz
>> *-pci:4
>> description: Host bridge
>> product: VX855/VX875 Power Management Control
>> vendor: VIA Technologies, Inc.
>> physical id: 104
>> bus info: pci@0000:00:00.4
>> version: 00
>> width: 32 bits
>> clock: 33MHz
>> *-pci:5
>> description: Host bridge
>> product: VX855/VX875 Scratch Registers
>> vendor: VIA Technologies, Inc.
>> physical id: 105
>> bus info: pci@0000:00:00.6
>> version: 00
>> width: 32 bits
>> clock: 33MHz
>> *-pci:6
>> description: Host bridge
>> product: VX855/VX875 North-South Module Interface Control
>> vendor: VIA Technologies, Inc.
>> physical id: 106
>> bus info: pci@0000:00:00.7
>> version: 00
>> width: 32 bits
>> clock: 33MHz
>> *-pci:7
>> description: Host bridge
>> product: VX8xx South-North Module Interface Control
>> vendor: VIA Technologies, Inc.
>> physical id: 107
>> bus info: pci@0000:00:11.7
>> version: 00
>> width: 32 bits
>> clock: 33MHz
>> configuration: latency=8
>> *-input:0
>> product: Lid Switch
>> physical id: 1
>> logical name: input0
>> logical name: /dev/input/event0
>> capabilities: platform
>> *-input:1
>> product: Power Button
>> physical id: 2
>> logical name: input1
>> logical name: /dev/input/event1
>> capabilities: platform
>> *-input:2
>> product: AT Translated Set 2 keyboard
>> physical id: 3
>> logical name: input2
>> logical name: /dev/input/event2
>> capabilities: i8042
>> *-input:3
>> product: FSPPS/2 Sentelic FingerSensingPad
>> physical id: 4
>> logical name: input4
>> logical name: /dev/input/event6
>> capabilities: i8042
>> *-input:4
>> product: EBook Switch
>> physical id: 5
>> logical name: input5
>> logical name: /dev/input/event3
>> capabilities: platform
>> *-network
>> description: Wireless interface
>> physical id: 6
>> logical name: wlan0
>> serial: 68:a3:c4:cf:8d:fa
>> capabilities: ethernet physical wireless
>> configuration: broadcast=yes driver=libertas driverversion=COMM-USB8388-323.p0 firmware=9.70.20.p0 multicast=yes wireless=IEEE 802.11

2021-09-08 03:33:04

by Saravana Kannan

[permalink] [raw]
Subject: Re: [Bisected Regression] OLPC XO-1.5: Internal drive and SD card (mmcblk*) gone since commit ea718c699055

On Tue, Sep 7, 2021 at 7:12 PM Andre Muller <[email protected]> wrote:
>
> On 08/09/2021 00.05, Saravana Kannan wrote:
> > On Sun, Sep 5, 2021 at 1:15 AM Andre Muller <[email protected]> wrote:
> >>
> >> With linux-5.13 and linux-5.14, the internal drive and SD card reader are gone from the XO-1.5. I bisected the issue to come up with ea718c699055:
> >>
> >> # first bad commit: [ea718c699055c8566eb64432388a04974c43b2ea] Revert "Revert "driver core: Set fw_devlink=on by default""
> >>
> >> The /dev/mmcblk* nodes are not generated since this patch.
> >>
> >> Please find the output of lspsi -vv and lshw below.
> >>
> >> I will be happy to provide more info and/or test patches.
> >
> > Hi Andre,
> >
> > Can you point me to the dts file in upstream that corresponds to this system?
> >
> > Also, if you can give the output of:
> > cat /sys/kernel/debug/devices_deferred
>
> Hi Saravana,
>
>
> /sys/kernel/debug/devices_deferred is empty.
> I used the last good commit b6f617.

Sorry, I wanted that with the bad commit.

>
> The XO-1.5 has an x86 compatible VIA C7 processor.
> It uses the VX855 chip for about all I/O tasks, including SDIO.
> I am not aware of a device tree file for it.
>
> It is a bit of a strange beast, it uses OFW to initialize the hardware and provide a FORTH shell.
> Which also is the boot manager, configured via FORTH scripts.
>
> From the linux side of the fence, dmesg's line 2 is:
>
> "OFW detected in memory, cif @ 0xff83ae68 (reserving top 8MB)"
>
> AIUI, this mechanism is used in lieu of a device tree file, like UEFI on most x86 hardware.
> But my understanding of device trees is severely limited, I might be allwrong.

Uhh... I'm so confused. If Linux doesn't use OF, then none of the code
enabled by fw_devlink=on should be executed.

The only thing that might remotely even execute is:
efifb_add_links() in drivers/firmware/efi/efi-init.c

If you want you can just do an early return 0; in that to see if it
makes a difference (unlikely).

Rob, Do you know what's going on with OLPC and DT?

>
>
> Anyway, the firmware source is here:
> http://dev.laptop.org/git/users/quozl/openfirmware/
>
> This file is the closest dt-analogous thing for the XO-1.5 I can find therein:
> cpu/x86/pc/olpc/via/devices.fth

That file is all gibberish to me.

>
> My machine runs the latest version:
> http://wiki.laptop.org/go/OLPC_Firmware_q3c17
>
> The XO-1.5 hardware specs are here:
> http://wiki.laptop.org/images/f/f0/CL1B_Hdwe_Design_Spec.pdf
> http://wiki.laptop.org/go/Hardware_specification_1.5
>
> Would the .config or dmesg help?

At this point, why not? When you do send them, please send them as
attachments and not inline.

Also, when you collect the dmesg logs, the following could help:
Enable the existing dev_dbg logs in these functions:
device_link_add()
device_links_check_suppliers()

And add the following log to fwnode_link_add():
+++ b/drivers/base/core.c
@@ -87,6 +87,8 @@ int fwnode_link_add(struct fwnode_handle *con,
struct fwnode_handle *sup)
goto out;
}

+ pr_info("Link fwnode %pfwP as a consumer of fwnode %pfwP\n", con, sup);
+
link->supplier = sup;
INIT_LIST_HEAD(&link->s_hook);
link->consumer = con;

Thanks,
Saravana

2021-09-08 23:02:18

by Rob Herring

[permalink] [raw]
Subject: Re: [Bisected Regression] OLPC XO-1.5: Internal drive and SD card (mmcblk*) gone since commit ea718c699055

On Tue, Sep 7, 2021 at 10:15 PM Saravana Kannan <[email protected]> wrote:
>
> On Tue, Sep 7, 2021 at 7:12 PM Andre Muller <[email protected]> wrote:
> >
> > On 08/09/2021 00.05, Saravana Kannan wrote:
> > > On Sun, Sep 5, 2021 at 1:15 AM Andre Muller <[email protected]> wrote:
> > >>
> > >> With linux-5.13 and linux-5.14, the internal drive and SD card reader are gone from the XO-1.5. I bisected the issue to come up with ea718c699055:
> > >>
> > >> # first bad commit: [ea718c699055c8566eb64432388a04974c43b2ea] Revert "Revert "driver core: Set fw_devlink=on by default""
> > >>
> > >> The /dev/mmcblk* nodes are not generated since this patch.
> > >>
> > >> Please find the output of lspsi -vv and lshw below.
> > >>
> > >> I will be happy to provide more info and/or test patches.
> > >
> > > Hi Andre,
> > >
> > > Can you point me to the dts file in upstream that corresponds to this system?
> > >
> > > Also, if you can give the output of:
> > > cat /sys/kernel/debug/devices_deferred
> >
> > Hi Saravana,
> >
> >
> > /sys/kernel/debug/devices_deferred is empty.
> > I used the last good commit b6f617.
>
> Sorry, I wanted that with the bad commit.
>
> >
> > The XO-1.5 has an x86 compatible VIA C7 processor.
> > It uses the VX855 chip for about all I/O tasks, including SDIO.
> > I am not aware of a device tree file for it.
> >
> > It is a bit of a strange beast, it uses OFW to initialize the hardware and provide a FORTH shell.
> > Which also is the boot manager, configured via FORTH scripts.
> >
> > From the linux side of the fence, dmesg's line 2 is:
> >
> > "OFW detected in memory, cif @ 0xff83ae68 (reserving top 8MB)"
> >
> > AIUI, this mechanism is used in lieu of a device tree file, like UEFI on most x86 hardware.
> > But my understanding of device trees is severely limited, I might be allwrong.
>
> Uhh... I'm so confused. If Linux doesn't use OF, then none of the code
> enabled by fw_devlink=on should be executed.

Linux does, but maybe not for memory (like UEFI on arm64).

> The only thing that might remotely even execute is:
> efifb_add_links() in drivers/firmware/efi/efi-init.c
>
> If you want you can just do an early return 0; in that to see if it
> makes a difference (unlikely).
>
> Rob, Do you know what's going on with OLPC and DT?

Not really. I have an XO-1 DT dump[1]. It's probably a similar looking
DT though. It's pretty ancient lacking anything we've invented for DT
in the last 10 years. There's not really much to it as about the only
phandle I see is for interrupts.

> > Anyway, the firmware source is here:
> > http://dev.laptop.org/git/users/quozl/openfirmware/
> >
> > This file is the closest dt-analogous thing for the XO-1.5 I can find therein:
> > cpu/x86/pc/olpc/via/devices.fth
>
> That file is all gibberish to me.

Running this on a booted system would help:

dtc -f -I fs -O dts /proc/device-tree > dump.dts

If you don't have dtc on the system, then you'll have to zip up
/proc/device-tree contents and run dtc elsewhere (or just post that).

> > My machine runs the latest version:
> > http://wiki.laptop.org/go/OLPC_Firmware_q3c17
> >
> > The XO-1.5 hardware specs are here:
> > http://wiki.laptop.org/images/f/f0/CL1B_Hdwe_Design_Spec.pdf
> > http://wiki.laptop.org/go/Hardware_specification_1.5
> >
> > Would the .config or dmesg help?
>
> At this point, why not? When you do send them, please send them as
> attachments and not inline.
>
> Also, when you collect the dmesg logs, the following could help:
> Enable the existing dev_dbg logs in these functions:
> device_link_add()
> device_links_check_suppliers()
>
> And add the following log to fwnode_link_add():
> +++ b/drivers/base/core.c
> @@ -87,6 +87,8 @@ int fwnode_link_add(struct fwnode_handle *con,
> struct fwnode_handle *sup)
> goto out;
> }
>
> + pr_info("Link fwnode %pfwP as a consumer of fwnode %pfwP\n", con, sup);
> +

Please add something like this that can be enabled easily with dynamic debug.

Rob

[1] https://pastebin.com/um0kAZym

2021-09-09 14:14:42

by Andre Muller

[permalink] [raw]
Subject: Re: [Bisected Regression] OLPC XO-1.5: Internal drive and SD card (mmcblk*) gone since commit ea718c699055

On 09/09/2021 00.31, Rob Herring wrote:
> On Tue, Sep 7, 2021 at 10:15 PM Saravana Kannan <[email protected]> wrote:
>>
>> On Tue, Sep 7, 2021 at 7:12 PM Andre Muller <[email protected]> wrote:
>>>
>>> On 08/09/2021 00.05, Saravana Kannan wrote:
>>>> On Sun, Sep 5, 2021 at 1:15 AM Andre Muller <[email protected]> wrote:
>>>>>
>>>>> With linux-5.13 and linux-5.14, the internal drive and SD card reader are gone from the XO-1.5. I bisected the issue to come up with ea718c699055:
>>>>>
>>>>> # first bad commit: [ea718c699055c8566eb64432388a04974c43b2ea] Revert "Revert "driver core: Set fw_devlink=on by default""
>>>>>
>>>>> The /dev/mmcblk* nodes are not generated since this patch.
>>>>>
>>>>> Please find the output of lspsi -vv and lshw below.
>>>>>
>>>>> I will be happy to provide more info and/or test patches.
>>>>
>>>> Hi Andre,
>>>>
>>>> Can you point me to the dts file in upstream that corresponds to this system?
>>>>
>>>> Also, if you can give the output of:
>>>> cat /sys/kernel/debug/devices_deferred
>>>
>>> Hi Saravana,
>>>
>>>
>>> /sys/kernel/debug/devices_deferred is empty.
>>> I used the last good commit b6f617.
>>
>> Sorry, I wanted that with the bad commit.

Uh-oh, my bad...

The bad case says
# cat devices_deferred
0000:00:0c.0

That's the SD Host controller.

>>
>>>
>>> The XO-1.5 has an x86 compatible VIA C7 processor.
>>> It uses the VX855 chip for about all I/O tasks, including SDIO.
>>> I am not aware of a device tree file for it.
>>>
>>> It is a bit of a strange beast, it uses OFW to initialize the hardware and provide a FORTH shell.
>>> Which also is the boot manager, configured via FORTH scripts.
>>>
>>> From the linux side of the fence, dmesg's line 2 is:
>>>
>>> "OFW detected in memory, cif @ 0xff83ae68 (reserving top 8MB)"
>>>
>>> AIUI, this mechanism is used in lieu of a device tree file, like UEFI on most x86 hardware.
>>> But my understanding of device trees is severely limited, I might be allwrong.
>>
>> Uhh... I'm so confused. If Linux doesn't use OF, then none of the code
>> enabled by fw_devlink=on should be executed.
>
> Linux does, but maybe not for memory (like UEFI on arm64).
>
>> The only thing that might remotely even execute is:
>> efifb_add_links() in drivers/firmware/efi/efi-init.c
>>
>> If you want you can just do an early return 0; in that to see if it
>> makes a difference (unlikely).
>>
>> Rob, Do you know what's going on with OLPC and DT?
>
> Not really. I have an XO-1 DT dump[1]. It's probably a similar looking
> DT though. It's pretty ancient lacking anything we've invented for DT
> in the last 10 years. There's not really much to it as about the only
> phandle I see is for interrupts.
>
>>> Anyway, the firmware source is here:
>>> http://dev.laptop.org/git/users/quozl/openfirmware/
>>>
>>> This file is the closest dt-analogous thing for the XO-1.5 I can find therein:
>>> cpu/x86/pc/olpc/via/devices.fth
>>
>> That file is all gibberish to me.
>
> Running this on a booted system would help:
>
> dtc -f -I fs -O dts /proc/device-tree > dump.dts

Ah, thanks. I never knew about the DT in there...
XO-1.5_dump.dts is attached.

>
> If you don't have dtc on the system, then you'll have to zip up
> /proc/device-tree contents and run dtc elsewhere (or just post that).
>
>>> My machine runs the latest version:
>>> http://wiki.laptop.org/go/OLPC_Firmware_q3c17
>>>
>>> The XO-1.5 hardware specs are here:
>>> http://wiki.laptop.org/images/f/f0/CL1B_Hdwe_Design_Spec.pdf
>>> http://wiki.laptop.org/go/Hardware_specification_1.5
>>>
>>> Would the .config or dmesg help?
>>
>> At this point, why not? When you do send them, please send them as
>> attachments and not inline.
>>
>> Also, when you collect the dmesg logs, the following could help:
>> Enable the existing dev_dbg logs in these functions:
>> device_link_add()
>> device_links_check_suppliers()
>>
>> And add the following log to fwnode_link_add():
>> +++ b/drivers/base/core.c
>> @@ -87,6 +87,8 @@ int fwnode_link_add(struct fwnode_handle *con,
>> struct fwnode_handle *sup)
>> goto out;
>> }
>>
>> + pr_info("Link fwnode %pfwP as a consumer of fwnode %pfwP\n", con, sup);
>> +
>

OK. The dmesg with debug info is attached as well (for the broken case).

Thanks to both of you,
Andre


> Please add something like this that can be enabled easily with dynamic debug.
>
> Rob
>
> [1] https://pastebin.com/um0kAZym
>


Attachments:
XO-1.5_dump.dts (17.93 kB)
config-XO-1.5-5.11+ (109.00 kB)
dmesg.debug.bad (97.49 kB)
Download all attachments

2021-09-09 15:21:41

by Rob Herring

[permalink] [raw]
Subject: Re: [Bisected Regression] OLPC XO-1.5: Internal drive and SD card (mmcblk*) gone since commit ea718c699055

On Thu, Sep 9, 2021 at 9:09 AM Andre Muller <[email protected]> wrote:
>
> On 09/09/2021 00.31, Rob Herring wrote:
> > On Tue, Sep 7, 2021 at 10:15 PM Saravana Kannan <[email protected]> wrote:
> >>
> >> On Tue, Sep 7, 2021 at 7:12 PM Andre Muller <[email protected]> wrote:
> >>>
> >>> On 08/09/2021 00.05, Saravana Kannan wrote:
> >>>> On Sun, Sep 5, 2021 at 1:15 AM Andre Muller <[email protected]> wrote:
> >>>>>
> >>>>> With linux-5.13 and linux-5.14, the internal drive and SD card reader are gone from the XO-1.5. I bisected the issue to come up with ea718c699055:
> >>>>>
> >>>>> # first bad commit: [ea718c699055c8566eb64432388a04974c43b2ea] Revert "Revert "driver core: Set fw_devlink=on by default""
> >>>>>
> >>>>> The /dev/mmcblk* nodes are not generated since this patch.
> >>>>>
> >>>>> Please find the output of lspsi -vv and lshw below.
> >>>>>
> >>>>> I will be happy to provide more info and/or test patches.
> >>>>
> >>>> Hi Andre,
> >>>>
> >>>> Can you point me to the dts file in upstream that corresponds to this system?
> >>>>
> >>>> Also, if you can give the output of:
> >>>> cat /sys/kernel/debug/devices_deferred
> >>>
> >>> Hi Saravana,
> >>>
> >>>
> >>> /sys/kernel/debug/devices_deferred is empty.
> >>> I used the last good commit b6f617.
> >>
> >> Sorry, I wanted that with the bad commit.
>
> Uh-oh, my bad...
>
> The bad case says
> # cat devices_deferred
> 0000:00:0c.0
>
> That's the SD Host controller.
>
> >>
> >>>
> >>> The XO-1.5 has an x86 compatible VIA C7 processor.
> >>> It uses the VX855 chip for about all I/O tasks, including SDIO.
> >>> I am not aware of a device tree file for it.
> >>>
> >>> It is a bit of a strange beast, it uses OFW to initialize the hardware and provide a FORTH shell.
> >>> Which also is the boot manager, configured via FORTH scripts.
> >>>
> >>> From the linux side of the fence, dmesg's line 2 is:
> >>>
> >>> "OFW detected in memory, cif @ 0xff83ae68 (reserving top 8MB)"
> >>>
> >>> AIUI, this mechanism is used in lieu of a device tree file, like UEFI on most x86 hardware.
> >>> But my understanding of device trees is severely limited, I might be allwrong.
> >>
> >> Uhh... I'm so confused. If Linux doesn't use OF, then none of the code
> >> enabled by fw_devlink=on should be executed.
> >
> > Linux does, but maybe not for memory (like UEFI on arm64).
> >
> >> The only thing that might remotely even execute is:
> >> efifb_add_links() in drivers/firmware/efi/efi-init.c
> >>
> >> If you want you can just do an early return 0; in that to see if it
> >> makes a difference (unlikely).
> >>
> >> Rob, Do you know what's going on with OLPC and DT?
> >
> > Not really. I have an XO-1 DT dump[1]. It's probably a similar looking
> > DT though. It's pretty ancient lacking anything we've invented for DT
> > in the last 10 years. There's not really much to it as about the only
> > phandle I see is for interrupts.
> >
> >>> Anyway, the firmware source is here:
> >>> http://dev.laptop.org/git/users/quozl/openfirmware/
> >>>
> >>> This file is the closest dt-analogous thing for the XO-1.5 I can find therein:
> >>> cpu/x86/pc/olpc/via/devices.fth
> >>
> >> That file is all gibberish to me.
> >
> > Running this on a booted system would help:
> >
> > dtc -f -I fs -O dts /proc/device-tree > dump.dts
>
> Ah, thanks. I never knew about the DT in there...
> XO-1.5_dump.dts is attached.
>
> >
> > If you don't have dtc on the system, then you'll have to zip up
> > /proc/device-tree contents and run dtc elsewhere (or just post that).
> >
> >>> My machine runs the latest version:
> >>> http://wiki.laptop.org/go/OLPC_Firmware_q3c17
> >>>
> >>> The XO-1.5 hardware specs are here:
> >>> http://wiki.laptop.org/images/f/f0/CL1B_Hdwe_Design_Spec.pdf
> >>> http://wiki.laptop.org/go/Hardware_specification_1.5
> >>>
> >>> Would the .config or dmesg help?
> >>
> >> At this point, why not? When you do send them, please send them as
> >> attachments and not inline.
> >>
> >> Also, when you collect the dmesg logs, the following could help:
> >> Enable the existing dev_dbg logs in these functions:
> >> device_link_add()
> >> device_links_check_suppliers()
> >>
> >> And add the following log to fwnode_link_add():
> >> +++ b/drivers/base/core.c
> >> @@ -87,6 +87,8 @@ int fwnode_link_add(struct fwnode_handle *con,
> >> struct fwnode_handle *sup)
> >> goto out;
> >> }
> >>
> >> + pr_info("Link fwnode %pfwP as a consumer of fwnode %pfwP\n", con, sup);
> >> +
> >
>
> OK. The dmesg with debug info is attached as well (for the broken case).

Humm, ACPI and DT together...

Looks to me like it's waiting for the wrong interrupt-parent. The log
says it is waiting for 'interrupt-controller@i20' which is the only
interrupt-controller found in the DT, but the parent is the PCI bridge
with whatever interrupt-map is pointing to. That's not clear as the
phandle (0x767a4) doesn't exist in the DT. I suppose the parent is
defined in ACPI?

If there's not an easy fix, just disable devlinks for x86. There's
only one other DT platform, ce4100, and I really doubt it is even used
at all.

Rob

2021-09-09 17:29:29

by Andre Muller

[permalink] [raw]
Subject: Re: [Bisected Regression] OLPC XO-1.5: Internal drive and SD card (mmcblk*) gone since commit ea718c699055

On 09/09/2021 17.14, Rob Herring wrote:
> On Thu, Sep 9, 2021 at 9:09 AM Andre Muller <[email protected]> wrote:
>>
>> On 09/09/2021 00.31, Rob Herring wrote:
>>> On Tue, Sep 7, 2021 at 10:15 PM Saravana Kannan <[email protected]> wrote:
>>>>
>>>> On Tue, Sep 7, 2021 at 7:12 PM Andre Muller <[email protected]> wrote:
>>>>>
>>>>> On 08/09/2021 00.05, Saravana Kannan wrote:
>>>>>> On Sun, Sep 5, 2021 at 1:15 AM Andre Muller <[email protected]> wrote:
>>>>>>>
>>>>>>> With linux-5.13 and linux-5.14, the internal drive and SD card reader are gone from the XO-1.5. I bisected the issue to come up with ea718c699055:
>>>>>>>
>>>>>>> # first bad commit: [ea718c699055c8566eb64432388a04974c43b2ea] Revert "Revert "driver core: Set fw_devlink=on by default""
>>>>>>>
>>>>>>> The /dev/mmcblk* nodes are not generated since this patch.
>>>>>>>
>>>>>>> Please find the output of lspsi -vv and lshw below.
>>>>>>>
>>>>>>> I will be happy to provide more info and/or test patches.
>>>>>>
>>>>>> Hi Andre,
>>>>>>
>>>>>> Can you point me to the dts file in upstream that corresponds to this system?
>>>>>>
>>>>>> Also, if you can give the output of:
>>>>>> cat /sys/kernel/debug/devices_deferred
>>>>>
>>>>> Hi Saravana,
>>>>>
>>>>>
>>>>> /sys/kernel/debug/devices_deferred is empty.
>>>>> I used the last good commit b6f617.
>>>>
>>>> Sorry, I wanted that with the bad commit.
>>
>> Uh-oh, my bad...
>>
>> The bad case says
>> # cat devices_deferred
>> 0000:00:0c.0
>>
>> That's the SD Host controller.
>>
>>>>
>>>>>
>>>>> The XO-1.5 has an x86 compatible VIA C7 processor.
>>>>> It uses the VX855 chip for about all I/O tasks, including SDIO.
>>>>> I am not aware of a device tree file for it.
>>>>>
>>>>> It is a bit of a strange beast, it uses OFW to initialize the hardware and provide a FORTH shell.
>>>>> Which also is the boot manager, configured via FORTH scripts.
>>>>>
>>>>> From the linux side of the fence, dmesg's line 2 is:
>>>>>
>>>>> "OFW detected in memory, cif @ 0xff83ae68 (reserving top 8MB)"
>>>>>
>>>>> AIUI, this mechanism is used in lieu of a device tree file, like UEFI on most x86 hardware.
>>>>> But my understanding of device trees is severely limited, I might be allwrong.
>>>>
>>>> Uhh... I'm so confused. If Linux doesn't use OF, then none of the code
>>>> enabled by fw_devlink=on should be executed.
>>>
>>> Linux does, but maybe not for memory (like UEFI on arm64).
>>>
>>>> The only thing that might remotely even execute is:
>>>> efifb_add_links() in drivers/firmware/efi/efi-init.c
>>>>
>>>> If you want you can just do an early return 0; in that to see if it
>>>> makes a difference (unlikely).
>>>>
>>>> Rob, Do you know what's going on with OLPC and DT?
>>>
>>> Not really. I have an XO-1 DT dump[1]. It's probably a similar looking
>>> DT though. It's pretty ancient lacking anything we've invented for DT
>>> in the last 10 years. There's not really much to it as about the only
>>> phandle I see is for interrupts.
>>>
>>>>> Anyway, the firmware source is here:
>>>>> http://dev.laptop.org/git/users/quozl/openfirmware/
>>>>>
>>>>> This file is the closest dt-analogous thing for the XO-1.5 I can find therein:
>>>>> cpu/x86/pc/olpc/via/devices.fth
>>>>
>>>> That file is all gibberish to me.
>>>
>>> Running this on a booted system would help:
>>>
>>> dtc -f -I fs -O dts /proc/device-tree > dump.dts
>>
>> Ah, thanks. I never knew about the DT in there...
>> XO-1.5_dump.dts is attached.
>>
>>>
>>> If you don't have dtc on the system, then you'll have to zip up
>>> /proc/device-tree contents and run dtc elsewhere (or just post that).
>>>
>>>>> My machine runs the latest version:
>>>>> http://wiki.laptop.org/go/OLPC_Firmware_q3c17
>>>>>
>>>>> The XO-1.5 hardware specs are here:
>>>>> http://wiki.laptop.org/images/f/f0/CL1B_Hdwe_Design_Spec.pdf
>>>>> http://wiki.laptop.org/go/Hardware_specification_1.5
>>>>>
>>>>> Would the .config or dmesg help?
>>>>
>>>> At this point, why not? When you do send them, please send them as
>>>> attachments and not inline.
>>>>
>>>> Also, when you collect the dmesg logs, the following could help:
>>>> Enable the existing dev_dbg logs in these functions:
>>>> device_link_add()
>>>> device_links_check_suppliers()
>>>>
>>>> And add the following log to fwnode_link_add():
>>>> +++ b/drivers/base/core.c
>>>> @@ -87,6 +87,8 @@ int fwnode_link_add(struct fwnode_handle *con,
>>>> struct fwnode_handle *sup)
>>>> goto out;
>>>> }
>>>>
>>>> + pr_info("Link fwnode %pfwP as a consumer of fwnode %pfwP\n", con, sup);
>>>> +
>>>
>>
>> OK. The dmesg with debug info is attached as well (for the broken case).
>
> Humm, ACPI and DT together...
>
> Looks to me like it's waiting for the wrong interrupt-parent. The log
> says it is waiting for 'interrupt-controller@i20' which is the only
> interrupt-controller found in the DT, but the parent is the PCI bridge
> with whatever interrupt-map is pointing to. That's not clear as the
> phandle (0x767a4) doesn't exist in the DT. I suppose the parent is
> defined in ACPI?

FWIW, I attached an acpidump of the XO-1.5.
Also I prepared a dmesg for the previous, working commit, with minimal noise for diff-ing.

Hope that helps,
Andre

>
> If there's not an easy fix, just disable devlinks for x86. There's
> only one other DT platform, ce4100, and I really doubt it is even used
> at all.
>
> Rob
>


Attachments:
acpidump-b (18.32 kB)
dmesg.debug.good (100.35 kB)
Download all attachments

2021-09-09 19:28:27

by Saravana Kannan

[permalink] [raw]
Subject: Re: [Bisected Regression] OLPC XO-1.5: Internal drive and SD card (mmcblk*) gone since commit ea718c699055

On Thu, Sep 9, 2021 at 8:15 AM Rob Herring <[email protected]> wrote:
>
> On Thu, Sep 9, 2021 at 9:09 AM Andre Muller <[email protected]> wrote:
> >
> > On 09/09/2021 00.31, Rob Herring wrote:
> > > On Tue, Sep 7, 2021 at 10:15 PM Saravana Kannan <[email protected]> wrote:
> > >>
> > >> On Tue, Sep 7, 2021 at 7:12 PM Andre Muller <[email protected]> wrote:
> > >>>
> > >>> On 08/09/2021 00.05, Saravana Kannan wrote:
> > >>>> On Sun, Sep 5, 2021 at 1:15 AM Andre Muller <[email protected]> wrote:
> > >>>>>
> > >>>>> With linux-5.13 and linux-5.14, the internal drive and SD card reader are gone from the XO-1.5. I bisected the issue to come up with ea718c699055:
> > >>>>>
> > >>>>> # first bad commit: [ea718c699055c8566eb64432388a04974c43b2ea] Revert "Revert "driver core: Set fw_devlink=on by default""
> > >>>>>
> > >>>>> The /dev/mmcblk* nodes are not generated since this patch.
> > >>>>>
> > >>>>> Please find the output of lspsi -vv and lshw below.
> > >>>>>
> > >>>>> I will be happy to provide more info and/or test patches.
> > >>>>
> > >>>> Hi Andre,
> > >>>>
> > >>>> Can you point me to the dts file in upstream that corresponds to this system?
> > >>>>
> > >>>> Also, if you can give the output of:
> > >>>> cat /sys/kernel/debug/devices_deferred
> > >>>
> > >>> Hi Saravana,
> > >>>
> > >>>
> > >>> /sys/kernel/debug/devices_deferred is empty.
> > >>> I used the last good commit b6f617.
> > >>
> > >> Sorry, I wanted that with the bad commit.
> >
> > Uh-oh, my bad...
> >
> > The bad case says
> > # cat devices_deferred
> > 0000:00:0c.0
> >
> > That's the SD Host controller.
> >
> > >>
> > >>>
> > >>> The XO-1.5 has an x86 compatible VIA C7 processor.
> > >>> It uses the VX855 chip for about all I/O tasks, including SDIO.
> > >>> I am not aware of a device tree file for it.
> > >>>
> > >>> It is a bit of a strange beast, it uses OFW to initialize the hardware and provide a FORTH shell.
> > >>> Which also is the boot manager, configured via FORTH scripts.
> > >>>
> > >>> From the linux side of the fence, dmesg's line 2 is:
> > >>>
> > >>> "OFW detected in memory, cif @ 0xff83ae68 (reserving top 8MB)"
> > >>>
> > >>> AIUI, this mechanism is used in lieu of a device tree file, like UEFI on most x86 hardware.
> > >>> But my understanding of device trees is severely limited, I might be allwrong.
> > >>
> > >> Uhh... I'm so confused. If Linux doesn't use OF, then none of the code
> > >> enabled by fw_devlink=on should be executed.
> > >
> > > Linux does, but maybe not for memory (like UEFI on arm64).
> > >
> > >> The only thing that might remotely even execute is:
> > >> efifb_add_links() in drivers/firmware/efi/efi-init.c
> > >>
> > >> If you want you can just do an early return 0; in that to see if it
> > >> makes a difference (unlikely).
> > >>
> > >> Rob, Do you know what's going on with OLPC and DT?
> > >
> > > Not really. I have an XO-1 DT dump[1]. It's probably a similar looking
> > > DT though. It's pretty ancient lacking anything we've invented for DT
> > > in the last 10 years. There's not really much to it as about the only
> > > phandle I see is for interrupts.
> > >
> > >>> Anyway, the firmware source is here:
> > >>> http://dev.laptop.org/git/users/quozl/openfirmware/
> > >>>
> > >>> This file is the closest dt-analogous thing for the XO-1.5 I can find therein:
> > >>> cpu/x86/pc/olpc/via/devices.fth
> > >>
> > >> That file is all gibberish to me.
> > >
> > > Running this on a booted system would help:
> > >
> > > dtc -f -I fs -O dts /proc/device-tree > dump.dts
> >
> > Ah, thanks. I never knew about the DT in there...
> > XO-1.5_dump.dts is attached.
> >
> > >
> > > If you don't have dtc on the system, then you'll have to zip up
> > > /proc/device-tree contents and run dtc elsewhere (or just post that).
> > >
> > >>> My machine runs the latest version:
> > >>> http://wiki.laptop.org/go/OLPC_Firmware_q3c17
> > >>>
> > >>> The XO-1.5 hardware specs are here:
> > >>> http://wiki.laptop.org/images/f/f0/CL1B_Hdwe_Design_Spec.pdf
> > >>> http://wiki.laptop.org/go/Hardware_specification_1.5
> > >>>
> > >>> Would the .config or dmesg help?
> > >>
> > >> At this point, why not? When you do send them, please send them as
> > >> attachments and not inline.
> > >>
> > >> Also, when you collect the dmesg logs, the following could help:
> > >> Enable the existing dev_dbg logs in these functions:
> > >> device_link_add()
> > >> device_links_check_suppliers()
> > >>
> > >> And add the following log to fwnode_link_add():
> > >> +++ b/drivers/base/core.c
> > >> @@ -87,6 +87,8 @@ int fwnode_link_add(struct fwnode_handle *con,
> > >> struct fwnode_handle *sup)
> > >> goto out;
> > >> }
> > >>
> > >> + pr_info("Link fwnode %pfwP as a consumer of fwnode %pfwP\n", con, sup);
> > >> +
> > >
> >
> > OK. The dmesg with debug info is attached as well (for the broken case).
>
> Humm, ACPI and DT together...
>
> Looks to me like it's waiting for the wrong interrupt-parent. The log
> says it is waiting for 'interrupt-controller@i20' which is the only
> interrupt-controller found in the DT, but the parent is the PCI bridge
> with whatever interrupt-map is pointing to. That's not clear as the
> phandle (0x767a4) doesn't exist in the DT. I suppose the parent is
> defined in ACPI?

After staring at it for a while, I realized that
interrupt-controller@i20 is indeed the right node. Looks like we need
to do endian conversion of the ".node" property in the interrupt
controller and it would match with 0x767a4.

> pci 0000:00:0c.0: probe deferral - wait for supplier interrupt-controller@i20
The SD controller is waiting forever on interrupt-controller@i20 to be
added as a device.

Rob,

My guess is that the fwnode value is not getting set for ISA devices
populated when isa@11 is added. Any idea how/where those child devices
are populated? I thought they'd be platform devices, but it doesn't
look like that's the case?

> If there's not an easy fix, just disable devlinks for x86. There's
> only one other DT platform, ce4100, and I really doubt it is even used
> at all.

I think the easy fix is to set the ISA device's fwnode when it's
added, but I can't tell how they are getting added. But yeah, if that
turns out to be hard, then I'd vote for disabling it for x86 too.

-Saravana

2021-09-09 23:10:58

by Rob Herring

[permalink] [raw]
Subject: Re: [Bisected Regression] OLPC XO-1.5: Internal drive and SD card (mmcblk*) gone since commit ea718c699055

On Thu, Sep 9, 2021 at 2:24 PM Saravana Kannan <[email protected]> wrote:
>
> On Thu, Sep 9, 2021 at 8:15 AM Rob Herring <[email protected]> wrote:
> >
> > On Thu, Sep 9, 2021 at 9:09 AM Andre Muller <[email protected]> wrote:
> > >
> > > On 09/09/2021 00.31, Rob Herring wrote:
> > > > On Tue, Sep 7, 2021 at 10:15 PM Saravana Kannan <[email protected]> wrote:
> > > >>
> > > >> On Tue, Sep 7, 2021 at 7:12 PM Andre Muller <[email protected]> wrote:
> > > >>>
> > > >>> On 08/09/2021 00.05, Saravana Kannan wrote:
> > > >>>> On Sun, Sep 5, 2021 at 1:15 AM Andre Muller <[email protected]> wrote:
> > > >>>>>
> > > >>>>> With linux-5.13 and linux-5.14, the internal drive and SD card reader are gone from the XO-1.5. I bisected the issue to come up with ea718c699055:
> > > >>>>>
> > > >>>>> # first bad commit: [ea718c699055c8566eb64432388a04974c43b2ea] Revert "Revert "driver core: Set fw_devlink=on by default""
> > > >>>>>
> > > >>>>> The /dev/mmcblk* nodes are not generated since this patch.
> > > >>>>>
> > > >>>>> Please find the output of lspsi -vv and lshw below.
> > > >>>>>
> > > >>>>> I will be happy to provide more info and/or test patches.
> > > >>>>
> > > >>>> Hi Andre,
> > > >>>>
> > > >>>> Can you point me to the dts file in upstream that corresponds to this system?
> > > >>>>
> > > >>>> Also, if you can give the output of:
> > > >>>> cat /sys/kernel/debug/devices_deferred
> > > >>>
> > > >>> Hi Saravana,
> > > >>>
> > > >>>
> > > >>> /sys/kernel/debug/devices_deferred is empty.
> > > >>> I used the last good commit b6f617.
> > > >>
> > > >> Sorry, I wanted that with the bad commit.
> > >
> > > Uh-oh, my bad...
> > >
> > > The bad case says
> > > # cat devices_deferred
> > > 0000:00:0c.0
> > >
> > > That's the SD Host controller.
> > >
> > > >>
> > > >>>
> > > >>> The XO-1.5 has an x86 compatible VIA C7 processor.
> > > >>> It uses the VX855 chip for about all I/O tasks, including SDIO.
> > > >>> I am not aware of a device tree file for it.
> > > >>>
> > > >>> It is a bit of a strange beast, it uses OFW to initialize the hardware and provide a FORTH shell.
> > > >>> Which also is the boot manager, configured via FORTH scripts.
> > > >>>
> > > >>> From the linux side of the fence, dmesg's line 2 is:
> > > >>>
> > > >>> "OFW detected in memory, cif @ 0xff83ae68 (reserving top 8MB)"
> > > >>>
> > > >>> AIUI, this mechanism is used in lieu of a device tree file, like UEFI on most x86 hardware.
> > > >>> But my understanding of device trees is severely limited, I might be allwrong.
> > > >>
> > > >> Uhh... I'm so confused. If Linux doesn't use OF, then none of the code
> > > >> enabled by fw_devlink=on should be executed.
> > > >
> > > > Linux does, but maybe not for memory (like UEFI on arm64).
> > > >
> > > >> The only thing that might remotely even execute is:
> > > >> efifb_add_links() in drivers/firmware/efi/efi-init.c
> > > >>
> > > >> If you want you can just do an early return 0; in that to see if it
> > > >> makes a difference (unlikely).
> > > >>
> > > >> Rob, Do you know what's going on with OLPC and DT?
> > > >
> > > > Not really. I have an XO-1 DT dump[1]. It's probably a similar looking
> > > > DT though. It's pretty ancient lacking anything we've invented for DT
> > > > in the last 10 years. There's not really much to it as about the only
> > > > phandle I see is for interrupts.
> > > >
> > > >>> Anyway, the firmware source is here:
> > > >>> http://dev.laptop.org/git/users/quozl/openfirmware/
> > > >>>
> > > >>> This file is the closest dt-analogous thing for the XO-1.5 I can find therein:
> > > >>> cpu/x86/pc/olpc/via/devices.fth
> > > >>
> > > >> That file is all gibberish to me.
> > > >
> > > > Running this on a booted system would help:
> > > >
> > > > dtc -f -I fs -O dts /proc/device-tree > dump.dts
> > >
> > > Ah, thanks. I never knew about the DT in there...
> > > XO-1.5_dump.dts is attached.
> > >
> > > >
> > > > If you don't have dtc on the system, then you'll have to zip up
> > > > /proc/device-tree contents and run dtc elsewhere (or just post that).
> > > >
> > > >>> My machine runs the latest version:
> > > >>> http://wiki.laptop.org/go/OLPC_Firmware_q3c17
> > > >>>
> > > >>> The XO-1.5 hardware specs are here:
> > > >>> http://wiki.laptop.org/images/f/f0/CL1B_Hdwe_Design_Spec.pdf
> > > >>> http://wiki.laptop.org/go/Hardware_specification_1.5
> > > >>>
> > > >>> Would the .config or dmesg help?
> > > >>
> > > >> At this point, why not? When you do send them, please send them as
> > > >> attachments and not inline.
> > > >>
> > > >> Also, when you collect the dmesg logs, the following could help:
> > > >> Enable the existing dev_dbg logs in these functions:
> > > >> device_link_add()
> > > >> device_links_check_suppliers()
> > > >>
> > > >> And add the following log to fwnode_link_add():
> > > >> +++ b/drivers/base/core.c
> > > >> @@ -87,6 +87,8 @@ int fwnode_link_add(struct fwnode_handle *con,
> > > >> struct fwnode_handle *sup)
> > > >> goto out;
> > > >> }
> > > >>
> > > >> + pr_info("Link fwnode %pfwP as a consumer of fwnode %pfwP\n", con, sup);
> > > >> +
> > > >
> > >
> > > OK. The dmesg with debug info is attached as well (for the broken case).
> >
> > Humm, ACPI and DT together...
> >
> > Looks to me like it's waiting for the wrong interrupt-parent. The log
> > says it is waiting for 'interrupt-controller@i20' which is the only
> > interrupt-controller found in the DT, but the parent is the PCI bridge
> > with whatever interrupt-map is pointing to. That's not clear as the
> > phandle (0x767a4) doesn't exist in the DT. I suppose the parent is
> > defined in ACPI?
>
> After staring at it for a while, I realized that
> interrupt-controller@i20 is indeed the right node. Looks like we need
> to do endian conversion of the ".node" property in the interrupt
> controller and it would match with 0x767a4.

Ah yes, I failed on doing the endian conversion.

> > pci 0000:00:0c.0: probe deferral - wait for supplier interrupt-controller@i20
> The SD controller is waiting forever on interrupt-controller@i20 to be
> added as a device.
>
> Rob,
>
> My guess is that the fwnode value is not getting set for ISA devices
> populated when isa@11 is added. Any idea how/where those child devices
> are populated? I thought they'd be platform devices, but it doesn't
> look like that's the case?

Sometimes they are. Sometimes there's no driver I think. I couldn't
figure out what code corresponds to this node in the kernel.

> > If there's not an easy fix, just disable devlinks for x86. There's
> > only one other DT platform, ce4100, and I really doubt it is even used
> > at all.
>
> I think the easy fix is to set the ISA device's fwnode when it's
> added, but I can't tell how they are getting added. But yeah, if that
> turns out to be hard, then I'd vote for disabling it for x86 too.

Just disable it.

Rob

2021-09-10 02:43:10

by Saravana Kannan

[permalink] [raw]
Subject: Re: [Bisected Regression] OLPC XO-1.5: Internal drive and SD card (mmcblk*) gone since commit ea718c699055

On Thu, Sep 9, 2021 at 4:10 PM Rob Herring <[email protected]> wrote:
>
> On Thu, Sep 9, 2021 at 2:24 PM Saravana Kannan <[email protected]> wrote:
> >
> > On Thu, Sep 9, 2021 at 8:15 AM Rob Herring <[email protected]> wrote:
> > >
> > > On Thu, Sep 9, 2021 at 9:09 AM Andre Muller <[email protected]> wrote:
> > > >
> > > > On 09/09/2021 00.31, Rob Herring wrote:
> > > > > On Tue, Sep 7, 2021 at 10:15 PM Saravana Kannan <[email protected]> wrote:
> > > > >>
> > > > >> On Tue, Sep 7, 2021 at 7:12 PM Andre Muller <[email protected]> wrote:
> > > > >>>
> > > > >>> On 08/09/2021 00.05, Saravana Kannan wrote:
> > > > >>>> On Sun, Sep 5, 2021 at 1:15 AM Andre Muller <[email protected]> wrote:
> > > > >>>>>
> > > > >>>>> With linux-5.13 and linux-5.14, the internal drive and SD card reader are gone from the XO-1.5. I bisected the issue to come up with ea718c699055:
> > > > >>>>>
> > > > >>>>> # first bad commit: [ea718c699055c8566eb64432388a04974c43b2ea] Revert "Revert "driver core: Set fw_devlink=on by default""
> > > > >>>>>
> > > > >>>>> The /dev/mmcblk* nodes are not generated since this patch.
> > > > >>>>>
> > > > >>>>> Please find the output of lspsi -vv and lshw below.
> > > > >>>>>
> > > > >>>>> I will be happy to provide more info and/or test patches.
> > > > >>>>
> > > > >>>> Hi Andre,
> > > > >>>>
> > > > >>>> Can you point me to the dts file in upstream that corresponds to this system?
> > > > >>>>
> > > > >>>> Also, if you can give the output of:
> > > > >>>> cat /sys/kernel/debug/devices_deferred
> > > > >>>
> > > > >>> Hi Saravana,
> > > > >>>
> > > > >>>
> > > > >>> /sys/kernel/debug/devices_deferred is empty.
> > > > >>> I used the last good commit b6f617.
> > > > >>
> > > > >> Sorry, I wanted that with the bad commit.
> > > >
> > > > Uh-oh, my bad...
> > > >
> > > > The bad case says
> > > > # cat devices_deferred
> > > > 0000:00:0c.0
> > > >
> > > > That's the SD Host controller.
> > > >
> > > > >>
> > > > >>>
> > > > >>> The XO-1.5 has an x86 compatible VIA C7 processor.
> > > > >>> It uses the VX855 chip for about all I/O tasks, including SDIO.
> > > > >>> I am not aware of a device tree file for it.
> > > > >>>
> > > > >>> It is a bit of a strange beast, it uses OFW to initialize the hardware and provide a FORTH shell.
> > > > >>> Which also is the boot manager, configured via FORTH scripts.
> > > > >>>
> > > > >>> From the linux side of the fence, dmesg's line 2 is:
> > > > >>>
> > > > >>> "OFW detected in memory, cif @ 0xff83ae68 (reserving top 8MB)"
> > > > >>>
> > > > >>> AIUI, this mechanism is used in lieu of a device tree file, like UEFI on most x86 hardware.
> > > > >>> But my understanding of device trees is severely limited, I might be allwrong.
> > > > >>
> > > > >> Uhh... I'm so confused. If Linux doesn't use OF, then none of the code
> > > > >> enabled by fw_devlink=on should be executed.
> > > > >
> > > > > Linux does, but maybe not for memory (like UEFI on arm64).
> > > > >
> > > > >> The only thing that might remotely even execute is:
> > > > >> efifb_add_links() in drivers/firmware/efi/efi-init.c
> > > > >>
> > > > >> If you want you can just do an early return 0; in that to see if it
> > > > >> makes a difference (unlikely).
> > > > >>
> > > > >> Rob, Do you know what's going on with OLPC and DT?
> > > > >
> > > > > Not really. I have an XO-1 DT dump[1]. It's probably a similar looking
> > > > > DT though. It's pretty ancient lacking anything we've invented for DT
> > > > > in the last 10 years. There's not really much to it as about the only
> > > > > phandle I see is for interrupts.
> > > > >
> > > > >>> Anyway, the firmware source is here:
> > > > >>> http://dev.laptop.org/git/users/quozl/openfirmware/
> > > > >>>
> > > > >>> This file is the closest dt-analogous thing for the XO-1.5 I can find therein:
> > > > >>> cpu/x86/pc/olpc/via/devices.fth
> > > > >>
> > > > >> That file is all gibberish to me.
> > > > >
> > > > > Running this on a booted system would help:
> > > > >
> > > > > dtc -f -I fs -O dts /proc/device-tree > dump.dts
> > > >
> > > > Ah, thanks. I never knew about the DT in there...
> > > > XO-1.5_dump.dts is attached.
> > > >
> > > > >
> > > > > If you don't have dtc on the system, then you'll have to zip up
> > > > > /proc/device-tree contents and run dtc elsewhere (or just post that).
> > > > >
> > > > >>> My machine runs the latest version:
> > > > >>> http://wiki.laptop.org/go/OLPC_Firmware_q3c17
> > > > >>>
> > > > >>> The XO-1.5 hardware specs are here:
> > > > >>> http://wiki.laptop.org/images/f/f0/CL1B_Hdwe_Design_Spec.pdf
> > > > >>> http://wiki.laptop.org/go/Hardware_specification_1.5
> > > > >>>
> > > > >>> Would the .config or dmesg help?
> > > > >>
> > > > >> At this point, why not? When you do send them, please send them as
> > > > >> attachments and not inline.
> > > > >>
> > > > >> Also, when you collect the dmesg logs, the following could help:
> > > > >> Enable the existing dev_dbg logs in these functions:
> > > > >> device_link_add()
> > > > >> device_links_check_suppliers()
> > > > >>
> > > > >> And add the following log to fwnode_link_add():
> > > > >> +++ b/drivers/base/core.c
> > > > >> @@ -87,6 +87,8 @@ int fwnode_link_add(struct fwnode_handle *con,
> > > > >> struct fwnode_handle *sup)
> > > > >> goto out;
> > > > >> }
> > > > >>
> > > > >> + pr_info("Link fwnode %pfwP as a consumer of fwnode %pfwP\n", con, sup);
> > > > >> +
> > > > >
> > > >
> > > > OK. The dmesg with debug info is attached as well (for the broken case).
> > >
> > > Humm, ACPI and DT together...
> > >
> > > Looks to me like it's waiting for the wrong interrupt-parent. The log
> > > says it is waiting for 'interrupt-controller@i20' which is the only
> > > interrupt-controller found in the DT, but the parent is the PCI bridge
> > > with whatever interrupt-map is pointing to. That's not clear as the
> > > phandle (0x767a4) doesn't exist in the DT. I suppose the parent is
> > > defined in ACPI?
> >
> > After staring at it for a while, I realized that
> > interrupt-controller@i20 is indeed the right node. Looks like we need
> > to do endian conversion of the ".node" property in the interrupt
> > controller and it would match with 0x767a4.
>
> Ah yes, I failed on doing the endian conversion.
>
> > > pci 0000:00:0c.0: probe deferral - wait for supplier interrupt-controller@i20
> > The SD controller is waiting forever on interrupt-controller@i20 to be
> > added as a device.
> >
> > Rob,
> >
> > My guess is that the fwnode value is not getting set for ISA devices
> > populated when isa@11 is added. Any idea how/where those child devices
> > are populated? I thought they'd be platform devices, but it doesn't
> > look like that's the case?
>
> Sometimes they are. Sometimes there's no driver I think. I couldn't
> figure out what code corresponds to this node in the kernel.
>
> > > If there's not an easy fix, just disable devlinks for x86. There's
> > > only one other DT platform, ce4100, and I really doubt it is even used
> > > at all.
> >
> > I think the easy fix is to set the ISA device's fwnode when it's
> > added, but I can't tell how they are getting added. But yeah, if that
> > turns out to be hard, then I'd vote for disabling it for x86 too.
>
> Just disable it.

Done
https://lore.kernel.org/lkml/[email protected]/

Andre, can you give it a shot please?

-Saravana