Find the answer to your Linux question:
Results 1 to 2 of 2
Hi hope all enjoying the dynamic world of Linux. i need help from someone who has expertise in c/c++,kernel development especially ACPI related module and BIOS stuff. Infact i want ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Sep 2008
    Posts
    2

    Red face ACPI Detection


    Hi hope all enjoying the dynamic world of Linux. i need help from someone who has expertise in c/c++,kernel development especially ACPI related module and BIOS stuff. Infact i want to detect whether a system BIOS is ACPI compatiable or not. While reading some text on the internet i come to know when an ACPI-aware operating system kernel is started, it search for a small data structure within the BIOS memory area. If a valid structure is found (e.g. if its checksum and signature match) then the kernel uses this structure to obtain a pointer to the ACPI tables and memory map. This information is used by the kernel to preserve the ACPI tables when the virtual memory system is started. My question is where the above mentioned piece of code is handled in v.big kernel code base. Actually i want to do the same job in bootloader space before loading the kernel i.e may be in grub source

    Thank in advance

    unix (out of box)

  2. #2
    Just Joined! wildpossum's Avatar
    Join Date
    Apr 2008
    Location
    Sydney/Australia
    Posts
    92
    ACPI is a bit more involved than your laid out.

    Basically,

    BIOS utilises a special x86 execution mode triggered via system management interrupts (SMI's). To notify Linux about ACPI events detected in SMI mode, the BIOS asserts a system control interrupt (SCI). Look at drivers/acpi/osl.c for the linux ACPI code that request this SCI/IRQ. and drivers/misc/thinkpad_acpi.c for example. The files under /proc/acpi/ are generated by the standard ACPI drivers, so use these to your advantage.

    A core layer that provides ACPI essentials is written in AML a language that runs on a VM implemented by the OS AML intereter. ACPI drivers for interfacing standard components (fan, buttons etc)

    If your machine is using OEM specific drivers the only way to use any ACPI information is via the /proc/acpi interface.

    Use tools like: acpitool, and cat to probe for what you require I suggest is the best way to start. As well as looking through the ACPI source code under various drivers.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •