Announcement

Collapse
No announcement yet.

[DB] BIOS - ACPI - data collecting

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [DB] BIOS - ACPI - data collecting

    Most of you here had probably followed the "regressions" pointed out some weeks ago by Phoronix. I will not repeat all what have been told, except that the true guilt are the badly programmed BIOS. A good article sums up this on LWN ( lwn.net/Articles/449448 ) and probably elsewhere.

    Most of time (always?) the BIOS are programmed in assembly. Like everywhere in computer science, it is important having a BIOS which respects standards, like ACPI. The ACPI tables are "compiled" (the word is probably not the perfect one) with a compiler. Several vendors provide compilers. For example: Microsoft, Intel, Award, etc. Some compilers seems to be more strict at the compile time, which seems to be the case of the Intel compiler, "iasl" (Intel ACPI Source Language compiler/decompiler). Furthermore, Intel provides a reference ACPI implementation called ACPICA ( acpica.org ) which is included within Linux. For your information, the ACPI standard is co-developed by Intel, Microsoft, Toshiba, HP, Phoenix and maybe other. That said, this doesn't means that they implement correctly the standards. Microsoft is a member of the W3C Consortium and however we see their HTML and CSS implementations...

    What I have heard during these last events is that Microsoft (through its ACPI compiler) overlooks more easily "errors", knowing it can workaround them in the OS. Obviously this *can* results in BIOS more or less buggy, penalizing the others OS. Motherboards vendors (BIOS vendor to be correct) have the possibility to use the compiler of their choice. Have you ever noted on vendor's web sites, logos like "XXX recommends Windows"? Personally I don't feel this attractive and this is why I am interrogating on the good Linux support. Are the BIOS tested only with Windows?

    This is why I want to collect here several BIOS data: which compiler use the vendors, etc. To do so, it's easy:

    1ST STEP:
    # yum install pmtools
    # acpidump > acpi.dump
    # acpixtract -l acpi.dump

    Post here the results of the last command. Report also your motherboard model (you can get useful data thanks to dmidecode) and BIOS version. I will update my database. I have personally tested several motherboards. With help of different French Linux forums, I have collected more data already.

    2ND STEP:
    Intel provides a Linux-ready Firmware Kit, available on a LiveCD (79 MB) ( http://linuxfirmwarekit.org/download/firmwarekit-r3.iso ). You only have to launch it, wait 1 or 2 minutes, and there is a summary of the results based on different topics (memory handling, PCI resources, HPET, ACPI tables, and more). The results is a number of "Fail", "Warn" and "Pass" flags. This Linux-ready Firmware Kit seems to not be developed anymore, but I guess it can give us a idea of the quality of the BIOS.

    RESULTS:
    All the collected data are here:



    Note 1) One thing that must become clearer is if the Linux-ready Firmware Kit can have different results if the BIOS parameters change (example: if the SpeedStep/Cool'n'Quiet is enabled/disabled).
    Note 2) I'm not a BIOS or ACPI expert. So if I tell something wrong, please tell me. I will correct this!
    Note 3) I don't know if the Linux-ready Firmware Kit can be executed on a running system.
    Note 4) I'm not English native speaker.

  • #2
    up up up up

    Comment


    • #3
      Sounds like a nice idea, and if people can play around with the bios settings and running the steps each time they change settings just to get an idea of what happens. Of course anyone who plays with their BIOS settings should note the original settings prior to testing.

      Not sure if the Intel live CD will give meaningful results with most recent BIOS...but its worth a try.

      Also where should all the dumps be collected for analysis?

      I have debian so there's package acpidump in the repos for those who use Debian
      Last edited by DeepDayze; 16 October 2011, 12:54 PM.

      Comment


      • #4
        Originally posted by DeepDayze View Post
        Also where should all the dumps be collected for analysis?
        Here on the thread. The results of the acpixtract is short and there is no "analysis" to be done, just read the log.
        Nevertheless, given the data I already have, the acpixtract data are not really interesting. The Linux-ready Firmware Kit results are much more interesting!

        I really want to collect data of Abit, Intel server, Tyan and Super Micro motherboards.

        Comment


        • #5
          Here is an ACPI dump for an Abit KN9 mobo

          Signature Length OemId OemTableId OemRevision CompilerId CompilerRevision

          DSDT 25634 "NVIDIA" "AWRDACPI" 00001000 "MSFT" 0100000E
          FACS 64
          FACP 116 "DELL " "AWRDACPI" 42302E31 "AWRD" 00000000
          SSDT 848 "PTLTD " "POWERNOW" 00000001 " LTP" 00000001
          MCFG 60 "DELL " "AWRDACPI" 42302E31 "AWRD" 00000000
          APIC 114 "DELL " "AWRDACPI" 42302E31 "AWRD" 00000000
          SLIC 374 "DELL " "QA09 " 42302E31 "NVDA" 0100000E
          RSDT 56 "DELL " "QA09 " 42302E31 "AWRD" 00000000
          RSDP "Nvidia"

          Found 9 ACPI tables [20060324]

          Basic system info:

          Machine: Mobo: Abit model: KN9 Series(NF-CK804) version: 1.x Bios: Phoenix version: 6.00 PG date: 04/28/2008
          CPU: Dual core AMD Athlon 64 X2 6400+ (-MCP-) cache: 2048 KB flags: (lm nx sse sse2 sse3 svm)
          Clock Speeds: 1: 1000.00 MHz 2: 1000.00 MHz

          I'll get a dump using the Intel CD later

          Comment


          • #6
            Originally posted by DeepDayze View Post
            I'll get a dump using the Intel CD later
            Nice!

            Thank you for your report.

            Comment


            • #7
              GA-880GA-UD3H rev 2.0
              BIOS: Award F7


              $ sudo acpidump > acpi.dump
              Wrong checksum for generic table!

              $ acpixtract -l acpi.dump

              Signature Length OemId OemTableId OemRevision CompilerId CompilerRevision

              DSDT 30428 "GBT " "GBTUACPI" 00001000 "MSFT" 03000000
              FACS 64
              FACP 116 "GBT " "GBTUACPI" 42302E31 "GBTU" 01010101
              SSDT 2188 "PTLTD " "POWERNOW" 00000001 " LTP" 00000001
              HPET 56 "GBT " "GBTUACPI" 42302E31 "GBTU" 00000098
              MCFG 60 "GBT " "GBTUACPI" 42302E31 "GBTU" 01010101
              MATS 52 "GBT " " " 00000000 " " 00000000
              TAMG 514 "GBT " "GBT B0" 5455312E "BG " 53450101
              APIC 188 "GBT " "GBTUACPI" 42302E31 "GBTU" 01010101
              RSDT 64 "GBT " "GBTUACPI" 42302E31 "GBTU" 01010101
              RSDP "GBT "

              Found 11 ACPI tables [20060324]

              Comment


              • #8
                GA-880GA-UD3H rev 2.0
                BIOS: Award F7


                $ sudo acpidump > acpi.dump
                Wrong checksum for generic table!

                $ acpixtract -l acpi.dump

                Signature Length OemId OemTableId OemRevision CompilerId CompilerRevision

                DSDT 30428 "GBT " "GBTUACPI" 00001000 "MSFT" 03000000
                FACS 64
                FACP 116 "GBT " "GBTUACPI" 42302E31 "GBTU" 01010101
                SSDT 2188 "PTLTD " "POWERNOW" 00000001 " LTP" 00000001
                HPET 56 "GBT " "GBTUACPI" 42302E31 "GBTU" 00000098
                MCFG 60 "GBT " "GBTUACPI" 42302E31 "GBTU" 01010101
                MATS 52 "GBT " " " 00000000 " " 00000000
                TAMG 514 "GBT " "GBT B0" 5455312E "BG " 53450101
                APIC 188 "GBT " "GBTUACPI" 42302E31 "GBTU" 01010101
                RSDT 64 "GBT " "GBTUACPI" 42302E31 "GBTU" 01010101
                RSDP "GBT "

                Found 11 ACPI tables [20060324]

                Comment


                • #9
                  Thank you for your report.

                  Comment


                  • #10
                    I don't use a yum distro. Is there another way to get the package of Step 1?

                    Comment

                    Working...
                    X