Skip to content

mepa: optional config-driven SerDes EQ (host_tx_eq) via the mainstream API - #11

Open
vjardin wants to merge 1 commit into
microchip-ung:masterfrom
vjardin:mepa-host-tx-eq-override
Open

mepa: optional config-driven SerDes EQ (host_tx_eq) via the mainstream API#11
vjardin wants to merge 1 commit into
microchip-ung:masterfrom
vjardin:mepa-host-tx-eq-override

Conversation

@vjardin

@vjardin vjardin commented Jun 22, 2026

Copy link
Copy Markdown

Add an optional host_tx_eq block to mepa_conf_t so a board can pin its SerDes equalizer from the conf JSON and have it applied at Dev conf.

The block carries the full scope of lan80xx_phy_tx_rx_equalization_set():

  • side (is_line),
  • direction (eq_dir TX/RX/both),
  • the TX amplitude (amp_code 0..101) + FFE (tx_tap_dly/tx_tap_adv),
  • the RX VGA/CTLE/DFE coefficients.

Note: it is a port of microchip-ung/sw-mepa#14 to mesa.

@vjardin

vjardin commented Jun 22, 2026

Copy link
Copy Markdown
Author

please, , @Praveen-Kumar-S-Mchp , can you consider this commit instead ?

vjardin added a commit to vjardin/mesa that referenced this pull request Jul 6, 2026
…m API

Add an optional host_tx_eq block to mepa_conf_t so a board can pin its SerDes
equalizer from the conf JSON and have it applied at Dev conf.

The block carries the full scope of lan80xx_phy_tx_rx_equalization_set():
  - side (is_line),
  - direction (eq_dir TX/RX/both),
  - the TX amplitude (amp_code 0..101) + FFE (tx_tap_dly/tx_tap_adv),
  - the RX VGA/CTLE/DFE coefficients.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung#11
  microchip-ung/sw-mepa#14
@vjardin
vjardin force-pushed the mepa-host-tx-eq-override branch from ee71f52 to 4451074 Compare July 6, 2026 16:15
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 7, 2026
…m API

Add an optional host_tx_eq block to mepa_conf_t so a board can pin its SerDes
equalizer from the conf JSON and have it applied at Dev conf.

The block carries the full scope of lan80xx_phy_tx_rx_equalization_set():
  - side (is_line),
  - direction (eq_dir TX/RX/both),
  - the TX amplitude (amp_code 0..101) + FFE (tx_tap_dly/tx_tap_adv),
  - the RX VGA/CTLE/DFE coefficients.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung#11
  microchip-ung/sw-mepa#14

integration (vj_integration_allPR):
  cherry-picked from: mepa-host-tx-eq-override @ 4451074
  pull request: microchip-ung#11
  pull request: microchip-ung/sw-mepa#14
@HoratiuVultur

Copy link
Copy Markdown
Contributor

Hi,

I am not 100% that this is the way to go forward with this. Why can't you use lan80xx_phy_tx_rx_equalization_set?
Or set with a different command?

Thanks,
/Horatiu

@vjardin

vjardin commented Jul 7, 2026

Copy link
Copy Markdown
Author

We would like to handle it using some json settings.

…m API

Add an optional host_tx_eq block to mepa_conf_t so a board can pin its SerDes
equalizer from the conf JSON and have it applied at Dev conf.

The block carries the full scope of lan80xx_phy_tx_rx_equalization_set():
  - side (is_line),
  - direction (eq_dir TX/RX/both),
  - the TX amplitude (amp_code 0..101) + FFE (tx_tap_dly/tx_tap_adv),
  - the RX VGA/CTLE/DFE coefficients.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung#11
  microchip-ung/sw-mepa#14
status: sw-mepa PR microchip-ung#14 closed 2026-07-03 by Microchip (HoratiuVultur):
  "as this PR was moved to mesa, we can close it" -- review continues
  on mesa PR microchip-ung#11.
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 7, 2026
Support the MEPA PHYs (LAN80xx) without a switch instance.

