Skip to content

TEST-COMPAT-I225-001: Verify Intel I225 Controller Compatibility #260

Description

@zarfld

Test Case Information

Test ID: TEST-COMPAT-I225-001
Test Type: Hardware Compatibility Test
Priority: P0 (Critical - Core Hardware Support)
Test Level: Integration Test

Objective

Verify driver compatibility with Intel I225-V/LM/IT 2.5 GbE controllers, including hardware initialization, register access, PTP clock functionality, and performance validation.

Traceability

Test Scope

This test verifies:

  1. Hardware detection and initialization (I225-V, I225-LM, I225-IT)
  2. Register access (BAR0 memory mapping)
  3. PTP clock functionality (SYSTIM, TSAUXC)
  4. 2.5 GbE performance validation
  5. Firmware compatibility (NVM versions)

Preconditions

  • Hardware: Intel I225-V/LM/IT NIC installed
  • Driver: IntelAvbFilter.sys loaded
  • Firmware: Latest NVM version (check with Intel drivers)

Test Steps

Setup

  1. Identify I225 controller:
    Get-PnpDevice | Where-Object {$_.FriendlyName -like "*I225*"}
    # Expected: Device ID VEN_8086&DEV_15F2 (I225-V)
    #           Device ID VEN_8086&DEV_15F3 (I225-LM)
    #           Device ID VEN_8086&DEV_0D9F (I225-IT)

Execution

Test 1: Hardware Detection

  1. Verify PCI device enumeration:
    # PowerShell
    Get-PnpDevice -InstanceId "PCI\VEN_8086&DEV_15F2*"
  2. Expected:
    • Status: OK
    • Driver: IntelAvbFilter.sys
    • Device ID: 0x15F2 (I225-V) or 0x15F3 (I225-LM) or 0x0D9F (I225-IT)

Test 2: BAR0 Register Access

  1. Test register read/write:
    // User-mode test via IOCTL
    UINT32 ctrl_reg;
    DeviceIoControl(hDevice, IOCTL_READ_REGISTER, 
                    &offset, sizeof(offset), 
                    &ctrl_reg, sizeof(ctrl_reg), ...);
  2. Verify CTRL register (offset 0x0000):
    • Read initial value
    • Write test pattern
    • Read back and verify
  3. Expected: Register access successful

Test 3: PTP Clock Initialization

  1. Read SYSTIM register:
    IOCTL_PHC_GET_TIME
  2. Verify TSAUXC configuration:
    • EN_CLK0 = 1 (clock output enabled)
    • ST0 = 1 (start pulse)
  3. Expected: PTP clock operational

Test 4: PTP Clock Accuracy

  1. Launch PTP clock:
    DeviceIoControl(hDevice, IOCTL_LAUNCH_TIME, ...);
  2. Measure clock drift over 1 hour:
    • Read SYSTIM every 60 seconds
    • Compare with system reference clock
  3. Expected: Drift <100 ns/hour

Test 5: 2.5 GbE Performance

  1. Configure link speed:
    Set-NetAdapterAdvancedProperty -Name "Intel I225" -DisplayName "Speed & Duplex" -DisplayValue "2.5 Gbps Full Duplex"
  2. Run throughput test:
    iperf3 -c <server_ip> -t 300
    # Expected: ~2.35 Gbps (2.5 GbE minus overhead)
  3. Expected: Throughput ≥2.3 Gbps

Test 6: Firmware Compatibility

  1. Check NVM version:
    ethtool -i eth0  # Linux equivalent on Windows
    # Or use Intel PROSet tools
  2. Test with multiple NVM versions:
    • NVM 3.x (2019-2020)
    • NVM 4.x (2021-2022)
    • Latest NVM (2023+)
  3. Expected: Driver works with all NVM versions

Test 7: I225 Variant Matrix

Variant Device ID Market Segment Test Result
I225-V 0x15F2 Consumer/Desktop
I225-LM 0x15F3 Enterprise Mobile
I225-IT 0x0D9F Industrial/IoT

Run all variants, verify driver loads and operates.

Test 8: Hardware Features

  1. Test I225-specific features:
    • Time Sync: PTP hardware timestamping
    • TSN: Time-Sensitive Networking (802.1Qav, 802.1AS)
    • EEE: Energy Efficient Ethernet
  2. Verify feature availability:
    IOCTL_GET_CAPABILITIES
  3. Expected: All features operational

Test 9: Stress Test

  1. Run 24-hour stress test:
    iperf3 -c <server_ip> -t 86400 -P 4  # 4 parallel streams
  2. Monitor for:
    • Link drops
    • Driver crashes
    • Memory leaks
  3. Expected: No failures, stable operation

Cleanup

  1. Stop stress tests
  2. Reset NIC to default settings

Expected Results

Pass Criteria

  • ✅ I225 variants detected (V, LM, IT)
  • ✅ BAR0 register access successful
  • ✅ PTP clock operational (drift <100 ns/hour)
  • ✅ 2.5 GbE throughput ≥2.3 Gbps
  • ✅ Firmware compatibility (all NVM versions)
  • ✅ 24-hour stress test: No crashes

Fail Criteria

  • ❌ Device not detected
  • ❌ Register access fails (BAR0 mapping error)
  • ❌ PTP clock non-functional
  • ❌ Throughput <2.0 Gbps
  • ❌ Firmware incompatibility (driver load failure)
  • ❌ Crashes during stress test

Test Environment

Hardware:

  • I225-V: PCIe 2.5 GbE NIC (consumer)
  • I225-LM: PCIe 2.5 GbE NIC (enterprise mobile)
  • I225-IT: PCIe 2.5 GbE NIC (industrial)

Software:

  • Windows 10/11
  • IntelAvbFilter.sys driver

Automation

Automation Status: Fully Automated

CI Integration:

# .github/workflows/i225-compatibility.yml
name: I225 Hardware Compatibility

on: [pull_request]

jobs:
  test-i225:
    runs-on: self-hosted-i225  # Runner with I225 hardware
    steps:
      - uses: actions/checkout@v4
      - name: Build driver
        run: msbuild IntelAvbFilter.sln /p:Configuration=Release
      - name: Install driver
        run: pnputil /add-driver IntelAvbFilter.inf /install
      - name: Verify I225 detected
        run: |
          $device = Get-PnpDevice | Where-Object {$_.FriendlyName -like "*I225*"}
          if (!$device) { exit 1 }
      - name: Test PTP clock
        run: ./avb_test_i225.exe
      - name: Run throughput test
        run: iperf3 -c ${{ secrets.PERF_SERVER_IP }} -t 60

Notes

  • I225 Errata: Check Intel specification updates for known hardware issues
  • NVM Updates: Keep firmware updated for optimal performance
  • TSN Support: I225 supports IEEE 802.1AS (gPTP), 802.1Qav (CBS)

References


Created: 2025-12-19
Status: Draft
Assigned To: Hardware Compatibility Team

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions