[coreboot] v2[PATCH]RCA RM4100 reboot patch
joe at settoplinux.org
Thu May 15 08:08:14 CEST 2008
On Wed, 14 May 2008 22:53:42 -0400, Joseph Smith <joe at settoplinux.org>
> 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
>>>> 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
>>> 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
> ("jmp __cpu_reset");
> Just resets the cpu and not the pci devices, so for now the hard_reset is
> the way to go.
So, can I get an ACK?
More information about the coreboot