It can be used with 2 modes: either thru direct access to a
/dev/spidev or thru a proxy that centralize the access to
the /dev/spidev in order to support many users of the
same MEPA PHY.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung/sw-mepa#11 (sw-mepa original)
  microchip-ung#17
status: sw-mepa PR microchip-ung#11 closed 2026-07-03 by Microchip (HoratiuVultur):
  "a PR in MESA was open for this, I will add my comments there" --
  review continues on mesa PR microchip-ung#17.
@vjardin
vjardin force-pushed the mepa-host-tx-eq-override branch from 4451074 to cd86ed1 Compare July 7, 2026 11:21
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 7, 2026
…m API

Add an optional host_tx_eq block to mepa_conf_t so a board can pin its SerDes
equalizer from the conf JSON and have it applied at Dev conf.

The block carries the full scope of lan80xx_phy_tx_rx_equalization_set():
  - side (is_line),
  - direction (eq_dir TX/RX/both),
  - the TX amplitude (amp_code 0..101) + FFE (tx_tap_dly/tx_tap_adv),
  - the RX VGA/CTLE/DFE coefficients.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung#11
  microchip-ung/sw-mepa#14
status: sw-mepa PR microchip-ung#14 closed 2026-07-03 by Microchip (HoratiuVultur):
  "as this PR was moved to mesa, we can close it" -- review continues
  on mesa PR microchip-ung#11.

integration (vj_integration_allPR):
  cherry-picked from: mepa-host-tx-eq-override @ cd86ed1
  pull request: microchip-ung#11 (open)
  pull request: microchip-ung/sw-mepa#14 (closed 2026-07-03)
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 7, 2026
Support the MEPA PHYs (LAN80xx) without a switch instance.

It can be used with 2 modes: either thru direct access to a
/dev/spidev or thru a proxy that centralize the access to
the /dev/spidev in order to support many users of the
same MEPA PHY.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung/sw-mepa#11 (sw-mepa original)
  microchip-ung#17
status: sw-mepa PR microchip-ung#11 closed 2026-07-03 by Microchip (HoratiuVultur):
  "a PR in MESA was open for this, I will add my comments there" --
  review continues on mesa PR microchip-ung#17.

integration (vj_integration_allPR):
  cherry-picked from: vj_shared_phy_only @ 61df500
  pull request: microchip-ung#17 (open)
  pull request: microchip-ung/sw-mepa#11 (closed 2026-07-03)
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 7, 2026
…m API

Add an optional host_tx_eq block to mepa_conf_t so a board can pin its SerDes
equalizer from the conf JSON and have it applied at Dev conf.

The block carries the full scope of lan80xx_phy_tx_rx_equalization_set():
  - side (is_line),
  - direction (eq_dir TX/RX/both),
  - the TX amplitude (amp_code 0..101) + FFE (tx_tap_dly/tx_tap_adv),
  - the RX VGA/CTLE/DFE coefficients.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung#11
  microchip-ung/sw-mepa#14
status: sw-mepa PR microchip-ung#14 closed 2026-07-03 by Microchip (HoratiuVultur):
  "as this PR was moved to mesa, we can close it" -- review continues
  on mesa PR microchip-ung#11.

integration (vj_integration_allPR):
  cherry-picked from: mepa-host-tx-eq-override @ cd86ed1
  pull request: microchip-ung#11 (open)
  pull request: microchip-ung/sw-mepa#14 (closed 2026-07-03)
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 7, 2026
Support the MEPA PHYs (LAN80xx) without a switch instance.

It can be used with 2 modes: either thru direct access to a
/dev/spidev or thru a proxy that centralize the access to
the /dev/spidev in order to support many users of the
same MEPA PHY.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung/sw-mepa#11 (sw-mepa original)
  microchip-ung#17
status: sw-mepa PR microchip-ung#11 closed 2026-07-03 by Microchip (HoratiuVultur):
  "a PR in MESA was open for this, I will add my comments there" --
  review continues on mesa PR microchip-ung#17.

