[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] hw/ppc/ppc4xx: Only accept (combination of) pow2 DDR sizes
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH] hw/ppc/ppc4xx: Only accept (combination of) pow2 DDR sizes |
Date: |
Mon, 29 Jun 2020 22:02:55 +0200 |
Use popcount instruction to count the number of bits set in
the RAM size. Allow at most 1 bit for each bank. This avoid
using invalid hardware configurations.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
hw/ppc/ppc4xx_devs.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
index f1651e04d9..c2484a5695 100644
--- a/hw/ppc/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -687,6 +687,15 @@ void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks,
int i;
int j;
+ if (ctpop64(size_left) > nr_banks) {
+ if (nr_banks) {
+ error_report("RAM size must be a power of 2");
+ } else {
+ error_report("RAM size must be the combination of %d powers of 2",
+ nr_banks);
+ }
+ exit(1);
+ }
for (i = 0; i < nr_banks; i++) {
for (j = 0; sdram_bank_sizes[j] != 0; j++) {
bank_size = sdram_bank_sizes[j];
--
2.21.3
- [PATCH] hw/ppc/ppc4xx: Only accept (combination of) pow2 DDR sizes,
Philippe Mathieu-Daudé <=