# Minimal active device configuration example
# This demonstrates the simplest possible active device setup:
# - Single interrupt source (timer only)
# - Legacy interrupt mode
# - Minimal configuration

name: active_device_minimal
device_type: generic
device_class: consumer

identification:
  vendor_id: 0x1AF4  # Red Hat/Virtio
  device_id: 0x1000  # Virtio network device
  class_code: 0x020000
  revision_id: 0x00

registers:
  command: 0x0006      # Memory space enabled
  status: 0x0010       # Capabilities list present
  revision_id: 0x00
  cache_line_size: 0x10
  latency_timer: 0x00
  header_type: 0x00
  bist: 0x00

capabilities:
  max_payload_size: 128
  msi_vectors: 1
  msix_vectors: 0
  supports_msi: true
  supports_msix: false
  supports_power_management: false
  supports_advanced_error_reporting: false
  link_width: 1
  link_speed: "2.5GT/s"
  
  # Minimal active device configuration
  active_device:
    enabled: true
    timer_period: 1000000    # 1M cycles (slow periodic interrupt)
    timer_enable: true       # Only timer interrupts
    interrupt_mode: "msi"    # Simple MSI mode
    interrupt_vector: 0      # Single vector
    priority: 8              # Medium priority
    msi_vector_width: 0      # Single vector (2^0 = 1)
    msi_64bit_addr: false    # 32-bit addresses
    num_interrupt_sources: 1   # Timer only
    default_source_priority: 8
    
    # Additional parameters for template
    num_sources: 1
    device_id: "16'h1000"
    vendor_id: "16'h1AF4"
    completer_id: "16'h0100"
    default_priority: 8
    
    # MSI-X parameters (not used but required by template)
    num_msix: 0
    msix_table_bir: 0
    msix_table_offset: 0
    msix_pba_bir: 0
    msix_pba_offset: 0

custom_properties:
  description: "Minimal active device example with timer-only interrupts"
  use_case: "Simple periodic heartbeat or watchdog functionality"