integration (vj_integration_allPR):
  cherry-picked from: vj_shared_phy_only @ 61df500
  pull request: microchip-ung#17 (open)
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 7, 2026
…m API

Add an optional host_tx_eq block to mepa_conf_t so a board can pin its SerDes
equalizer from the conf JSON and have it applied at Dev conf.

The block carries the full scope of lan80xx_phy_tx_rx_equalization_set():
  - side (is_line),
  - direction (eq_dir TX/RX/both),
  - the TX amplitude (amp_code 0..101) + FFE (tx_tap_dly/tx_tap_adv),
  - the RX VGA/CTLE/DFE coefficients.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung#11
  microchip-ung/sw-mepa#14
status: sw-mepa PR microchip-ung#14 closed 2026-07-03 by Microchip (HoratiuVultur):
  "as this PR was moved to mesa, we can close it" -- review continues
  on mesa PR microchip-ung#11.

integration (vj_integration_allPR):
  cherry-picked from: mepa-host-tx-eq-override @ cd86ed1
  pull request: microchip-ung#11 (open)
  pull request: microchip-ung/sw-mepa#14 (closed 2026-07-03)
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 7, 2026
Support the MEPA PHYs (LAN80xx) without a switch instance.

It can be used with 2 modes: either thru direct access to a
/dev/spidev or thru a proxy that centralize the access to
the /dev/spidev in order to support many users of the
same MEPA PHY.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung/sw-mepa#11 (sw-mepa original)
  microchip-ung#17
status: sw-mepa PR microchip-ung#11 closed 2026-07-03 by Microchip (HoratiuVultur):
  "a PR in MESA was open for this, I will add my comments there" --
  review continues on mesa PR microchip-ung#17.

integration (vj_integration_allPR):
  cherry-picked from: vj_shared_phy_only @ 61df500
  pull request: microchip-ung#17 (open)
  pull request: microchip-ung/sw-mepa#11 (closed 2026-07-03)
@HoratiuVultur

Copy link
Copy Markdown
Contributor

The json is used for testing. I don't recommend it using for other things.

vjardin added a commit to vjardin/mesa that referenced this pull request Jul 8, 2026
…m API

Add an optional host_tx_eq block to mepa_conf_t so a board can pin its SerDes
equalizer from the conf JSON and have it applied at Dev conf.

The block carries the full scope of lan80xx_phy_tx_rx_equalization_set():
  - side (is_line),
  - direction (eq_dir TX/RX/both),
  - the TX amplitude (amp_code 0..101) + FFE (tx_tap_dly/tx_tap_adv),
  - the RX VGA/CTLE/DFE coefficients.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung#11
  microchip-ung/sw-mepa#14
status: sw-mepa PR microchip-ung#14 closed 2026-07-03 by Microchip (HoratiuVultur):
  "as this PR was moved to mesa, we can close it" -- review continues
  on mesa PR microchip-ung#11.

integration (vj_integration_allPR):
  cherry-picked from: mepa-host-tx-eq-override @ cd86ed1
  pull request: microchip-ung#11 (open)
  pull request: microchip-ung/sw-mepa#14 (closed 2026-07-03)
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 8, 2026
Support the MEPA PHYs (LAN80xx) without a switch instance.

It can be used with 2 modes: either thru direct access to a
/dev/spidev or thru a proxy that centralize the access to
the /dev/spidev in order to support many users of the
same MEPA PHY.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung/sw-mepa#11 (sw-mepa original)
  microchip-ung#17
status: sw-mepa PR microchip-ung#11 closed 2026-07-03 by Microchip (HoratiuVultur):
  "a PR in MESA was open for this, I will add my comments there" --
  review continues on mesa PR microchip-ung#17.

integration (vj_integration_allPR):
  cherry-picked from: vj_shared_phy_only @ 61df500
  pull request: microchip-ung#17 (open)
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 9, 2026
Support the MEPA PHYs (LAN80xx) without a switch instance.

