X-ONU-SFPP (SFP+ XGSPON ONU Stick) 1¶
Specifications¶
| SoC | PRX126 @ 400 MHz - MIPS interAptiv 34Kc | Architecture 4 |
| NAND | 128 MB (1 Gbit) | WN25N01GV |
| RAM | 1 GB | RS256M32LD3D1LMZ |
| BOSA | SC/UPC or SC/APC - Tx: 1270 nm / Rx: 1577 nm | M02181 |
| EEPROM | M02181 | |
| UART | UART Rx: pin 7 / Tx: pin 2 - 115200-8-1-N |
OEM Firmware (PTXG)¶
| IP | 192.168.1.1 | |
| HTTP(S) | ||
| SSH | Shell credentials |
Architecture¶
MaxLinear PRX126 2¶
%%{ init: { 'flowchart': { 'htmlLabels': false, 'curve': 'stepBefore' } } }%%
flowchart LR
Z[" "] <-- Fiber --> A(BOSA)
B("DRIVER/<br/>LA<br/>(PMD)")
A --> B
B --> A
subgraph SOC
C("SERDES<br/>/CDR")
subgraph MAC
D("10G(E)PON<br/>PCS&MAC/<br/>TC") ~~~
E("10G-<br/>Ethernet<br/>PCS&MAC")
end
C <--> MAC
F("Network<br/>Processsor<br/>/Package<br/>Switch")
MAC <--> F
G("10G-<br/>Ethernet<br/>PCS&<br/>MAC")
F <--> G <--> H("SERDES<br/>/CDR")
I("XO/PLL") ~~~
J("Multi-Core Processor/Subsystem Controller")
end
B <--> C
Y[" "]
Y -- SFI/XFI --> H
H --> Y
J <-- I2C --> X[" "]
SOC ~~~ K("Crystal 40Mhz") ~~~ L("SLC NAND Flash") ~~~ M("LPDDR3")
classDef slateNode fill:#ffffff,stroke:#475569,stroke-width:2px,color:#1e293b
classDef slateHighlight fill:#f1f5f9,stroke:#475569,stroke-width:2px,color:#1e293b
classDef slateInterface fill:#334155,stroke:#1e293b,color:#ffffff,font-weight:bold
classDef ghost fill:transparent,stroke:transparent,color:transparent
style SOC fill:#f8fafc,stroke:#1e293b,stroke-width:2px,stroke-dasharray: 10 5
style MAC fill:#e2e8f0,stroke:#64748b,stroke-width:2px
class A,C,F,H,I,J,K,L,M slateNode
class B,D,E,G slateHighlight
class Z,Y,X ghost System Information¶
Boot log¶
ROM VER: 2.1.0
CFG 0d
B
DdrOk
U-Boot 2016.07-MXL-v-3.1.261 (Apr 10 2023 - 10:00:42 +0000), Build: prx126-eva-qspi-nand
interAptiv
cps cpu/ddr run in 400/400 Mhz
Watchdog enabled
DRAM: 256 MiB
NAND: device found, Manufacturer ID: 0xef, Chip ID: 0xaa
128 MiB
Bad block table found at page 65472, version 0x01
Bad block table found at page 65408, version 0x01
In: serial
Out: serial
Err: serial
Reset cause: POR RESET
Net: lan-0 config to 1G_XAUI_MODE, lan-1 config to 10G_KR_MODE, prx300-eth
run flash_flash to bring up the kernel
Hit enter to stop autoboot: 0
ubi0: attaching mtd1
ubi0: scanning is finished
ubi0: attached mtd1 (name "mtd=6", size 108 MiB)
ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
ubi0: good PEBs: 859, bad PEBs: 5, corrupted PEBs: 0
ubi0: user volume: 8, internal volumes: 1, max. volumes count: 128
ubi0: max/mean erase counter: 7/4, WL threshold: 4096, image sequence number: 0
ubi0: available PEBs: 256, total reserved PEBs: 603, PEBs reserved for bad PEB handling: 15
Remove UBI volume rootfs_data (id 6)
Committed image: A
ubi0: detaching mtd1
ubi0: mtd1 is detached
ubi0: attaching mtd1
ubi0: scanning is finished
ubi0: attached mtd1 (name "mtd=6", size 108 MiB)
ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
ubi0: good PEBs: 859, bad PEBs: 5, corrupted PEBs: 0
ubi0: user volume: 7, internal volumes: 1, max. volumes count: 128
ubi0: max/mean erase counter: 7/4, WL threshold: 4096, image sequence number: 0
ubi0: available PEBs: 521, total reserved PEBs: 338, PEBs reserved for bad PEB handling: 15
Read 0 bytes from volume bootcoreA to a0400000
No size specified -> Using max size (5586944)
Read 0 bytes from volume kernelA to 82000000
No size specified -> Using max size (2285568)
## Booting kernel from Legacy Image at 82000000 ...
Image Name: PON_1.18.1
Created: 2023-10-13 2:12:27 UTC
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 2274512 Bytes = 2.2 MiB
Load Address: a0020000
Entry Point: a0020000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
[ 0.000000] Linux version 4.9.308+ (flaming.he@ptrd01) (gcc version 8.3.0 (OpenWrt GCC 8.3.0 v19.07.8_maxlinear) ) #0 SMP Wed Mar 15 17:03:01 UTC 2023
[ 0.000000] SoC: PRX300 rev 1.1
[ 0.000000] CPU0 revision is: 0001a120 (MIPS interAptiv (multi))
[ 0.000000] Enhanced Virtual Addressing (EVA 1GB) activated
[ 0.000000] MIPS: machine is PRX126-SFP-PON
[ 0.000000] Coherence Manager IOCU detected
[ 0.000000] Hardware DMA cache coherency disabled
[ 0.000000] earlycon: lantiq0 at MMIO 0x16380000 (options '')
[ 0.000000] bootconsole [lantiq0] enabled
[ 0.000000] User-defined physical RAM map:
[ 0.000000] memory: 40000000 @ 20000000 (usable)
[ 0.000000] Reserved memory: created CMA memory pool at 0x2d000000, size 48 MiB
[ 0.000000] OF: reserved mem: initialized node linux,cma@0x2D000000, compatible id shared-dma-pool
[ 0.000000] Reserved memory: created CMA memory pool at 0x40000000, size 512 MiB
[ 0.000000] OF: reserved mem: initialized node bm_pool@40000000, compatible id shared-dma-pool
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 40000000 @ 20000000 (usable)
[ 0.000000] memory: 00007f83 @ 20762630 (reserved)
[ 0.000000] memory: 22000000 @ 3e000000 (reserved)
[ 0.000000] memory: 03000000 @ 2d000000 (reserved)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] SMPCMP: CPU0: cmp_smp_setup
[ 0.000000] VPE topology {2,2} total 4
[ 0.000000] Detected 3 available secondary CPU(s)
[ 0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[ 0.000000] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000020000000-0x000000002fffffff]
[ 0.000000] Normal [mem 0x0000000030000000-0x000000005fffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000020000000-0x000000005fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000020000000-0x000000005fffffff]
[ 0.000000] percpu: Embedded 12 pages/cpu s17968 r8192 d22992 u49152
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260096
[ 0.000000] Kernel command line: ubi.mtd=system_sw,2048 rootfsname=rootfsA rootfstype=squashfs ip=192.168.1.1:192.168.1.2:192.162.1.1:255.255.255.0::eth0:on earlycon=lantiq,0x16380000 console=ttyLTQ0,115200 ethaddr=00:E0:92:00:01:40 machtype=PRX126_SFP_EVA_PON mtdparts=nand.0:1m(uboot),256k(ubootconfigA),256k(ubootconfigB),256k(gphyfirmware),1m(calibration),16m(bootcore),108m(system_sw),-(res) cpuclk=400000000 rst_cause=POR_RESET mem=1024M@512M
[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Writing ErrCtl register=00000000
[ 0.000000] Readback ErrCtl register=00000000
[ 0.000000] Memory: 423928K/1048576K available (5507K kernel code, 295K rwdata, 1384K rodata, 1308K init, 468K bss, 51208K reserved, 573440K cma-reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] NR_IRQS:527
[ 0.000000] EIC is off
[ 0.000000] VINT is on
[ 0.000000] CPU Clock: 400000000Hz mips_hpt_frequency 200000000Hz
[ 0.000000] clocksource: GIC: mask: 0xffffffffffffffff max_cycles: 0x5c4093a7d1, max_idle_ns: 440795210635 ns
[ 0.000017] sched_clock: 64 bits at 400MHz, resolution 2ns, wraps every 4398046511103ns
[ 0.008519] Calibrating delay loop... 265.98 BogoMIPS (lpj=531968)
[ 0.045342] pid_max: default: 32768 minimum: 301
[ 0.050392] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.056577] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.065401] CCA is coherent, multi-core is fine
[ 0.080022] Per DT Bootup LINUX not run on CPU 1
[ 0.083304] Please retry with MAX_CPUS !!!
[ 0.087263] cpu 1 is not available for Linux
[ 1.114412] CPU1: failed to start
[ 1.117151] Per DT Bootup LINUX not run on CPU 2
[ 1.120904] Please retry with MAX_CPUS !!!
[ 1.124950] cpu 2 is not available for Linux
[ 2.144036] CPU2: failed to start
[ 2.146785] Per DT Bootup LINUX not run on CPU 3
[ 2.150528] Please retry with MAX_CPUS !!!
[ 2.154577] cpu 3 is not available for Linux
[ 3.173658] CPU3: failed to start
[ 3.175531] Brought up 1 CPUs
[ 3.198196] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 3.206615] futex hash table entries: 1024 (order: 3, 32768 bytes)
[ 3.269326] pinctrl core: initialized pinctrl subsystem
[ 3.275646] NET: Registered protocol family 16
[ 3.284733] intel-pinctrl 16310000.pinctrl: pinbank id: 0, reg: 0xb6310000, pinbase: 0, pin number: 32, pinmap: 0xffffffff
[ 3.294940] intel-pinctrl 16310000.pinctrl: Total 27 groups, 17 functions
[ 3.301428] intel-pinctrl 16310000.pinctrl: gpiochip membase: 0xb6300000
[ 3.326709] Lantiq MIPSInterAptiv MPS driver, version 1.0.0.0, (c) 2006-2013 Lantiq Deutschland GmbH
[ 3.335334] MPS: major Id 253
[ 3.340722] dma0-grx500 16e00000.dma: base address b6e00000 chained_irq 34 irq_base 57
[ 3.347312] dma0-grx500 16e00000.dma: Init done - hw rev: A, ports: 4, channels: 16
[ 3.355434] dma-grx500 18200000.dma: dma1tx base address b8200000 chained_irq 38 irq_base 73
[ 3.378701] dma-grx500 18200000.dma: Init done - rev: 30, ports: 1, channels: 17
[ 3.385295] dma-grx500 18300000.dma: dma1rx base address b8300000 chained_irq 39 irq_base 90
[ 3.398006] dma-grx500 18300000.dma: Init done - rev: 30, ports: 1, channels: 8
[ 3.404206] dma-grx500 18500000.dma: dma2tx base address b8500000 chained_irq 40 irq_base 98
[ 3.416641] dma-grx500 18500000.dma: Init done - rev: 30, ports: 1, channels: 2
[ 3.422788] dma-grx500 18600000.dma: dma2rx base address b8600000 chained_irq 41 irq_base 100
[ 3.435653] dma-grx500 18600000.dma: Init done - rev: 30, ports: 1, channels: 8
[ 3.445114] [PP_DEV]:init_clocks:184: enabling pp clock 'ppv4'
[ 3.449611] [PP_DEV]:init_clocks:184: enabling pp clock 'freq'
[ 3.458388] [PP_QOS_UTILS]:qos_init_wred_ports:4603: Init QoS 128 ports
[ 3.463593] [PP_QOS_UTILS]:qos_init_wred_queues:4614: Init QoS 256 queues
[ 3.524670] prx300-cqm prx300-cqm.1: assigned reserved memory node bm_pool@40000000
[ 3.616558] 0x80000000 0x1120000 0x400
[ 3.618860] 0x80000000 0x1120000
[ 3.699933] 0x81120000 0xfa0000 0x2800
[ 3.702234] 0x81120000 0xfa0000
[ 4.919702] 0x820c0000 0xf7f0000 0x400
[ 4.922078] 0x820c0000 0xf7f0000
[ 6.045235] 0x918b0000 0xe4c0000 0x2800
[ 6.047699] 0x918b0000 0xe4c0000
[ 6.071361] prx300-cqm prx300-cqm.1: fsqm init successfully, free buffers 7167
[ 6.077630] Load spreader init successfully
[ 6.081723] prx300-cqm prx300-cqm.1: CBM: Init Done !!
[ 6.086774] pps_core: LinuxPPS API ver. 1 registered
[ 6.091404] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 6.100559] PTP clock support registered
[ 6.108446] clocksource: Switched to clocksource GIC
[ 6.115197] NET: Registered protocol family 2
[ 6.118520] IP idents hash table entries: 16384 (order: 5, 131072 bytes)
[ 6.127706] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[ 6.133689] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[ 6.140076] TCP: Hash tables configured (established 8192 bind 8192)
[ 6.146330] UDP hash table entries: 512 (order: 2, 16384 bytes)
[ 6.152096] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[ 6.158762] NET: Registered protocol family 1
[ 6.170183] No memory allocated for crashlog
[ 6.175740] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[ 6.193182] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 6.197638] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 6.232732] io scheduler noop registered
[ 6.235206] io scheduler deadline registered (default)
[ 6.241896] platform 1a800000.cb0phy: PHY(0:1) clock frequency set to 156250000 Success!
[ 6.252024] 16380000.serial: ttyLTQ0 at MMIO 0x16380000 (irq = 25, base_baud = 0) is a lantiq,asc
[ 6.269033] console [ttyLTQ0] enabled
[ 6.269033] console [ttyLTQ0] enabled
[ 6.274910] bootconsole [lantiq0] disabled
[ 6.274910] bootconsole [lantiq0] disabled
[ 6.283697] 163c0000.serial: ttyLTQ1 at MMIO 0x163c0000 (irq = 28, base_baud = 0) is a lantiq,asc
[ 6.296806] brd: module loaded
[ 6.299443] Gluebi: Found kernel commandline option 'rootfsname=rootfsA'
[ 6.308826] Lantiq SoC SPI controller rev 9 (TXFS 32, RXFS 32, DMA 1)
[ 6.314813] cadence-qspi 19300000.qspi: missing lantiq,qspi-physize; default to 128 MB
[ 6.321789] cadence-qspi 19300000.qspi: DMA NOT enabled
[ 6.328859] cadence-qspi 19300000.qspi: master is unqueued, this is deprecated
[ 6.337777] nand: device found, Manufacturer ID: 0xef, Chip ID: 0xaa
[ 6.342735] nand: Winbond SPI NAND 1Gbit 3,3v WN25N01GV
[ 6.347924] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[ 6.356656] Bad block table found at page 65472, version 0x01
[ 6.362193] Bad block table found at page 65408, version 0x01
[ 6.367957] nand_read_bbt: bad block at 0x000005b40000
[ 6.372054] nand_read_bbt: bad block at 0x000005b60000
[ 6.377161] nand_read_bbt: bad block at 0x000005b80000
[ 6.382419] 8 cmdlinepart partitions found on MTD device nand.0
[ 6.388196] Creating 8 MTD partitions on "nand.0":
[ 6.392975] 0x000000000000-0x000000100000 : "uboot"
[ 6.400026] 0x000000100000-0x000000140000 : "ubootconfigA"
[ 6.406870] 0x000000140000-0x000000180000 : "ubootconfigB"
[ 6.413781] 0x000000180000-0x0000001c0000 : "gphyfirmware"
[ 6.420955] 0x0000001c0000-0x0000002c0000 : "calibration"
[ 6.427607] 0x0000002c0000-0x0000012c0000 : "bootcore"
[ 6.434376] 0x0000012c0000-0x000007ec0000 : "system_sw"
[ 6.442213] 0x000007ec0000-0x000008000000 : "res"
[ 6.448538] cadence-qspi 19300000.qspi: Cadence QSPI controller driver
[ 6.453846] MACsec IEEE 802.1AE
[ 6.458518] intel_xpcs 1a842000.lan_xpcs1: XPCS probe start
[ 6.504193] intel_xpcs 1a842000.lan_xpcs1: XPCS probe success
[ 6.526792] dp manager dummy init done
[ 6.530348] ltq_thermal 16000000.ssx4:ts: ltq_thermal_probe: is done
[ 6.536020] grx500wdt 12000000.watchdog: [grx500wdt_probe]:[445] cpu_clk=400000000
[ 6.543064] grx500wdt 12000000.watchdog: [grx500wdt_probe]WDT reset is Bit31, RCU_IAP_WDT_RST_STAT=0x8030408
[ 6.552832] grx500wdt 12000000.watchdog: [grx500wdt_probe]Not WDT reset.
[ 6.559534] grx500wdt 12000000.watchdog: [grx500wdt_probe]:[554] grx500_wdt = 70824178
[ 6.567815] grx500wdt 12000000.watchdog: H/w Watchdog Timer: (max 10) (nowayout= 0)
[ 6.576282] cpu cpu0: dev_pm_opp_of_get_sharing_cpus: Couldn't find opp node.
[ 6.586022] NET: Registered protocol family 10
[ 6.596900] NET: Registered protocol family 17
[ 6.599965] 8021q: 802.1Q VLAN Support v1.8
[ 6.615064] ubi0: attaching mtd6
[ 8.284182] ubi0: scanning is finished
[ 8.316393] ubi0: attached mtd6 (name "system_sw", size 108 MiB)
[ 8.321012] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[ 8.327848] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[ 8.334624] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[ 8.341565] ubi0: good PEBs: 861, bad PEBs: 3, corrupted PEBs: 0
[ 8.347554] ubi0: user volume: 7, internal volumes: 1, max. volumes count: 128
[ 8.354762] ubi0: max/mean erase counter: 3/1, WL threshold: 4096, image sequence number: 0
[ 8.363095] ubi0: available PEBs: 381, total reserved PEBs: 480, PEBs reserved for bad PEB handling: 17
[ 8.373580] ubi0: background thread "ubi_bgt0d" started, PID 430
[ 8.393910] Gluebi: mtd 'rootfsA' set to be root filesystem
[ 8.398185] rootdev: 0x01f0000d, mtd block: 0000001f, mtd index: 0000000d
[ 8.428888] VFS: Mounted root (squashfs filesystem) readonly on device 31:13.
[ 8.440880] Freeing unused kernel: 1308k freed
[ 8.443872] This architecture does not have kernel memory protection.
[ 9.247135] init: Console is alive
[ 9.249724] init: - watchdog -
[ 10.630188] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[ 10.686119] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[ 10.696037] init: - preinit -
[ 12.533074] random: jshn: uninitialized urandom read (4 bytes read)
[ 12.719284] random: jshn: uninitialized urandom read (4 bytes read)
ls: /lib/modules/4.9.308+/ltq_atm*: No such file or directory
[ 12.805004] random: jshn: 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
[ 16.320128] urandom_read: 2 callbacks suppressed
[ 16.320146] random: procd: uninitialized urandom read (4 bytes read)
[ 16.336782] UBIFS (ubi0:6): background thread "ubifs_bgt0_6" started, PID 543
[ 16.461458] UBIFS (ubi0:6): recovery needed
[ 16.776779] UBIFS (ubi0:6): recovery completed
[ 16.779997] UBIFS (ubi0:6): UBIFS: mounted UBI device 0, volume 6, name "rootfs_data"
[ 16.787655] UBIFS (ubi0:6): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[ 16.797526] UBIFS (ubi0:6): FS size: 32378880 bytes (30 MiB, 255 LEBs), journal size 1650688 bytes (1 MiB, 13 LEBs)
[ 16.807934] UBIFS (ubi0:6): reserved for root: 1529334 bytes (1493 KiB)
[ 16.814542] UBIFS (ubi0:6): media format: w4/r0 (latest is w4/r0), UUID 04D40829-F77B-4A2D-91A7-2017F0613D03, small LPT model
[ 16.843945] mount_root: switching to ubifs overlay
[ 16.899008] urandom-seed: Seeding with /etc/urandom.seed
[ 17.069783] procd: - early -
[ 17.071364] procd: - watchdog -
[ 17.802160] procd: - watchdog -
[ 17.804594] procd: - ubus -
[ 17.896633] random: ubusd: uninitialized urandom read (4 bytes read)
[ 17.902224] random: ubusd: uninitialized urandom read (4 bytes read)
[ 17.908056] random: ubusd: uninitialized urandom read (4 bytes read)
[ 17.915910] procd: - init -
Please press Enter to activate this console.
[ 18.773960] kmodloader: loading kernel modules from /etc/modules.d/*
[ 18.817797] [PP_NAD]:__net_adapter_init:58: start: 1
[ 18.904141] [PP_QOS_FW]:do_load_firmware:318: FW [v 1.16.0] is running soc rev 1)
[ 18.911091] [PP_DEV]:pp_dev_late_init:676: PP is ready!
[ 18.975045] dp_pre_init done
[ 19.123825] mod_sfp_i2c-ACA_FW: ACA FW Hdr V2: version=0x0018, SOC=0x1 (soc_step_B), Chip=0x2 (chip_falcon), Built=0x0 (built_rel), FW=0x1 (fw_i2c)
[ 19.135720] pon-sfp-i2c 14050000.sfp_i2c: FW interface version 0x04000000
[ 19.309221] i2c /dev entries driver
[ 19.319098] i2c-gpio i2c-gpio: using pins 507 (SDA) and 506 (SCL)
[ 19.329657] GACT probability on
[ 19.334082] Mirror/redirect action on
[ 19.355910] u32 classifier
[ 19.357441] input device check on
[ 19.360854] Actions configured
[ 19.447704] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[ 19.649955] xt_time: kernel timezone is -0000
[ 19.716836] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 19.744115] Property intel,extra-subif for if eth0_0 4
[ 19.767134] xrx500_of_iface: rx csum offload is enabled !
[ 19.795048] Lantiq ethernet driver for XRX500 init.
[ 19.952930] kmodloader: done loading kernel modules from /etc/modules.d/*
MIPS: set unaligned_action to 'SHOW'
procfs 3¶
ubi.mtd=system_sw,2048 rootfsname=rootfsA rootfstype=squashfs ip=192.168.1.1:192.168.1.2:192.162.1.1:255.255.255.0::eth0:on earlycon=lantiq,0x16380000 console=ttyLTQ0,115200 ethaddr=00:E0:92:00:01:40 machtype=PRX126_SFP_PON mtdparts=nand.0:1m(uboot),256k(ubootconfigA),256k(ubootconfigB),256k(gphyfirmware),1m(calibration),16m(bootcore),108m(system_sw),-(res) cpuclk=400000000 rst_cause=POR_RESET mem=1024M@512M
system type : PRX300 rev 1.2
machine : PRX126-SFP-PON
processor : 0
cpu model : MIPS interAptiv (multi) V2.0
BogoMIPS : 265.98
wait instruction : yes
microsecond timers : yes
tlb_entries : 32
extra interrupt vector : yes
hardware watchpoint : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa : mips1 mips2 mips32r1 mips32r2
ASEs implemented : dsp mt eva
Options implemented : tlb tlbinv segments 4kex 4k_cache prefetch mcheck ejtag llsc pindexed_dcache userlocal vint perf_cntr_intr_bit cdmm nan_legacy nan_2008 ebase_wg perf
shadow register sets : 1
kscratch registers : 0
package : 0
core : 0
VPE : 0
VCED exceptions : not available
VCEI exceptions : not available
MemTotal: 998676 kB
MemFree: 428680 kB
MemAvailable: 410300 kB
Buffers: 3760 kB
Cached: 12292 kB
SwapCached: 0 kB
Active: 9468 kB
Inactive: 8720 kB
Active(anon): 2136 kB
Inactive(anon): 0 kB
Active(file): 7332 kB
Inactive(file): 8720 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 2136 kB
Mapped: 5316 kB
Shmem: 0 kB
Slab: 9284 kB
SReclaimable: 2116 kB
SUnreclaim: 7168 kB
KernelStack: 760 kB
PageTables: 220 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 499336 kB
Committed_AS: 6296 kB
VmallocTotal: 524280 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
CmaTotal: 573440 kB
CmaFree: 46404 kB
dev: size erasesize name
mtd0: 00100000 00020000 "uboot"
mtd1: 00040000 00020000 "ubootconfigA"
mtd2: 00040000 00020000 "ubootconfigB"
mtd3: 00040000 00020000 "gphyfirmware"
mtd4: 00100000 00020000 "calibration"
mtd5: 01000000 00020000 "bootcore"
mtd6: 06c00000 00020000 "system_sw"
mtd7: 00140000 00020000 "res"
mtd8: 0022e000 0001f000 "kernelA"
mtd9: 004d8000 0001f000 "rootfsA"
mtd10: 00535000 0001f000 "bootcoreA"
mtd11: 02017000 0001f000 "rootfs_data"
mtd12: 0022e000 0001f000 "kernelB"
mtd13: 00535000 0001f000 "bootcoreB"
mtd14: 004d8000 0001f000 "rootfsB"
EEPROM¶
The Digital Diagnostic Monitor Interface (DDMI)5 is handled by the MACOM M02181 laser driver over an I2C bus /dev/i2c-0.
There are several interfaces and utilities that provide read and/or write access to the EEPROM(s).
Read¶
A0 (0x50)¶
hexdump -Cv /sys/class/pon_mbox/pon_mbox0/device/eeprom50
ethtool -m pon0 raw on | head -c 256 | hexdump -Cv
i2cdump -fy 0 0x50
i2cget -fy 0 0x50 0x0
A2 (0x51)¶
hexdump -Cv /sys/class/pon_mbox/pon_mbox0/device/eeprom51
ethtool -m pon0 raw on | tail -c 256 | hexdump -Cv
i2cdump -fy 0 0x51
i2cget -fy 0 0x51 0x0
Write¶
The EEPROM is write-protected; There are two (2) known passcodes, the user and vendor passcode.
User¶
The A2 (0x51) User EEPROM section from 128 (0x80) to 247 (0xF7) can be unlocked using the passcode 68646762 by writing it to A2 (0x51) at offset 0x7B.
i2cset -fy 0 0x51 0x7B 0x68 0x64 0x67 0x62 i
Vendor¶
Incorrect writes to the EEPROM can prevent the host from recognizing the X-ONU-SFPP
A0 (0x50) can be unlocked using the passcode 9142F007 by writing it to A2 (0x51) at offset 0x7B.
i2cset -fy 0 0x51 0x7B 0x91 0x42 0xF0 0x07 i
Default Credentials¶
Web credentials¶
8311 forks are NOT supported by the 8311 community
Please follow the FiberMall support documentation below or install the official [8311 firmware].
https://www.fibermall.com/blog/how-to-use-xgspon-onu-stick.htm
| Username | Password |
|---|---|
| root | Aa123456 |
Shell credentials¶
OpenSSH/SSL: unsupported algorithms and changes since 8.8 and newer
ssh -V
openssl version
https://www.openssh.com/releasenotes.html
Red Hat/CentOS/Fedora/Rocky Linux
sudo update-crypto-policies --set LEGACY
ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.1.1
| Username | Password |
|---|---|
| root |
Bootloader¶
To access the U-Boot console type admin at the prompt: Hit enter to stop autoboot
Value-Added Resellers¶
| Company | Product Number | E-commerce | Firmware |
|---|---|---|---|
| Better Internet | X-ONU-SFPP | 8311 | |
| EXEN | X-ONU-SFPP | 8311 | |
| FiberMall | XGSPON-ONU-STICK-V8 | 83112 | |
| Full Vision Com-Tech | FV-NS10S | PTXG (Potron) | |
| H-COM | SPP425H-GAB4 | 83112 | |
| LuLeey | LL-XS1025 | 83112 | |
| Yunvo | SFP+ONU-XGSPON | PTXG (Potron), 83112 | |
| |||
Active Cooling¶
Caution: Hot surface
It is advisable to provide sufficient cooling. Although temperatures in excess of 60°C are within specification, over time they may decrease the product lifespan.
The 8311 community has produced many active cooling designs to improve overall temperatures. Join the Discord for additional tips.
Temperature monitoring¶
Digital Diagnostic Monitor Interface¶
For more details on accessing this interface, please search your hosts' documentation for Digital Diagnostic Monitoring (DDM) or Digital Optical Monitoring (DOM).
Linux host¶
ethtool -m <interface> #(1)!
- Replace
<interface>with the interface name.
FreeBSD host¶
ifconfig -vvv <interface> #(1)!
- Replace
<interface>with the interface name.
RouterOS host¶
/interface ethernet monitor <sfpX> #(1)!
- Replace sfp
Xwith the port name/number.
8311 Community Firmware API¶
JSON Endpoint¶
Version 2.8.2 and later support a JSON endpoint at https://192.168.11.1/cgi-bin/luci/8311/metrics.
Home Assistant Entities based on JSON Endpoint¶
rest:
scan_interval: 600
resource: https://192.168.11.1/cgi-bin/luci/8311/metrics
sensor:
- name: "PON CPU 1 Temp"
value_template: "{{ value_json.cpu1_tempC | round(2) }}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
- name: "PON CPU 2 Temp"
value_template: "{{ value_json.cpu2_tempC | round(2) }}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
- name: "PON Optics Temp"
value_template: "{{ value_json.optic_tempC | round(2) }}"
unit_of_measurement: "°C"
state_class: measurement
device_class: temperature
- name: "PON Voltage"
value_template: "{{ value_json.module_voltage | round(2) }}"
device_class: voltage
state_class: measurement
unit_of_measurement: "V"
- name: "PON State"
value_template: "{{ value_json.ploam_state }}"
- name: "PON Rx Power"
value_template: "{{ value_json.rx_power_dBm }}"
device_class: signal_strength
state_class: measurement
unit_of_measurement: "dBm"
- name: "PON Tx Power"
value_template: "{{ value_json.tx_power_dBm }}"
device_class: signal_strength
state_class: measurement
unit_of_measurement: "dBm"
- name: "PON Tx Bias"
value_template: "{{ value_json.tx_bias_mA }}"
device_class: current
state_class: measurement
unit_of_measurement: "mA"
