Skip to content

Conversation

@IanSeyler
Copy link
Member

This pull request makes multiple changes to the Intel 8259x NIC driver (src/drivers/net/i8259x.asm) and related system variables (src/sysvar.asm). The changes primarily focus on improving descriptor management, refining initialization processes, updating comments for clarity, and enhancing the functionality of polling and transmission. Below is a summary of the most important changes:

Descriptor Management Updates:

  • Added support for tracking RX tail (nt_rx_tail) in net_i8259x_init and updated descriptor tail management logic in net_i8259x_poll. This ensures proper handling of RX descriptors during packet reception. [1] [2]
  • Disabled advanced RX descriptors and updated RX descriptor ring setup to optimize performance and simplify configuration.

Initialization Refinements:

  • Added detailed comments to clarify flow control and initialization registers, referencing relevant sections of the hardware documentation (e.g., 4.6.3.2, 3.7.7.3.2).
  • Changed wait time during reset from 10ns to 10ms for compliance with hardware requirements.

Polling Enhancements:

  • Improved packet polling logic by verifying descriptor status and clearing it after reading. Added checks for errors and optimized descriptor updates for RX head and tail.

Code Cleanup and Comment Improvements:

  • Updated comments throughout the codebase for clarity, including specifying quick multiplications (e.g., shl eax, 15 for multiplying by 32768) and describing register usage during initialization and polling. [1] [2]
  • Removed redundant jumbo frame configuration and multicast enablement during initialization. These features are now handled separately for better modularity. [1] [2]

System Variable Adjustments:

  • Changed nt_rx_tail and nt_tx_head to 32-bit variables for more efficient descriptor tracking. Added new definitions for RX and TX tail/head in src/sysvar.asm.

@IanSeyler IanSeyler merged commit 16ce8f7 into master Jul 13, 2025
6 checks passed
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