It can be used with 2 modes: either thru direct access to a
/dev/spidev or thru a proxy that centralize the access to
the /dev/spidev in order to support many users of the
same MEPA PHY.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung/sw-mepa#11 (sw-mepa original)
  microchip-ung#17
status: sw-mepa PR microchip-ung#11 closed 2026-07-03 by Microchip (HoratiuVultur):
  "a PR in MESA was open for this, I will add my comments there" --
  review continues on mesa PR microchip-ung#17.
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 9, 2026
Support the MEPA PHYs (LAN80xx) without a switch instance.

It can be used with 2 modes: either thru direct access to a
/dev/spidev or thru a proxy that centralize the access to
the /dev/spidev in order to support many users of the
same MEPA PHY.

Fake few models for the purposes of this phy-only case: the board
conf answers select the EDS2 board (pcb 0x8385) with the LAN8814
plugin module in slot A, so the board comes up with 4 ports (base
port 0) matching the '-P' PHY slot router.

It was tested with a LAN8024 target.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung/sw-mepa#11 (sw-mepa original)
  microchip-ung#17
status: sw-mepa PR microchip-ung#11 closed 2026-07-03 by Microchip (HoratiuVultur):
  "a PR in MESA was open for this, I will add my comments there" --
  review continues on mesa PR microchip-ung#17.
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 9, 2026
…m API

Add an optional host_tx_eq block to mepa_conf_t so a board can pin its SerDes
equalizer from the conf JSON and have it applied at Dev conf.

The block carries the full scope of lan80xx_phy_tx_rx_equalization_set():
  - side (is_line),
  - direction (eq_dir TX/RX/both),
  - the TX amplitude (amp_code 0..101) + FFE (tx_tap_dly/tx_tap_adv),
  - the RX VGA/CTLE/DFE coefficients.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung#11
  microchip-ung/sw-mepa#14
status: sw-mepa PR microchip-ung#14 closed 2026-07-03 by Microchip (HoratiuVultur):
  "as this PR was moved to mesa, we can close it" -- review continues
  on mesa PR microchip-ung#11.

integration (vj_integration_allPR):
  cherry-picked from: mepa-host-tx-eq-override @ cd86ed1
  pull request: microchip-ung#11 (open)
  pull request: microchip-ung/sw-mepa#14 (closed 2026-07-03)
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 9, 2026
Support the MEPA PHYs (LAN80xx) without a switch instance.

It can be used with 2 modes: either thru direct access to a
/dev/spidev or thru a proxy that centralize the access to
the /dev/spidev in order to support many users of the
same MEPA PHY.

Fake few models for the purposes of this phy-only case: the board
conf answers select the EDS2 board (pcb 0x8385) with the LAN8814
plugin module in slot A, so the board comes up with 4 ports (base
port 0) matching the '-P' PHY slot router.

It was tested with a LAN8024 target.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung/sw-mepa#11 (sw-mepa original)
  microchip-ung#17
status: sw-mepa PR microchip-ung#11 closed 2026-07-03 by Microchip (HoratiuVultur):
  "a PR in MESA was open for this, I will add my comments there" --
  review continues on mesa PR microchip-ung#17.

integration (vj_integration_allPR):
  cherry-picked from: vj_shared_phy_only @ 42ad66e
  pull request: microchip-ung#17 (open; also the
    first commit of PR microchip-ung#21's stack)
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 9, 2026
…m API

Add an optional host_tx_eq block to mepa_conf_t so a board can pin its SerDes
equalizer from the conf JSON and have it applied at Dev conf.

The block carries the full scope of lan80xx_phy_tx_rx_equalization_set():
  - side (is_line),
  - direction (eq_dir TX/RX/both),
  - the TX amplitude (amp_code 0..101) + FFE (tx_tap_dly/tx_tap_adv),
  - the RX VGA/CTLE/DFE coefficients.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung#11
  microchip-ung/sw-mepa#14
status: sw-mepa PR microchip-ung#14 closed 2026-07-03 by Microchip (HoratiuVultur):
  "as this PR was moved to mesa, we can close it" -- review continues
  on mesa PR microchip-ung#11.

