Skip to content

RMII 100M support#43

Merged
deadprogram merged 18 commits intomainfrom
rmii3
Feb 25, 2026
Merged

RMII 100M support#43
deadprogram merged 18 commits intomainfrom
rmii3

Conversation

@soypat
Copy link
Collaborator

@soypat soypat commented Jan 25, 2026

So last byte is processed weirdly, but rest of frame is transmitted via loopback correctly! We have working RMII in TinyGo!

 tinygo flash -target=pico -monitor -scheduler=tasks .
Connected to /dev/ttyACM0. Press Ctrl-C to exit.
=== RMII Loopback Test ===
PHY addr: 1 id: 7 49393 bmsr: 0x0000780d bmcr: 0x00002100
forced linkmode  100M-F
waiting for link...
.link up!
rx: got frame length  24
  MATCH: all bytes sent also received identically! length match: true
rx: got frame length  24
  MATCH: all bytes sent also received identically! length match: true
rx: got frame length  24
  MATCH: all bytes sent also received identically! length match: true
rx: got frame length  24
  MATCH: all bytes sent also received identically! length match: true
rx: got frame length  24
  mismatch, first 24 bytes
rx: 255 255 255 255 255 255 2 0 0 0 0 1 136 181 115 61 0 0 0 5 78 54 246 219 
tx: 255 255 255 255 255 255 2 0 0 0 0 1 136 181 115 61 0 0 0 5 78 54 246 243 
rx: got frame length  24
  MATCH: all bytes sent also received identically! length match: true
rx: got frame length  24
  mismatch, first 24 bytes
rx: 255 255 255 255 255 255 2 0 0 0 0 1 136 181 115 61 0 0 0 7 160 56 151 31 
tx: 255 255 255 255 255 255 2 0 0 0 0 1 136 181 115 61 0 0 0 7 160 56 151 223 
rx: got frame length  24
  MATCH: all bytes sent also received identically! length match: true
rx: got frame length  24
  MATCH: all bytes sent also received identically! length match: true
rx: got frame length  24
  MATCH: all bytes sent also received identically! length match: true
rx: got frame length  24
  MATCH: all bytes sent also received identically! length match: true

@soypat soypat mentioned this pull request Jan 25, 2026
@soypat soypat changed the title RMII try 3 RMII 100M support Jan 25, 2026
@deadprogram
Copy link
Member

Is there a specific reason the examples/_rmii directory is named with an underscore?

@soypat
Copy link
Collaborator Author

soypat commented Feb 5, 2026

Is there a specific reason the examples/_rmii directory is named with an underscore?

To exclude it from the Go build system at the top module level. This prevents lneto appearing as a dependency of the pio package. Is there a better way?

Will address the rest of your comments in time. Still trying to figure out a way to go from 8% to ~0% packet loss regarding the PIO program comments

@soypat
Copy link
Collaborator Author

soypat commented Feb 22, 2026

This is working!

@deadprogram
Copy link
Member

I will give this a more serious review now. Getting exciting!

var err error
time.Sleep(2 * time.Second)
println("=== RMII Loopback Test ===")
// var mdio MDIOBitBang
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commented lines?

@deadprogram
Copy link
Member

Amazing work here @soypat 🎆

Now squash/merging!

@deadprogram deadprogram merged commit bc51260 into main Feb 25, 2026
1 check passed
@deadprogram deadprogram deleted the rmii3 branch February 25, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants