Skip to main content

Module hwclass

Module hwclass 

Source
Expand description

Device classes a spawner can name in SpawnRequest::hw_flags. The kernel resolves the class to what its own bus scan found - a CLASS rather than an address, because the kernel keeps a permanent physical DMA reservation per device that a respawned driver must get back.

Constants§

AUDIO_PWM
An audio jack driven by PWM and fed by the SoC’s DMA engine (the Pis, docs/audio.md). The kernel routes the jack’s pins and starts the PWM clock as part of the grant, then maps the PWM block and the DMA engine side by side and grants a DMA arena.
BAR_AUTO
BAR index meaning “the first mapped MEMORY BAR” rather than a numbered one.
BY_CLASS
hw-enumerator’s which-device question: [BY_CLASS, class (3 bytes LE), PREFER_OWN], answered [bdf u32, class u32]. The supervisor asks it to choose a PCI driver’s device, which the kernel then grants by that BDF; hardware asks it again to say which device that driver holds. One definition, so the two cannot disagree. PREFER_OWN: the first device of the class that is not a display’s companion function, if there is one (the T630’s HDMI audio, docs/audio.md).
DWC2
EHCI
FRAMEBUFFER
NIC
NONE
PCI
Bit 31: the value is a PCI CLASS CODE, not one of the named kinds above.
PCI_CONFINE
Bit 28: place this device behind the IOMMU (§6.4).
PCI_IRQ
Bit 29: this driver wants an INTERRUPT. The kernel allocates a vector from its MSI pool and programs the device with it - the caller never names a vector, because routing one is authority (task::hw_irqs_for).
PREFER_OWN
TEST_IRQ
Not a device: the software-raised test interrupt (§22 IR1). A class, so that the probe which receives it names a CLASS like any driver and the kernel states the vector.
WIFI_SDIO
A WiFi radio on an SDIO host at a fixed SoC address (the Pi 4’s CYW43455 behind the Arasan, the VisionFive 2 Lite’s AIC8800 behind a DesignWare dw_mmc). The kernel grants the host’s window - and, where it can, the radio’s power control - to the service whose request names this kind, never to a service because of its name.
XHCI

Functions§

pci
Describe a PCI device by what the BUS says it is: the industry-standard 24-bit (class, subclass, prog-if) triple, plus which BAR holds its registers.
pci_irq
pci, for a driver that needs an INTERRUPT as well.