
Wolfgang Denk wrote:
In message 3EF00E16.3050604@intracom.gr you wrote:
I think it's just proper defensive programming to always do a CP reset in that case, and as soon as possible.
Then probably the boot loader should do it before starting the Linux kernel.
Yes, this is the best thing.
I propose we add two new functions to u-boot.
1. cpu_peripheral_reset() Do a reset for the on-chip peripherals of the cpu. For the 8xx family a CP reset is sufficient.
2. board_peripheral_reset() A conditional function controlled by CONFIG_HAVE_BOARD_PERIPHERAL_RESET. Do the reset for board specific peripherals.
And have them called before jumping into the kernel.
But this is a far reaching change for u-boot since at least the cpu_peripheral_reset() must be implemented for all the cpus that u-boot supports. And I'm not talking about the boards.
The decision is yours Wolfgang.
The best thing we could do is do the reset at head_8xx.S.
Note that such a change will kill all attempts for ealy debug output over the serial console port.
That is truly unfortunate. Perhaps we can avoid the full CP reset and do only the DMA peripheral reset in this case. The buffers for the uart are in dpram anyway, so there no chance for a crash.
Wolfgang Denk
Regards
Pantelis