Skip to content

Commit

Permalink
powerpc: mpc8xx: CPM parameter RAM can be anywhere
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
chleroy committed May 4, 2023
1 parent 019b39b commit fdd243d
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 19 deletions.
2 changes: 1 addition & 1 deletion arch/powerpc/cpu/mpc8xx/cpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
18 changes: 9 additions & 9 deletions arch/powerpc/include/asm/cpm_8xx.h
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*/
Expand Down
8 changes: 1 addition & 7 deletions arch/powerpc/include/asm/immap_8xx.h
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion drivers/serial/serial_mpc8xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ static int serial_mpc8xx_probe(struct udevice *dev)
/* initialize pointers to SMC */

sp = cp->cp_smc + SMC_INDEX;
up = (smc_uart_t __iomem *)&cp->cp_dparam[PROFF_SMC];
up = (smc_uart_t __iomem *)&cp->cp_dpmem[PROFF_SMC];
/* Disable relocation */
out_be16(&up->smc_rpbase, 0);

Expand Down
2 changes: 1 addition & 1 deletion drivers/spi/mpc8xx_spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ static int mpc8xx_spi_probe(struct udevice *dev)
{
immap_t __iomem *immr = (immap_t __iomem *)CONFIG_SYS_IMMR;
cpm8xx_t __iomem *cp = &immr->im_cpm;
spi_t __iomem *spi = (spi_t __iomem *)&cp->cp_dparam[PROFF_SPI];
spi_t __iomem *spi = (spi_t __iomem *)&cp->cp_dpmem[PROFF_SPI];
cbd_t __iomem *tbdf, *rbdf;

/* Disable relocation */
Expand Down

0 comments on commit fdd243d

Please sign in to comment.