From bfd269ee74d166be4f386640f8b5daad31d5d6ed Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Sun, 13 Sep 2026 19:28:03 -0400 Subject: Phase 4: Portable Architecture Implementation - Firmware Analyzer: Runtime firmware signature computation (CRC32, SHA256) and pattern-based RPC handler address discovery - Dynamic RPC Dispatcher: Version-aware dispatch with native firmware handlers (550/560/570/580) and emulation fallback - Hardware Architecture Layer: Turing, Ampere, Blackwell configs with BAR layouts, doorbell offsets, MSI-X vectors - Driver Version Adaptation Layer: Feature detection per driver version - Declarative YAML configs for hardware (turing/ampere/blackwell) and versions (550/560/570/580) - Kernel unit tests for GSP emulation (gsp_emulation_test.c) - Test infrastructure scripts (test_gsp_emu.sh, test_guest_driver.sh, test_cuda_workloads.sh, test_graphics_workloads.sh, test_windows_guest.sh, test_vgpu_stack.sh) - Updated kernel Makefile with new source files --- config/hardware/ampere.yaml | 104 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 config/hardware/ampere.yaml (limited to 'config/hardware/ampere.yaml') diff --git a/config/hardware/ampere.yaml b/config/hardware/ampere.yaml new file mode 100644 index 0000000..f2439f8 --- /dev/null +++ b/config/hardware/ampere.yaml @@ -0,0 +1,104 @@ +# Ampere Architecture Configuration (GA100, GA102, GA104) +architecture: + name: "ampere" + description: "NVIDIA Ampere architecture (RTX 30-series, A100, A30, A10)" + pci_vendor_id: 0x10DE + pci_device_ids: + - 0x20B0 # GA100 + - 0x20B1 + - 0x20B2 + - 0x20B3 + - 0x20B4 + - 0x20B5 + - 0x20B6 + - 0x20B7 + - 0x20B8 + - 0x20B9 + - 0x20BA + - 0x20BB + - 0x20BC + - 0x20BD + - 0x20BE + - 0x20BF + - 0x20C0 # GA102 + - 0x20C1 + - 0x20C2 + - 0x20C3 + - 0x20C4 + - 0x20C5 + - 0x20C6 + - 0x20C7 + - 0x20C8 + - 0x20C9 + - 0x20CA + - 0x20CB + - 0x20CC + - 0x20CD + - 0x20CE + - 0x20CF + - 0x20D0 # GA104 + - 0x20D1 + - 0x20D2 + - 0x20D3 + - 0x20D4 + - 0x20D5 + - 0x20D6 + - 0x20D7 + - 0x20D8 + - 0x20D9 + - 0x20DA + - 0x20DB + - 0x20DC + - 0x20DD + - 0x20DE + - 0x20DF + - 0x20E0 + - 0x20E1 + - 0x20E2 + - 0x20E3 + - 0x20E4 + - 0x20E5 + - 0x20E6 + - 0x20E7 + - 0x20E8 + - 0x20E9 + - 0x20EA + - 0x20EB + - 0x20EC + - 0x20ED + - 0x20EE + - 0x20EF + bar_layout: + bar0: + size_mb: 16 + type: "config" + description: "Control registers, doorbell, shared memory" + bar1: + size_mb: 512 + type: "vram" + description: "VRAM aperture" + bar2: + size_mb: 32 + type: "reserved" + description: "Reserved" + bar3: + size_mb: 32 + type: "reserved" + description: "Reserved" + gsp: + doorbell_offset: 0x110C00 + shared_mem_offset: 0x1000 + shared_mem_size_kb: 4 + firmware_version: "570.144W" + msix: + table_offset: 0x2000 + pba_offset: 0x3000 + vectors: 32 + limits: + max_vfs: 16 + vram_size_gb: 80 + page_size_kb: 4 + features: + mig: true + sriov: true + vgpu: true \ No newline at end of file -- cgit v1.2.3