AquilaOS documentation
How it works, and its code
Loading...
Searching...
No Matches
init.c File Reference

QEMU's virt machine: setting up its interrupt controller and its PCI Express host bridge. More...

#include <core/system.h>
#include <dev/pci.h>
#include <platform/virt.h>

Go to the source code of this file.

Functions

int platform_init (void)

Variables

static struct pci_host virt_pci

Detailed Description

QEMU's virt machine: setting up its interrupt controller and its PCI Express host bridge.

Definition in file init.c.

Function Documentation

◆ platform_init()

int platform_init ( void )

Definition at line 31 of file init.c.

Variable Documentation

◆ virt_pci

struct pci_host virt_pci
static
Initial value:
= {
.name = "ecam",
.config = {.type = IOADDR_MMIO8, .addr = VIRT_PCIE_ECAM},
.size = 1 << 20,
.read = pci_ecam_read,
.write = pci_ecam_write,
.nirq = 4,
.mem_base = VIRT_PCIE_MMIO,
.mem_size = VIRT_PCIE_MMIO_SIZE,
.io_base = 0x1000,
.io_size = 0x10000 - 0x1000,
}
#define IOADDR_MMIO8
Definition io.h:90
void pci_ecam_write(struct pci_host *host, struct pci_dev *dev, uint16_t reg, uint32_t val)
Writes a 32-bit register of a function's configuration space.
Definition ecam.c:51
uint32_t pci_ecam_read(struct pci_host *host, struct pci_dev *dev, uint16_t reg)
Reads a 32-bit register of a function's configuration space.
Definition ecam.c:32
#define VIRT_PCIE_ECAM
Definition virt.h:20
#define VIRT_PCIE_IRQ
Definition virt.h:25
#define VIRT_PCIE_MMIO_SIZE
Definition virt.h:18
#define VIRT_PCIE_MMIO
Definition virt.h:17

Definition at line 14 of file init.c.

Referenced by platform_init().