summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorChristophe Leroy <christophe.leroy@csgroup.eu>2023-05-03 10:31:19 +0200
committerChristophe Leroy <christophe.leroy@csgroup.eu>2023-05-04 10:58:07 +0200
commitfdd243d81bcf5e7fdc8cc7b5060c0c6ed60c5c81 (patch)
tree7dae25d9ec0650e3e63544e843be1ae890ac43da /arch
parent019b39b7366e5591949f6d41aeac474b632be704 (diff)
downloadu-boot-fdd243d81bcf5e7fdc8cc7b5060c0c6ed60c5c81.tar.gz
u-boot-fdd243d81bcf5e7fdc8cc7b5060c0c6ed60c5c81.tar.bz2
u-boot-fdd243d81bcf5e7fdc8cc7b5060c0c6ed60c5c81.zip
powerpc: mpc8xx: CPM parameter RAM can be anywhere
With relocation, CPM parameter RAM can be anywhere in the dual port RAM, so don't split dual port RAM. Remove dparam and dparam16 members of struct comm_proc PROFF_XXX become offsets from the start of dual port RAM, then they are now consistant with the offsets in RPBASE registers. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/cpu/mpc8xx/cpu.c2
-rw-r--r--arch/powerpc/include/asm/cpm_8xx.h18
-rw-r--r--arch/powerpc/include/asm/immap_8xx.h8
3 files changed, 11 insertions, 17 deletions
diff --git a/arch/powerpc/cpu/mpc8xx/cpu.c b/arch/powerpc/cpu/mpc8xx/cpu.c
index 9b587fbbe8..56383cecde 100644
--- a/arch/powerpc/cpu/mpc8xx/cpu.c
+++ b/arch/powerpc/cpu/mpc8xx/cpu.c
@@ -127,7 +127,7 @@ static int check_CPU(long clock, uint pvr, uint immr)
return -1;
k = (immr << 16) |
- in_be16(&immap->im_cpm.cp_dparam16[PROFF_REVNUM / sizeof(u16)]);
+ in_be16((u16 __iomem *)&immap->im_cpm.cp_dpmem[PROFF_REVNUM]);
/*
* Some boards use sockets so different CPUs can be used.
diff --git a/arch/powerpc/include/asm/cpm_8xx.h b/arch/powerpc/include/asm/cpm_8xx.h
index 85903d2108..09c24efd91 100644
--- a/arch/powerpc/include/asm/cpm_8xx.h
+++ b/arch/powerpc/include/asm/cpm_8xx.h
@@ -92,15 +92,15 @@ typedef struct cpm_buf_desc {
/* Parameter RAM offsets.
*/
-#define PROFF_SCC1 ((uint)0x0000)
-#define PROFF_IIC ((uint)0x0080)
-#define PROFF_REVNUM ((uint)0x00b0)
-#define PROFF_SCC2 ((uint)0x0100)
-#define PROFF_SPI ((uint)0x0180)
-#define PROFF_SCC3 ((uint)0x0200)
-#define PROFF_SMC1 ((uint)0x0280)
-#define PROFF_SCC4 ((uint)0x0300)
-#define PROFF_SMC2 ((uint)0x0380)
+#define PROFF_SCC1 ((uint)0x1c00)
+#define PROFF_IIC ((uint)0x1c80)
+#define PROFF_REVNUM ((uint)0x1cb0)
+#define PROFF_SCC2 ((uint)0x1d00)
+#define PROFF_SPI ((uint)0x1d80)
+#define PROFF_SCC3 ((uint)0x1e00)
+#define PROFF_SMC1 ((uint)0x1e80)
+#define PROFF_SCC4 ((uint)0x1f00)
+#define PROFF_SMC2 ((uint)0x1f80)
/* Define enough so I can at least use the serial port as a UART.
*/
diff --git a/arch/powerpc/include/asm/immap_8xx.h b/arch/powerpc/include/asm/immap_8xx.h
index 3999a02b9c..cf1300f6e2 100644
--- a/arch/powerpc/include/asm/immap_8xx.h
+++ b/arch/powerpc/include/asm/immap_8xx.h
@@ -437,13 +437,7 @@ typedef struct comm_proc {
* depending upon the devices used and options chosen.
* Some processors don't have all of it populated.
*/
- u_char cp_dpmem[0x1C00]; /* BD / Data / ucode */
-
- /* Parameter RAM */
- union {
- u_char cp_dparam[0x400];
- u16 cp_dparam16[0x200];
- };
+ u_char cp_dpmem[0x2000]; /* BD / Data / ucode / Param RAM */
} cpm8xx_t;
/* Internal memory map.