APIC data ?? (Arne Chr. Jorgensen)

Arne Chr. Jorgensen achrisjo at yahoo.com
Wed Feb 3 21:38:56 UTC 2010


hi,

I have copied  DSDT and FADT from /proc/acpi to files, and
suppose this could be one way to get the data I was asking
about.

Now, I don't know what these tables are in fact. 
( attempting to figure out some of that now )

Found some decompiler and issued 
 iasl -d fadt.dat

- and get something like this:

[000h 000  4]                    Signature : "FACP"    /* Fixed ACPI Description Table */
[004h 004  4]                 Table Length : 000000F4
[008h 008  1]                     Revision : 04
[009h 009  1]                     Checksum : 1F
[00Ah 010  6]                       Oem ID : "HP    "
[010h 016  8]                 Oem Table ID : "0944    "
[018h 024  4]                 Oem Revision : 00000003
[01Ch 028  4]              Asl Compiler ID : "HP  "
[020h 032  4]        Asl Compiler Revision : 00000001

<snip>

[038h 056  4]     PM1A Event Block Address : 00008000
[03Ch 060  4]     PM1B Event Block Address : 00008104
[040h 064  4]   PM1A Control Block Address : 00008004
[044h 068  4]   PM1B Control Block Address : 00000000
[048h 072  4]    PM2 Control Block Address : 00008800  <---- NOTICE 1
[04Ch 076  4]       PM Timer Block Address : 00008008
[050h 080  4]           GPE0 Block Address : 00008020
[054h 084  4]           GPE1 Block Address : 00000000
[058h 088  1]       PM1 Event Block Length : 04
[059h 089  1]     PM1 Control Block Length : 02
[05Ah 090  1]     PM2 Control Block Length : 01

<snip>

[0BCh 188  8]                      Address : 0000000000000000

[0C4h 196 12]            PM2 Control Block : <Generic Address Structure>
[0C4h 196  1]                     Space ID : 01 (SystemIO)
[0C5h 197  1]                    Bit Width : 08
[0C6h 198  1]                   Bit Offset : 00
[0C7h 199  1]                 Access Width : 00
[0C8h 200  8]                      Address : 0000000000008100  <--- NOTICE 2

<snip>  

ACPI Error (tbfadt-0661): 32/64X address mismatch in Pm2ControlBlock: 00008800/0000000000008100, using 64X [20090123]

Raw Table Data

  0000: 46 41 43 50 F4 00 00 00 04 1F 48 50 20 20 20 20  FACP......HP    
  0010: 30 39 34 34 20 20 20 20 03 00 00 00 48 50 20 20  0944    ....HP  
  0020: 01 00 00 00 80 7D FE 77 A4 84 FC 77 00 02 09 00  .....}.w...w....
  0030: B0 00 00 00 F1 F0 F2 00 00 80 00 00 04 81 00 00  ................
  0040: 04 80 00 00 00 00 00 00 00 88 00 00 08 80 00 00  ................
  0050: 20 80 00 00 00 00 00 00 04 02 01 04 08 00 00 00   ...............
  0060: C8 00 D0 07 00 00 00 00 01 03 0D 00 32 03 00 00  ............2...
  0070: A5 01 00 00 01 08 00 00 00 00 00 00 00 00 00 00  ................
  0080: 00 00 00 00 80 7D FE 77 00 00 00 00 A4 84 FC 77  .....}.w.......w
  0090: 00 00 00 00 01 20 00 00 00 80 00 00 00 00 00 00  ..... ..........
  00A0: 01 20 00 00 04 81 00 00 00 00 00 00 01 10 00 00  . ..............
  00B0: 04 80 00 00 00 00 00 00 01 10 00 00 00 00 00 00  ................
  00C0: 00 00 00 00 01 08 00 00 00 81 00 00 00 00 00 00  ................
  00D0: 01 20 00 00 08 80 00 00 00 00 00 00 01 40 00 00  . ........... at ..
  00E0: 20 80 00 00 00 00 00 00 01 00 00 00 00 00 00 00   ...............
  00F0: 00 00 00 00                                      ....

<snip> 

Are these table entries incorrect ?  ( it may look like it )
If so, which one is wrong ?  
Where is the original data ? My BIOS firmware ?

In fact, looking closer in my dmesg file:

ACPI: RSDP 00000000000fe0b0 00024 (v02 HP    )
ACPI: XSDT 0000000077fc81bc 00064 (v01 HPQOEM SLIC-MPC 00000001 HP   00000001)
ACPI: FACP 0000000077fc8084 000F4 (v04 HP     0944     00000003 HP   00000001)
ACPI Error: 32/64X address mismatch in Pm2ControlBlock: 00008800/0000000000008100, using 32 20090521 tbfadt-428
ACPI: DSDT 0000000077fc84a4 11437 (v01 HP        SB400 00010000 MSFT 03000001)
ACPI: FACS 0000000077fe7d80 00040
ACPI: SLIC 0000000077fc8220 00176 (v01 HPQOEM SLIC-MPC 00000001 HP   00000001)
ACPI: EPTH 0000000077fc8398 00038 (v01 HP     0944     00000001 HP   00000001)
ACPI: APIC 0000000077fc83d0 00062 (v01 HP     0944     00000001 HP   00000001)
ACPI: MCFG 0000000077fc8434 0003C (v01 HP     0944     00000001 HP   00000001)
ACPI: TCPA 0000000077fc8470 00032 (v02 HP     0944     00000001 HP   00000001)
ACPI: SSDT 0000000077fd98db 00059 (v01 HP       HPQNLP 00000001 MSFT 03000001)
ACPI: SSDT 0000000077fd9934 00206 (v01 HP     PSSTBLID 00000001 HP   00000001)
ACPI: Local APIC address 0xfee00000

                                       -----------------

Here it seem to select the 32bit address. 

Question: - if a wrong address would be used, then all sorts of timer related stuff may be
all very wrong, huh ?

Any comments ?    

( Now, what the heck do ... )

Suggestions ?   

//ARNE

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.fedoraproject.org/pipermail/users/attachments/20100203/d29861ed/attachment.html 


More information about the users mailing list