summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Maydell2021-04-09 17:05:27 +0200
committerPeter Maydell2021-04-12 16:57:38 +0200
commit91c0a79891b080efea276caf6bd3ff10809c4e4c (patch)
tree56d5b7925c9f51a9adb576f928b8daa2ab3115c3
parenthw/arm/mps2-tz: Fix MPC setting for AN524 SRAM block (diff)
downloadqemu-91c0a79891b080efea276caf6bd3ff10809c4e4c.tar.gz
qemu-91c0a79891b080efea276caf6bd3ff10809c4e4c.tar.xz
qemu-91c0a79891b080efea276caf6bd3ff10809c4e4c.zip
hw/arm/mps2-tz: Assert if more than one RAM is attached to an MPC
Each board in mps2-tz.c specifies a RAMInfo[] array providing information about each RAM in the board. The .mpc field of the RAMInfo struct specifies which MPC, if any, the RAM is attached to. We already assert if the array doesn't have any entry for an MPC, but we don't diagnose the error of using the same MPC number twice (which is quite easy to do by accident if copy-and-pasting structure entries). Enhance find_raminfo_for_mpc() so that it detects multiple entries for the MPC as well as missing entries. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-id: 20210409150527.15053-3-peter.maydell@linaro.org
-rw-r--r--hw/arm/mps2-tz.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c
index 5ebd671bf8..25016e464d 100644
--- a/hw/arm/mps2-tz.c
+++ b/hw/arm/mps2-tz.c
@@ -306,14 +306,18 @@ static const RAMInfo *find_raminfo_for_mpc(MPS2TZMachineState *mms, int mpc)
{
MPS2TZMachineClass *mmc = MPS2TZ_MACHINE_GET_CLASS(mms);
const RAMInfo *p;
+ const RAMInfo *found = NULL;
for (p = mmc->raminfo; p->name; p++) {
if (p->mpc == mpc && !(p->flags & IS_ALIAS)) {
- return p;
+ /* There should only be one entry in the array for this MPC */
+ g_assert(!found);
+ found = p;
}
}
/* if raminfo array doesn't have an entry for each MPC this is a bug */
- g_assert_not_reached();
+ assert(found);
+ return found;
}
static MemoryRegion *mr_for_raminfo(MPS2TZMachineState *mms,