Skip to content

Allocate MMIO ranges & GSIs #136

@andreeaflorescu

Description

@andreeaflorescu

Implement an abstraction for generating unique MMIO configurations (address ranges and interrupt numbers).

At the moment the vmm-reference only supports configuring one block device and one network device on the MMIO bus. Each of these devices have a predefined interrupt number and MMIO range assigned. As we add the RTC & Serial Console devices on the MMIO bus (for the aarch64 support) handling these in a static way becomes challenging. The legacy devices are typically using a fixed GSI for interrupts (i.e. serial port 1 uses GSI 4), and the static initialization is not allowing us to extend the vmm-reference to have more than one device type.

There were some discussions at some point to implement a SystemAllocator in rust-vmm. We should see what is the best way of upstreaming this functionality such that it can be reused by multiple VMMs. As a starting point, we can provide a POC in vmm-reference, and in parallel propose a new crate (or update vm-device).

The system allocator is also needed for adding PCI support.

(This issue should be moved to where we are going to implement the vm-allocator).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions