Skip to content

Conversation

jlaitine
Copy link
Contributor

Summary

This improves the functionality of the ksz9477 i2c controlled ethernet switch driver, by implementing manufacturer's recommended errata workarounds.

Impact

Impacts only using ksz9477. Fixes connection issues and random failures after boot/initialization.

Testing

Tested on a custom hardware, where ksz9477 is initialized by NuttX via I2C on an MFPS250T SoC, and connects to several etherenet devices on the same board.

jpaali and others added 3 commits August 26, 2025 09:47
From the ksz9477 errata, setup the configuration which is tested to work.

- Improve PHY receive performance
- Disable EEE for ports 1-5
- Fix supply current values

Signed-off-by: Jani Paalijarvi <jani.paalijarvi@unikie.com>
Instead of verifying MMD indirect access by checking
EEE ADVERTISEMENT register has value 0x6 (which may be changed),
the verification is done by write and check LED MODE register.
1. Backup current LED_MODE register value
2. Write value Single-LED mode (0x10) to LED_MODE
3. Read LED_MODE register and verify it returns value 0x10
4. Write original (backup) value to LED_MODE
@github-actions github-actions bot added Area: Networking Effects networking subsystem Size: M The size of the change in this PR is medium labels Aug 26, 2025
@acassis acassis merged commit e2b1d18 into apache:master Aug 26, 2025
39 checks passed
@jlaitine jlaitine deleted the drivers_net_ksz9477_fixes branch August 26, 2025 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Networking Effects networking subsystem Size: M The size of the change in this PR is medium
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants