[coreboot] [PATCH] ACPI updates + S3 Resume without hole at 31MB

Rudolf Marek r.marek at assembler.cz
Tue Oct 27 23:36:10 CET 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

I have some questions:

1) is 0x600 as base for lowmem trampoline safe? it always makes me wonder, this
was the reason why I did the realmode code which runs above 1MB ;) Maybe we can
have that too and only copy the trampoline to the highmem save area and execute
it there. This would mean all memory bellow 1MB is untouched.

2)

You seem to follow different way how to detect S3.

I had in the code for all boards (like memory controller init)

ifdef ACPI_IS_WAKEUP_EARLY
<------>int suspend = acpi_is_wakeup_early();
#else
<------>int suspend = 0;
#endif


And for per chipset CAR code  I defined a function which is doing it:

define ACPI_IS_WAKEUP_EARLY 1

int acpi_is_wakeup_early(void) {
device_t dev;
u16 tmp;
print_debug("IN TEST WAKEUP\n");
...


And for the normal ram stage there is:

/* this is to be filled by SB code - startup value what was found */

u8 acpi_slp_type = 0;

int acpi_is_wakeup(void)
{
<------>return (acpi_slp_type == 3);
}

Which is backup what was the sleep type. I think this is how you deal with that
using the scratchpads.

3) I think your SMM code corrupts lowmem, or I have not seen any backup of that
mem? Maybe I'm wrong?

4) Changes to the stack

I think you changed the stack to some other place, not sure how to change that
for K8 CAR? Also there is an remaining issue if CAR gets flushed to memory or
not. I think Carl-Daniel had some patch for this.

5) Don't understand much the cbmem_reinit((u64)high_ram_base)) in CAR code, you
seem to take the TOM from PCI reg but this gets more complicated for UMA, I dont
know how to do that for K8. Partially because the high_ram_base gets dynamically
 lowered in K8M890 resource code :/ In other words there is no easy way for me
to find it in memory. Except some hacks like make the cbmem look like some
proprietary ACPI table and walk acpi tables as for we do for resume but in car
stage just to find out where the tables are...

I think only issue #5 is a real problem.

Rudolf
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkrnddoACgkQ3J9wPJqZRNX5egCfaEQUqTwRoV9yd6qsb8qvbH8K
THEAoKEutUPq2mxJTBJY18m2mw+Dmtrl
=XC3U
-----END PGP SIGNATURE-----




More information about the coreboot mailing list