[coreboot] v2[PATCH]RCA RM4100 reboot patch
Joseph Smith
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>
wrote:
>
>
>
> 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);
> }
>
I just tried the soft_reset and it does the same thing as asm volatile
("jmp __cpu_reset");
Just resets the cpu and not the pci devices, so for now the hard_reset is
the way to go.
--
Thanks,
Joseph Smith
Set-Top-Linux
www.settoplinux.org
More information about the coreboot
mailing list