public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* Compaq Evo 510SFF and ACPI
@ 2003-07-03 17:33 Alexander Hoogerhuis
  0 siblings, 0 replies; 7+ messages in thread
From: Alexander Hoogerhuis @ 2003-07-03 17:33 UTC (permalink / raw)
  To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

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

The PCI inventory looks like this:
00:00.0 Host bridge: Intel Corp. 82845G/GL [Brookdale-G] Chipset Host Bridge (rev 01)
00:02.0 VGA compatible controller: Intel Corp. 82845G/GL [Brookdale-G] Chipset Integrated Graphics Device (rev 01)
00:1d.0 USB Controller: Intel Corp. 82801DB USB (Hub #1) (rev 01)
00:1d.1 USB Controller: Intel Corp. 82801DB USB (Hub #2) (rev 01)
00:1d.7 USB Controller: Intel Corp. 82801DB USB EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corp. 82801BA/CA/DB PCI Bridge (rev 81)
00:1f.0 ISA bridge: Intel Corp. 82801DB ISA Bridge (LPC) (rev 01)
00:1f.1 IDE interface: Intel Corp. 82801DB ICH4 IDE (rev 01)
00:1f.5 Multimedia audio controller: Intel Corp. 82801DB AC'97 Audio (rev 01)
05:08.0 Ethernet controller: Intel Corp. 82801BD PRO/100 VM (LOM) Ethernet Controller (rev 81)

Any pointers to why it behaves like this?

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


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Compaq Evo 510SFF and ACPI
@ 2003-07-04  0:10 Scott Duplichan
       [not found] ` <20030704001029.71704.qmail-zOhVngzifveA/QwVtaZbd3CJp6faPEW9@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Scott Duplichan @ 2003-07-04  0:10 UTC (permalink / raw)
  To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

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.

-- 
Scott


__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Compaq Evo 510SFF and ACPI
       [not found] ` <20030704001029.71704.qmail-zOhVngzifveA/QwVtaZbd3CJp6faPEW9@public.gmane.org>
@ 2003-07-04 10:22   ` Alexander Hoogerhuis
       [not found]     ` <87of0app5v.fsf-E1YXmAG8v4VQD7NkSvH8p9BPR1lH4CV8@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Alexander Hoogerhuis @ 2003-07-04 10:22 UTC (permalink / raw)
  To: Scott Duplichan; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

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


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Compaq Evo 510SFF and ACPI
       [not found]     ` <87of0app5v.fsf-E1YXmAG8v4VQD7NkSvH8p9BPR1lH4CV8@public.gmane.org>
@ 2003-07-04 11:57       ` Scott Duplichan
       [not found]         ` <20030704115741.84107.qmail-fSNY+zs/3deA/QwVtaZbd3CJp6faPEW9@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Scott Duplichan @ 2003-07-04 11:57 UTC (permalink / raw)
  To: Alexander Hoogerhuis; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f


--- 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!
http://sbc.yahoo.com


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Compaq Evo 510SFF and ACPI
       [not found]         ` <20030704115741.84107.qmail-fSNY+zs/3deA/QwVtaZbd3CJp6faPEW9@public.gmane.org>
@ 2003-07-04 12:47           ` Alexander Hoogerhuis
  0 siblings, 0 replies; 7+ messages in thread
From: Alexander Hoogerhuis @ 2003-07-04 12:47 UTC (permalink / raw)
  To: Scott Duplichan; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Scott Duplichan <sduplichan-/E1597aS9LQAvxtiuMwx3w@public.gmane.org> writes:

> 
> 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.
> 

Do basically changing the constant and recompiling might solve things?

> -- 
> Scott

-- 
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


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: Compaq Evo 510SFF and ACPI
@ 2003-07-14  0:33 Grover, Andrew
       [not found] ` <F760B14C9561B941B89469F59BA3A8470255EE86-sBd4vmA9Se4Lll3ZsUKC9FDQ4js95KgL@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Grover, Andrew @ 2003-07-14  0:33 UTC (permalink / raw)
  To: Scott Duplichan, Alexander Hoogerhuis
  Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	gone-r/Jw6+rmf7HQT0dZR+AlfA

from include/linux/acpi.h:

struct acpi_table_rsdt {
	struct acpi_table_header header;
	u32			entry[8];
} __attribute__ ((packed));

The RSDT actually contains an arbitrary number of entries. The precise
number is determined by the length, which is in the header. The typical
C way to accommodate this is to define an array of length 1 and then
using the (theoretically) undefined behavior of accessing beyond the end
of the array to access subsequent elements.

So, the correct fix is that that should be "entry[1]" above, and the
length check in srat.c can just go away, I think.

Regards -- Andy

> -----Original Message-----
> From: Scott Duplichan [mailto:sduplichan-/E1597aS9LQAvxtiuMwx3w@public.gmane.org] 
> Sent: Friday, July 04, 2003 4:58 AM
> To: Alexander Hoogerhuis
> Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> Subject: Re: [ACPI] Compaq Evo 510SFF and ACPI
> 
> 
> 
> --- 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!
> http://sbc.yahoo.com
> 
> 
> -------------------------------------------------------
> This SF.Net email sponsored by: Free pre-built ASP.NET sites including
> Data Reports, E-commerce, Portals, and Forums are available now.
> Download today and enter to win an XBOX or Visual Studio .NET.
> http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_06
> 1203_01/01
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/acpi-devel
> 


-------------------------------------------------------
This SF.Net email sponsored by: Parasoft
Error proof Web apps, automate testing & more.
Download & eval WebKing and get a free book.
www.parasoft.com/bulletproofapps1

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Compaq Evo 510SFF and ACPI
       [not found] ` <F760B14C9561B941B89469F59BA3A8470255EE86-sBd4vmA9Se4Lll3ZsUKC9FDQ4js95KgL@public.gmane.org>
@ 2003-07-14  0:41   ` Matthew Wilcox
  0 siblings, 0 replies; 7+ messages in thread
From: Matthew Wilcox @ 2003-07-14  0:41 UTC (permalink / raw)
  To: Grover, Andrew
  Cc: Scott Duplichan, Alexander Hoogerhuis,
	acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	gone-r/Jw6+rmf7HQT0dZR+AlfA

On Sun, Jul 13, 2003 at 05:33:09PM -0700, Grover, Andrew wrote:
> from include/linux/acpi.h:
> 
> struct acpi_table_rsdt {
> 	struct acpi_table_header header;
> 	u32			entry[8];
> } __attribute__ ((packed));
> 
> The RSDT actually contains an arbitrary number of entries. The precise
> number is determined by the length, which is in the header. The typical
> C way to accommodate this is to define an array of length 1 and then
> using the (theoretically) undefined behavior of accessing beyond the end
> of the array to access subsequent elements.

GCC has one extension to this (iirc entry[0]) and C99 takes an alternative
approach (iirc entry[]).  So choose your poison ...

-- 
"It's not Hollywood.  War is real, war is primarily not about defeat or
victory, it is about death.  I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk


-------------------------------------------------------
This SF.Net email sponsored by: Parasoft
Error proof Web apps, automate testing & more.
Download & eval WebKing and get a free book.
www.parasoft.com/bulletproofapps1

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2003-07-14  0:41 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-07-03 17:33 Compaq Evo 510SFF and ACPI Alexander Hoogerhuis
  -- strict thread matches above, loose matches on Subject: below --
2003-07-04  0:10 Scott Duplichan
     [not found] ` <20030704001029.71704.qmail-zOhVngzifveA/QwVtaZbd3CJp6faPEW9@public.gmane.org>
2003-07-04 10:22   ` Alexander Hoogerhuis
     [not found]     ` <87of0app5v.fsf-E1YXmAG8v4VQD7NkSvH8p9BPR1lH4CV8@public.gmane.org>
2003-07-04 11:57       ` Scott Duplichan
     [not found]         ` <20030704115741.84107.qmail-fSNY+zs/3deA/QwVtaZbd3CJp6faPEW9@public.gmane.org>
2003-07-04 12:47           ` Alexander Hoogerhuis
2003-07-14  0:33 Grover, Andrew
     [not found] ` <F760B14C9561B941B89469F59BA3A8470255EE86-sBd4vmA9Se4Lll3ZsUKC9FDQ4js95KgL@public.gmane.org>
2003-07-14  0:41   ` Matthew Wilcox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox