[coreboot] v2[PATCH]RCA RM4100 reboot patch

Joseph Smith joe at settoplinux.org
Thu May 15 04:34:29 CEST 2008

On Thu, 15 May 2008 03:55:41 +0200, Stefan Reinauer <stepan at coresystems.de>
> Joseph Smith wrote:
>> This patch allows the RCA RM4100 to reboot. Upon rebooting in auto.c it
>> detects if the memory is already initialized, if so it issues a hard
> reset
>> through the southbridge. It works pretty slick.
>> Signed-off-by: Joseph Smith <joe at settoplinux.org>
> Cool!
> Have you tried whether it would be sufficient to not initialize memory 
> again in this case? I am seeing the same issue on another intel chipset, 
> but I wonder whether we really have to be so rough ... especially 
> thinking about wakeup from sleep states at some point when we have to 
> think about when we execute which parts of the code anyways..
> When I reboot, I usually hang or triple fault at the CPU init while the 
> device tree is walked.
Well, at first I just tried a cpu reset:
    asm volatile ("jmp __cpu_reset");

and that seemed to skip memory initialization, but it hangs on trying to
re-initialize devices that are already initialized.

After sudying the ICH4 datasheet it looks like the RST_CNT—Reset Control
Register (I/O Address: CF9h) does a couple of things, resets cpu and issues
a PCIRST# to reset the pci devices.

The only other thing to try is a soft_reset like this, but I din't know if
it will work:
void soft_reset(void)
        outb(0x04, 0xcf9);

Joseph Smith

More information about the coreboot mailing list