mirror of
https://github.com/AlexAltea/orbital.git
synced 2024-06-16 03:07:58 -04:00
hardware/liverpool/sam: Add undocumented register names
This commit is contained in:
parent
2584000558
commit
475c1b5201
|
@ -1,6 +1,8 @@
|
|||
/**
|
||||
* AMD Secure Asset Management Unit (SAMU) device.
|
||||
*
|
||||
* Based on research from: Alexey Kulaev (@flatz).
|
||||
*
|
||||
* Copyright 2017-2021. Orbital project.
|
||||
* Released under MIT license. Read LICENSE for more details.
|
||||
*
|
||||
|
@ -65,6 +67,9 @@ U32 SamDevice::mmio_read(U32 index) {
|
|||
case ixSAM_IH_AM32_CPU_INT_CTX_LOW:
|
||||
value = ih_am32_cpu_int_ctx_low;
|
||||
break;
|
||||
case ixSAM_IH_CPU_AM32_INT_STATUS:
|
||||
value = ih_cpu_am32_int_status;
|
||||
break;
|
||||
default:
|
||||
DPRINTF("mmSAM_IX_DATA_read { index: %X }", ix_index);
|
||||
value = ix_data[ix_index];
|
||||
|
@ -120,7 +125,7 @@ void SamDevice::mmio_write(U32 index, U32 value) {
|
|||
break;
|
||||
case ixSAM_IH_AM32_CPU_INT_ACK:
|
||||
//ix_data[ixSAM_IH_AM32_CPU_INT_STATUS] = 0;
|
||||
ix_data[ixSAM_IH_CPU_AM32_INT_STATUS] = 0;
|
||||
ih_cpu_am32_int_status = 0;
|
||||
break;
|
||||
default:
|
||||
DPRINTF("mmSAM_IX_DATA_write { index: %X, value: %llX }", ix_index, value);
|
||||
|
@ -184,8 +189,8 @@ void SamDevice::handle_request(U32 value) {
|
|||
gpr[3] = 0;
|
||||
break;
|
||||
}
|
||||
ix_data[ixSAM_IH_CPU_AM32_INT_STATUS] = 0;
|
||||
ix_data[ixSAM_IH_AM32_CPU_INT_STATUS] |= 1;
|
||||
ih_cpu_am32_int_status = 0;
|
||||
ih_am32_cpu_int_status |= 1;
|
||||
return;
|
||||
}
|
||||
else {
|
||||
|
@ -202,8 +207,8 @@ void SamDevice::handle_request(U32 value) {
|
|||
return;
|
||||
}
|
||||
#endif
|
||||
ix_data[ixSAM_IH_CPU_AM32_INT_STATUS] = 0;//1
|
||||
ix_data[ixSAM_IH_AM32_CPU_INT_STATUS] |= 1;
|
||||
ih_cpu_am32_int_status = 0;//1
|
||||
ih_am32_cpu_int_status |= 1;
|
||||
ih.push_iv(0, IV_SRCID_SAM, 0 /* TODO */);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* AMD Secure Asset Management Unit (SAMU) device.
|
||||
*
|
||||
* Based on research from: Alexey Kulaev (flatz).
|
||||
* Based on research from: Alexey Kulaev (@flatz).
|
||||
*
|
||||
* Copyright 2017-2021. Orbital project.
|
||||
* Released under MIT license. Read LICENSE for more details.
|
||||
|
@ -20,35 +20,64 @@ class GmcDevice;
|
|||
class IhDevice;
|
||||
class SmuDevice;
|
||||
|
||||
constexpr auto SAM_MMIO = OffsetRange(0x8800, 0x20);
|
||||
constexpr auto SAM_MMIO = OffsetRange(0x8800, 0x100);
|
||||
constexpr auto SAM0_MMIO = OffsetRange(0x8800, 0x100);
|
||||
constexpr auto SAM1_MMIO = OffsetRange(0x8900, 0x100);
|
||||
|
||||
// SAMU
|
||||
#define mmSAM_IX_INDEX 0x00008800
|
||||
#define mmSAM_IX_DATA 0x00008801
|
||||
#define mmSAM_SAB_IX_INDEX 0x00008802
|
||||
#define mmSAM_SAB_IX_DATA 0x00008803
|
||||
#define mmSAM_GPR_SCRATCH_0 0x0000881C
|
||||
#define mmSAM_GPR_SCRATCH_1 0x0000881D
|
||||
#define mmSAM_GPR_SCRATCH_2 0x0000881E
|
||||
#define mmSAM_GPR_SCRATCH_3 0x0000881F
|
||||
#define mmSAM_IX_INDEX 0x8800
|
||||
#define mmSAM_IX_DATA 0x8801
|
||||
#define mmSAM_SAB_IX_INDEX 0x8802
|
||||
#define mmSAM_SAB_IX_DATA 0x8803
|
||||
#define mmSAM_IND_INDEX 0x8800
|
||||
#define mmSAM_IND_DATA 0x8801
|
||||
#define mmSAM_AM32_BOOT_BASE 0x8809
|
||||
#define mmSAM_AM32_BOOT_OFFSET 0x880A
|
||||
#define mmSAM_AM32_BOOT_LENGTH 0x880B
|
||||
#define mmSAM_AM32_BOOT_CTRL 0x880C
|
||||
#define mmSAM_AM32_BOOT_STATUS 0x880D
|
||||
#define mmSAM_AM32_BOOT_HASH0 0x880E
|
||||
#define mmSAM_AM32_BOOT_HASH1 0x880F
|
||||
#define mmSAM_AM32_BOOT_HASH2 0x8810
|
||||
#define mmSAM_AM32_BOOT_HASH3 0x8811
|
||||
#define mmSAM_AM32_BOOT_HASH4 0x8812
|
||||
#define mmSAM_AM32_BOOT_HASH5 0x8813
|
||||
#define mmSAM_AM32_BOOT_HASH6 0x8814
|
||||
#define mmSAM_AM32_BOOT_HASH7 0x8815
|
||||
#define mmSAM_EMU_SRCID 0x8816
|
||||
#define mmSAM_GPR_SCRATCH_4 0x8818
|
||||
#define mmSAM_GPR_SCRATCH_5 0x8819
|
||||
#define mmSAM_GPR_SCRATCH_6 0x881A
|
||||
#define mmSAM_GPR_SCRATCH_7 0x881B
|
||||
#define mmSAM_GPR_SCRATCH_0 0x881C
|
||||
#define mmSAM_GPR_SCRATCH_1 0x881D
|
||||
#define mmSAM_GPR_SCRATCH_2 0x881E
|
||||
#define mmSAM_GPR_SCRATCH_3 0x881F
|
||||
#define mmSAM_POWER_GATE 0x8834
|
||||
#define mmSAM_BOOT_PWR_UP 0x8835
|
||||
#define mmSAM_SMU_ALLOW_MEM_ACCESS 0x8836
|
||||
#define mmSAM_PGFSM_CONFIG_REG 0x8837
|
||||
#define mmSAM_PGFSM_WRITE_REG 0x8838
|
||||
#define mmSAM_PGFSM_READ_REG 0x8839
|
||||
#define mmSAM_PKI_FAIL_STATUS 0x883A
|
||||
|
||||
// SAMU IX
|
||||
#define ixSAM_RST_HOST_SOFT_RESET 0x00000001
|
||||
#define ixSAM_CGC_HOST_CTRL 0x00000003
|
||||
#define ixSAM_IH_CPU_AM32_INT 0x00000032
|
||||
#define ixSAM_IH_CPU_AM32_INT_CTX_HIGH 0x00000033
|
||||
#define ixSAM_IH_CPU_AM32_INT_CTX_LOW 0x00000034
|
||||
#define ixSAM_IH_AM32_CPU_INT_CTX_HIGH 0x00000035
|
||||
#define ixSAM_IH_AM32_CPU_INT_CTX_LOW 0x00000036
|
||||
#define ixSAM_IH_AM32_CPU_INT_ACK 0x00000037
|
||||
#define ixSAM_UNK3E 0x0000003E
|
||||
#define ixSAM_IH_CPU_AM32_INT_STATUS 0x0000004A
|
||||
#define ixSAM_IH_AM32_CPU_INT_STATUS 0x0000004B
|
||||
#define ixSAM_RST_HOST_SOFT_RST_RDY 0x00000051
|
||||
#define ixSAM_RST_HOST_SOFT_RESET 0x0001
|
||||
#define ixSAM_CGC_HOST_CTRL 0x0003
|
||||
#define ixSAM_IH_CPU_AM32_INT 0x0032
|
||||
#define ixSAM_IH_CPU_AM32_INT_CTX_HIGH 0x0033
|
||||
#define ixSAM_IH_CPU_AM32_INT_CTX_LOW 0x0034
|
||||
#define ixSAM_IH_AM32_CPU_INT_CTX_HIGH 0x0035
|
||||
#define ixSAM_IH_AM32_CPU_INT_CTX_LOW 0x0036
|
||||
#define ixSAM_IH_AM32_CPU_INT_ACK 0x0037
|
||||
#define ixSAM_UNK3E 0x003E
|
||||
#define ixSAM_IH_CPU_AM32_INT_STATUS 0x004A
|
||||
#define ixSAM_IH_AM32_CPU_INT_STATUS 0x004B
|
||||
#define ixSAM_RST_HOST_SOFT_RST_RDY 0x0051
|
||||
|
||||
// SAMU SAB IX
|
||||
#define ixSAM_SAB_INIT_TLB_CONFIG 0x00000004
|
||||
#define ixSAM_SAB_UNK29 0x00000029
|
||||
#define ixSAM_SAB_INIT_TLB_CONFIG 0x0004
|
||||
#define ixSAM_SAB_UNK29 0x0029
|
||||
|
||||
/* SAMU Commands */
|
||||
struct samu_command_io_open_t {
|
||||
|
@ -157,6 +186,8 @@ private:
|
|||
U32 ix_index;
|
||||
U32 sab_ix_index;
|
||||
|
||||
U32 ih_cpu_am32_int_status;
|
||||
U32 ih_am32_cpu_int_status;
|
||||
union {
|
||||
LE<U64> ih_cpu_am32_int_ctx;
|
||||
Bitfield<U64, 48, 16> ih_cpu_am32_int_flags;
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
#define ixSMU_IOC_READ_0 0xC2100134
|
||||
|
||||
/**
|
||||
* Clocks Domains:
|
||||
* Clocks:
|
||||
* - SCLK: ???
|
||||
* - LCLK: ???
|
||||
* - DCLK: UVD D-clock
|
||||
|
|
Loading…
Reference in a new issue