Skip to content

Fs55 ethernet integration#70

Merged
adybag14-cyber merged 2 commits intomainfrom
fs55-ethernet-integration
Mar 20, 2026
Merged

Fs55 ethernet integration#70
adybag14-cyber merged 2 commits intomainfrom
fs55-ethernet-integration

Conversation

@adybag14-cyber
Copy link
Owner

@adybag14-cyber adybag14-cyber commented Mar 20, 2026

Summary by CodeRabbit

Release Notes

  • New Features

    • Added E1000 network device support for ARP, IPv4, and UDP protocols with live QEMU validation
    • Added display capability queries for output and interface capability information
    • Extended display capability flags to include underscan, YCbCr 4:4:4, and YCbCr 4:2:2 support
  • Documentation

    • Updated validation test results (427/427 tests passing)
    • Expanded protocol support documentation for E1000 networking stack
  • Chores

    • Added CI automation for E1000 protocol probe testing
    • Enhanced bare-metal QEMU test infrastructure

@adybag14-cyber adybag14-cyber merged commit f8f7e00 into main Mar 20, 2026
16 checks passed
@coderabbitai
Copy link

coderabbitai bot commented Mar 20, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: ee5806b1-4eac-4860-bd4e-13d386f43e54

📥 Commits

Reviewing files that changed from the base of the PR and between 7e5319d and 7f6784f.

📒 Files selected for processing (19)
  • .github/workflows/release-preview.yml
  • .github/workflows/zig-ci.yml
  • README.md
  • build.zig
  • docs/zig-port/FS5_5_HARDWARE_DRIVERS_SYSTEMS.md
  • docs/zig-port/PHASE_CHECKLIST.md
  • docs/zig-port/PORT_PLAN.md
  • docs/zig-port/ZAR_VS_ZIGOS_E1000_SLICE_PLAN.md
  • scripts/baremetal-qemu-e1000-arp-probe-check.ps1
  • scripts/baremetal-qemu-e1000-ipv4-probe-check.ps1
  • scripts/baremetal-qemu-e1000-udp-probe-check.ps1
  • scripts/qemu-e1000-dgram-echo.ps1
  • src/baremetal/abi.zig
  • src/baremetal/edid.zig
  • src/baremetal/tool_exec.zig
  • src/baremetal/tool_service.zig
  • src/baremetal/tool_service/codec.zig
  • src/baremetal_main.zig
  • src/pal/net.zig

📝 Walkthrough

Walkthrough

This PR extends E1000 network device support with ARP, IPv4, and UDP protocol-specific probe tests, adds network backend selection and routing in the PAL layer, introduces display capability query commands backed by EDID-derived flags, and updates documentation and CI workflows to reflect the expanded feature coverage.

Changes

Cohort / File(s) Summary
E1000 Network Probe Scripts
scripts/baremetal-qemu-e1000-arp-probe-check.ps1, scripts/baremetal-qemu-e1000-ipv4-probe-check.ps1, scripts/baremetal-qemu-e1000-udp-probe-check.ps1
New PowerShell scripts that perform QEMU-based smoke tests for E1000 ARP, IPv4, and UDP protocol paths, each with build provisioning, artifact validation, UDP echo-helper coordination, and exit-code verification.
Network Backend Selection
src/pal/net.zig
Added Backend enum and selectBackend()/currentBackend() functions to enable runtime routing between RTL8139 and E1000 device drivers; expanded error types to cover both backends; refactored device init/reset/state/frame-send/receive to dispatch via active backend.
E1000 Probe Implementation
src/baremetal_main.zig
Implemented three new probe runner functions (runE1000ArpProbe, runE1000Ipv4Probe, runE1000UdpProbe) with error handling, timeout classification, strict packet parsing, and counter validation; added corresponding error types and failure-code mappers; extended display probe tests to verify capability response equality.
Build Configuration
build.zig
Added three new boolean build options (baremetal-e1000-arp-probe, baremetal-e1000-ipv4-probe, baremetal-e1000-udp-probe) wired into bare-metal module configuration.
Display Capability ABI
src/baremetal/abi.zig
Added three new exported capability bitmask constants: display_capability_underscan, display_capability_ycbcr444, and display_capability_ycbcr422.
EDID Capability Parsing
src/baremetal/edid.zig
Extended CEA extension parsing to conditionally set underscan, YCbCr 4:4:4, and YCbCr 4:2:2 capability bits based on block[3] flags; updated test sample to include new flags and added assertions for parsed bits.
Display Capability Query Tooling
src/baremetal/tool_exec.zig, src/baremetal/tool_service.zig, src/baremetal/tool_service/codec.zig
Added new display-output-capabilities and display-interface-capabilities commands and corresponding framed request/response handling with capability-bit formatting, index/interface resolution, and NotFound error paths; extended codec to parse new DISPLAY\* operation types.
Echo Helper Cleanup
scripts/qemu-e1000-dgram-echo.ps1
Removed EtherType (0x88B5) validation, allowing frames with any EtherType to be echoed without rejection.
CI/CD Workflows
.github/workflows/release-preview.yml, .github/workflows/zig-ci.yml
Added four new optional E1000 QEMU probe steps (general probe, ARP probe, IPv4 probe, UDP probe) executing corresponding PowerShell scripts before RTL8139-related probe steps.
Documentation & README
README.md, docs/zig-port/FS5_5_HARDWARE_DRIVERS_SYSTEMS.md, docs/zig-port/PHASE_CHECKLIST.md, docs/zig-port/PORT_PLAN.md, docs/zig-port/ZAR_VS_ZIGOS_E1000_SLICE_PLAN.md
Updated documentation to reflect E1000 protocol reuse scope (ARP/IPv4/UDP now delivered rather than future work), documented new backend selection via src/pal/net.zig, added display capability query layer descriptions, updated test pass counts (427/427 hosted, 404/1 skipped bare-metal), and repositioned TCP/HTTP/HTTPS as future depth.

Possibly related issues

Possibly related PRs

Poem

🐰 Hops through the Zig lanes with wireless cheer,
E1000 ARP packets loud and clear!
IPv4 datagrams dance, UDP beams fly,
Display caps query the HDMI sky,
Backend selection routes the way—
Clean-room networking saves the day!

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fs55-ethernet-integration

Comment @coderabbitai help to get the list of available commands and usage tips.

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.

1 participant