integration (vj_integration_allPR):
  cherry-picked from: mepa-host-tx-eq-override @ cd86ed1
  pull request: microchip-ung#11 (open)
  pull request: microchip-ung/sw-mepa#14 (closed 2026-07-03)
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 9, 2026
Support the MEPA PHYs (LAN80xx) without a switch instance.

It can be used with 2 modes: either thru direct access to a
/dev/spidev or thru a proxy that centralize the access to
the /dev/spidev in order to support many users of the
same MEPA PHY.

Fake few models for the purposes of this phy-only case: the board
conf answers select the EDS2 board (pcb 0x8385) with the LAN8814
plugin module in slot A, so the board comes up with 4 ports (base
port 0) matching the '-P' PHY slot router.

It was tested with a LAN8024 target.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung/sw-mepa#11 (sw-mepa original)
  microchip-ung#17
status: sw-mepa PR microchip-ung#11 closed 2026-07-03 by Microchip (HoratiuVultur):
  "a PR in MESA was open for this, I will add my comments there" --
  review continues on mesa PR microchip-ung#17.

integration (vj_integration_allPR):
  cherry-picked from: vj_shared_phy_only @ 42ad66e
  pull request: microchip-ung#17 (open; also the
    first commit of PR microchip-ung#21's stack)
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 9, 2026
Support the MEPA PHYs (LAN80xx) without a switch instance.

It can be used with 2 modes:
  - either thru direct access to a /dev/spidev,
  - thru a proxy that centralize the access to the /dev/spidev
    in order to support many users of the same MEPA PHY.

It runs with '-P <spidev|proxy:sock>'.
It was tested with a LAN8024 target.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung/sw-mepa#11 (sw-mepa original)
  microchip-ung#17
status: sw-mepa PR microchip-ung#11 closed 2026-07-03 by Microchip (HoratiuVultur):
  "a PR in MESA was open for this, I will add my comments there" --
  review continues on mesa PR microchip-ung#17.
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 9, 2026
…m API

Add an optional host_tx_eq block to mepa_conf_t so a board can pin its SerDes
equalizer from the conf JSON and have it applied at Dev conf.

The block carries the full scope of lan80xx_phy_tx_rx_equalization_set():
  - side (is_line),
  - direction (eq_dir TX/RX/both),
  - the TX amplitude (amp_code 0..101) + FFE (tx_tap_dly/tx_tap_adv),
  - the RX VGA/CTLE/DFE coefficients.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung#11
  microchip-ung/sw-mepa#14
status: sw-mepa PR microchip-ung#14 closed 2026-07-03 by Microchip (HoratiuVultur):
  "as this PR was moved to mesa, we can close it" -- review continues
  on mesa PR microchip-ung#11.

integration (vj_integration_allPR):
  cherry-picked from: mepa-host-tx-eq-override @ cd86ed1
  pull request: microchip-ung#11 (open)
  pull request: microchip-ung/sw-mepa#14 (closed 2026-07-03)
vjardin added a commit to vjardin/mesa that referenced this pull request Jul 9, 2026
Support the MEPA PHYs (LAN80xx) without a switch instance.

It can be used with 2 modes:
  - either thru direct access to a /dev/spidev,
  - thru a proxy that centralize the access to the /dev/spidev
    in order to support many users of the same MEPA PHY.

It runs with '-P <spidev|proxy:sock>'.
It was tested with a LAN8024 target.

Signed-off-by: Vincent Jardin <vjardin@free.fr>

---
misc information:
pushed to:
  microchip-ung/sw-mepa#11 (sw-mepa original)
  microchip-ung#17
status: sw-mepa PR microchip-ung#11 closed 2026-07-03 by Microchip (HoratiuVultur):
  "a PR in MESA was open for this, I will add my comments there" --
  review continues on mesa PR microchip-ung#17.

integration (vj_integration_allPR):
  cherry-picked from: vj_shared_phy_only @ 29f195e
  pull request: microchip-ung#17 (open)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants