Instead of inhibiting parameter RAM relocation, take it into account.

Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu>
---
 drivers/spi/mpc8xx_spi.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/spi/mpc8xx_spi.c b/drivers/spi/mpc8xx_spi.c
index 734b0751a9..5c8d760935 100644
--- a/drivers/spi/mpc8xx_spi.c
+++ b/drivers/spi/mpc8xx_spi.c
@@ -52,10 +52,12 @@ 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_dpmem[PROFF_SPI];
+       u16 spi_rpbase;
        cbd_t __iomem *tbdf, *rbdf;
 
-       /* Disable relocation */
-       out_be16(&spi->spi_rpbase, 0x1d80);
+       spi_rpbase = in_be16(&spi->spi_rpbase);
+       if (spi_rpbase)
+               spi = (spi_t __iomem *)&cp->cp_dpmem[spi_rpbase];
 
 /* 1 */
        /* Initialize the parameter ram.
-- 
2.39.2

Reply via email to