mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 07:31:15 +00:00
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>
This commit is contained in:
parent
019b39b736
commit
fdd243d81b
5 changed files with 13 additions and 19 deletions
|
@ -127,7 +127,7 @@ static int check_CPU(long clock, uint pvr, uint immr)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
k = (immr << 16) |
|
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.
|
* Some boards use sockets so different CPUs can be used.
|
||||||
|
|
|
@ -92,15 +92,15 @@ typedef struct cpm_buf_desc {
|
||||||
|
|
||||||
/* Parameter RAM offsets.
|
/* Parameter RAM offsets.
|
||||||
*/
|
*/
|
||||||
#define PROFF_SCC1 ((uint)0x0000)
|
#define PROFF_SCC1 ((uint)0x1c00)
|
||||||
#define PROFF_IIC ((uint)0x0080)
|
#define PROFF_IIC ((uint)0x1c80)
|
||||||
#define PROFF_REVNUM ((uint)0x00b0)
|
#define PROFF_REVNUM ((uint)0x1cb0)
|
||||||
#define PROFF_SCC2 ((uint)0x0100)
|
#define PROFF_SCC2 ((uint)0x1d00)
|
||||||
#define PROFF_SPI ((uint)0x0180)
|
#define PROFF_SPI ((uint)0x1d80)
|
||||||
#define PROFF_SCC3 ((uint)0x0200)
|
#define PROFF_SCC3 ((uint)0x1e00)
|
||||||
#define PROFF_SMC1 ((uint)0x0280)
|
#define PROFF_SMC1 ((uint)0x1e80)
|
||||||
#define PROFF_SCC4 ((uint)0x0300)
|
#define PROFF_SCC4 ((uint)0x1f00)
|
||||||
#define PROFF_SMC2 ((uint)0x0380)
|
#define PROFF_SMC2 ((uint)0x1f80)
|
||||||
|
|
||||||
/* Define enough so I can at least use the serial port as a UART.
|
/* Define enough so I can at least use the serial port as a UART.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -437,13 +437,7 @@ typedef struct comm_proc {
|
||||||
* depending upon the devices used and options chosen.
|
* depending upon the devices used and options chosen.
|
||||||
* Some processors don't have all of it populated.
|
* Some processors don't have all of it populated.
|
||||||
*/
|
*/
|
||||||
u_char cp_dpmem[0x1C00]; /* BD / Data / ucode */
|
u_char cp_dpmem[0x2000]; /* BD / Data / ucode / Param RAM */
|
||||||
|
|
||||||
/* Parameter RAM */
|
|
||||||
union {
|
|
||||||
u_char cp_dparam[0x400];
|
|
||||||
u16 cp_dparam16[0x200];
|
|
||||||
};
|
|
||||||
} cpm8xx_t;
|
} cpm8xx_t;
|
||||||
|
|
||||||
/* Internal memory map.
|
/* Internal memory map.
|
||||||
|
|
|
@ -89,7 +89,7 @@ static int serial_mpc8xx_probe(struct udevice *dev)
|
||||||
/* initialize pointers to SMC */
|
/* initialize pointers to SMC */
|
||||||
|
|
||||||
sp = cp->cp_smc + SMC_INDEX;
|
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 */
|
/* Disable relocation */
|
||||||
out_be16(&up->smc_rpbase, 0);
|
out_be16(&up->smc_rpbase, 0);
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ static int mpc8xx_spi_probe(struct udevice *dev)
|
||||||
{
|
{
|
||||||
immap_t __iomem *immr = (immap_t __iomem *)CONFIG_SYS_IMMR;
|
immap_t __iomem *immr = (immap_t __iomem *)CONFIG_SYS_IMMR;
|
||||||
cpm8xx_t __iomem *cp = &immr->im_cpm;
|
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;
|
cbd_t __iomem *tbdf, *rbdf;
|
||||||
|
|
||||||
/* Disable relocation */
|
/* Disable relocation */
|
||||||
|
|
Loading…
Reference in a new issue