diff --git a/src/add-ons/kernel/busses/mmc/sdhci_pci.cpp b/src/add-ons/kernel/busses/mmc/sdhci_pci.cpp index 2cc0fe4346..ccf1e3a4f6 100644 --- a/src/add-ons/kernel/busses/mmc/sdhci_pci.cpp +++ b/src/add-ons/kernel/busses/mmc/sdhci_pci.cpp @@ -65,9 +65,10 @@ sdhci_register_dump(uint8_t slot, struct registers* regs) TRACE("argument: %d\n", regs->argument); TRACE("transfer_mode: %d\n", regs->transfer_mode); TRACE("command: %d\n", regs->command); - TRACE("response: %d %d %d %d\n", regs->response0, regs->response2, - regs->response4, regs->response6); - TRACE("buffer_data_port: %d\n", regs->buffer_data_port); + TRACE("response:"); + for (int i = 0; i < 8; i++) + TRACE(" %d", regs->response[i]); + TRACE("\nbuffer_data_port: %d\n", regs->buffer_data_port); TRACE("present_state: %d\n", regs->present_state); TRACE("power_control: %d\n", regs->power_control); TRACE("host_control: %d\n", regs->host_control); @@ -80,14 +81,11 @@ sdhci_register_dump(uint8_t slot, struct registers* regs) regs->interrupt_status, regs->interrupt_status_enable, regs->interrupt_signal_enable); TRACE("auto_cmd12_error_status: %d\n", regs->auto_cmd12_error_status); - TRACE("capabilities: %d\n", regs->capabilities); - TRACE("capabilities_rsvd: %d\n", regs->capabilities_rsvd); - TRACE("max_current_capabilities: %d\n", + TRACE("capabilities: %lld\n", regs->capabilities); + TRACE("max_current_capabilities: %lld\n", regs->max_current_capabilities); - TRACE("max_current_capabilities_rsvd: %d\n", - regs->max_current_capabilities_rsvd); TRACE("slot_interrupt_status: %d\n", regs->slot_interrupt_status); - TRACE("host_control_version %x\n", regs->host_control_version); + TRACE("host_controller_version %x\n", regs->host_controller_version); } diff --git a/src/add-ons/kernel/busses/mmc/sdhci_pci.h b/src/add-ons/kernel/busses/mmc/sdhci_pci.h index 1d493f3906..ee94e99fbc 100644 --- a/src/add-ons/kernel/busses/mmc/sdhci_pci.h +++ b/src/add-ons/kernel/busses/mmc/sdhci_pci.h @@ -75,10 +75,7 @@ struct registers { volatile uint32_t argument; volatile uint16_t transfer_mode; volatile uint16_t command; - volatile uint32_t response0; - volatile uint32_t response2; - volatile uint32_t response4; - volatile uint32_t response6; + volatile uint16_t response[8]; volatile uint32_t buffer_data_port; volatile uint32_t present_state; volatile uint8_t host_control; @@ -92,15 +89,47 @@ struct registers { volatile uint32_t interrupt_status_enable; volatile uint32_t interrupt_signal_enable; volatile uint16_t auto_cmd12_error_status; - volatile uint16_t : 16; - volatile uint32_t capabilities; - volatile uint32_t capabilities_rsvd; - volatile uint32_t max_current_capabilities; - volatile uint32_t max_current_capabilities_rsvd; - volatile uint64_t padding[21]; - volatile uint32_t : 32; + volatile uint16_t host_control_2; + volatile uint64_t capabilities; + volatile uint64_t max_current_capabilities; + volatile uint16_t force_event_acmd_status; + volatile uint16_t force_event_error_status; + volatile uint8_t adma_error_status; + volatile uint8_t padding[3]; + volatile uint64_t adma_system_address; + volatile uint64_t preset_value[2]; + volatile uint32_t :32; + volatile uint16_t uhs2_preset_value; + volatile uint16_t :16; + volatile uint64_t adma3_id_address; + volatile uint16_t uhs2_block_size; + volatile uint16_t :16; + volatile uint32_t uhs2_block_count; + volatile uint8_t uhs2_command_packet[20]; + volatile uint16_t uhs2_transfer_mode; + volatile uint16_t uhs2_command; + volatile uint8_t uhs2_response[20]; + volatile uint8_t uhs2_msg_select; + volatile uint8_t padding2[3]; + volatile uint32_t uhs2_msg; + volatile uint16_t uhs2_device_interrupt_status; + volatile uint8_t uhs2_device_select; + volatile uint8_t uhs2_device_int_code; + volatile uint16_t uhs2_software_reset; + volatile uint16_t uhs2_timer_control; + volatile uint32_t uhs2_error_interrupt_status; + volatile uint32_t uhs2_error_interrupt_status_enable; + volatile uint32_t uhs2_error_interrupt_signal_enable; + volatile uint8_t padding3[16]; + volatile uint16_t uhs2_settings_pointer; + volatile uint16_t uhs2_host_capabilities_pointer; + volatile uint16_t uhs2_test_pointer; + volatile uint16_t embedded_control_pointer; + volatile uint16_t vendor_specific_pointer; + volatile uint16_t reserved_specific_pointer; + volatile uint8_t padding4[16]; volatile uint16_t slot_interrupt_status; - volatile uint16_t host_control_version; + volatile uint16_t host_controller_version; } __attribute__((packed)); typedef void* sdhci_mmc_bus;