From d1f8615f8fb9a625ce30dd551e36d05a4778228d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Villegas=20Castillo?= Date: Wed, 10 Jun 2026 20:58:32 -0400 Subject: [PATCH] fix archi/hyper: correct channel offset so Siracusa common regs stay in-bounds The Hyper register size on Siracusa is 0x100 (0x1A10_2280-0x1A10_2380). With HYPER_NB_CHANNELS=2 and a 0x80 channel offset, HYPER_COMMON_REGS_OFFSET resolved to 0x100, placing every common register at the end of the memory space. Each channel only uses HYPER_NB_CONFIG_REGS=16 (0x40), so use a 0x40 offset: channels at 0x00/0x40, common block at 0x80, all within 0x100. Verified with siracusa evb. --- .../include/archi/udma/hyper/udma_hyper_v3_siracusa.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtos/pulpos/pulp_archi/include/archi/udma/hyper/udma_hyper_v3_siracusa.h b/rtos/pulpos/pulp_archi/include/archi/udma/hyper/udma_hyper_v3_siracusa.h index 52edbb65..886661c3 100644 --- a/rtos/pulpos/pulp_archi/include/archi/udma/hyper/udma_hyper_v3_siracusa.h +++ b/rtos/pulpos/pulp_archi/include/archi/udma/hyper/udma_hyper_v3_siracusa.h @@ -36,9 +36,9 @@ #define HYPER_FIFO_DEPTH 8 #define HYPER_NB_CHANNELS 2 /* 2 tran_id and 1 common space */ -#define HYPER_CHANNELS_OFFSET 0x80 -#define HYPER_CHANNELS_ID_OFFSET(id) HYPER_CHANNELS_OFFSET*(id) -#define HYPER_COMMON_REGS_OFFSET HYPER_CHANNELS_OFFSET*HYPER_NB_CHANNELS +#define HYPER_CHANNEL_OFFSET 0x40 +#define HYPER_CHANNELS_ID_OFFSET(id) HYPER_CHANNEL_OFFSET*(id) +#define HYPER_COMMON_REGS_OFFSET HYPER_CHANNEL_OFFSET*HYPER_NB_CHANNELS #define HYPER_NB_COMMON_REGS 10 #define HYPER_NB_CONFIG_REGS 16