Thanks. I've now tried the 06 sq 01
command as well as lots of random other changes. Still no success. I have concluded that there is no point to continue without some idea on exactly what goes wrong. I need to look at what the ZyXEL firmware does differently.
Unfortunately, I am not equipped (or qualified ) to peek at two pins 0.5 mm apart on an QFP48 package, so I have ruled out snooping on the microcontroller. Has anyone else done this? And if so, are the raw traces available anywhere? I guess it's easy to miss a detail or two when analyzing, and I can offer an extra pair of eyes looking at it.
Another option is getting the OEM source. I have sent a request to ZyXEL, who in my experience are among the best wrt following their GPL obligations. So I do expect to get the sources in a few days. But I also expect the PoE application and similar stuff to have a closed license, and only be provided as binaries (which I consider a pity, but within their full rights). Still, this will with some luck provide the means to rebuild the OEM image with a few tweaks. If I can get an old enough toolchain running. That's usuatlly the biggest problem there.
Then there is the possibility of modifying the OEM binary image I already have. I guess it should be possible to gain a normal root shell there, and maybe even install a serial snooping tool? Of course, there is again the big question of whether this is within my capabilities, but I can give it a try.
Or maybe just lean back and wait for someone else to figure this out While I do something else. So I started looking at the SFP slots. They have worked just fine for my limited testing so far. But it would be nice to have access to the "eeprom", and in particular do the DOM readings. Example from the OEM firmware with a SFP with DOM support and no connection in port 10:
GS1900# sh fiber-transceiver interfaces 9-10
Port | Temperature | Voltage | Current | Output power | Input power | OE-Present | LOS
| [C] | [Volt] | [mA] | [mWatt] | [mWatt] | |
===================================================================================================
9 | N/S | N/S | N/S | N/S | N/S | Remove | Loss
10 | 40.41 (OK) | 3.29 (OK) | 4.19 (OK) | 0.26 (OK) | 0.00 (E) | Insert | Loss
In my naïvity, I imagined that I should simply be able to dump something from the i2c buses already defined in the DTS. But that was also a nogo:
root@OpenWrt:/# i2cdetect -l
i2c-1 i2c i2c-gpio-1 I2C adapter
i2c-0 i2c i2c-gpio-0 I2C adapter
root@OpenWrt:/# i2cdetect 1
i2cdetect: WARNING! This program can confuse your I2C bus
Continue? [y/N] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@OpenWrt:/# i2cdump 1 0x50
i2cdump: WARNING! This program can confuse your I2C bus
Continue? [y/N] y
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
So I am missing something here as well, and starting to wonder it this is really for me at all...
The pin definitions in the DTS seem to match the board configuration the OEM firmware nicely presents in "show tech-support" output:
====== Fiber =================
Fiber Port Number: 2
------------ Fiber Detect
LPort Present MediaChg OE Status LOS Status
------ -------- --------- ---------------------- ----------------------
8 OE OE Enabled (GPIO:EXT_26) Enabled (GPIO:EXT_27)
9 OE OE Enabled (GPIO:EXT_32) Enabled (GPIO:EXT_33)
------------ Fiber Optical
LPort SMI DEV SMI TYPE ID Delay SCK SDA
------ -------- --------- ----- ------- ------ ------
8 SFP1 8 BITS 0x50 4000 EXT_25 EXT_24
9 SFP2 8 BITS 0x50 4000 EXT_31 EXT_30
------------ Fiber TX Disable
LPort GPIO
------ ------
8 EXT_23
9 EXT_29
Is this just me not understanding something basic again?