mirror of
https://github.com/acpica/acpica/
synced 2025-01-28 04:05:20 +03:00
Made the "common" FACS a static global structure because we need to
keep the original FACS mapped so that the global lock is accessible. date 2002.02.11.17.33.00; author rmoore1; state Exp;
This commit is contained in:
parent
2720aa2e53
commit
c03ad3a408
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: aeexec - Support routines for AcpiExec utility
|
||||
* $Revision: 1.52 $
|
||||
* $Revision: 1.54 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -120,6 +120,7 @@
|
||||
#include "amlcode.h"
|
||||
#include "acnamesp.h"
|
||||
#include "acdebug.h"
|
||||
#include "actables.h"
|
||||
#include "aecommon.h"
|
||||
|
||||
#include <stdio.h>
|
||||
@ -140,6 +141,132 @@ DEBUG_REGIONS Regions;
|
||||
RSDP_DESCRIPTOR LocalRsdp;
|
||||
|
||||
|
||||
/*
|
||||
* We need a local FADT so that the hardware subcomponent will function,
|
||||
* even though the underlying OSD HW access functions don't do
|
||||
* anything.
|
||||
*/
|
||||
RSDP_DESCRIPTOR LocalRSDP;
|
||||
FADT_DESCRIPTOR_REV1 LocalFADT;
|
||||
FACS_DESCRIPTOR_REV1 LocalFACS;
|
||||
RSDT_DESCRIPTOR_REV1 LocalRSDT;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeBuildLocalTables
|
||||
*
|
||||
* PARAMETERS:
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AeBuildLocalTables (void)
|
||||
{
|
||||
/* Build an RSDP */
|
||||
|
||||
MEMSET (&LocalRSDP, 0, sizeof (RSDP_DESCRIPTOR));
|
||||
MEMCPY (&LocalRSDP.Signature, RSDP_SIG, 8);
|
||||
LocalRSDP.Revision = 1;
|
||||
LocalRSDP.RsdtPhysicalAddress = ACPI_TO_INTEGER (&LocalRSDT);
|
||||
|
||||
AcpiGbl_RSDP = &LocalRSDP;
|
||||
|
||||
|
||||
/* Build an RSDT */
|
||||
|
||||
MEMSET (&LocalRSDT, 0, sizeof (LocalRSDT));
|
||||
MEMCPY (&LocalRSDT.Header.Signature, RSDT_SIG, 4);
|
||||
LocalRSDT.Header.Length = sizeof (RSDT_DESCRIPTOR_REV1);
|
||||
|
||||
|
||||
LocalRSDT.TableOffsetEntry[0] = ACPI_TO_INTEGER (&LocalFADT);
|
||||
|
||||
/* Build a FADT so we can test the hardware/event init */
|
||||
|
||||
MEMSET (&LocalFADT, 0, sizeof (FADT_DESCRIPTOR_REV1));
|
||||
MEMCPY (&LocalFADT.Header.Signature, FADT_SIG, 4);
|
||||
|
||||
LocalFADT.FirmwareCtrl = ACPI_TO_INTEGER (&LocalFACS);
|
||||
LocalFADT.Header.Revision = 1;
|
||||
LocalFADT.Header.Length = sizeof (FADT_DESCRIPTOR_REV1);
|
||||
LocalFADT.Gpe0BlkLen = 8;
|
||||
LocalFADT.Gpe1BlkLen = 12;
|
||||
LocalFADT.Gpe1Base = 64;
|
||||
|
||||
LocalFADT.Pm1EvtLen = 4;
|
||||
LocalFADT.Pm1CntLen = 4;
|
||||
LocalFADT.PmTmLen = 8;
|
||||
|
||||
LocalFADT.Gpe0Blk = 0x12340000;
|
||||
LocalFADT.Gpe1Blk = 0x12341110;
|
||||
|
||||
LocalFADT.Pm1aEvtBlk = 0x1234aaa0;
|
||||
LocalFADT.Pm1bEvtBlk = 0;
|
||||
LocalFADT.PmTmrBlk = 0xA0;
|
||||
LocalFADT.Pm1aCntBlk = 0xB0;
|
||||
|
||||
/* Complete the FADT with the checksum */
|
||||
|
||||
LocalFADT.Header.Checksum = (UINT8) (0 - AcpiTbChecksum (&LocalFADT, LocalFADT.Header.Length));
|
||||
|
||||
/* Build a FACS */
|
||||
|
||||
MEMSET (&LocalFACS, 0, sizeof (FACS_DESCRIPTOR_REV1));
|
||||
MEMCPY (&LocalFACS.Signature, FACS_SIG, 4);
|
||||
LocalFACS.Length = sizeof (FACS_DESCRIPTOR_REV1);
|
||||
LocalFACS.GlobalLock = 0x11AA0011;
|
||||
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeInstallTables
|
||||
*
|
||||
* PARAMETERS:
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AeInstallTables (void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
#if 0
|
||||
Status = AcpiLoadTables ();
|
||||
#endif
|
||||
|
||||
Status = AcpiLoadTable ((ACPI_TABLE_HEADER *) &LocalFADT);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("**** Could not load local FADT, %s\n", AcpiFormatException (Status));
|
||||
return (Status);
|
||||
}
|
||||
|
||||
Status = AcpiLoadTable ((ACPI_TABLE_HEADER *) &LocalFACS);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("**** Could not load local FACS, %s\n", AcpiFormatException (Status));
|
||||
return (Status);
|
||||
}
|
||||
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AeLocalGetRootPointer
|
||||
@ -159,10 +286,8 @@ AeLocalGetRootPointer (
|
||||
ACPI_PHYSICAL_ADDRESS *RsdpPhysicalAddress)
|
||||
{
|
||||
|
||||
STRCPY (LocalRsdp.Signature, RSDP_SIG);
|
||||
LocalRsdp.Revision = 1;
|
||||
|
||||
return (AE_NOT_FOUND);
|
||||
*RsdpPhysicalAddress = ACPI_TO_INTEGER (&LocalRSDP);
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user