[coreboot] v2[PATCH]RCA RM4100 reboot patch
joe at settoplinux.org
Thu May 15 04:53:42 CEST 2008
On Wed, 14 May 2008 22:34:29 -0400, Joseph Smith <joe at settoplinux.org>
> 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
>>> through the southbridge. It works pretty slick.
>>> Signed-off-by: Joseph Smith <joe at settoplinux.org>
>> 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
> Register (I/O Address: CF9h) does a couple of things, resets cpu and
> a PCIRST# to reset the pci devices.
> The only other thing to try is a soft_reset like this, but I din't know
> it will work:
> void soft_reset(void)
> outb(0x04, 0xcf9);
I just tried the soft_reset and it does the same thing as asm volatile
Just resets the cpu and not the pci devices, so for now the hard_reset is
the way to go.
More information about the coreboot