[Denali] Reset AHCI controller when starting denali.

This commit is contained in:
Drew Galbraith 2023-12-07 22:33:29 -08:00
parent 8adde27d9b
commit c530921bda
8 changed files with 92 additions and 62 deletions

View file

@ -37,6 +37,10 @@ struct PciMsiCap {
uint16_t message_data;
} __attribute__((packed));
const uint32_t kGlobalHostControl_HW_Reset = 1;
const uint32_t kGlobalHostControl_AHCI_Enable = (1 << 31);
const uint32_t kGlobalHostControl_Interrupt_Enable = (1 << 1);
struct AhciHba {
uint32_t capabilities;
uint32_t global_host_control;
@ -51,6 +55,9 @@ struct AhciHba {
uint32_t bohc; // 0x28, BIOS/OS handoff control and status
} __attribute__((packed));
const uint32_t kCommand_FIS_Receive_Enable = (1 << 4);
const uint32_t kCommand_Start = 1;
struct AhciPort {
uint64_t command_list_base;
uint64_t fis_base;