(apologies in advance for long post - I kept discovering more details as I was drafting this)
I think you might be onto something with the PCIe compatibility mode.
While testing the gpio buttons , I ran across some "pcie" references in the GPL source files. Values 21 and 22 apparently.
oem GPL sources - gpios summary
value = <45>;
module_id = <DEF_IFX_GPIO_MODULE_LED>;
value = <47>;
module_id = <DEF_IFX_GPIO_MODULE_LED>;
value = <36>;
module_id = <DEF_IFX_GPIO_MODULE_LED>;
value = <35>;
module_id = <DEF_IFX_GPIO_MODULE_LED>;
value = <33>;
module_id = <DEF_IFX_GPIO_MODULE_LED>;
value = <46>;
module_id = <DEF_IFX_GPIO_MODULE_LED>;
value = <1>;
module_id = <DEF_IFX_GPIO_MODULE_LED>;
value = <29>;
module_id = <DEF_IFX_GPIO_MODULE_LED>;
value = <30>;
module_id = <DEF_IFX_GPIO_MODULE_PIGLET>;
value = <11>;
module_id = <DEF_IFX_GPIO_MODULE_PIGLET>;
value = <12>;
module_id = <DEF_IFX_GPIO_MODULE_PIGLET>;
value = <15>;
module_id = <DEF_IFX_GPIO_MODULE_FPGA>;
value = <28>;
module_id = <DEF_IFX_GPIO_MODULE_FPGA>;
value = <20>;
module_id = <DEF_IFX_GPIO_MODULE_FPGA>;
value = <19>;
module_id = <DEF_IFX_GPIO_MODULE_FPGA>;
value = <8>;
module_id = <DEF_IFX_GPIO_MODULE_FPGA>;
value = <9>;
module_id = <DEF_IFX_GPIO_MODULE_FPGA>;
value = <7>;
module_id = <DEF_IFX_GPIO_MODULE_FPGA>;
value = <0>;
module_id = <DEF_IFX_GPIO_MODULE_TDMCHECK>;
value = <40>;
module_id = <DEF_IFX_GPIO_MODULE_TDMCHECK>;
value = <0>;
module_id = <DEF_IFX_GPIO_MODULE_PCMLINK>;
value = <25>;
module_id = <DEF_IFX_GPIO_MODULE_PCMLINK>;
value = <41>;
module_id = <DEF_IFX_GPIO_MODULE_PCMLINK>;
value = <40>;
module_id = <DEF_IFX_GPIO_MODULE_PCMLINK>;
value = <18>;
module_id = <DEF_IFX_GPIO_MODULE_SSC>;
value = <17>;
module_id = <DEF_IFX_GPIO_MODULE_SSC>;
value = <16>;
module_id = <DEF_IFX_GPIO_MODULE_SSC>;
value = <10>;
module_id = <DEF_IFX_GPIO_MODULE_SPI_FLASH>;
value = <13>;
module_id = <DEF_IFX_GPIO_MODULE_NAND>;
value = <24>;
module_id = <DEF_IFX_GPIO_MODULE_NAND>;
value = <49>;
module_id = <DEF_IFX_GPIO_MODULE_NAND>;
value = <48>;
module_id = <DEF_IFX_GPIO_MODULE_NAND>;
value = <23>;
module_id = <DEF_IFX_GPIO_MODULE_NAND>;
value = <14>;
module_id = <DEF_IFX_GPIO_MODULE_USB DEF_IFX_GPIO_MODULE_EARLY_REGISTER>;
value = <3>;
module_id = <DEF_IFX_GPIO_MODULE_EXTPHY_25MHZ_CLOCK>;
value = <32>;
module_id = <DEF_IFX_GPIO_MODULE_EXTPHY_RESET>;
value = <44>;
module_id = <DEF_IFX_GPIO_MODULE_EXTPHY_RESET>;
value = <39>;
module_id = <DEF_IFX_GPIO_MODULE_EXTPHY_INT>;
value = <42>;
module_id = <DEF_IFX_GPIO_MODULE_EXTPHY_MDIO>;
value = <43>;
module_id = <DEF_IFX_GPIO_MODULE_EXTPHY_MDIO>;
value = <21>;
module_id = <DEF_IFX_GPIO_MODULE_PCIE>;
value = <22>;
module_id = <DEF_IFX_GPIO_MODULE_PCIE>;
value = <5>;
module_id = <DEF_IFX_GPIO_MODULE_WLAN_OFFLOAD_WASP_RESET>;
value = <34>;
module_id = <DEF_IFX_GPIO_MODULE_WLAN_OFFLOAD_WASP_RESET>;
value = <31>;
module_id = <DEF_IFX_GPIO_MODULE_WLAN_OFFLOAD_SCRPN_UART>;
If it does need to run in compatibility mode , how does one do that?
In sources, there are references to piglet and ISDN , so I think I can safely ignore anything else with 'piglet' references.
In ifconfig output I found this "wlan@wasp"
I still have the device running on oem firmware, and I'm building ram images, and I have root access into oem firmware - so can get other details if you think they would shed any light - but not sure what else to be even looking for at this point..
Just found some explicit PCIe references in proc -
oem fw: cat proc/iomem and proc/ioports
cat /proc/iomem
00000000-0fffffff : System RAM
00002000-00626e5f : Kernel code
00626e60-008b7fff : Kernel data
01204000-01910000 : module memory
1c000000-1cffffff : PCIe0 Memory space
1c000000-1c0fffff : PCI Bus 0000:01
1c000000-1c001fff : 0000:01:00.0
1c000000-1c001fff : xhci_hcd
1e100c00-1e100cff : AVM Serial (ASC)
1e116000-1e11609f : mei_vr9
1f100000-1f1000a7 : pcmlink_tdm
cat /proc/ioports
1d800000-1d8fffff : PCIe0 I/O space
How can I identify what device(s) are behind these addresses? Anything to do with dect/voip I'm not worried about (and those don't have gpl drivers avaialble for anyway)
Heres the dmesg output from the latest ram image I have compiled.
openwrt initram image - dmesg output
[ 0.000000] Linux version 4.14.91 (wrt@wrt-pc) (gcc version 7.4.0 (OpenWrt GCC 7.4.0 r9025-88464cd158)) #0 SMP Sat Jan 12 19:05:40 2019
[ 0.000000] SoC: xRX200 rev 1.2
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00019556 (MIPS 34Kc)
[ 0.000000] MIPS: machine is AVM FRITZ!Box 7490
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 20000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Detected 1 available secondary CPU(s)
[ 0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000000000000-0x000000000fffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x000000000fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000000fffffff]
[ 0.000000] random: get_random_bytes called from start_kernel+0x8c/0x4a0 with crng_init=0
[ 0.000000] percpu: Embedded 14 pages/cpu @8120d000 s25936 r8192 d23216 u57344
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 65024
[ 0.000000] Kernel command line: console=ttyLTQ0,115200
[ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Writing ErrCtl register=0002c520
[ 0.000000] Readback ErrCtl register=0002c520
[ 0.000000] Memory: 247940K/262144K available (4936K kernel code, 187K rwdata, 1340K rodata, 5040K init, 228K bss, 14204K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] NR_IRQS: 256
[ 0.000000] Setting up vectored interrupts
[ 0.000000] Setting up IPI vectored interrupts
[ 0.000000] CPU Clock: 500MHz
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041786 ns
[ 0.000011] sched_clock: 32 bits at 250MHz, resolution 4ns, wraps every 8589934590ns
[ 0.007922] Calibrating delay loop... 332.54 BogoMIPS (lpj=665088)
[ 0.046011] pid_max: default: 32768 minimum: 301
[ 0.050940] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.057459] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.066885] Hierarchical SRCU implementation.
[ 0.072364] smp: Bringing up secondary CPUs ...
[ 0.077828] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[ 0.077844] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[ 0.077977] CPU1 revision is: 00019556 (MIPS 34Kc)
[ 0.109041] Synchronize counters for CPU 1: done.
[ 0.133381] smp: Brought up 1 node, 2 CPUs
[ 0.142414] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.152096] futex hash table entries: 512 (order: 2, 16384 bytes)
[ 0.158350] pinctrl core: initialized pinctrl subsystem
[ 0.165003] NET: Registered protocol family 16
[ 0.182064] pinctrl-xway 1e100b10.pinmux: Init done
[ 0.188548] dma-xway 1e104100.dma: Init done - hw rev: 7, ports: 7, channels: 28
[ 0.200703] dcdc-xrx200 1f106a00.dcdc: Core Voltage : 1016 mV
[ 0.426357] ifx_pcie_wait_phy_link_up timeout
[ 0.535465] random: fast init done
[ 0.646847] ifx_pcie_wait_phy_link_up timeout
[ 0.864077] ifx_pcie_wait_phy_link_up timeout
[ 1.081343] ifx_pcie_wait_phy_link_up timeout
[ 1.298569] ifx_pcie_wait_phy_link_up timeout
[ 1.302795] pcie_rc_initialize link up failed!!!!!
[ 1.333856] usbcore: registered new interface driver usbfs
[ 1.339688] usbcore: registered new interface driver hub
[ 1.345100] usbcore: registered new device driver usb
[ 1.353110] clocksource: Switched to clocksource MIPS
[ 1.360844] NET: Registered protocol family 2
[ 1.366170] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[ 1.373101] TCP bind hash table entries: 2048 (order: 2, 16384 bytes)
[ 1.379628] TCP: Hash tables configured (established 2048 bind 2048)
[ 1.386163] UDP hash table entries: 256 (order: 1, 8192 bytes)
[ 1.391974] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[ 1.398574] NET: Registered protocol family 1
[ 7.383442] gptu: totally 6 16-bit timers/counters
[ 7.388362] gptu: misc_register on minor 63
[ 7.392601] gptu: succeeded to request irq 126
[ 7.397034] gptu: succeeded to request irq 127
[ 7.401527] gptu: succeeded to request irq 128
[ 7.406061] gptu: succeeded to request irq 129
[ 7.410569] gptu: succeeded to request irq 130
[ 7.415092] gptu: succeeded to request irq 131
[ 7.419751] No VPEs reserved for AP/SP, not initialize VPE loader
[ 7.419751] Pass maxvpes= argument as kernel argument
[ 7.431150] No TCs reserved for AP/SP, not initializing RTLX.
[ 7.431150] Pass maxtcs= argument as kernel argument
[ 7.444157] Crashlog allocated RAM at address 0x3f00000
[ 7.449716] workingset: timestamp_bits=30 max_order=16 bucket_order=0
[ 7.468995] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 7.474798] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 7.491972] io scheduler noop registered
[ 7.495803] io scheduler deadline registered (default)
[ 7.505789] 1e100c00.serial: ttyLTQ0 at MMIO 0x1e100c00 (irq = 112, base_baud = 0) is a lantiq,asc
[ 7.514800] console [ttyLTQ0] enabled
[ 7.514800] console [ttyLTQ0] enabled
[ 7.522055] bootconsole [early0] disabled
[ 7.522055] bootconsole [early0] disabled
[ 7.531290] cacheinfo: Failed to find cpu0 device node
[ 7.535102] cacheinfo: Unable to detect cache hierarchy for CPU 0
[ 7.543000] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xdc
[ 7.547920] nand: Micron MT29F4G08ABADAWP
[ 7.551930] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[ 7.559627] Scanning device for bad blocks
[ 7.846324] 2 fixed-partitions partitions found on MTD device 14000000.nand
[ 7.851874] Creating 2 MTD partitions on "14000000.nand":
[ 7.857283] 0x000000000000-0x000000400000 : "kernel"
[ 7.864185] 0x000000400000-0x000008000000 : "ubi"
[ 7.872405] spi-lantiq-ssc 1e100800.spi: Lantiq SSC SPI controller (Rev 8, TXFS 8, RXFS 8, DMA 1)
[ 7.882381] m25p80 spi0.4: mx25l8005 (1024 Kbytes)
[ 7.885872] 3 fixed-partitions partitions found on MTD device spi0.4
[ 7.892139] Creating 3 MTD partitions on "spi0.4":
[ 7.896916] 0x000000000000-0x000000040000 : "urlader"
[ 7.903797] 0x000000040000-0x0000000a0000 : "tffs (1)"
[ 7.909420] 0x0000000a0000-0x000000100000 : "tffs (2)"
[ 7.918703] libphy: Fixed MDIO Bus: probed
[ 7.926454] wdt 1f8803f0.watchdog: Init done
[ 7.935164] NET: Registered protocol family 10
[ 7.941841] Segment Routing with IPv6
[ 7.944329] NET: Registered protocol family 17
[ 7.948647] 8021q: 802.1Q VLAN Support v1.8
[ 8.063930] libphy: lantiq,xrx200-mdio: probed
[ 8.187822] net-xrx200: invalid MAC, using random
[ 8.260192] Atheros 8035 ethernet 0:00: attached PHY driver [Atheros 8035 ethernet] (mii_bus:phy_addr=0:00, irq=POLL)
[ 8.340174] Atheros 8035 ethernet 0:01: attached PHY driver [Atheros 8035 ethernet] (mii_bus:phy_addr=0:01, irq=POLL)
[ 8.420581] Intel XWAY PHY11G (xRX v1.2 integrated) 0:11: attached PHY driver [Intel XWAY PHY11G (xRX v1.2 integrated)] (mii_bus:phy_addr=0:11, irq=POLL)
[ 8.504582] Intel XWAY PHY11G (xRX v1.2 integrated) 0:13: attached PHY driver [Intel XWAY PHY11G (xRX v1.2 integrated)] (mii_bus:phy_addr=0:13, irq=POLL)
[ 8.520001] UBI error: no valid UBI magic found insi[ 8.532203] Freeing unused kernel memory: 5040K
[ 8.535297] This architecture does not have kernel memory protection.
[ 8.562221] init: Console is alive
[ 8.564720] init: - watchdog -
[ 8.596375] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[ 8.612121] dwc2 1e101000.usb: 1e101000.usb supply vusb_d not found, using dummy regulator
[ 8.619175] dwc2 1e101000.usb: 1e101000.usb supply vusb_a not found, using dummy regulator
[ 8.627773] dwc2 1e101000.usb: dwc2_core_reset() HANG! Soft Reset GRSTCTL=80000001
[ 8.840453] dwc2 1e101000.usb: DWC OTG Controller
[ 8.843807] dwc2 1e101000.usb: new USB bus registered, assigned bus number 1
[ 8.850861] dwc2 1e101000.usb: irq 62, io mem 0x1e101000
[ 8.858074] hub 1-0:1.0: USB hub found
[ 8.860802] hub 1-0:1.0: 1 port detected
[ 8.865416] dwc2 1e106000.usb: 1e106000.usb supply vusb_d not found, using dummy regulator
[ 8.872865] dwc2 1e106000.usb: 1e106000.usb supply vusb_a not found, using dummy regulator
[ 8.881267] dwc2 1e106000.usb: dwc2_core_reset() HANG! Soft Reset GRSTCTL=80000001
[ 9.088307] dwc2 1e106000.usb: DWC OTG Controller
[ 9.091605] dwc2 1e106000.usb: new USB bus registered, assigned bus number 2
[ 9.098720] dwc2 1e106000.usb: irq 91, io mem 0x1e106000
[ 9.105498] hub 2-0:1.0: USB hub found
[ 9.107974] hub 2-0:1.0: 1 port detected
[ 9.114163] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[ 9.130807] init: - preinit -
[ 9.310147] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 9.336389] random: procd: uninitialized urandom read (4 bytes read)
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[ 11.368498] lantiq,xrx200-net 1e108000.eth eth0: port 4 got link
[ 11.373197] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 12.514089] procd: - early -
[ 12.515731] procd: - watchdog -
[ 13.119693] procd: - watchdog -
[ 13.122105] procd: - ubus -
[ 13.133797] random: ubusd: uninitialized urandom read (4 bytes read)
[ 13.174477] random: ubusd: uninitialized urandom read (4 bytes read)
[ 13.180285] random: ubusd: uninitialized urandom read (4 bytes read)
[ 13.187885] procd: - init -
Please press Enter to activate this console.
[ 13.416301] lantiq,xrx200-net 1e108000.eth eth0: port 4 lost link
[ 13.448949] kmodloader: loading kernel modules from /etc/modules.d/*
[ 13.457639] IFXOS, Version 1.5.19 (c) Copyright 2009, Lantiq Deutschland GmbH
[ 13.467872] NET: Registered protocol family 8
[ 13.470915] NET: Registered protocol family 20
[ 13.482980] PPP generic driver version 2.4.2
[ 13.493903] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 13.520218] Lantiq (VRX) DSL CPE MEI driver, version 1.5.17.6, (c) 2007-2015 Lantiq Beteiligungs-GmbH & Co. KG
[ 13.531753]
[ 13.531753]
[ 13.531753] Lantiq CPE API Driver version: DSL CPE API V4.17.18.6
[ 13.549447]
[ 13.549447] Predefined debug level: 3
[ 13.561098] Loading modules backported from Linux version v4.19.7-0-g61c68f2a2af0
[ 13.567238] Backport generated by backports.git v4.19.7-1-0-g148b072d
[ 13.576893] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 13.586362] Infineon Technologies DEU driver version 2.0.0
[ 13.593387] IFX DEU DES initialized (multiblock).
[ 13.598647] IFX DEU AES initialized (multiblock).
[ 13.602786] IFX DEU ARC4 initialized (multiblock).
[ 13.607165] IFX DEU SHA1 initialized.
[ 13.610812] IFX DEU MD5 initialized.
[ 13.614370] IFX DEU SHA1_HMAC initialized.
[ 13.618454] IFX DEU MD5_HMAC initialized.
[ 13.630959] nf_conntrack version 0.5.0 (4096 buckets, 16384 max)
[ 13.695593] NET: Registered protocol family 24
[ 13.717579] xt_time: kernel timezone is -0000
[ 13.816494] kmodloader: done loading kernel modules from /etc/modules.d/*
[ 15.048254] urandom_read: 5 callbacks suppressed
[ 15.048269] random: jshn: uninitialized urandom read (4 bytes read)
[ 16.165971] random: crng init done
[ 35.228806] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 35.252869] device eth0 entered promiscuous mode
[ 35.266149] br-lan: port 1(eth0.1) entered blocking state
[ 35.270288] br-lan: port 1(eth0.1) entered disabled state
[ 35.276485] device eth0.1 entered promiscuous mode
[ 35.287446] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[ 38.312360] lantiq,xrx200-net 1e108000.eth eth0: port 4 got link
[ 38.317392] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 38.336328] br-lan: port 1(eth0.1) entered blocking state
[ 38.340413] br-lan: port 1(eth0.1) entered forwarding state
[ 38.360246] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
BusyBox v1.30.0 () built-in shell (ash)
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -| || | | || || |
|_____|| |||||___||| |____|
|| W I R E L E S S F R E E D O M
OpenWrt SNAPSHOT, r9025-88464cd158
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
root@OpenWrt:/#
I just noticed several pcie timeout errors in amongst the output above...
[ 0.864077] ifx_pcie_wait_phy_link_up timeout
[ 1.081343] ifx_pcie_wait_phy_link_up timeout
[ 1.298569] ifx_pcie_wait_phy_link_up timeout
[ 1.302795] pcie_rc_initialize link up failed!!!!!
openwrt cat /proc/iomem and /proc/ioports
root@OpenWrt:/# cat /proc/iomem
14000000-15ffffff : /fpi@10000000/localbus@0/nand@1
1e100800-1e1008ff : /fpi@10000000/spi@e100800
1e100b10-1e100baf : /fpi@10000000/pinmux@e100b10
1e100c00-1e100fff : 1e100c00.serial
1e101000-1e101fff : /fpi@10000000/usb@e101000
1e104100-1e1048ff : /fpi@10000000/dma@e104100
1e105300-1e1053ff : /fpi@10000000/ebu@e105300
1e106000-1e106fff : /fpi@10000000/usb@e106000
1e108000-1e10afff : /fpi@10000000/eth@e108000
1e10b100-1e10b16f : /fpi@10000000/eth@e108000
1e10b1d8-1e10b207 : /fpi@10000000/eth@e108000
1e10b308-1e10b337 : /fpi@10000000/eth@e108000
1e116000-1e11609f : mei_cpe
1f101000-1f101fff : /sram@1f000000/eiu@101000
1f102000-1f102fff : /sram@1f000000/pmu@102000
1f103000-1f103fff : /sram@1f000000/cgu@103000
1f106a00-1f106bff : /sram@1f000000/dcdc@106a00
1f203020-1f203023 : /sram@1f000000/rcu@203000/gphy@20
1f203068-1f20306b : /sram@1f000000/rcu@203000/gphy@68
1f880200-1f880227 : /biu@1f800000/icu@80200
1f880228-1f88024f : /biu@1f800000/icu@80200
1f880250-1f880277 : /biu@1f800000/icu@80200
1f880278-1f88029f : /biu@1f800000/icu@80200
1f8802a0-1f8802c7 : /biu@1f800000/icu@80200
1f8803f0-1f8803ff : /biu@1f800000/watchdog@803f0
root@OpenWrt:/# cat /proc/ioports
root@OpenWrt:/#
any ideas what to try next?