54 static bool initialise(
const void* dtb);
55 static bool initialiseAcpi(uint64_t rsdpPhysical,
57 size_t memoryMapCount);
63 static bool pciTranslate(uint64_t address, uint64_t size,
bool io, uint64_t& physical);
64 static uint32_t pciInterrupt(uint8_t bus, uint8_t device, uint8_t function, uint8_t pin);
66 static bool pciMsiDeviceId(uint8_t bus, uint8_t device, uint8_t function, uint32_t&
id);
69 static uint32_t uartIrq();
70 static uintptr_t rtcBase();
71 static uint32_t gicVersion();
72 static uintptr_t gicDistributorBase();
73 static uintptr_t gicCpuBase();
74 static uintptr_t gicRedistributorBase();
75 static uint64_t gicRedistributorPhysical();
76 static uint32_t physicalTimerIrq();
77 static uint32_t virtualTimerIrq();
78 static bool psciAvailable();
79 static bool psciUsesHvc();
80 static bool initrd(uint64_t& start, uint64_t& end);
81 static const char* bootargs();
82 static size_t blobSize();
87extern "C" bool virtGetVirtioMmio(
size_t index, uint64_t* base, uint64_t* size, uint32_t* irq);