Skip to content

Commit 4048196

Browse files
refactor(sep): replace magic mmio index values with defines
1 parent 60561bb commit 4048196

2 files changed

Lines changed: 47 additions & 38 deletions

File tree

  • hw/arm/apple-silicon
  • include/hw/arm/apple-silicon

hw/arm/apple-silicon/t8030.c

Lines changed: 30 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2190,7 +2190,6 @@ static void t8030_create_sep(T8030MachineState *t8030_machine)
21902190
DTBNode *child;
21912191
AppleSEPState *sep;
21922192
DTBProp *prop;
2193-
uint64_t *reg;
21942193
uint32_t *ints;
21952194
AppleDARTState *dart;
21962195

@@ -2224,46 +2223,39 @@ static void t8030_create_sep(T8030MachineState *t8030_machine)
22242223

22252224
prop = dtb_find_prop(child, "reg");
22262225
g_assert_nonnull(prop);
2227-
reg = (uint64_t *)prop->data;
2228-
// AKF_MBOX reg is handled here, using the device tree.
2229-
// XPRT_{PMSC,FUSE,MISC} regs are not handled in this function.
2230-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 0,
2231-
t8030_machine->soc_base_pa + reg[0]);
2232-
// PMGR_BASE T8020/T8030
2233-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 1,
2226+
2227+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_AKF_MBOX,
2228+
t8030_machine->soc_base_pa + ldq_le_p(prop->data));
2229+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_PMGR,
22342230
t8030_machine->soc_base_pa + 0x41000000);
2235-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 2,
2236-
t8030_machine->soc_base_pa + 0x41180000); // TRNG_REGS T8030
2237-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 3,
2238-
t8030_machine->soc_base_pa + 0x411c0000); // KEY_BASE T8030
2239-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 4,
2240-
t8030_machine->soc_base_pa + 0x41440000); // KEY_FCFG T8030
2241-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 5,
2242-
t8030_machine->soc_base_pa + 0x413c0000); // MONI_BASE T8030
2243-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 6,
2244-
t8030_machine->soc_base_pa + 0x41400000); // MONI_THRM T8030
2245-
// EISP_BASE T8020/T8030
2246-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 7,
2231+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_TRNG_REGS,
2232+
t8030_machine->soc_base_pa + 0x41180000);
2233+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_KEY,
2234+
t8030_machine->soc_base_pa + 0x411C0000);
2235+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_KEY_FCFG,
2236+
t8030_machine->soc_base_pa + 0x41440000);
2237+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_MONI,
2238+
t8030_machine->soc_base_pa + 0x413C0000);
2239+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_MONI_THRM,
2240+
t8030_machine->soc_base_pa + 0x41400000);
2241+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_EISP,
22472242
t8030_machine->soc_base_pa + 0x40800000);
2248-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 8,
2249-
t8030_machine->soc_base_pa + 0x40aa0000); // EISP_HMAC T8030
2250-
// AESS_BASE T8020/T8030
2251-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 9,
2243+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_EISP_HMAC,
2244+
t8030_machine->soc_base_pa + 0x40AA0000);
2245+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_AESS,
22522246
t8030_machine->soc_base_pa + 0x41040000);
2253-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 10,
2254-
t8030_machine->soc_base_pa + 0x41080000); // AESH_BASE T8030
2255-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 11,
2256-
t8030_machine->soc_base_pa + 0x41100000); // PKA_BASE T8030
2257-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 12,
2258-
t8030_machine->soc_base_pa + 0x41504000); // PKA_TMM T8030
2259-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 13,
2260-
t8030_machine->soc_base_pa + 0x410C4000); // MISC2 T80[23]0
2261-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 14,
2262-
t8030_machine->soc_base_pa +
2263-
0x41280000); // encrypted progress counter T8030
2264-
sysbus_mmio_map(SYS_BUS_DEVICE(sep), 15,
2265-
t8030_machine->soc_base_pa +
2266-
0x41500000); // boot monitor T8030
2247+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_AESH,
2248+
t8030_machine->soc_base_pa + 0x41080000);
2249+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_PKA,
2250+
t8030_machine->soc_base_pa + 0x41100000);
2251+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_PKA_TMM,
2252+
t8030_machine->soc_base_pa + 0x41504000);
2253+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_MISC2,
2254+
t8030_machine->soc_base_pa + 0x410C4000);
2255+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_PROGRESS,
2256+
t8030_machine->soc_base_pa + 0x41280000);
2257+
sysbus_mmio_map(SYS_BUS_DEVICE(sep), SEP_MMIO_INDEX_BOOT_MONI,
2258+
t8030_machine->soc_base_pa + 0x41500000);
22672259

22682260
prop = dtb_find_prop(child, "interrupts");
22692261
g_assert_nonnull(prop);

include/hw/arm/apple-silicon/sep.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,23 @@ DECLARE_INSTANCE_CHECKER(AppleSSCState, APPLE_SSC, TYPE_APPLE_SSC)
4848
#define SEP_DMA_MAPPING_SIZE (SEPFW_MAPPING_SIZE * 2)
4949
#define SEP_SHMBUF_BASE (SEPFW_MAPPING_SIZE + 0xC000)
5050

51+
#define SEP_MMIO_INDEX_AKF_MBOX (0)
52+
#define SEP_MMIO_INDEX_PMGR (1)
53+
#define SEP_MMIO_INDEX_TRNG_REGS (2)
54+
#define SEP_MMIO_INDEX_KEY (3)
55+
#define SEP_MMIO_INDEX_KEY_FCFG (4)
56+
#define SEP_MMIO_INDEX_MONI (5)
57+
#define SEP_MMIO_INDEX_MONI_THRM (6)
58+
#define SEP_MMIO_INDEX_EISP (7)
59+
#define SEP_MMIO_INDEX_EISP_HMAC (8)
60+
#define SEP_MMIO_INDEX_AESS (9)
61+
#define SEP_MMIO_INDEX_AESH (10)
62+
#define SEP_MMIO_INDEX_PKA (11)
63+
#define SEP_MMIO_INDEX_PKA_TMM (12)
64+
#define SEP_MMIO_INDEX_MISC2 (13)
65+
#define SEP_MMIO_INDEX_PROGRESS (14)
66+
#define SEP_MMIO_INDEX_BOOT_MONI (15)
67+
5168
typedef struct {
5269
uint8_t key[32];
5370
uint8_t fifo[16];

0 commit comments

Comments
 (0)