2

I want to access Physical memory in BSD. acpidump -t XSDT > xsdt_dump.asl it is giving:

/*
  RSD PTR: OEM=ALASKA, ACPI_Rev=2.0x (2)
    XSDT=0x9aae8070, length=36, cksum=164
 */
/*
  XSDT: Length=92, Revision=1, Checksum=244,
    OEMID=ALASKA, OEM Table ID=H55HC, OEM Revision=0x1072009,
    Creator ID=AMI, Creator Revision=0x10013
    Entries={ 0x9aaee2d8, 0x9aaee3d0, 0x9aaee458, 0x9aaee4a0, 0x9aaee560, 0x9aaee668, 0x9aaee6a8 }
 */
/*
  FACP: Length=244, Revision=4, Checksum=153,
    OEMID=ALASKA, OEM Table ID=H55HC, OEM Revision=0x1072009,
    Creator ID=AMI, Creator Revision=0x10013
    FACS=0x9b2f9f80, DSDT=0x9aae8158
    INT_MODEL=APIC
    Preferred_PM_Profile=Workstation (3)
    SCI_INT=9
    SMI_CMD=0xb2, ACPI_ENABLE=0xa0, ACPI_DISABLE=0xa1, S4BIOS_REQ=0x0
    PSTATE_CNT=0x0
    PM1a_EVT_BLK=0x400-0x403
    PM1a_CNT_BLK=0x404-0x405
    PM2_CNT_BLK=0x450-0x450
    PM_TMR_BLK=0x408-0x40b
    GPE0_BLK=0x420-0x42f
    P_LVL2_LAT=101 us, P_LVL3_LAT=1001 us
    FLUSH_SIZE=1024, FLUSH_STRIDE=16
    DUTY_OFFSET=1, DUTY_WIDTH=3
    DAY_ALRM=13, MON_ALRM=0, CENTURY=50
    IAPC_BOOT_ARCH={LEGACY_DEVICES}
    Flags={WBINVD,C1_SUPPORTED,SLEEP_BUTTON,S4_RTC_WAKE,RESET_REGISTER,PLATFORM_CLOCK,S4_RTC_VALID,REMOTE_POWER_ON}
    RESET_REG=0xcf9:0[8] (IO), RESET_VALUE=0x6
 */
/*
  FACS: Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
    Global_Lock=
    Flags=
    Version=2
 */
/*
  DSDT: Length=24957, Revision=2, Checksum=249,
    OEMID=ALASKA, OEM Table ID=H55HC, OEM Revision=0x400,
    Creator ID=INTL, Creator Revision=0x20051117
 */
/*
  APIC: Length=132, Revision=3, Checksum=217,
    OEMID=ALASKA, OEM Table ID=H55HC, OEM Revision=0x1072009,
    Creator ID=AMI, Creator Revision=0x10013
    Local APIC ADDR=0xfee00000
    Flags={PC-AT}

    Type=Local APIC
    ACPI CPU=0
    Flags={ENABLED}
    APIC ID=0

    Type=Local APIC
    ACPI CPU=2
    Flags={ENABLED}
    APIC ID=4

    Type=Local APIC
    ACPI CPU=1
    Flags={ENABLED}
    APIC ID=1

    Type=Local APIC
    ACPI CPU=3
    Flags={ENABLED}
    APIC ID=5

    Type=IO APIC
    APIC ID=0
    INT BASE=0
    ADDR=0x00000000fec00000

    Type=INT Override
    BUS=0
    IRQ=0
    INTR=2
    Flags={Polarity=conforming, Trigger=conforming}

    Type=INT Override
    BUS=0
    IRQ=9
    INTR=9
    Flags={Polarity=active-hi, Trigger=level}

    Type=Local APIC NMI
    ACPI CPU=0
    LINT Pin=1
    Flags={Polarity=active-hi, Trigger=edge}

    Type=Local APIC NMI
    ACPI CPU=2
    LINT Pin=1
    Flags={Polarity=active-hi, Trigger=edge}

    Type=Local APIC NMI
    ACPI CPU=1
    LINT Pin=1
    Flags={Polarity=active-hi, Trigger=edge}

    Type=Local APIC NMI
    ACPI CPU=3
    LINT Pin=1
    Flags={Polarity=active-hi, Trigger=edge}
 */
/*
  FPDT: Length=68, Revision=1, Checksum=154,
    OEMID=ALASKA, OEM Table ID=H55HC, OEM Revision=0x1072009,
    Creator ID=AMI, Creator Revision=0x10013
 */
/*
  FIDT: Length=192, Revision=1, Checksum=222,
    OEMID=ALASKA, OEM Table ID=H55HC, OEM Revision=0x1072009,
    Creator ID=AMI, Creator Revision=0x10013
 */
/*
  SSDT: Length=258, Revision=1, Checksum=239,
    OEMID=AMICPU, OEM Table ID=PROC, OEM Revision=0x1,
    Creator ID=MSFT, Creator Revision=0x3000001
 */
/*
  MCFG: Length=60, Revision=1, Checksum=155,
    OEMID=ALASKA, OEM Table ID=H55HC, OEM Revision=0x1072009,
    Creator ID=MSFT, Creator Revision=0x97

    Base Address=0x00000000e0000000
    Segment Group=0x0000
    Start Bus=0
    End Bus=63
 */
/*
  HPET: Length=56, Revision=1, Checksum=144,
    OEMID=ALASKA, OEM Table ID=H55HC, OEM Revision=0x1072009,
    Creator ID=AMI., Creator Revision=0x5
    HPET Number=0
    ADDR=0xfed00000:0[64] (Memory)  HW Rev=0x1
    Comparators=7
    Counter Size=1
    Legacy IRQ routing capable={TRUE}
    PCI Vendor ID=0x8086
    Minimal Tick=14318
 */

In RSD PTR Table, what is XSDT=0x9aae8070? Is this a address of the XSDT table or I need to add some other address to access XSDT table from memory ?

Chris S
  • 77,337
  • 11
  • 120
  • 212
gkreddy
  • 21
  • 2
  • 2
    Why do you want to do this? What *practical problem in a production environment* are you trying to solve by sticking your fingers into physical memory locations as opposed to, say, using the virtual address space the kernel works so hard to provide, and using the drivers people worked so hard to write for interfacing with hardware? – voretaq7 Aug 07 '13 at 15:21
  • i need to access XSDT table ? i am working for a Reputed Software Company? Need to know how to access ?? just need to Get the Signature of XSDT-->OemTableId of that ?? – gkreddy Aug 07 '13 at 15:44
  • If you just need to get the signature, it's in the dump file you posted (`H55HC`). – Chris S Aug 07 '13 at 16:00
  • hi boss !! i need to write a program like which will take input from that file and get the XSDT table using that address need to access XSDT entries which has remaining Table addresses form that Entries I want to Access FIDT table. – gkreddy Aug 08 '13 at 04:27
  • I don't know how, but the program you're using has it's source code [available here](http://svnweb.freebsd.org/base/head/usr.sbin/acpi/acpidump/), and you could even copy big chunks of the code if you can follow the [Simplified BSD license](http://opensource.org/licenses/BSD-2-Clause). – Chris S Aug 08 '13 at 13:04

0 Answers0