summaryrefslogtreecommitdiffstats
path: root/_ont
diff options
context:
space:
mode:
authorSimone <26844016+simonebortolin@users.noreply.github.com>2023-02-10 21:57:28 +0100
committerGitHub <noreply@github.com>2023-02-10 21:57:28 +0100
commitbc4fa78050369a4c458da75676bfe6d60a903087 (patch)
tree50f578f029fa4aa375050a3d5ec76b0e39bf0471 /_ont
parentNokia G-010G-A alignment (#141) (diff)
downloadhack-gpon.github.io-bc4fa78050369a4c458da75676bfe6d60a903087.tar
hack-gpon.github.io-bc4fa78050369a4c458da75676bfe6d60a903087.tar.gz
hack-gpon.github.io-bc4fa78050369a4c458da75676bfe6d60a903087.tar.bz2
hack-gpon.github.io-bc4fa78050369a4c458da75676bfe6d60a903087.tar.lz
hack-gpon.github.io-bc4fa78050369a4c458da75676bfe6d60a903087.tar.xz
hack-gpon.github.io-bc4fa78050369a4c458da75676bfe6d60a903087.tar.zst
hack-gpon.github.io-bc4fa78050369a4c458da75676bfe6d60a903087.zip
Diffstat (limited to '')
-rw-r--r--_ont/ont-fs-com-gpon-onu-stick-with-mac.md178
-rw-r--r--_ont/ont-huawei-ma5671a-carlito.md31
-rw-r--r--_ont/ont-huawei-ma5671a-root-web.md2
-rw-r--r--_ont/ont-huawei-ma5671a-root.md2
-rw-r--r--_ont/ont-huawei-ma5671a-rooted.md38
-rw-r--r--_ont/ont-huawei-ma5671a.md329
-rw-r--r--_ont/ont-zyxel-pmg3000-d20b.md59
7 files changed, 397 insertions, 242 deletions
diff --git a/_ont/ont-fs-com-gpon-onu-stick-with-mac.md b/_ont/ont-fs-com-gpon-onu-stick-with-mac.md
index 254ecd5..e33c074 100644
--- a/_ont/ont-fs-com-gpon-onu-stick-with-mac.md
+++ b/_ont/ont-fs-com-gpon-onu-stick-with-mac.md
@@ -12,7 +12,8 @@ layout: default
| ---------------- | ---------------------------------------- |
| Vendor/Brand | FS.com |
| Model | GPON-ONU-34-20BI |
-| ODM | ✅ |
+| ODM | SourcePhotonics |
+| ODM Product Code | SPS-34-24T-HP-TDFO |
| Chipset | Lantiq PEB98035 |
| CPU | MIPS 34Kc interAptiv |
| CPU Clock | 400MHz |
@@ -62,6 +63,61 @@ The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be a
{% include alert.html content="Some USB TTL adapters label TX and RX pins the other way around: try to swap them if the connection doesn't work." alert="Note" icon="svg-warning" color="yellow" %}
+
+## List of software versions
+- 6BA1896SPLQA13 (Dec 16 2016)
+- 6BA1896SPLQA41
+- 6BA1896SPLQA42 (Sep 18 2021)
+
+## List of partitions
+
+Partition layouts change depending on which image is booted, in particular:
+
+When booting image0:
+```
+mtd2 ---> image0 (linux)
+mtd5 --> image1
+mtd3 --> rootfs
+mtd4 --> rootfs_data
+```
+When booting image0:
+```
+mtd2 ---> image0
+mtd3 --> image1 (linux)
+mtd4 --> rootfs
+mtd5 --> rootfs_data
+```
+
+For more info [XPONos partition layout](https://github.com/XPONos/linux_lantiq-falcon/commit/456f68f69a84c846a542a9f0ea47c37476535dcb).
+
+### When booting from image0
+
+| dev | size | erasesize | name |
+| ---- | -------- | --------- | ------------- |
+| mtd0 | 00040000 | 00010000 | "uboot" |
+| mtd1 | 00080000 | 00010000 | "uboot_env" |
+| mtd2 | 00740000 | 00010000 | "linux" |
+| mtd3 | 0061eedc | 00010000 | "rootfs" |
+| mtd4 | 00370000 | 00010000 | "rootfs_data" |
+| mtd5 | 00800000 | 00010000 | "image1" |
+
+### When booting from image1
+
+| dev | size | erasesize | name |
+| ---- | -------- | --------- | ------------- |
+| mtd0 | 00040000 | 00010000 | "uboot" |
+| mtd1 | 00080000 | 00010000 | "uboot_env" |
+| mtd2 | 00740000 | 00010000 | "image0" |
+| mtd3 | 00800000 | 00010000 | "linux" |
+| mtd4 | 006d8077 | 00010000 | "rootfs" |
+| mtd5 | 00410000 | 00010000 | "rootfs_data" |
+
+## List of firmwares and files
+- [6BA1896SPLQA13 MTD0/U-Boot](https://mega.nz/file/wptjyYiS#Xj3cijX2bN0FexsZr1Wn7iRG0Wy4Z8vX0NyNBd1kBWo){: .btn } md5hash: 992b31a67c644aa68cf7f9caf956b1f9
+- [6BA1896SPLQA13 MTD2/Image0](https://mega.nz/file/1kUlUbgQ#ANS9qH6wCggYshsQ3STD6gxmR_3TL-5MXfdCl5s50Nk){: .btn } md5hash: 5d46a9acc3c5ba8710887aa32b82aeb4
+- [6BA1896SPLQA42 MTD0/U-Boot](https://mega.nz/file/FkswHbgL#s7-vaH65EPQ2O5vKeD3bU1_RPwzaKPOJdrCWvPQqDvc){: .btn } md5hash: 992b31a67c644aa68cf7f9caf956b1f9
+- [6BA1896SPLQA42 MTD2/Image0](https://mega.nz/file/AgshDICC#md1vLN14JBF3iaNoZBqQH_zwALHmEaOk3_rDm1FfOic){: .btn } md5hash: 04533554bb0c8b997697fbc048159002
+
# General Settings and Useful Commands
## Bootloader unlock from shell
@@ -76,7 +132,7 @@ fw_setenv preboot "gpio set 3;gpio input 2;gpio input 105;gpio input 106;gpio in
{% include alert.html content="This is not necessary if you have already unlocked the bootloader from the shell as specified above." alert="Warning" icon="svg-warning" color="yellow" %}
-If for for some reason you are in the situation where you do not have a bootable firmware on your SFP stick you can do an emergency unlock via TTL serial.
+If for some reason you are in the situation where you do not have a bootable firmware on your SFP stick you can do an emergency unlock via TTL serial.
To perform the emergency unlock is necessary to have:
- TTL-USB adapter
@@ -309,35 +365,46 @@ cp mod_optic.ko mod_optic.ko.original
Now you have to use SCP to copy the modified `mod_optic.ko` kernel module in `/lib/modules/3.10.49/mod_optic.ko`.
-## List of software versions
-- 6BA1896SPLQA13 (Dec 16 2016)
-- 6BA1896SPLQA41
-- 6BA1896SPLQA42 (Sep 18 2021)
+## TX Fault / Serial
-## List of partitions
-When image0 is committed:
+The stick stays in a perpetual "TX Fault" state since the same SFP pin is used for both serial and TX Fault signaling, if that causes you issues (normally it shouldn't) you can issue the commands below to disable it. Note that it will disable both the TX Fault signal and Serial on the stick after boot.
-| dev | size | erasesize | name |
-| ---- | -------- | --------- | ------------- |
-| mtd0 | 00040000 | 00010000 | "uboot" |
-| mtd1 | 00080000 | 00010000 | "uboot_env" |
-| mtd2 | 00740000 | 00010000 | "linux" |
-| mtd3 | 0061eedc | 00010000 | "rootfs" |
-| mtd4 | 00370000 | 00010000 | "rootfs_data" |
-| mtd5 | 00800000 | 00010000 | "image1" |
+```sh
+fw_setenv asc0 1
+fw_setenv preboot "gpio set 3;gpio input 100;gpio input 105;gpio input 106;gpio input 107;gpio input 108"
+```
-When image1 is committed:
+In case you need to re-enable it issue the following commands from the bootloader (FALCON)
-| dev | size | erasesize | name |
-| ---- | -------- | --------- | ------------- |
-| mtd0 | 00040000 | 00010000 | "uboot" |
-| mtd1 | 00080000 | 00010000 | "uboot_env" |
-| mtd2 | 00740000 | 00010000 | "image0" |
-| mtd3 | 00800000 | 00010000 | "linux" |
-| mtd4 | 006d8077 | 00010000 | "rootfs" |
-| mtd5 | 00410000 | 00010000 | "rootfs_data" |
+```sh
+FALCON => setenv asc0 0
+FALCON => saveenv
+```
+
+## Getting/Setting Speed LAN Mode
-## EEPROM (I2C slave simulated EEPROM)
+To get the LAN Mode:
+
+```sh
+onu lanpsg 0
+```
+The `link_status` variable tells the current speed
+
+| Value (for `sgmii_mode` and `link_status`) | Speed |
+| ------------------------------------------ | ---------------------------------- |
+| 3 | 1 Gbps / SGMII with auto-neg on |
+| 4 | 1 Gbps / SGMII with auto-neg off |
+| 5 | 2.5 Gbps / HSGMII with auto-neg on |
+
+To change the default lan mode value you can use `fw_setenv sgmii_mode`. The firmware already has the value 5 by default and it is generally not necessary to change it.
+
+## Querying a particular OMCI ME
+```sh
+omci_pipe.sh meg MIB_IDX ME_IN
+```
+Where `MIB_IDX` is the MIB ID and the `ME_IN` is the ME instance number
+
+# EEPROM (I2C slave simulated EEPROM)
The FS GPON-ONU-34-20BI does not have a physical EEPROM, the Falcon SOC emulates an EEPROM by exposing it on the I2C interface as required by the SFF-8472 specification.
On the I2C interface there will be two memories of 256 bytes each at the addresses `1010000X (A0h)` and `1010001X (A2h)`, however in reality the memory available from the emulated EEPROM will be 640 bytes each but only the first 256 bytes will be exposed in the I2C interface.
@@ -347,7 +414,7 @@ The FS GPON-ONU-34-20BI stores the content of the emulated EEPROM in U-Boot env
- `EEPROM0 (A0h)` stored in U-Boot env variable `sfp_a0_low_128`
- `EEPROM1 (A2h)` stored in U-Boot env variable `sfp_a2_info`
-### EEPROM0 layout
+## EEPROM0 layout
| address | size | name | default value | description |
| ------- | ---- | --------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
@@ -390,31 +457,31 @@ The FS GPON-ONU-34-20BI stores the content of the emulated EEPROM in U-Boot env
| 256-639 | 384 | Reserved | `0x00 0x00 0x00...` | Reserved |
-### EEPROM1 layout
+## EEPROM1 layout
| address | size | name | default value | description |
| ------- | ---- | --------------------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| | | **DIAGNOSTIC AND CONTROL FIELDS** | | |
-| 0-1 | 2 | Temp High Alarm | `0x5F 0x00` (95℃) | |
-| 2-3 | 2 | Temp Low Alarm | `0xCE 0x00` (-50℃) | |
-| 4-5 | 2 | Temp High Warning | `0x5A 0x00` (90℃) | |
-| 6-7 | 2 | Temp Low Warning | `0xD3 0x00` (-45℃) | |
-| 8-9 | 2 | Voltage High Alarm | `0x8C 0xA0` (3.6V) | |
-| 10-11 | 2 | Voltage Low Alarm | `0x75 0x30` (3.0V) | |
-| 12-13 | 2 | Voltage High Warning | `0x88 0xB8` (3.5V) | |
-| 14-15 | 2 | Voltage Low Warning | `0x79 0x18` (3.1V) | |
-| 16-17 | 2 | Bias High Alarm | `0xAF 0xC8` (90mA) | |
-| 18-19 | 2 | Bias Low Alarm | `0x00 0x00` (0mA) | |
-| 20-21 | 2 | Bias High Warning | `0x88 0xB8` (70mA) | |
-| 22-23 | 2 | Bias Low Warning | `0x00 0x00` (0mA) | |
-| 24-25 | 2 | TX Power High Alarm | `0xF6 0x77` (8dBm) | Value expressed in watts subunits |
-| 26-27 | 2 | TX Power Low Alarm | `0x15 0xF7` (-2.5dBm) | Value expressed in watts subunits |
-| 28-29 | 2 | TX Power High Warning | `0xC3 0xC6` (7dBm) | Value expressed in watts subunits |
-| 30-31 | 2 | TX Power Low Warning | `0x1B 0xA7` (-1.5dBm) | Value expressed in watts subunits |
-| 32-33 | 2 | RX Power High Alarm | `0x0C 0x5A` (-5dBm) | Value expressed in watts subunits |
-| 34-35 | 2 | RX Power Low Alarm | `0x00 0x08` (-31dBm) | Value expressed in watts subunits |
-| 36-37 | 2 | RX Power High Warning | `0x09 0xCF` (-6dBm) | Value expressed in watts subunits |
-| 38-39 | 2 | RX Power Low Warning | `0x00 0x0A` (-30dBm) | Value expressed in watts subunits |
+| 0-1 | 2 | Temp High Alarm | `0x5F 0x00` (95℃) | Value expressed in two's complement |
+| 2-3 | 2 | Temp Low Alarm | `0xCE 0x00` (-50℃) | Value expressed in two's complement |
+| 4-5 | 2 | Temp High Warning | `0x5A 0x00` (90℃) | Value expressed in two's complement |
+| 6-7 | 2 | Temp Low Warning | `0xD3 0x00` (-45℃) | Value expressed in two's complement |
+| 8-9 | 2 | Voltage High Alarm | `0x8C 0xA0` (3.6V) | Value expressed in volt subunits[^subunit] |
+| 10-11 | 2 | Voltage Low Alarm | `0x75 0x30` (3.0V) | Value expressed in volt subunits[^subunit] |
+| 12-13 | 2 | Voltage High Warning | `0x88 0xB8` (3.5V) | Value expressed in volt subunits[^subunit] |
+| 14-15 | 2 | Voltage Low Warning | `0x79 0x18` (3.1V) | Value expressed in milliampere subunits[^subunit] |
+| 16-17 | 2 | Bias High Alarm | `0xAF 0xC8` (90mA) | Value expressed in milliampere subunits[^subunit] |
+| 18-19 | 2 | Bias Low Alarm | `0x00 0x00` (0mA) | Value expressed in milliampere subunits[^subunit] |
+| 20-21 | 2 | Bias High Warning | `0x88 0xB8` (70mA) | Value expressed in milliampere subunits[^subunit] |
+| 22-23 | 2 | Bias Low Warning | `0x00 0x00` (0mA) | Value expressed in milliampere subunits[^subunit] |
+| 24-25 | 2 | TX Power High Alarm | `0xF6 0x77` (8dBm) | Value expressed in watts subunits[^subunit] |
+| 26-27 | 2 | TX Power Low Alarm | `0x15 0xF7` (-2.5dBm) | Value expressed in watts subunits[^subunit] |
+| 28-29 | 2 | TX Power High Warning | `0xC3 0xC6` (7dBm) | Value expressed in watts subunits[^subunit] |
+| 30-31 | 2 | TX Power Low Warning | `0x1B 0xA7` (-1.5dBm) | Value expressed in watts subunits[^subunit] |
+| 32-33 | 2 | RX Power High Alarm | `0x0C 0x5A` (-5dBm) | Value expressed in watts subunits[^subunit] |
+| 34-35 | 2 | RX Power Low Alarm | `0x00 0x08` (-31dBm) | Value expressed in watts subunits[^subunit] |
+| 36-37 | 2 | RX Power High Warning | `0x09 0xCF` (-6dBm) | Value expressed in watts subunits[^subunit] |
+| 38-39 | 2 | RX Power Low Warning | `0x00 0x0A` (-30dBm) | Value expressed in watts subunits[^subunit] |
| 40-45 | 6 | MAC address | Unique in each SFP | Contains the mac address of the SFP, it could also be empty |
| 46-55 | 10 | Reserved | `0x00 0x00 0x00...` | Reserved |
| 56-59 | 4 | RX_PWR(4) Calibration | `0x00 0x00 0x00 0x00` | 4th order RSSI calibration coefficient |
@@ -445,10 +512,10 @@ The FS GPON-ONU-34-20BI stores the content of the emulated EEPROM in U-Boot env
| 106-109 | 4 | Optional Diagnostics | `0xFF 0xFF 0xFF 0xFF` (No support) | Monitor Data for Optional Laser temperature and TEC current |
| 110 | 1 | Status/Control | `0x82` (Soft TX disable, disable laser, digital TX fault, digital RX LOS, power&data ready) | Optional Status and Control Bits |
| 111 | 1 | Reserved | `0x00` | Reserved |
-| 112-113 | 2 | Alarm Flags | `0x01 0x40` | Diagnostic Alarm Flag Status Bits |
+| 112-113 | 2 | Alarm Flags | Supported | Diagnostic Alarm Flag Status Bits |
| 114 | 1 | Tx Input EQ control | `0xFF` (No support) | Tx Input equalization level control |
| 115 | 1 | Rx Out Emphasis control | `0xFF` (No support) | Rx Output emphasis level control |
-| 116-117 | 2 | Warning Flags | `0x01 0x40` | Diagnostic Warning Flag Status Bits |
+| 116-117 | 2 | Warning Flags | Supported | Diagnostic Warning Flag Status Bits |
| 118-119 | 2 | Ext Status/Control | `0x00 0x00` (No support) | Extended module control and status bytes |
| | | **GENERAL USE FIELDS** | | |
| 120-126 | 7 | Vendor Specific | `0x70 0x00 0x00 0x00 0x00 0x00 0x00` | Vendor specific memory addresses |
@@ -469,16 +536,13 @@ The FS GPON-ONU-34-20BI stores the content of the emulated EEPROM in U-Boot env
{% include alert.html content="For more information, see the SFF-8472 Rev 11.0 specification." alert="Info" icon="svg-info" color="blue" %}
-## List of firmwares and files
-- [6BA1896SPLQA13 MTD0/U-Boot](https://mega.nz/file/wptjyYiS#Xj3cijX2bN0FexsZr1Wn7iRG0Wy4Z8vX0NyNBd1kBWo){: .btn } md5hash: 992b31a67c644aa68cf7f9caf956b1f9
-- [6BA1896SPLQA13 MTD2/Image0](https://mega.nz/file/1kUlUbgQ#ANS9qH6wCggYshsQ3STD6gxmR_3TL-5MXfdCl5s50Nk){: .btn } md5hash: 5d46a9acc3c5ba8710887aa32b82aeb4
-- [6BA1896SPLQA42 MTD0/U-Boot](https://mega.nz/file/FkswHbgL#s7-vaH65EPQ2O5vKeD3bU1_RPwzaKPOJdrCWvPQqDvc){: .btn } md5hash: 992b31a67c644aa68cf7f9caf956b1f9
-- [6BA1896SPLQA42 MTD2/Image0](https://mega.nz/file/AgshDICC#md1vLN14JBF3iaNoZBqQH_zwALHmEaOk3_rDm1FfOic){: .btn } md5hash: 04533554bb0c8b997697fbc048159002
-
-# Known Bugs
# Miscellaneous Links
- [FS.com](https://www.fs.com/it/products/133619.html)
- [General setting of lantiq](https://forum.fibra.click/d/23881-ma5671a-e-vodafone-25-gbps/64)
- [Usage GPON module SFP in Spain](https://forum.mikrotik.com/viewtopic.php?t=116364&start=300)
- [SourcePhotonics SPS-34-24T-HP-TDFO Datasheet](https://www.sourcephotonics.com/wp-content/uploads/2017/08/DS-8085-02_SPS-34-24T-HP-TDFO.pdf)
+
+---
+
+[^subunit]: The subunit are 10000 times smaller than the specified unit \ No newline at end of file
diff --git a/_ont/ont-huawei-ma5671a-carlito.md b/_ont/ont-huawei-ma5671a-carlito.md
index c26f463..533b192 100644
--- a/_ont/ont-huawei-ma5671a-carlito.md
+++ b/_ont/ont-huawei-ma5671a-carlito.md
@@ -48,7 +48,34 @@ fw_setenv target oem-generic
fw_printenv target=oem-generic
```
-## Setting HSGMII Mode
+## Getting/Setting Speed LAN Mode
+
+To enable the 2.5 Gbps / HSGMII with auto-neg on:
+
```sh
fw_setenv sgmii_mode 5
-``` \ No newline at end of file
+```
+
+To remove the value (back to default):
+```sh
+fw_setenv sgmii_mode
+```
+
+To get the LAN Mode:
+
+```sh
+onu lanpsg 0
+```
+The `link_status` variable tells the current speed
+
+| Value (for `sgmii_mode` and `link_status`) | Speed |
+| ------------------------------------------ | ---------------------------------- |
+| 3 | 1 Gbps / SGMII with auto-neg on |
+| 4 | 1 Gbps / SGMII with auto-neg off |
+| 5 | 2.5 Gbps / HSGMII with auto-neg on |
+
+## Querying a particular OMCI ME
+```sh
+omci_pipe.sh meg MIB_IDX ME_IN
+```
+Where `MIB_IDX` is the MIB ID and the `ME_IN` is the ME instance number \ No newline at end of file
diff --git a/_ont/ont-huawei-ma5671a-root-web.md b/_ont/ont-huawei-ma5671a-root-web.md
index e2feecd..6b514f4 100644
--- a/_ont/ont-huawei-ma5671a-root-web.md
+++ b/_ont/ont-huawei-ma5671a-root-web.md
@@ -11,7 +11,7 @@ Connect the SFP adapter to the TTL adapter according to the following diagram:
| USB TTL (UART) Adapter | wire colour in picture | SFP 20pins Molex connector |
| ---------------------- | ---------------------- | -------------------------- |
-| 3.3V | red | 3.3 (pin #15 and #16) |
+| 3.3V | red | 3.3 (pin #15 and #16) |
| TX | green | RX (pin #2) |
| RX | blue | TX (pin #7) |
| GND | black | GND (pin #14) |
diff --git a/_ont/ont-huawei-ma5671a-root.md b/_ont/ont-huawei-ma5671a-root.md
index 1216cea..ad4115c 100644
--- a/_ont/ont-huawei-ma5671a-root.md
+++ b/_ont/ont-huawei-ma5671a-root.md
@@ -139,7 +139,7 @@ sed -i "s|/opt/lantiq/bin/minishell|/bin/ash|g" /etc/passwd
{% include alert.html content="If your subnet is 192.168.1.0/24 make sure you have no ip conflicts." alert="Note" icon="svg-warning" color="yellow" %}
-{% include alert.html content="Make sure to disable SFP TX fault detection, otherwise the RX loss will prevent you from connecting to the mini SFP ONT at this point. Don't simply attach the fiber cable to work around this issue as the OLT may ban you." alert="Note" icon="svg-warning" color="yellow" %}
+{% include alert.html content="On some SFP host devices you might not be able to connect to the stick if there's no optical signal (RX loss), in that case you need to connect the fiber to make changes on the stick" alert="Note" icon="svg-warning" color="yellow" %}
{:style="counter-reset:none"}
1. Run the terminal and login to the stick with ssh
diff --git a/_ont/ont-huawei-ma5671a-rooted.md b/_ont/ont-huawei-ma5671a-rooted.md
index 95d579e..019610a 100644
--- a/_ont/ont-huawei-ma5671a-rooted.md
+++ b/_ont/ont-huawei-ma5671a-rooted.md
@@ -31,6 +31,7 @@ layout: default
1. Type `:wq`
1. Run:
+
```shell
fw_setenv sfp_a2_info ($cat /tmp/sfp_a2.txt)
```
@@ -39,11 +40,11 @@ fw_setenv sfp_a2_info ($cat /tmp/sfp_a2.txt)
1. Save `sfp_a2_info` in a temporary file
-```shell
+```sh
fw_printenv sfp_a2_info | sed "s/^sfp_a2_info=//" > /tmp/sfp_a2.txt
```
And print a pretty version:
-```shell
+```sh
fw_printenv sfp_a2_info | sed "s/^sfp_a2_info=//" | tr '@' '\n'
```
@@ -77,7 +78,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASFcC2r7vAAAAAAAAAAAAAAAAAAAA
5. Transfer the modified file back into variable `sfp_a2_info`
-```shell
+```sh
fw_setenv sfp_a2_info $(cat /tmp/sfp_a2.txt)
```
@@ -85,7 +86,7 @@ fw_setenv sfp_a2_info $(cat /tmp/sfp_a2.txt)
After rebooting, check whether the new variables have been saved correctly:
-```shell
+```sh
fw_printenv nPassword
fw_printenv gSerial
fw_printenv ethaddr
@@ -93,16 +94,39 @@ fw_printenv ethaddr
## Checking whether the connection with the OLT was successful (O5 state)
-```shell
+```sh
onu ploamsg
```
-# Disabling dying gasp
+## Disabling dying gasp
-```shell
+```sh
fw_setenv nDyingGaspEnable 0
```
+## Getting/Setting Speed LAN Mode
+
+To get the LAN Mode:
+
+```sh
+onu lanpsg 0
+```
+The `link_status` variable tells the current speed
+
+| Value (for `sgmii_mode` and `link_status`) | Speed |
+| ------------------------------------------ | ---------------------------------- |
+| 3 | 1 Gbps / SGMII with auto-neg on |
+| 4 | 1 Gbps / SGMII with auto-neg off |
+| 5 | 2.5 Gbps / HSGMII with auto-neg on |
+
+To change the default lan mode value you can use `fw_setenv sgmii_mode`. The firmware already has the value 5 by default and it is generally not necessary to change it.
+
+## Querying a particular OMCI ME
+```sh
+omci_pipe.sh meg MIB_IDX ME_IN
+```
+Where `MIB_IDX` is the MIB ID and the `ME_IN` is the ME instance number
+
# Miscellaneous Links
- [Edit sfp_a2_info file](https://forum.openwrt.org/t/support-ma5671a-sfp-gpon/48042/25)
diff --git a/_ont/ont-huawei-ma5671a.md b/_ont/ont-huawei-ma5671a.md
index b4661e7..1609d5c 100644
--- a/_ont/ont-huawei-ma5671a.md
+++ b/_ont/ont-huawei-ma5671a.md
@@ -7,27 +7,27 @@ parent: Huawei
# Hardware Specifications
-| | |
-| ---------------- | ----------------------------------- |
-| Vendor/Brand | Huawei |
-| Model | MA5671A |
-| ODM | ✅ |
-| Chipset | Lantiq PEB98035 |
-| Flash | 16 MB |
-| RAM | 64 MB (Winbond W25Q128FV) |
-| CPU | MIPS 34Kc interAptiv |
-| CPU Clock | 400MHz |
-| System | OpenWRT |
-| HSGMII | Yes |
-| Optics | SC/APC |
-| IP address | 192.168.1.10 |
-| Web Gui | After root |
-| SSH | ✅ user `root`, password `admin123` |
-| Telnet | |
-| Serial | ✅ on SFP |
-| Serial baud | 115200 |
-| Serial encoding | 8-N-1 |
-| Form Factor | miniONT SFP |
+| | |
+| --------------- | ----------------------------------- |
+| Vendor/Brand | Huawei |
+| Model | MA5671A |
+| ODM | |
+| Chipset | Lantiq PEB98035 |
+| Flash | 16 MB |
+| RAM | 64 MB (Winbond W25Q128FV) |
+| CPU | MIPS 34Kc interAptiv |
+| CPU Clock | 400MHz |
+| System | OpenWRT |
+| HSGMII | Yes |
+| Optics | SC/APC |
+| IP address | 192.168.1.10 |
+| Web Gui | After root |
+| SSH | ✅ user `root`, password `admin123` |
+| Telnet | |
+| Serial | ✅ on SFP |
+| Serial baud | 115200 |
+| Serial encoding | 8-N-1 |
+| Form Factor | miniONT SFP |
{% include image.html file="g-010s-p-and-ma5671a.jpg" alt="G-010S-P and MA5671A Teardown" caption="G-010S-P and MA5671A Teardown" %}
@@ -86,7 +86,7 @@ mtd5 --> rootfs_data
For more info [XPONos partition layout](https://github.com/XPONos/linux_lantiq-falcon/commit/456f68f69a84c846a542a9f0ea47c37476535dcb).
-## When booting from image0
+### When booting from image0
| dev | size | erasesize | name |
| ---- | -------- | --------- | ------------- |
@@ -97,7 +97,7 @@ For more info [XPONos partition layout](https://github.com/XPONos/linux_lantiq-f
| mtd4 | 00370000 | 00010000 | "rootfs_data" |
| mtd5 | 00800000 | 00010000 | "image1" |
-## When booting from image1
+### When booting from image1
| dev | size | erasesize | name |
| ---- | -------- | --------- | ------------- |
@@ -108,7 +108,141 @@ For more info [XPONos partition layout](https://github.com/XPONos/linux_lantiq-f
| mtd4 | 006d8077 | 00010000 | "rootfs" |
| mtd5 | 00410000 | 00010000 | "rootfs_data" |
-## EEPROM (I2C slave simulated EEPROM)
+## List of firmwares and files
+
+{% include alert.html content="If the root procedure without tweezers is used, the firmware already on the Huawei Stick corresponds to rooted firmware in this list." alert="Info" icon="svg-info" color="blue" %}
+
+- [Carlito MTD2](https://ma5671a.s3.nl-ams.scw.cloud/mtd2.bin){: .btn } md5hash: d3cb6f7efec201b37931139feb4bb23b
+- [Huawei Rooted MTD2](https://ma5671a.s3.nl-ams.scw.cloud/mA5671a_root_mtd2.img){: .btn } md5hash: 3138d2dd06a32bb92bc63610fec6fcd6
+- [Carlito MTD5](https://ma5671a.s3.nl-ams.scw.cloud/mtd5.bin){: .btn } md5hash: 59d2dc15227d6f693a38131eca89b29e
+- [Huawei Rooted MTD5](https://ma5671a.s3.nl-ams.scw.cloud/mA5671a_root_mtd5.img){: .btn } md5hash: 0e4cfdc1b96be6581869b26b48789556
+- [1224abort.bin](https://ma5671a.s3.nl-ams.scw.cloud/1224ABORT.bin){: .btn } md5hash: 10e94a4b4acdc82dec20c7904b69e5c0
+- [right.com.cn (China) 19 July 2022](https://mega.nz/file/9fpSkYTb#wNyjAj1kOLWC9HozX-gTQ-TS3VFqRYg--x1rm7RSuDg){: .btn } md5hash: 6b5e7e3c659fe3f0204340fa746ac4fc
+- [right.com.cn (China) 29 Aug 2022](https://mega.nz/file/VHFFSBrT#2WhDPcdON5EHR01l6Ut35GC3sl55e4l09Z0NUo_7SWA){: .btn} md5hash: 3d357e2dc7b59c66fe61b4ddf1fb8dc0
+- [ONT FS.com GPON ONU Stick with MAC firmware / SourcePhotonics SPS-34-24T-HP-TDFO firmware](/ont-fs-com-gpon-onu-stick-with-mac)
+
+# General Settings and Useful Commands
+
+- [Huawei Rooted Firmware General Setting](/ont-huawei-ma5671a-rooted)
+- [Carlito Firmware General Setting](/ont-huawei-ma5671a-carlito)
+- [SourcePhotonics Firmware General Setting](/ont-huawei-ma5671a-sf)
+- [right.com.cn (China) Firmware General Setting](/ont--huawei-ma5671a-china)
+- [Nokia G-010S-P Firmware General Setting](/ont-nokia-g-010s-p)
+
+## Transferring files to the stick
+
+{% include alert.html content="If you use a modern OpenSSH version (e.g. >= 8.8) you will have to use the legacy protocol and enable some deprecated algorithms: scp `-oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-dss [...]`" alert="Info" icon="svg-info" color="blue" %}
+
+```sh
+# scp rootfs.bin root@192.168.1.10:/tmp/
+```
+
+## Backup of all partition
+
+Make a backup of all partitions, an easy way is:
+- On the stick run:
+```sh
+cat /proc/mtd
+```
+
+### Via SCP
+- For each mtdX run in the lantiq shell:
+```sh
+cp /dev/mtdX /tmp
+```
+
+{% include alert.html content="If you use a modern OpenSSH version (e.g. >= 8.8) you will have to use the legacy protocol and enable some deprecated algorithms: `scp -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-dss [...]`" alert="Info" icon="svg-info" color="blue" %}
+
+And in the computer shell:
+```sh
+scp root@192.168.1.10:/tmp/mtdX ./
+```
+
+### Via NC
+
+- For each mtdX run, on computer shell:
+```sh
+nc -l -p 1234 > mtdX.bin
+```
+And in the lantiq shell:
+```sh
+cat /dev/mtdX | nc 192.168.1.11 1234
+```
+
+## Checking the currently active image
+
+```sh
+# fw_printenv committed_image
+```
+
+## Booting to a different image
+
+
+```sh
+# fw_setenv committed_image 0|1
+# fw_setenv image0|1_is_valid 1
+```
+
+## Cloning of mtd1 (image 0) into mtd5 (image 1)
+
+{% include alert.html content="Image 0 can be flashed to image 1, while image 1 cannot be flashed to image 0 because it has larger rootfs_data" alert="Warning" icon="svg-warning" color="yellow" %}
+
+The following commands are used to clone image0 to image1 and then boot to it
+```sh
+# cat /dev/mtd2 > /tmp/mtd2.bin
+# mtd -e image1 write /tmp/mtd2.bin image1
+# fw_setenv committed_image 1
+# fw_setenv image1_is_valid 1
+# reboot
+```
+
+## Flashing a new rootfs via SSH
+
+{% include alert.html content="Only the inactive image can be flashed" alert="Info" icon="svg-info" color="blue" %}
+
+The following commands are used to flash a new rootfs to image1 and then boot to it
+```sh
+# mtd -e image1 write /tmp/rootfs.bin image1
+# fw_setenv committed_image 1
+# fw_setenv image1_is_valid 1
+# reboot
+```
+
+{% include alert.html content="Some OLTs don't like when ONTs don't boot from image 0, therefore the previous procedure must be preceded by the following procedure with inverted images, as to clone image 1 into image 0" alert="Warning" icon="svg-warning" color="yellow" %}
+
+## Flashing a new rootfs via serial
+
+{% include alert.html content="We recommend using the flash web app." alert="Info" icon="svg-warning" color="yellow" %}
+
+If you wish to change the firmware via serial, we recommend using the web app: [Web Serial Flash](/ont-huawei-ma5671a-ymodem)
+
+{% include alert.html content="Use this procedure only if you are unable to do the procedure from SSH" alert="Warning" icon="svg-warning" color="red" %}
+
+1. Connecting the molex-serial adapter and the serial to the computer as indicated in [Root Procedure](/ont-huawei-ma5671a-web-root)
+2. Open Tera Term (or any other programme capable of connecting to the serial terminal)
+3. Connect the SFP stick to the SFP molex, from the terminal you will have 5 seconds to lock the bootloader by doing a simple CTRL+C. Now upload the firmware image of the new rootfs partition to the stick with the command
+```
+FALCON => loady 0x80800000
+```
+At this point it will appear:
+
+{% include image.html file="ma5671a-root-13.jpg" alt="shell requiring `mtd2` upload" caption="shell requiring `mtd2` upload" %}
+
+{:style="counter-reset:none"}
+1. From the teratem menu do `FILE` → `TRANSFER` → `YMODEM` → `SEND` → `[mtd2.bin]`.
+It will start uploading the file at a speed of about 3-4 KBps. Now you will have to wait more than half an hour for the upload to complete.
+
+1. Once finished, the image loaded on the stick must also be saved to the corresponding system partition (the first of the 2) with the commands
+```
+FALCON => setenv committed_image 0
+FALCON => setenv image0_is_valid 1
+FALCON => saveenv
+FALCON => sf probe 0 && sf erase C0000 740000 && sf write 80800000 C0000 740000 && reset
+```
+
+{% include alert.html content="If you need to flash to image 2, you must use the following command `FALCON => sf probe 0 && sf erase 800000 800000 && sf write 80800000 800000 800000 && reset`" alert="Warning" icon="svg-warning" color="red" %}
+
+# EEPROM (I2C slave simulated EEPROM)
The Huawei MA5671A does not have a physical EEPROM, the Falcon SOC emulates an EEPROM by exposing it on the I2C interface as required by the SFF-8472 specification.
On the I2C interface there will be two memories of 256 bytes each at the addresses `1010000X (A0h)` and `1010001X (A2h)`, however in reality the memory available from the emulated EEPROM will be 640 bytes each but only the first 256 bytes will be exposed in the I2C interface.
@@ -118,7 +252,7 @@ The Huawei MA5671A stores the content of the emulated EEPROM in U-Boot env varia
- `EEPROM0 (A0h)` stored in U-Boot env variable `sfp_a0_low_128`
- `EEPROM1 (A2h)` stored in U-Boot env variable `sfp_a2_info`
-### EEPROM0 layout
+## EEPROM0 layout
| address | size | name | default value | description |
| ------- | ---- | --------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
@@ -161,31 +295,31 @@ The Huawei MA5671A stores the content of the emulated EEPROM in U-Boot env varia
| 256-639 | 384 | Reserved | `0x00 0x00 0x00...` | Reserved |
-### EEPROM1 layout
+## EEPROM1 layout
| address | size | name | default value | description |
| ------- | ---- | --------------------------------- | --------------------------------------- | ----------------------------------------------------------------- |
| | | **DIAGNOSTIC AND CONTROL FIELDS** | | |
-| 0-1 | 2 | Temp High Alarm | `0x5F 0x00` (95℃) | |
-| 2-3 | 2 | Temp Low Alarm | `0xCE 0x00` (-50℃) | |
-| 4-5 | 2 | Temp High Warning | `0x5A 0x00` (90℃) | |
-| 6-7 | 2 | Temp Low Warning | `0xD3 0x00` (-45℃) | |
-| 8-9 | 2 | Voltage High Alarm | `0x8C 0xA0` (3.6V) | |
-| 10-11 | 2 | Voltage Low Alarm | `0x75 0x30` (3.0V) | |
-| 12-13 | 2 | Voltage High Warning | `0x88 0xB8` (3.5V) | |
-| 14-15 | 2 | Voltage Low Warning | `0x79 0x18` (3.1V) | |
-| 16-17 | 2 | Bias High Alarm | `0xAF 0xC8` (90mA) | |
-| 18-19 | 2 | Bias Low Alarm | `0x00 0x00` (0mA) | |
-| 20-21 | 2 | Bias High Warning | `0x88 0xB8` (70mA) | |
-| 22-23 | 2 | Bias Low Warning | `0x00 0x00` (0mA) | |
-| 24-25 | 2 | TX Power High Alarm | `0x9B 0x82` (6dBm) | Value expressed in watts subunits |
-| 26-27 | 2 | TX Power Low Alarm | `0x22 0xD0` (-1dBm) | Value expressed in watts subunits |
-| 28-29 | 2 | TX Power High Warning | `0x7B 0x86` (5dBm) | Value expressed in watts subunits |
-| 30-31 | 2 | TX Power Low Warning | `0x2B 0xD4` (0dBm) | Value expressed in watts subunits |
-| 32-33 | 2 | RX Power High Alarm | `0x09 0xCF` (-6dBm) | Value expressed in watts subunits |
-| 34-35 | 2 | RX Power Low Alarm | `0x00 0x0D` (-29dBm) | Value expressed in watts subunits |
-| 36-37 | 2 | RX Power High Warning | `0x07 0xCB` (-7dBm) | Value expressed in watts subunits |
-| 38-39 | 2 | RX Power Low Warning | `0x00 0x10` (-28dBm) | Value expressed in watts subunits |
+| 0-1 | 2 | Temp High Alarm | `0x5F 0x00` (95℃) | Value expressed in two's complement |
+| 2-3 | 2 | Temp Low Alarm | `0xCE 0x00` (-50℃) | Value expressed in two's complement |
+| 4-5 | 2 | Temp High Warning | `0x5A 0x00` (90℃) | Value expressed in two's complement |
+| 6-7 | 2 | Temp Low Warning | `0xD3 0x00` (-45℃) | Value expressed in two's complement |
+| 8-9 | 2 | Voltage High Alarm | `0x8C 0xA0` (3.6V) | Value expressed in volt subunits[^subunit] |
+| 10-11 | 2 | Voltage Low Alarm | `0x75 0x30` (3.0V) | Value expressed in volt subunits[^subunit] |
+| 12-13 | 2 | Voltage High Warning | `0x88 0xB8` (3.5V) | Value expressed in volt subunits[^subunit] |
+| 14-15 | 2 | Voltage Low Warning | `0x79 0x18` (3.1V) | Value expressed in volt subunits[^subunit] |
+| 16-17 | 2 | Bias High Alarm | `0xAF 0xC8` (90mA) | Value expressed in milliampere subunits[^subunit] |
+| 18-19 | 2 | Bias Low Alarm | `0x00 0x00` (0mA) | Value expressed in milliampere subunits[^subunit] |
+| 20-21 | 2 | Bias High Warning | `0x88 0xB8` (70mA) | Value expressed in milliampere subunits[^subunit] |
+| 22-23 | 2 | Bias Low Warning | `0x00 0x00` (0mA) | Value expressed in milliampere subunits[^subunit] |
+| 24-25 | 2 | TX Power High Alarm | `0x9B 0x82` (6dBm) | Value expressed in watts subunits[^subunit] |
+| 26-27 | 2 | TX Power Low Alarm | `0x22 0xD0` (-1dBm) | Value expressed in watts subunits[^subunit] |
+| 28-29 | 2 | TX Power High Warning | `0x7B 0x86` (5dBm) | Value expressed in watts subunits[^subunit] |
+| 30-31 | 2 | TX Power Low Warning | `0x2B 0xD4` (0dBm) | Value expressed in watts subunits[^subunit] |
+| 32-33 | 2 | RX Power High Alarm | `0x09 0xCF` (-6dBm) | Value expressed in watts subunits[^subunit] |
+| 34-35 | 2 | RX Power Low Alarm | `0x00 0x0D` (-29dBm) | Value expressed in watts subunits[^subunit] |
+| 36-37 | 2 | RX Power High Warning | `0x07 0xCB` (-7dBm) | Value expressed in watts subunits[^subunit] |
+| 38-39 | 2 | RX Power Low Warning | `0x00 0x10` (-28dBm) | Value expressed in watts subunits[^subunit] |
| 40-45 | 6 | MAC address | Unique in each SFP | Contains the mac address of the SFP, it could also be empty |
| 46-55 | 10 | Reserved | `0x00 0x00 0x00...` | Reserved |
| 56-59 | 4 | RX_PWR(4) Calibration | `0x00 0x00 0x00 0x00` | 4th order RSSI calibration coefficient |
@@ -216,10 +350,10 @@ The Huawei MA5671A stores the content of the emulated EEPROM in U-Boot env varia
| 106-109 | 4 | Optional Diagnostics | `0xFF 0xFF 0xFF 0xFF` (No support) | Monitor Data for Optional Laser temperature and TEC current |
| 110 | 1 | Status/Control | `0x00` (No support) | Optional Status and Control Bits |
| 111 | 1 | Reserved | `0x00` | Reserved |
-| 112-113 | 2 | Alarm Flags | `0x00 0x00` (No support) | Diagnostic Alarm Flag Status Bits |
+| 112-113 | 2 | Alarm Flags | Supported | Diagnostic Alarm Flag Status Bits |
| 114 | 1 | Tx Input EQ control | `0xFF` (No support) | Tx Input equalization level control |
| 115 | 1 | Rx Out Emphasis control | `0xFF` (No support) | Rx Output emphasis level control |
-| 116-117 | 2 | Warning Flags | `0x00 0x00` (No support) | Diagnostic Warning Flag Status Bits |
+| 116-117 | 2 | Warning Flags | Supported | Diagnostic Warning Flag Status Bits |
| 118-119 | 2 | Ext Status/Control | `0x00 0x00` (No support) | Extended module control and status bytes |
| | | **GENERAL USE FIELDS** | | |
| 120-126 | 7 | Vendor Specific | `0x70 0x00 0x00 0x00 0x00 0x00 0x00` | Vendor specific memory addresses |
@@ -240,102 +374,6 @@ The Huawei MA5671A stores the content of the emulated EEPROM in U-Boot env varia
{% include alert.html content="For more information, see the SFF-8472 Rev 10.2 specification." alert="Info" icon="svg-info" color="blue" %}
-## List of firmwares and files
-
-{% include alert.html content="If the root procedure without tweezers is used, the firmware already on the Huawei Stick corresponds to rooted firmware in this list." alert="Info" icon="svg-info" color="blue" %}
-
-- [Carlito MTD2](https://ma5671a.s3.nl-ams.scw.cloud/mtd2.bin){: .btn } md5hash: d3cb6f7efec201b37931139feb4bb23b
-- [Huawei Rooted MTD2](https://ma5671a.s3.nl-ams.scw.cloud/mA5671a_root_mtd2.img){: .btn } md5hash: 3138d2dd06a32bb92bc63610fec6fcd6
-- [Carlito MTD5](https://ma5671a.s3.nl-ams.scw.cloud/mtd5.bin){: .btn } md5hash: 59d2dc15227d6f693a38131eca89b29e
-- [Huawei Rooted MTD5](https://ma5671a.s3.nl-ams.scw.cloud/mA5671a_root_mtd5.img){: .btn } md5hash: 0e4cfdc1b96be6581869b26b48789556
-- [1224abort.bin](https://ma5671a.s3.nl-ams.scw.cloud/1224ABORT.bin){: .btn } md5hash: 10e94a4b4acdc82dec20c7904b69e5c0
-- [right.com.cn (China) 19 July 2022](https://mega.nz/file/9fpSkYTb#wNyjAj1kOLWC9HozX-gTQ-TS3VFqRYg--x1rm7RSuDg){: .btn } md5hash: 6b5e7e3c659fe3f0204340fa746ac4fc
-- [right.com.cn (China) 29 Aug 2022](https://mega.nz/file/VHFFSBrT#2WhDPcdON5EHR01l6Ut35GC3sl55e4l09Z0NUo_7SWA){: .btn} md5hash: 3d357e2dc7b59c66fe61b4ddf1fb8dc0
-- [ONT FS.com GPON ONU Stick with MAC firmware / SourcePhotonics SPS-34-24T-HP-TDFO firmware](/ont-fs-com-gpon-onu-stick-with-mac)
-
-# General Settings and Useful Commands
-
-- [Huawei Rooted Firmware General Setting](/ont-huawei-ma5671a-rooted)
-- [Carlito Firmware General Setting](/ont-huawei-ma5671a-carlito)
-- [SourcePhotonics Firmware General Setting](/ont-huawei-ma5671a-sf)
-- [right.com.cn (China) Firmware General Setting](/ont--huawei-ma5671a-china)
-
-## Transferring files to the stick
-
-{% include alert.html content="If you use a modern OpenSSH version (e.g. >= 8.8) you will have to use the legacy protocol and enable some deprecated algorithms: scp -O -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-dss [...]" alert="Info" icon="svg-info" color="blue" %}
-
-```sh
-# scp rootfs.bin root@192.168.1.10:/tmp/
-```
-
-## Backup of all partition
-
-Make a backup of all partitions, an easy way is:
-- On the stick run:
-```shell
-cat /proc/mtd
-```
-- For each mtdX run, on computer shell:
-```shell
-nc -l -p 1234 > mtdX.bin
-```
-And in the lantiq shell:
-```shell
-cat /dev/mtdX | nc 192.168.1.11 1234
-```
-
-## Flashing a new rootfs via SSH
-
-{% include alert.html content="Only the inactive image can be flashed" alert="Info" icon="svg-info" color="blue" %}
-
-The following commands are used to flash a new rootfs to image1 and then boot to it
-```sh
-# mtd -e image1 write /tmp/rootfs.bin image1
-# fw_setenv committed_image 1
-# fw_setenv image1_is_valid 1
-# reboot
-```
-
-{% include alert.html content="Some OLTs don't like when ONTs don't boot from image 0, therefore the previous procedure must be preceded by the following procedure with inverted images, as to clone image 1 into image 0" alert="Warning" icon="svg-warning" color="yellow" %}
-
-## Flashing a new rootfs via serial
-
-{% include alert.html content="Use this procedure only if you are unable to do the procedure from SSH" alert="Warning" icon="svg-warning" color="red" %}
-
-1. Connecting the molex-serial adapter and the serial to the computer as indicated in [Root Procedure](/ont-huawei-ma5671a-web-root)
-2. Open Tera Term (or any other programme capable of connecting to the serial terminal)
-3. Connect the SFP stick to the SFP molex, from the terminal you will have 5 seconds to lock the bootloader by doing a simple CTRL+C. Now upload the firmware image of the new rootfs partition to the stick with the command
-```
-FALCON => loady 0x80800000
-```
-At this point it will appear:
-
-{% include image.html file="ma5671a-root-13.jpg" alt="shell requiring `mtd2` upload" caption="shell requiring `mtd2` upload" %}
-
-{:style="counter-reset:none"}
-1. From the teratem menu do `FILE` → `TRANSFER` → `YMODEM` → `SEND` → `[mtd2.bin]`.
-It will start uploading the file at a speed of about 3-4 KBps. Now you will have to wait more than half an hour for the upload to complete.
-
-1. Once finished, the image loaded on the stick must also be saved to the corresponding system partition (the first of the 2) with the commands
-```
-FALCON => setenv committed_image 0
-FALCON => setenv image0_is_valid 1
-FALCON => saveenv
-FALCON => sf probe 0 && sf erase C0000 740000 && sf write 80800000 C0000 740000 && reset
-```
-
-## Cloning of mtd1 (image 0) into mtd5 (image 1)
-
-{% include alert.html content="Image 0 can be flashed to image 1, while image 1 cannot be flashed to image 0 because it has larger rootfs_data" alert="Warning" icon="svg-warning" color="yellow" %}
-
-The following commands are used to clone image0 to image1 and then boot to it
-```sh
-# cat /dev/mtd2 > /tmp/mtd2.bin
-# mtd -e image1 write /tmp/mtd2.bin image1
-# fw_setenv committed_image 1
-# fw_setenv image1_is_valid 1
-# reboot
-```
# Miscellaneous Links
@@ -352,3 +390,6 @@ The following commands are used to clone image0 to image1 and then boot to it
- [Usage GPON module SFP in Spain](https://forum.mikrotik.com/viewtopic.php?t=116364&start=300)
- [Tech Info Depot Wiki](http://en.techinfodepot.shoutwiki.com/wiki/Huawei_MA5671A)
+---
+
+[^subunit]: The subunit are 10000 times smaller than the specified unit \ No newline at end of file
diff --git a/_ont/ont-zyxel-pmg3000-d20b.md b/_ont/ont-zyxel-pmg3000-d20b.md
index 8ef9d6a..144d769 100644
--- a/_ont/ont-zyxel-pmg3000-d20b.md
+++ b/_ont/ont-zyxel-pmg3000-d20b.md
@@ -160,6 +160,10 @@ omci
show me classid OmciClassId (e.g 7)
```
+## Reset Web Gui admin credentials
+
+Sometimes, under certain circumstances, the Web Gui admin credentials might get changed from the default `admin`/`1234` combination.
+To restore the default combination you can try following [this method](https://github.com/xvzf/zyxel-gpon-sfp/issues/6#issuecomment-1065864650).
# Low Level Modding
@@ -193,12 +197,7 @@ system
reboot
```
-# Reset Web Gui admin credentials
-
-Sometimes, under certain circumstances, the Web Gui admin credentials might get changed from the default `admin`/`1234` combination.
-To restore the default combination you can try following [this method](https://github.com/xvzf/zyxel-gpon-sfp/issues/6#issuecomment-1065864650).
-
-## EEPROM (I2C slave simulated EEPROM)
+# EEPROM (I2C slave simulated EEPROM)
The Zyxel PMG3000-D20B does not have a physical EEPROM, the Falcon SOC emulates an EEPROM by exposing it on the I2C interface as required by the SFF-8472 specification.
On the I2C interface there will be two memories of 256 bytes each at the addresses `1010000X (A0h)` and `1010001X (A2h)`.
@@ -207,7 +206,7 @@ The Zyxel PMG3000-D20B stores the content of the emulated EEPROM1 (A2h) in `/tmp
{% include alert.html content="The contents of EEPROM0 (A0h) are not stored anywhere and is regenerated at each boot" alert="Info" icon="svg-info" color="blue" %}
-### EEPROM0 layout
+## EEPROM0 layout
| address | size | name | default value | description |
| ------- | ---- | --------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
@@ -247,31 +246,31 @@ The Zyxel PMG3000-D20B stores the content of the emulated EEPROM1 (A2h) in `/tmp
| 96-127 | 32 | Vendor data | `0x20 0x20 0x20...` (Not used) | Vendor specifc data (ASCII) |
| 128-255 | 128 | Reserved | `0x00 0x00 0x00...` | Reserved |
-### EEPROM1 layout
+## EEPROM1 layout
| address | size | name | default value | description |
| ------- | ---- | --------------------------------- | ------------------------------------ | ----------------------------------------------------------- |
| | | **DIAGNOSTIC AND CONTROL FIELDS** | | |
-| 0-1 | 2 | Temp High Alarm | `0x64 0x00` (100℃) | |
-| 2-3 | 2 | Temp Low Alarm | `0xCE 0x00` (-50℃) | |
-| 4-5 | 2 | Temp High Warning | `0x55 0x00` (85℃) | |
-| 6-7 | 2 | Temp Low Warning | `0xD8 0x00` (-40℃) | |
-| 8-9 | 2 | Voltage High Alarm | `0x8C 0xA0` (3.6V) | |
-| 10-11 | 2 | Voltage Low Alarm | `0x75 0x30` (3.0V) | |
-| 12-13 | 2 | Voltage High Warning | `0x88 0xB8` (3.5V) | |
-| 14-15 | 2 | Voltage Low Warning | `0x79 0x18` (3.1V) | |
-| 16-17 | 2 | Bias High Alarm | `0xAF 0xC8` (90mA) | |
-| 18-19 | 2 | Bias Low Alarm | `0x00 0x00` (0mA) | |
-| 20-21 | 2 | Bias High Warning | `0x88 0xB8` (70mA) | |
-| 22-23 | 2 | Bias Low Warning | `0x00 0x00` (0mA) | |
-| 24-25 | 2 | TX Power High Alarm | `0x7B 0x86` (5dBm) | Value expressed in watts subunits |
-| 26-27 | 2 | TX Power Low Alarm | `0x27 0x10` (0dBm) | Value expressed in watts subunits |
-| 28-29 | 2 | TX Power High Warning | `0x6E 0x17` (4dBm) | Value expressed in watts subunits |
-| 30-31 | 2 | TX Power Low Warning | `0x2B 0xD4` (0.1dBm) | Value expressed in watts subunits |
-| 32-33 | 2 | RX Power High Alarm | `0x07 0xCB` (-7dBm) | Value expressed in watts subunits |
-| 34-35 | 2 | RX Power Low Alarm | `0x00 0x0F` (-28dBm) | Value expressed in watts subunits |
-| 36-37 | 2 | RX Power High Warning | `0x06 0x30` (-8dBm) | Value expressed in watts subunits |
-| 38-39 | 2 | RX Power Low Warning | `0x00 0x14` (-27dBm) | Value expressed in watts subunits |
+| 0-1 | 2 | Temp High Alarm | `0x64 0x00` (100℃) | Value expressed in two's complement |
+| 2-3 | 2 | Temp Low Alarm | `0xCE 0x00` (-50℃) | Value expressed in two's complement |
+| 4-5 | 2 | Temp High Warning | `0x55 0x00` (85℃) | Value expressed in two's complement |
+| 6-7 | 2 | Temp Low Warning | `0xD8 0x00` (-40℃) | Value expressed in two's complement |
+| 8-9 | 2 | Voltage High Alarm | `0x8C 0xA0` (3.6V) | Value expressed in volt subunits[^subunit] |
+| 10-11 | 2 | Voltage Low Alarm | `0x75 0x30` (3.0V) | Value expressed in volt subunits[^subunit] |
+| 12-13 | 2 | Voltage High Warning | `0x88 0xB8` (3.5V) | Value expressed in volt subunits[^subunit] |
+| 14-15 | 2 | Voltage Low Warning | `0x79 0x18` (3.1V) | Value expressed in volt subunits[^subunit] |
+| 16-17 | 2 | Bias High Alarm | `0xAF 0xC8` (90mA) | Value expressed in milliampere subunits[^subunit] |
+| 18-19 | 2 | Bias Low Alarm | `0x00 0x00` (0mA) | Value expressed in milliampere subunits[^subunit] |
+| 20-21 | 2 | Bias High Warning | `0x88 0xB8` (70mA) | Value expressed in milliampere subunits[^subunit] |
+| 22-23 | 2 | Bias Low Warning | `0x00 0x00` (0mA) | Value expressed in milliampere subunits[^subunit] |
+| 24-25 | 2 | TX Power High Alarm | `0x7B 0x86` (5dBm) | Value expressed in watts subunits[^subunit] |
+| 26-27 | 2 | TX Power Low Alarm | `0x27 0x10` (0dBm) | Value expressed in watts subunits[^subunit] |
+| 28-29 | 2 | TX Power High Warning | `0x6E 0x17` (4dBm) | Value expressed in watts subunits[^subunit] |
+| 30-31 | 2 | TX Power Low Warning | `0x2B 0xD4` (0.1dBm) | Value expressed in watts subunits[^subunit] |
+| 32-33 | 2 | RX Power High Alarm | `0x07 0xCB` (-7dBm) | Value expressed in watts subunits[^subunit] |
+| 34-35 | 2 | RX Power Low Alarm | `0x00 0x0F` (-28dBm) | Value expressed in watts subunits[^subunit] |
+| 36-37 | 2 | RX Power High Warning | `0x06 0x30` (-8dBm) | Value expressed in watts subunits[^subunit] |
+| 38-39 | 2 | RX Power Low Warning | `0x00 0x14` (-27dBm) | Value expressed in watts subunits[^subunit] |
| 40-55 | 16 | Reserved | `0x00 0x00 0x00...` | Contains the mac address of the SFP, it could also be empty |
| 56-59 | 4 | RX_PWR(4) Calibration | `0x00 0x00 0x00 0x00` | 4th order RSSI calibration coefficient |
| 60-63 | 4 | RX_PWR(3) Calibration | `0x00 0x00 0x00 0x00` | 3rd order RSSI calibration coefficient |
@@ -301,10 +300,10 @@ The Zyxel PMG3000-D20B stores the content of the emulated EEPROM1 (A2h) in `/tmp
| 106-109 | 4 | Optional Diagnostics | `0x00 0x00 0x00 0x00` (No support) | Monitor Data for Optional Laser temperature and TEC current |
| 110 | 1 | Status/Control | `0x02` (Digital RX LOS) | Optional Status and Control Bits |
| 111 | 1 | Reserved | `0x00` | Reserved |
-| 112-113 | 2 | Alarm Flags | `0x01 0x40` | Diagnostic Alarm Flag Status Bits |
+| 112-113 | 2 | Alarm Flags | Supported | Diagnostic Alarm Flag Status Bits |
| 114 | 1 | Tx Input EQ control | `0x00` (No support) | Tx Input equalization level control |
| 115 | 1 | Rx Out Emphasis control | `0x00` (No support) | Rx Output emphasis level control |
-| 116-117 | 2 | Warning Flags | `0x01 0x40` | Diagnostic Warning Flag Status Bits |
+| 116-117 | 2 | Warning Flags | Supported | Diagnostic Warning Flag Status Bits |
| 118-119 | 2 | Ext Status/Control | `0x00 0x00` (No support) | Extended module control and status bytes |
| | | **GENERAL USE FIELDS** | | |
| 120-126 | 7 | Vendor Specific | `0x00 0x00 0x00 0x00 0x00 0x00 0x00` | Vendor specific memory addresses |