Re: Compaq Evo 510SFF and ACPI

Scott Duplichan
2003-07-04T11:57:41Z

--- Alexander Hoogerhuis <alexh-rpjHciJLgqZBDgjK7y7TUQ@public.gmane.org> wrote:
> Scott Duplichan <sduplichan-/E1597aS9LQAvxtiuMwx3w@public.gmane.org> writes:
>
> > Alexander Hoogerhuis <alexh-KJKxBnNiUAU@public.gmane.org> wrote:
> >
> > >I have a few Compaq Evo's that show the same symptom:
> > >
> > > ACPI: Searched entire block, no RSDP was found.
> > > ACPI: RSDP located at physical address c00eaa10
> > > RSD PTR v0 [COMPAQ]
> > > __va_range(0xf7f7b40, 0x68): idx=10 mapped at ffff5000
> > > ACPI table found: RSDT v1 [COMPAQ CPQ0050 8194.4656]
> > > ACPI: Too big length in RSDT: 120
> >
> > 120 bytes minus 36 bytes leaves 84 bytes, or 21 table pointers.
> > I think some versions of Linux have a limit on the number of
> > tables that is smaller than 21. The ACPI spec lacks, among other
> > things, any guideline on what the maximum number of tables is.
> >
>
> Here's the offending piece of code:
>
> /*
> * The number of tables is computed by taking the
> * size of all entries (header size minus total
> * size of RSDT) divided by the size of each entry
> * (4-byte table pointers).
> */
> tables = (header->length - sizeof(acpi_table_header)) / 4;
>
> memcpy(&saved_rsdt, rsdt, sizeof(saved_rsdt));
>
> if (saved_rsdt.header.length > sizeof(saved_rsdt)) {
> printk(KERN_WARNING "ACPI: Too big length in RSDT: %d\n",
> saved_rsdt.header.length);
> return -ENODEV;
> }
>
> ...which then basically says what it found doesnt add up to what it
> thinks it has?
>
> mvh,
> A
> --
> Alexander Hoogerhuis | alexh-rpjHciJLgqZBDgjK7y7TUQ@public.gmane.org
> CCNP - CCDP - MCNE - CCSE | +47 908 21 485
> "You have zero privacy anyway. Get over it." --Scott McNealy

I believe the problem is that 'saved_rsdt' is smaller than the EVO rsdt.
If I am looking at the correct source code, the maximum number of
tables supported is ACPI_TABLE_COUNT, which is 17. That number is
based on the assumption that there is at most one table of each type.
But that assumption is not valid for the EVO 510, because it has many
SSDT tables, for a total of 21 tables.

--
Scott

__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!