
Well, it depends on the actual combination of the parameters, but the idea was that cpm_load_patch() will be called nonetheless and will program the rpbase whether or not the actual patch is required.
For the case where you intentionally want to move SPI to elsewhere (using ENET on SCC2), I will have to define CFG_SPI_DPMEM_OFFSET. since CFG_SPI_DPMEM_OFFSET is not assigned to spi->rpbase for MPC852T ( microcode patch is skipped), SPI is not relocated using your patch.
That's exactly the case I describe above. Could you make sure cpm_load_patch() is being called?
Already did
cpu/mpc8xx/cpu_init.c
#if defined(CFG_MPC8XX_RELOCATION_UPATCH) cpm_load_patch (immr); /* load mpc8xx microcode patch */ #endif
The condition for which this is defined as follows, which is not behaving according to your idea.
if defined(CFG_MPC850_SMC_UPATCH) || \ defined(CFG_MPC850_I2C_SPI_UPATCH) || \ defined(CFG_MPC850_I2C_SMC_UPATCH) || \ defined(CFG_MPC850_SPI_SMC_UPATCH) || \ defined(CFG_MPC860_SMC_UPATCH) || \ defined(CFG_MPC860_I2C_SPI_UPATCH) || \ defined(CFG_MPC860_I2C_SMC_UPATCH) || \ defined(CFG_MPC860_SPI_SMC_UPATCH)
# define CFG_MPC8XX_RELOCATION_UPATCH 1 #endif