[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>
wrote:
> 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);
}
--
Thanks,
Joseph Smith
Set-Top-Linux
www.settoplinux.org
More information about the coreboot
mailing list