Hi, I am supporting a custom single board computer based on an MPC8548 processor. The board support package initializes everything at power on reset. We have a requirement to reinitialize the board from a software commanded reset.
On other MPC8548 based boards we would write to the reset control register (offset 0xE_00B0). However, the board designer has confirmed that the HRESET_REQ signal is not connected to anything that could perform the reset.
So, therefore I am trying to reinitialize everything in software. I am able to reinitialize the DDR controller while running in flash memory. Unfortunately, this does not work 100% of the time (approximately 1 out of 20 attempts it might get stuck waiting for D_INIT to clear) and the documentation (MPC8548 Reference Manual) partially implies that this can only be done after a reset.
Is it possible to reinitialize the DDR memory controller on the MPC8548 without a hardware reset?
The following sequence is needed to reconfigure already enabled memory controller:
Set DDR_SDRAM_CFG[MEM_HALT] bit;
Read DDR_SDRAM_CFG register to ensure that MEM_HALT has been set;
Clear DDR_SDRAM_CFG[MEM_EN] bit;
Make configuration changes (if needed);
Set DDR_SDRAM_CFG[MEM_EN] bit;
Clear DDR_SDRAM_CFG[MEM_HALT] bit.