mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-23 19:28:36 +00:00
parent
722b16673c
commit
07c64d7491
|
@ -1,4 +1,34 @@
|
|||
----------------------------------------
|
||||
28 June 2023. Summary of changes for version 20230628:
|
||||
|
||||
0) Global changes:
|
||||
|
||||
Fixed a problem with the ASL/AML Timer() operator. Discovered by UBSAN: ?array-index-out-of-bounds in acpica/dswexec.c:401:12 index -1 is out of range for type 'acpi_operand_object?. Added AML_NO_OPERAND_RESOLVE flag to Timer (since there are no runtime arguments). Reported by: Abhishek Mainkar abmainkar@nvidia.com.
|
||||
|
||||
Added a define for size of acpi_srat_generic_affinity DeviceHandle. Replaced a magic number with a define. The Linux kernel code will utilize this. Reported by Dave Jiang dave.jiang@intel.com.
|
||||
|
||||
Added support for _DSC (Deepest State for Configuration) as per ACPI 6.5.
|
||||
|
||||
1) ACPICA kernel-resident subsystem:
|
||||
|
||||
Added port definitions for CDAT SSLBIS. Add upstream port and any port definitions for SSLBIS. Reported by: Dave Jiang dave.jiang@intel.com.
|
||||
|
||||
Fixed misspelled CDAT DSMAS define: ACPI_CEDT_DSMAS_NON_VOLATILE -> ACPI_CDAT_DSMAS_NON_VOLATILE. Reported by: Dave Jiang dave.jiang@intel.com.
|
||||
|
||||
1) ACPICA kernel-resident subsystem:
|
||||
|
||||
Fix GCC 12 dangling-pointer warning. We're storing a persistent pointer to an ephemeral local variable which technically is a dangling pointer and the compiler is correct. However, since we never indirect the pointer, this is a safe operation and we can suppress the warning.
|
||||
|
||||
Also, some C run-times (like MUSL) aren't including <stdint.h> indirectly so we must include it explicitly or we won't have the type definition for uintptr_t.
|
||||
|
||||
2) iASL Compiler/Disassembler and ACPICA tools:.
|
||||
|
||||
IASL/RHCT: Enable dumping and compiling newly added nodes. The RHCT table is updated with new nodes. Add compile and dump functionality for these new structures.
|
||||
|
||||
AcpiExec: Added a new command, ?interrupt?. The Interrupt command simulates an interrupt with a IntID (GSIV) equal to the first argument of the call/invocation. The acpiexec code simulates the behavior by OSPM: execute the _EVT method of the GED device associated with that IntID. Submitted by: Jose Marinho jose.marinho@arm.com.
|
||||
|
||||
AcpiExec: Detect GED device and keep track of _EVT. The GED device is described by a _HID of ACPI0013. This code traverses the namespace identifying all GED devices. For each GED device in the namespace we record the Interrupt object and the _EVT method. This information is used when an interrupt is simulated via the ?interrupt? command. Submitted by: Jose Marinho jose.marinho@arm.com.
|
||||
----------------------------------------
|
||||
31 March 2023. Summary of changes for version 20230331:
|
||||
|
||||
This release is available at https://acpica.org/downloads
|
||||
|
|
|
@ -234,6 +234,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
|
|||
AH_PREDEF ("_DMA", "Direct Memory Access", "Returns device current resources for DMA transactions, and resource field"),
|
||||
AH_PREDEF ("_DOD", "Display Output Devices", "Enumerate all devices attached to the display adapter"),
|
||||
AH_PREDEF ("_DOS", "Disable Output Switching", "Sets the display output switching mode"),
|
||||
AH_PREDEF ("_DSC", "Deepest State for Configuration", "Returns the deepest D-state of the device to the OSPM"),
|
||||
AH_PREDEF ("_DPL", "Device Selection Polarity", "Polarity of Device Selection signal, Resource Descriptor field"),
|
||||
AH_PREDEF ("_DRS", "Drive Strength", "Drive Strength setting for GPIO connection, Resource Descriptor field"),
|
||||
AH_PREDEF ("_DSD", "Device-Specific Data", "Returns a list of device property information"),
|
||||
|
|
|
@ -430,6 +430,9 @@ static const char *AcpiDmMadtSubnames[] =
|
|||
"Bridge I/O Interrupt Controller", /* ACPI_MADT_TYPE_BIO_PIC */
|
||||
"LPC Interrupt Controller", /* ACPI_MADT_TYPE_LPC_PIC */
|
||||
"RISC-V Interrupt Controller", /* ACPI_MADT_TYPE_RINTC */
|
||||
"RISC-V Incoming MSI Controller", /* ACPI_MADT_TYPE_IMSIC */
|
||||
"RISC-V APLIC Controller", /* ACPI_MADT_TYPE_APLIC */
|
||||
"RISC-V PLIC Controller", /* ACPI_MADT_TYPE_PLIC */
|
||||
"Unknown Subtable Type", /* Reserved */
|
||||
"Types 80-FF are used for OEM data" /* Reserved for OEM data */
|
||||
};
|
||||
|
@ -669,6 +672,14 @@ static const char *AcpiDmGasAccessWidth[] =
|
|||
"Unknown Width Encoding"
|
||||
};
|
||||
|
||||
static const char *AcpiDmRhctSubnames[] =
|
||||
{
|
||||
"RISC-V ISA string structure", /* ACPI_RHCT_ISA_STRING */
|
||||
"RISC-V CMO node structure", /* ACPI_RHCT_CMO_NODE */
|
||||
"RISC-V MMU node structure", /* ACPI_RHCT_MMU_NODE */
|
||||
"RISC-V Hart Info structure", /* ACPI_RHCT_HART_INFO */
|
||||
};
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
|
@ -1190,6 +1201,7 @@ AcpiDmDumpTable (
|
|||
case ACPI_DMT_NFIT:
|
||||
case ACPI_DMT_NHLT1e:
|
||||
case ACPI_DMT_PHAT:
|
||||
case ACPI_DMT_RHCT:
|
||||
|
||||
ByteLength = 2;
|
||||
break;
|
||||
|
@ -2169,6 +2181,20 @@ AcpiDmDumpTable (
|
|||
AcpiDmRgrtSubnames[Temp8]);
|
||||
break;
|
||||
|
||||
case ACPI_DMT_RHCT:
|
||||
|
||||
/* RHCT subtable types */
|
||||
|
||||
Temp16 = ACPI_GET16 (Target);
|
||||
if (Temp16 == ACPI_RHCT_NODE_TYPE_HART_INFO)
|
||||
{
|
||||
Temp16 = ACPI_RHCT_NODE_TYPE_RESERVED;
|
||||
}
|
||||
|
||||
AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target),
|
||||
AcpiDmRhctSubnames[Temp16]);
|
||||
break;
|
||||
|
||||
case ACPI_DMT_SDEV:
|
||||
|
||||
/* SDEV subtable types */
|
||||
|
|
|
@ -990,6 +990,61 @@ AcpiDmDumpMadt (
|
|||
InfoTable = AcpiDmTableInfoMadt16;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_CORE_PIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt17;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_LIO_PIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt18;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_HT_PIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt19;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_EIO_PIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt20;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_MSI_PIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt21;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_BIO_PIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt22;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_LPC_PIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt23;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_RINTC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt24;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_IMSIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt25;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_APLIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt26;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_PLIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt27;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
if ((Subtable->Type >= ACPI_MADT_TYPE_RESERVED) &&
|
||||
|
@ -1021,7 +1076,7 @@ AcpiDmDumpMadt (
|
|||
/* Dump the OEM data */
|
||||
|
||||
Status = AcpiDmDumpTable (Length, Offset, ACPI_CAST_PTR (UINT8, Table) + Offset,
|
||||
Subtable->Length - sizeof (ACPI_SUBTABLE_HEADER), AcpiDmTableInfoMadt17);
|
||||
Subtable->Length - sizeof (ACPI_SUBTABLE_HEADER), AcpiDmTableInfoMadt128);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
|
@ -1058,16 +1113,16 @@ AcpiDmDumpMadt (
|
|||
Subtable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Subtable,
|
||||
Subtable->Length);
|
||||
|
||||
DbgPrint (ASL_PARSE_OUTPUT, "//[5) Next Subtable %p, length %X]\n",
|
||||
Subtable, Subtable->Length);
|
||||
DbgPrint (ASL_PARSE_OUTPUT, "//[5B) Offset from table start: 0x%8.8X%8.8X (%p)]\n",
|
||||
ACPI_FORMAT_UINT64 (ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table)), Subtable);
|
||||
|
||||
Offset = ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table);
|
||||
if (Offset >= Table->Length)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
DbgPrint (ASL_PARSE_OUTPUT, "//[5) Next Subtable %p, length %X]\n",
|
||||
Subtable, Subtable->Length);
|
||||
DbgPrint (ASL_PARSE_OUTPUT, "//[5B) Offset from table start: 0x%8.8X%8.8X (%p)]\n",
|
||||
ACPI_FORMAT_UINT64 (ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table)), Subtable);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2765,6 +2820,8 @@ AcpiDmDumpRhct (
|
|||
ACPI_RHCT_NODE_HEADER *Subtable;
|
||||
ACPI_RHCT_HART_INFO *RhctHartInfo;
|
||||
ACPI_RHCT_ISA_STRING *RhctIsaString;
|
||||
ACPI_RHCT_CMO_NODE *RhctCmoNode;
|
||||
ACPI_RHCT_MMU_NODE *RhctMmuNode;
|
||||
UINT32 Length = Table->Length;
|
||||
UINT8 SubtableOffset, IsaPadOffset;
|
||||
UINT32 Offset = sizeof (ACPI_TABLE_RHCT);
|
||||
|
@ -2850,6 +2907,20 @@ AcpiDmDumpRhct (
|
|||
(Subtable->Length - IsaPadOffset), AcpiDmTableInfoRhctIsaPad);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case ACPI_RHCT_NODE_TYPE_CMO:
|
||||
RhctCmoNode = ACPI_ADD_PTR (ACPI_RHCT_CMO_NODE, Subtable, SubtableOffset);
|
||||
Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
|
||||
RhctCmoNode, 4, AcpiDmTableInfoRhctCmo1);
|
||||
break;
|
||||
|
||||
case ACPI_RHCT_NODE_TYPE_MMU:
|
||||
RhctMmuNode = ACPI_ADD_PTR (ACPI_RHCT_MMU_NODE, Subtable, SubtableOffset);
|
||||
Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
|
||||
RhctMmuNode, 2, AcpiDmTableInfoRhctMmu1);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -947,7 +947,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[] =
|
|||
{
|
||||
{ACPI_DMT_UINT24, ACPI_DMAR4_OFFSET (Reserved[0]), "Reserved", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_DMAR4_OFFSET (DeviceNumber), "Device Number", 0},
|
||||
{ACPI_DMT_STRING, ACPI_DMAR4_OFFSET (u.DeviceName[0]), "Device Name", 0},
|
||||
{ACPI_DMT_STRING, ACPI_DMAR4_OFFSET (DeviceName[0]), "Device Name", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
|
|
|
@ -678,8 +678,6 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoLpit0[] =
|
|||
{ACPI_DMT_UINT64, ACPI_LPIT0_OFFSET (CounterFrequency), "Counter Frequency", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* MADT - Multiple APIC Description Table and subtables
|
||||
|
@ -926,12 +924,155 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[] =
|
|||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 17: OEM data structure */
|
||||
/* 17: core interrupt controller */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt17[] =
|
||||
{
|
||||
{ACPI_DMT_UINT8, ACPI_MADT17_OFFSET (Version), "Version", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (ProcessorId), "ProcessorId", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (CoreId), "CoreId", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (Flags), "Flags", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 18: Legacy I/O interrupt controller */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt18[] =
|
||||
{
|
||||
{ACPI_DMT_UINT8, ACPI_MADT18_OFFSET (Version), "Version", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_MADT18_OFFSET (Address), "Address", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_MADT18_OFFSET (Size), "Size", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_MADT18_OFFSET (Cascade), "Cascade", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_MADT18_OFFSET (CascadeMap), "CascadeMap", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 19: HT interrupt controller */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt19[] =
|
||||
{
|
||||
{ACPI_DMT_UINT8, ACPI_MADT19_OFFSET (Version), "Version", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_MADT19_OFFSET (Address), "Address", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_MADT19_OFFSET (Size), "Size", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_MADT19_OFFSET (Cascade), "Cascade", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 20: Extend I/O interrupt controller */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt20[] =
|
||||
{
|
||||
{ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Version), "Version", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Cascade), "Cascade", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Node), "Node", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_MADT20_OFFSET (NodeMap), "NodeMap", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 21: MSI controller */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt21[] =
|
||||
{
|
||||
{ACPI_DMT_UINT8, ACPI_MADT21_OFFSET (Version), "Version", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_MADT21_OFFSET (MsgAddress), "MsgAddress", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT21_OFFSET (Start), "Start", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT21_OFFSET (Count), "Count", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 22: BIO interrupt controller */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt22[] =
|
||||
{
|
||||
{ACPI_DMT_UINT8, ACPI_MADT22_OFFSET (Version), "Version", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_MADT22_OFFSET (Address), "Address", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (Size), "Size", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (Id), "Id", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (GsiBase), "GsiBase", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 23: LPC interrupt controller */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt23[] =
|
||||
{
|
||||
{ACPI_DMT_UINT8, ACPI_MADT23_OFFSET (Version), "Version", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_MADT23_OFFSET (Address), "Address", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_MADT23_OFFSET (Size), "Size", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_MADT23_OFFSET (Cascade), "Cascade", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 24: RINTC interrupt controller */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt24[] =
|
||||
{
|
||||
{ACPI_DMT_UINT8, ACPI_MADT24_OFFSET (Version), "Version", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_MADT24_OFFSET (Reserved), "Reserved", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (Flags), "Flags", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_MADT24_OFFSET (HartId), "HartId", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (Uid), "Uid", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (ExtIntcId), "ExtIntcId", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_MADT24_OFFSET (ImsicAddr), "ImsicAddr", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (ImsicSize), "ImsicSize", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 25: RISC-V IMSIC interrupt controller */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt25[] =
|
||||
{
|
||||
{ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (Version), "Version", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (Reserved), "Reserved", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT25_OFFSET (Flags), "Flags", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_MADT25_OFFSET (NumIds), "NumIds", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_MADT25_OFFSET (NumGuestIds), "NumGuestIds", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GuestIndexBits), "GuestIndexBits", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (HartIndexBits), "HartIndexBits", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GroupIndexBits), "GroupIndexBits", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GroupIndexShift), "GroupIndexShift", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 26: RISC-V APLIC interrupt controller */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt26[] =
|
||||
{
|
||||
{ACPI_DMT_UINT8, ACPI_MADT26_OFFSET (Version), "Version", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_MADT26_OFFSET (Id), "Id", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (Flags), "Flags", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_MADT26_OFFSET (HwId), "HwId", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_MADT26_OFFSET (NumIdcs), "NumIdcs", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_MADT26_OFFSET (NumSources), "NumSources", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (GsiBase), "GsiBase", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_MADT26_OFFSET (BaseAddr), "BaseAddr", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (Size), "Size", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 27: RISC-V PLIC interrupt controller */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt27[] =
|
||||
{
|
||||
{ACPI_DMT_UINT8, ACPI_MADT27_OFFSET (Version), "Version", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_MADT27_OFFSET (Id), "Id", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (Flags), "Flags", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_MADT27_OFFSET (HwId), "HwId", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_MADT27_OFFSET (NumIrqs), "NumIrqs", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_MADT27_OFFSET (MaxPrio), "MaxPrio", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (Flags), "Flags", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (Size), "Size", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_MADT27_OFFSET (BaseAddr), "BaseAddr", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (GsiBase), "GsiBase", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 128: OEM data structure */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt128[] =
|
||||
{
|
||||
{ACPI_DMT_RAW_BUFFER, 0, "OEM Data", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -2080,7 +2221,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[] =
|
|||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[] =
|
||||
{
|
||||
{ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (Reserved), "Reserved", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (Flags), "Flags", 0},
|
||||
{ACPI_DMT_UINT64, ACPI_RHCT_OFFSET (TimeBaseFreq), "Timer Base Frequency", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (NodeCount), "Number of nodes", 0},
|
||||
{ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (NodeOffset), "Offset to the node array", 0},
|
||||
|
@ -2092,7 +2233,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[] =
|
|||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoRhctNodeHdr[] =
|
||||
{
|
||||
{ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Type), "Subtable Type", 0},
|
||||
{ACPI_DMT_RHCT, ACPI_RHCTH_OFFSET (Type), "Subtable Type", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Length), "Length", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Revision), "Revision", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
|
@ -2116,6 +2257,26 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsaPad[] =
|
|||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 1: CMO node type */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoRhctCmo1[] =
|
||||
{
|
||||
{ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (Reserved), "Reserved", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbomSize), "CBOM Block Size", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbopSize), "CBOP Block Size", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbozSize), "CBOZ Block Size", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 2: MMU node type */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoRhctMmu1[] =
|
||||
{
|
||||
{ACPI_DMT_UINT8, ACPI_RHCT2_OFFSET (Reserved), "Reserved", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_RHCT2_OFFSET (MmuType), "MMU Type", 0},
|
||||
ACPI_DMT_TERMINATOR
|
||||
};
|
||||
|
||||
/* 0xFFFF: Hart Info type */
|
||||
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo1[] =
|
||||
|
|
|
@ -337,7 +337,7 @@ RsDoInterruptDescriptor (
|
|||
Descriptor->ExtendedIrq.InterruptCount = 0;
|
||||
|
||||
Rover = ACPI_CAST_PTR (AML_RESOURCE,
|
||||
(&(Descriptor->ExtendedIrq.u.Interrupts[0])));
|
||||
(&(Descriptor->ExtendedIrq.Interrupts[0])));
|
||||
|
||||
/* Process all child initialization nodes */
|
||||
|
||||
|
@ -466,7 +466,7 @@ RsDoInterruptDescriptor (
|
|||
|
||||
RsCreateDwordField (InitializerOp, ACPI_RESTAG_INTERRUPT,
|
||||
CurrentByteOffset +
|
||||
ASL_RESDESC_OFFSET (ExtendedIrq.u.Interrupts[0]));
|
||||
ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -494,7 +494,7 @@ RsDoInterruptDescriptor (
|
|||
}
|
||||
|
||||
Rnode->BufferLength =
|
||||
(ASL_RESDESC_OFFSET (ExtendedIrq.u.Interrupts[0]) -
|
||||
(ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) -
|
||||
ASL_RESDESC_OFFSET (ExtendedIrq.DescriptorType))
|
||||
+ OptionIndex + StringLength;
|
||||
return (Rnode);
|
||||
|
|
|
@ -371,11 +371,66 @@ DtCompileMadt (
|
|||
InfoTable = AcpiDmTableInfoMadt16;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_CORE_PIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt17;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_LIO_PIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt18;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_HT_PIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt19;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_EIO_PIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt20;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_MSI_PIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt21;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_BIO_PIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt22;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_LPC_PIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt23;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_RINTC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt24;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_IMSIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt25;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_APLIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt26;
|
||||
break;
|
||||
|
||||
case ACPI_MADT_TYPE_PLIC:
|
||||
|
||||
InfoTable = AcpiDmTableInfoMadt27;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
if (MadtHeader->Type >= ACPI_MADT_TYPE_OEM_RESERVED)
|
||||
{
|
||||
InfoTable = AcpiDmTableInfoMadt17;
|
||||
InfoTable = AcpiDmTableInfoMadt128;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2190,6 +2245,16 @@ DtCompileRhct (
|
|||
InfoTable = AcpiDmTableInfoRhctHartInfo1;
|
||||
break;
|
||||
|
||||
case ACPI_RHCT_NODE_TYPE_CMO:
|
||||
|
||||
InfoTable = AcpiDmTableInfoRhctCmo1;
|
||||
break;
|
||||
|
||||
case ACPI_RHCT_NODE_TYPE_MMU:
|
||||
|
||||
InfoTable = AcpiDmTableInfoRhctMmu1;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "RHCT");
|
||||
|
|
|
@ -1128,11 +1128,11 @@ const unsigned char TemplateLpit[] =
|
|||
|
||||
const unsigned char TemplateMadt[] =
|
||||
{
|
||||
0x41,0x50,0x49,0x43,0x6A,0x01,0x00,0x00, /* 00000000 "APICj..." */
|
||||
0x05,0x9D,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
|
||||
0x41,0x50,0x49,0x43,0x60,0x02,0x00,0x00, /* 00000000 "APIC...." */
|
||||
0x05,0x69,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
|
||||
0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */
|
||||
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
|
||||
0x13,0x11,0x20,0x20,0x00,0x00,0x00,0x00, /* 00000020 ".. ...." */
|
||||
0x31,0x03,0x22,0x20,0x00,0x00,0x00,0x00, /* 00000020 "1." ...." */
|
||||
0x01,0x00,0x00,0x00,0x00,0x08,0x00,0x00, /* 00000028 "........" */
|
||||
0x01,0x00,0x00,0x00,0x01,0x0C,0x01,0x00, /* 00000030 "........" */
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */
|
||||
|
@ -1173,7 +1173,37 @@ const unsigned char TemplateMadt[] =
|
|||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000150 "........" */
|
||||
0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x00, /* 00000158 "........" */
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000160 "........" */
|
||||
0x00,0x00 /* 00000168 ".." */
|
||||
0x00,0x00,0x11,0x0F,0x01,0x01,0x00,0x00, /* 00000168 "........" */
|
||||
0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /* 00000170 "........" */
|
||||
0x00,0x12,0x17,0x01,0x00,0x14,0xE0,0x1F, /* 00000178 "........" */
|
||||
0x00,0x00,0x00,0x00,0x80,0x00,0x02,0x03, /* 00000180 "........" */
|
||||
0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF, /* 00000188 "........" */
|
||||
0x13,0x15,0x01,0x80,0x00,0x00,0xFB,0xFD, /* 00000190 "........" */
|
||||
0x0E,0x00,0x00,0x40,0x00,0x00,0x00,0x00, /* 00000198 "...@...." */
|
||||
0xFF,0x00,0x00,0x00,0x00,0x14,0x0D,0x01, /* 000001A0 "........" */
|
||||
0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001A8 "........" */
|
||||
0x00,0x00,0x15,0x13,0x01,0x00,0x00,0xF0, /* 000001B0 "........" */
|
||||
0x2F,0x00,0x00,0x00,0x00,0x40,0x00,0x00, /* 000001B8 "/....@.." */
|
||||
0x00,0xC0,0x00,0x00,0x00,0x16,0x11,0x01, /* 000001C0 "........" */
|
||||
0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00, /* 000001C8 "........" */
|
||||
0x00,0x10,0x00,0x00,0x40,0x00,0x17,0x0E, /* 000001D0 "....@..." */
|
||||
0x01,0x00,0x20,0x00,0x10,0x00,0x00,0x00, /* 000001D8 ".. ....." */
|
||||
0x00,0x00,0x10,0x13,0x18,0x24,0x01,0x00, /* 000001E0 "........" */
|
||||
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001E8 "........" */
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001F0 "........" */
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28, /* 000001F8 ".......(" */
|
||||
0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00, /* 00000200 "........" */
|
||||
0x19,0x10,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000208 "........" */
|
||||
0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x18, /* 00000210 "........" */
|
||||
0x1A,0x24,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000218 ".$......" */
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000220 "........" */
|
||||
0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00, /* 00000228 "..`....." */
|
||||
0x00,0x00,0x00,0x0D,0x00,0x00,0x00,0x00, /* 00000230 "........" */
|
||||
0x00,0x80,0x00,0x00,0x1B,0x24,0x01,0x00, /* 00000238 ".....$.." */
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000240 "........" */
|
||||
0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000248 "`.....`." */
|
||||
0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x0C, /* 00000250 "..`....." */
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000258 "........" */
|
||||
};
|
||||
|
||||
const unsigned char TemplateMcfg[] =
|
||||
|
@ -1718,8 +1748,8 @@ const unsigned char TemplateRgrt[] =
|
|||
|
||||
const unsigned char TemplateRhct[] =
|
||||
{
|
||||
0x52,0x48,0x43,0x54,0x7C,0x00,0x00,0x00, /* 00000000 "RHCT|..." */
|
||||
0x01,0x7D,0x4F,0x45,0x4D,0x43,0x41,0x00, /* 00000008 "..OEMCA." */
|
||||
0x52,0x48,0x43,0x54,0x96,0x00,0x00,0x00, /* 00000000 "RHCT|..." */
|
||||
0x01,0x24,0x4F,0x45,0x4D,0x43,0x41,0x00, /* 00000008 "..OEMCA." */
|
||||
0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */
|
||||
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
|
||||
0x28,0x09,0x22,0x20,0x00,0x00,0x00,0x00, /* 00000020 "... ...." */
|
||||
|
@ -1731,9 +1761,12 @@ const unsigned char TemplateRhct[] =
|
|||
0x72,0x5F,0x7A,0x69,0x66,0x65,0x6E,0x63, /* 00000050 "r_zifenc" */
|
||||
0x65,0x69,0x5F,0x7A,0x62,0x61,0x5F,0x7A, /* 00000058 "ei_zba_z" */
|
||||
0x62,0x62,0x5F,0x7A,0x62,0x63,0x5F,0x7A, /* 00000060 "bb_zbc_z" */
|
||||
0x62,0x73,0x00,0x00,0xFF,0xFF,0x10,0x00, /* 00000068 "bs......" */
|
||||
0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000070 "........" */
|
||||
0x38,0x00,0x00,0x00 /* 00000078 "........" */
|
||||
0x62,0x73,0x00,0x00,0xFF,0xFF,0x18,0x00, /* 00000068 "bs......" */
|
||||
0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00, /* 00000070 "........" */
|
||||
0x38,0x00,0x00,0x00,0x7c,0x00,0x00,0x00, /* 00000078 "........" */
|
||||
0x8E,0x00,0x00,0x00,0x01,0x00,0x0A,0x00, /* 00000080 "........" */
|
||||
0x01,0x00,0x00,0x06,0x06,0x06,0x02,0x00, /* 00000088 "........" */
|
||||
0x08,0x00,0x01,0x00,0x00,0x02 /* 00000090 "........" */
|
||||
};
|
||||
|
||||
const unsigned char TemplateRsdp[] =
|
||||
|
|
|
@ -157,7 +157,6 @@
|
|||
#include <contrib/dev/acpica/include/acresrc.h>
|
||||
#include <contrib/dev/acpica/include/actables.h>
|
||||
|
||||
|
||||
#define _COMPONENT ACPI_CA_DEBUGGER
|
||||
ACPI_MODULE_NAME ("dbcmds")
|
||||
|
||||
|
@ -1291,6 +1290,64 @@ AcpiDbDisplayResources (
|
|||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDbGenerateGed
|
||||
*
|
||||
* PARAMETERS: GedArg - Raw GED number, ascii string
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Simulate firing of a GED
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiDbGenerateInterrupt (
|
||||
char *GsivArg)
|
||||
{
|
||||
UINT32 GsivNumber;
|
||||
ACPI_GED_HANDLER_INFO *GedInfo = AcpiGbl_GedHandlerList;
|
||||
|
||||
if (!GedInfo) {
|
||||
AcpiOsPrintf ("No GED handling present\n");
|
||||
}
|
||||
|
||||
GsivNumber = strtoul (GsivArg, NULL, 0);
|
||||
|
||||
while (GedInfo) {
|
||||
|
||||
if (GedInfo->IntId == GsivNumber) {
|
||||
ACPI_OBJECT_LIST ArgList;
|
||||
ACPI_OBJECT Arg0;
|
||||
ACPI_HANDLE EvtHandle = GedInfo->EvtMethod;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
AcpiOsPrintf ("Evaluate GED _EVT (GSIV=%d)\n", GsivNumber);
|
||||
|
||||
if (!EvtHandle) {
|
||||
AcpiOsPrintf ("Undefined _EVT method\n");
|
||||
return;
|
||||
}
|
||||
|
||||
Arg0.Integer.Type = ACPI_TYPE_INTEGER;
|
||||
Arg0.Integer.Value = GsivNumber;
|
||||
|
||||
ArgList.Count = 1;
|
||||
ArgList.Pointer = &Arg0;
|
||||
|
||||
Status = AcpiEvaluateObject (EvtHandle, NULL, &ArgList, NULL);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiOsPrintf ("Could not evaluate _EVT\n");
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
GedInfo = GedInfo->Next;
|
||||
}
|
||||
}
|
||||
|
||||
#if (!ACPI_REDUCED_HARDWARE)
|
||||
/*******************************************************************************
|
||||
*
|
||||
|
|
|
@ -264,6 +264,7 @@ enum AcpiExDebuggerCommands
|
|||
CMD_THREADS,
|
||||
|
||||
CMD_TEST,
|
||||
CMD_INTERRUPT,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -345,6 +346,7 @@ static const ACPI_DB_COMMAND_INFO AcpiGbl_DbCommands[] =
|
|||
{"THREADS", 3},
|
||||
|
||||
{"TEST", 1},
|
||||
{"INTERRUPT", 1},
|
||||
#endif
|
||||
{NULL, 0}
|
||||
};
|
||||
|
@ -461,6 +463,7 @@ static const ACPI_DB_COMMAND_HELP AcpiGbl_DbCommandHelp[] =
|
|||
{1, " Gpes", "Display info on all GPE devices\n"},
|
||||
{1, " Sci", "Generate an SCI\n"},
|
||||
{1, " Sleep [SleepState]", "Simulate sleep/wake sequence(s) (0-5)\n"},
|
||||
{1, " Interrupt <GSIV>", "Simulate an interrupt\n"},
|
||||
#endif
|
||||
{0, NULL, NULL}
|
||||
};
|
||||
|
@ -1263,6 +1266,11 @@ AcpiDbCommandDispatch (
|
|||
AcpiOsPrintf ("Event command not implemented\n");
|
||||
break;
|
||||
|
||||
case CMD_INTERRUPT:
|
||||
|
||||
AcpiDbGenerateInterrupt (AcpiGbl_DbArgs[1]);
|
||||
break;
|
||||
|
||||
case CMD_GPE:
|
||||
|
||||
AcpiDbGenerateGpe (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
|
||||
|
|
|
@ -1112,7 +1112,7 @@ AcpiDmInterruptDescriptor (
|
|||
{
|
||||
AcpiDmIndent (Level + 1);
|
||||
AcpiOsPrintf ("0x%8.8X,\n",
|
||||
(UINT32) Resource->ExtendedIrq.u.Interrupts[i]);
|
||||
(UINT32) Resource->ExtendedIrq.Interrupts[i]);
|
||||
}
|
||||
|
||||
AcpiDmIndent (Level);
|
||||
|
|
|
@ -310,8 +310,8 @@ AcpiDsResultPush (
|
|||
if (!Object)
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
"Null Object! Obj=%p State=%p Num=%u",
|
||||
Object, WalkState, WalkState->ResultCount));
|
||||
"Null Object! State=%p Num=%u",
|
||||
WalkState, WalkState->ResultCount));
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
|
|
|
@ -312,8 +312,7 @@ AcpiEvFixedEventInitialize (
|
|||
{
|
||||
Status = AcpiWriteBitRegister (
|
||||
AcpiGbl_FixedEventInfo[i].EnableRegisterId,
|
||||
(i == ACPI_EVENT_PCIE_WAKE) ?
|
||||
ACPI_ENABLE_EVENT : ACPI_DISABLE_EVENT);
|
||||
ACPI_DISABLE_EVENT);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
|
@ -362,11 +361,6 @@ AcpiEvFixedEventDetect (
|
|||
return (IntStatus);
|
||||
}
|
||||
|
||||
if (FixedEnable & ACPI_BITMASK_PCIEXP_WAKE_DISABLE)
|
||||
FixedEnable &= ~ACPI_BITMASK_PCIEXP_WAKE_DISABLE;
|
||||
else
|
||||
FixedEnable |= ACPI_BITMASK_PCIEXP_WAKE_DISABLE;
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INTERRUPTS,
|
||||
"Fixed Event Block: Enable %08X Status %08X\n",
|
||||
FixedEnable, FixedStatus));
|
||||
|
@ -437,8 +431,7 @@ AcpiEvFixedEventDispatch (
|
|||
{
|
||||
(void) AcpiWriteBitRegister (
|
||||
AcpiGbl_FixedEventInfo[Event].EnableRegisterId,
|
||||
(Event == ACPI_EVENT_PCIE_WAKE) ?
|
||||
ACPI_ENABLE_EVENT : ACPI_DISABLE_EVENT);
|
||||
ACPI_DISABLE_EVENT);
|
||||
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
"No installed handler for fixed event - %s (%u), disabling",
|
||||
|
|
|
@ -505,8 +505,7 @@ AcpiExWriteSerialBus (
|
|||
/* Copy the input buffer data to the transfer buffer */
|
||||
|
||||
Buffer = BufferDesc->Buffer.Pointer;
|
||||
DataLength = (BufferLength < SourceDesc->Buffer.Length ?
|
||||
BufferLength : SourceDesc->Buffer.Length);
|
||||
DataLength = ACPI_MIN (BufferLength, SourceDesc->Buffer.Length);
|
||||
memcpy (Buffer, SourceDesc->Buffer.Pointer, DataLength);
|
||||
|
||||
/* Lock entire transaction if requested */
|
||||
|
|
|
@ -475,17 +475,6 @@ AcpiHwLegacyWake (
|
|||
AcpiGbl_FixedEventInfo[ACPI_EVENT_SLEEP_BUTTON].StatusRegisterId,
|
||||
ACPI_CLEAR_STATUS);
|
||||
|
||||
/* Enable pcie wake event if support */
|
||||
if ((AcpiGbl_FADT.Flags & ACPI_FADT_PCI_EXPRESS_WAKE))
|
||||
{
|
||||
(void) AcpiWriteBitRegister (
|
||||
AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].EnableRegisterId,
|
||||
ACPI_DISABLE_EVENT);
|
||||
(void) AcpiWriteBitRegister (
|
||||
AcpiGbl_FixedEventInfo[ACPI_EVENT_PCIE_WAKE].StatusRegisterId,
|
||||
ACPI_CLEAR_STATUS);
|
||||
}
|
||||
|
||||
AcpiHwExecuteSleepMethod (METHOD_PATHNAME__SST, ACPI_SST_WORKING);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
|
|
@ -436,7 +436,7 @@ const ACPI_OPCODE_INFO AcpiGbl_AmlOpInfo[AML_NUM_OPCODES] =
|
|||
|
||||
/* ACPI 3.0 opcodes */
|
||||
|
||||
/* 7E */ ACPI_OP ("Timer", ARGP_TIMER_OP, ARGI_TIMER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_0A_0T_1R, AML_FLAGS_EXEC_0A_0T_1R),
|
||||
/* 7E */ ACPI_OP ("Timer", ARGP_TIMER_OP, ARGI_TIMER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_0A_0T_1R, AML_FLAGS_EXEC_0A_0T_1R | AML_NO_OPERAND_RESOLVE),
|
||||
|
||||
/* ACPI 5.0 opcodes */
|
||||
|
||||
|
|
|
@ -431,11 +431,11 @@ AcpiRsGetAddressCommon (
|
|||
ACPI_RESOURCE *Resource,
|
||||
AML_RESOURCE *Aml)
|
||||
{
|
||||
|
||||
/* Avoid undefined behavior: member access within misaligned address */
|
||||
|
||||
AML_RESOURCE_ADDRESS Address;
|
||||
memcpy(&Address, Aml, sizeof(Address));
|
||||
|
||||
ACPI_FUNCTION_ENTRY();
|
||||
|
||||
/* Validate the Resource Type */
|
||||
|
|
|
@ -475,9 +475,9 @@ AcpiRsCreatePciRoutingTable (
|
|||
/* Use *remaining* length of the buffer as max for pathname */
|
||||
|
||||
PathBuffer.Length = OutputBuffer->Length -
|
||||
(UINT32) ((UINT8 *) UserPrt->u.Source -
|
||||
(UINT32) ((UINT8 *) UserPrt->Source -
|
||||
(UINT8 *) OutputBuffer->Pointer);
|
||||
PathBuffer.Pointer = UserPrt->u.Source;
|
||||
PathBuffer.Pointer = UserPrt->Source;
|
||||
|
||||
Status = AcpiNsHandleToPathname (
|
||||
(ACPI_HANDLE) Node, &PathBuffer, FALSE);
|
||||
|
@ -488,12 +488,12 @@ AcpiRsCreatePciRoutingTable (
|
|||
|
||||
/* +1 to include null terminator */
|
||||
|
||||
UserPrt->Length += (UINT32) strlen (UserPrt->u.Source) + 1;
|
||||
UserPrt->Length += (UINT32) strlen (UserPrt->Source) + 1;
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
strcpy (UserPrt->u.Source, ObjDesc->String.Pointer);
|
||||
strcpy (UserPrt->Source, ObjDesc->String.Pointer);
|
||||
|
||||
/*
|
||||
* Add to the Length field the length of the string
|
||||
|
|
|
@ -182,7 +182,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpIrq[7] =
|
|||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Polarity), "Polarity", AcpiGbl_LlDecode},
|
||||
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Irq.Shareable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_UINT8 , ACPI_RSD_OFFSET (Irq.InterruptCount), "Interrupt Count", NULL},
|
||||
{ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.u.Interrupts[0]), "Interrupt List", NULL}
|
||||
{ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.Interrupts[0]), "Interrupt List", NULL}
|
||||
};
|
||||
|
||||
ACPI_RSDUMP_INFO AcpiRsDumpDma[6] =
|
||||
|
@ -192,7 +192,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpDma[6] =
|
|||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Dma.BusMaster), "Mastering", AcpiGbl_BmDecode},
|
||||
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Dma.Transfer), "Transfer Type", AcpiGbl_SizDecode},
|
||||
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (Dma.ChannelCount), "Channel Count", NULL},
|
||||
{ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Dma.u.Channels[0]), "Channel List", NULL}
|
||||
{ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Dma.Channels[0]), "Channel List", NULL}
|
||||
};
|
||||
|
||||
ACPI_RSDUMP_INFO AcpiRsDumpStartDpf[4] =
|
||||
|
@ -327,7 +327,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpExtIrq[8] =
|
|||
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Shareable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (ExtendedIrq.ResourceSource), NULL, NULL},
|
||||
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (ExtendedIrq.InterruptCount), "Interrupt Count", NULL},
|
||||
{ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.u.Interrupts[0]), "Interrupt List", NULL}
|
||||
{ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.Interrupts[0]), "Interrupt List", NULL}
|
||||
};
|
||||
|
||||
ACPI_RSDUMP_INFO AcpiRsDumpGenericReg[6] =
|
||||
|
@ -555,7 +555,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpPrt[5] =
|
|||
{ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPrt), NULL, NULL},
|
||||
{ACPI_RSD_UINT64, ACPI_PRT_OFFSET (Address), "Address", NULL},
|
||||
{ACPI_RSD_UINT32, ACPI_PRT_OFFSET (Pin), "Pin", NULL},
|
||||
{ACPI_RSD_STRING, ACPI_PRT_OFFSET (u.Source[0]), "Source", NULL},
|
||||
{ACPI_RSD_STRING, ACPI_PRT_OFFSET (Source[0]), "Source", NULL},
|
||||
{ACPI_RSD_UINT32, ACPI_PRT_OFFSET (SourceIndex), "Source Index", NULL}
|
||||
};
|
||||
|
||||
|
|
|
@ -171,7 +171,7 @@ ACPI_RSCONVERT_INFO AcpiRsGetIrq[9] =
|
|||
|
||||
/* Get the IRQ mask (bytes 1:2) */
|
||||
|
||||
{ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.u.Interrupts[0]),
|
||||
{ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.Interrupts[0]),
|
||||
AML_OFFSET (Irq.IrqMask),
|
||||
ACPI_RS_OFFSET (Data.Irq.InterruptCount)},
|
||||
|
||||
|
@ -227,7 +227,7 @@ ACPI_RSCONVERT_INFO AcpiRsSetIrq[14] =
|
|||
|
||||
/* Convert interrupt list to 16-bit IRQ bitmask */
|
||||
|
||||
{ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.u.Interrupts[0]),
|
||||
{ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.Interrupts[0]),
|
||||
AML_OFFSET (Irq.IrqMask),
|
||||
ACPI_RS_OFFSET (Data.Irq.InterruptCount)},
|
||||
|
||||
|
@ -345,14 +345,14 @@ ACPI_RSCONVERT_INFO AcpiRsConvertExtIrq[10] =
|
|||
|
||||
/* Copy every IRQ in the table, each is 32 bits */
|
||||
|
||||
{ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.ExtendedIrq.u.Interrupts[0]),
|
||||
AML_OFFSET (ExtendedIrq.u.Interrupts[0]),
|
||||
{ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.ExtendedIrq.Interrupts[0]),
|
||||
AML_OFFSET (ExtendedIrq.Interrupts[0]),
|
||||
0},
|
||||
|
||||
/* Optional ResourceSource (Index and String) */
|
||||
|
||||
{ACPI_RSC_SOURCEX, ACPI_RS_OFFSET (Data.ExtendedIrq.ResourceSource),
|
||||
ACPI_RS_OFFSET (Data.ExtendedIrq.u.Interrupts[0]),
|
||||
ACPI_RS_OFFSET (Data.ExtendedIrq.Interrupts[0]),
|
||||
sizeof (AML_RESOURCE_EXTENDED_IRQ)}
|
||||
};
|
||||
|
||||
|
@ -389,7 +389,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertDma[6] =
|
|||
|
||||
/* DMA channel mask bits */
|
||||
|
||||
{ACPI_RSC_BITMASK, ACPI_RS_OFFSET (Data.Dma.u.Channels[0]),
|
||||
{ACPI_RSC_BITMASK, ACPI_RS_OFFSET (Data.Dma.Channels[0]),
|
||||
AML_OFFSET (Dma.DmaChannelMask),
|
||||
ACPI_RS_OFFSET (Data.Dma.ChannelCount)}
|
||||
};
|
||||
|
|
|
@ -185,7 +185,12 @@ AcpiUtInitStackPtrTrace (
|
|||
ACPI_SIZE CurrentSp;
|
||||
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#if defined(__GNUC__) && __GNUC__ >= 12
|
||||
#pragma GCC diagnostic ignored "-Wdangling-pointer="
|
||||
#endif
|
||||
AcpiGbl_EntryStackPointer = &CurrentSp;
|
||||
#pragma GCC diagnostic pop
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -287,7 +287,6 @@ ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS] =
|
|||
/* ACPI_EVENT_POWER_BUTTON */ {ACPI_BITREG_POWER_BUTTON_STATUS, ACPI_BITREG_POWER_BUTTON_ENABLE, ACPI_BITMASK_POWER_BUTTON_STATUS, ACPI_BITMASK_POWER_BUTTON_ENABLE},
|
||||
/* ACPI_EVENT_SLEEP_BUTTON */ {ACPI_BITREG_SLEEP_BUTTON_STATUS, ACPI_BITREG_SLEEP_BUTTON_ENABLE, ACPI_BITMASK_SLEEP_BUTTON_STATUS, ACPI_BITMASK_SLEEP_BUTTON_ENABLE},
|
||||
/* ACPI_EVENT_RTC */ {ACPI_BITREG_RT_CLOCK_STATUS, ACPI_BITREG_RT_CLOCK_ENABLE, ACPI_BITMASK_RT_CLOCK_STATUS, ACPI_BITMASK_RT_CLOCK_ENABLE},
|
||||
/* ACPI_EVENT_PCIE_WAKE */ {ACPI_BITREG_PCIEXP_WAKE_STATUS, ACPI_BITREG_PCIEXP_WAKE_DISABLE, ACPI_BITMASK_PCIEXP_WAKE_STATUS, ACPI_BITMASK_PCIEXP_WAKE_DISABLE},
|
||||
};
|
||||
#endif /* !ACPI_REDUCED_HARDWARE */
|
||||
|
||||
|
|
|
@ -619,4 +619,8 @@ AcpiDbUint32ToHexString (
|
|||
UINT32 Value,
|
||||
char *Buffer);
|
||||
|
||||
void
|
||||
AcpiDbGenerateInterrupt (
|
||||
char *GsivArg);
|
||||
|
||||
#endif /* __ACDEBUG_H__ */
|
||||
|
|
|
@ -554,6 +554,17 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[];
|
|||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt17[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt18[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt19[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt20[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt21[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt22[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt23[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt24[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt25[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt26[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt27[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt128[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[];
|
||||
|
@ -646,6 +657,8 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[];
|
|||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctNodeHdr[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsa1[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsaPad[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctCmo1[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctMmu1[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo1[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo2[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[];
|
||||
|
|
|
@ -268,6 +268,7 @@ ACPI_GLOBAL (ACPI_TABLE_HANDLER, AcpiGbl_TableHandler);
|
|||
ACPI_GLOBAL (void *, AcpiGbl_TableHandlerContext);
|
||||
ACPI_GLOBAL (ACPI_INTERFACE_HANDLER, AcpiGbl_InterfaceHandler);
|
||||
ACPI_GLOBAL (ACPI_SCI_HANDLER_INFO *, AcpiGbl_SciHandlerList);
|
||||
ACPI_GLOBAL (ACPI_GED_HANDLER_INFO *, AcpiGbl_GedHandlerList);
|
||||
|
||||
/* Owner ID support */
|
||||
|
||||
|
|
|
@ -767,6 +767,15 @@ typedef struct acpi_field_info
|
|||
|
||||
} ACPI_FIELD_INFO;
|
||||
|
||||
/* Information about the interrupt ID and _EVT of a GED device */
|
||||
|
||||
typedef struct acpi_ged_handler_info
|
||||
{
|
||||
struct acpi_ged_handler_info *Next;
|
||||
UINT32 IntId; /* The interrupt ID that triggers the execution ofthe EvtMethod. */
|
||||
ACPI_NAMESPACE_NODE *EvtMethod; /* The _EVT method to be executed when an interrupt with ID = IntID is received */
|
||||
|
||||
} ACPI_GED_HANDLER_INFO;
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
|
@ -786,13 +795,13 @@ typedef struct acpi_field_info
|
|||
UINT8 DescriptorType; /* To differentiate various internal objs */\
|
||||
UINT8 Flags; \
|
||||
UINT16 Value; \
|
||||
UINT16 State;
|
||||
UINT16 State
|
||||
|
||||
/* There are 2 bytes available here until the next natural alignment boundary */
|
||||
|
||||
typedef struct acpi_common_state
|
||||
{
|
||||
ACPI_STATE_COMMON
|
||||
ACPI_STATE_COMMON;
|
||||
} ACPI_COMMON_STATE;
|
||||
|
||||
|
||||
|
@ -801,7 +810,7 @@ typedef struct acpi_common_state
|
|||
*/
|
||||
typedef struct acpi_update_state
|
||||
{
|
||||
ACPI_STATE_COMMON
|
||||
ACPI_STATE_COMMON;
|
||||
union acpi_operand_object *Object;
|
||||
|
||||
} ACPI_UPDATE_STATE;
|
||||
|
@ -812,7 +821,7 @@ typedef struct acpi_update_state
|
|||
*/
|
||||
typedef struct acpi_pkg_state
|
||||
{
|
||||
ACPI_STATE_COMMON
|
||||
ACPI_STATE_COMMON;
|
||||
UINT32 Index;
|
||||
union acpi_operand_object *SourceObject;
|
||||
union acpi_operand_object *DestObject;
|
||||
|
@ -829,7 +838,7 @@ typedef struct acpi_pkg_state
|
|||
*/
|
||||
typedef struct acpi_control_state
|
||||
{
|
||||
ACPI_STATE_COMMON
|
||||
ACPI_STATE_COMMON;
|
||||
UINT16 Opcode;
|
||||
union acpi_parse_object *PredicateOp;
|
||||
UINT8 *AmlPredicateStart; /* Start of if/while predicate */
|
||||
|
@ -844,7 +853,7 @@ typedef struct acpi_control_state
|
|||
*/
|
||||
typedef struct acpi_scope_state
|
||||
{
|
||||
ACPI_STATE_COMMON
|
||||
ACPI_STATE_COMMON;
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
|
||||
} ACPI_SCOPE_STATE;
|
||||
|
@ -852,7 +861,7 @@ typedef struct acpi_scope_state
|
|||
|
||||
typedef struct acpi_pscope_state
|
||||
{
|
||||
ACPI_STATE_COMMON
|
||||
ACPI_STATE_COMMON;
|
||||
UINT32 ArgCount; /* Number of fixed arguments */
|
||||
union acpi_parse_object *Op; /* Current op being parsed */
|
||||
UINT8 *ArgEnd; /* Current argument end */
|
||||
|
@ -868,7 +877,7 @@ typedef struct acpi_pscope_state
|
|||
*/
|
||||
typedef struct acpi_thread_state
|
||||
{
|
||||
ACPI_STATE_COMMON
|
||||
ACPI_STATE_COMMON;
|
||||
UINT8 CurrentSyncLevel; /* Mutex Sync (nested acquire) level */
|
||||
struct acpi_walk_state *WalkStateList; /* Head of list of WalkStates for this thread */
|
||||
union acpi_operand_object *AcquiredMutexList; /* List of all currently acquired mutexes */
|
||||
|
@ -883,7 +892,7 @@ typedef struct acpi_thread_state
|
|||
*/
|
||||
typedef struct acpi_result_values
|
||||
{
|
||||
ACPI_STATE_COMMON
|
||||
ACPI_STATE_COMMON;
|
||||
union acpi_operand_object *ObjDesc [ACPI_RESULTS_FRAME_OBJ_NUM];
|
||||
|
||||
} ACPI_RESULT_VALUES;
|
||||
|
@ -914,7 +923,7 @@ typedef struct acpi_global_notify_handler
|
|||
*/
|
||||
typedef struct acpi_notify_info
|
||||
{
|
||||
ACPI_STATE_COMMON
|
||||
ACPI_STATE_COMMON;
|
||||
UINT8 HandlerListId;
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
union acpi_operand_object *HandlerListHead;
|
||||
|
|
|
@ -164,6 +164,7 @@
|
|||
#define METHOD_NAME__DDN "_DDN"
|
||||
#define METHOD_NAME__DIS "_DIS"
|
||||
#define METHOD_NAME__DMA "_DMA"
|
||||
#define METHOD_NAME__EVT "_EVT"
|
||||
#define METHOD_NAME__HID "_HID"
|
||||
#define METHOD_NAME__INI "_INI"
|
||||
#define METHOD_NAME__PLD "_PLD"
|
||||
|
|
|
@ -154,7 +154,7 @@
|
|||
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20230331
|
||||
#define ACPI_CA_VERSION 0x20230628
|
||||
|
||||
#include <contrib/dev/acpica/include/acconfig.h>
|
||||
#include <contrib/dev/acpica/include/actypes.h>
|
||||
|
|
|
@ -579,6 +579,9 @@ const ACPI_PREDEFINED_INFO AcpiGbl_PredefinedMethods[] =
|
|||
|
||||
{{"_DOS", METHOD_1ARGS (ACPI_TYPE_INTEGER),
|
||||
METHOD_NO_RETURN_VALUE}},
|
||||
|
||||
{ {"_DSC", METHOD_0ARGS,
|
||||
METHOD_RETURNS (ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
{{"_DSD", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS (ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: 1 Buf, 1 Pkg */
|
||||
|
|
|
@ -293,7 +293,7 @@ typedef struct acpi_resource_irq
|
|||
union {
|
||||
UINT8 Interrupt;
|
||||
ACPI_FLEX_ARRAY(UINT8, Interrupts);
|
||||
} u;
|
||||
};
|
||||
|
||||
} ACPI_RESOURCE_IRQ;
|
||||
|
||||
|
@ -306,7 +306,7 @@ typedef struct acpi_resource_dma
|
|||
union {
|
||||
UINT8 Channel;
|
||||
ACPI_FLEX_ARRAY(UINT8, Channels);
|
||||
} u;
|
||||
};
|
||||
|
||||
} ACPI_RESOURCE_DMA;
|
||||
|
||||
|
@ -547,7 +547,7 @@ typedef struct acpi_resource_extended_irq
|
|||
union {
|
||||
UINT32 Interrupt;
|
||||
ACPI_FLEX_ARRAY(UINT32, Interrupts);
|
||||
} u;
|
||||
};
|
||||
|
||||
} ACPI_RESOURCE_EXTENDED_IRQ;
|
||||
|
||||
|
@ -951,7 +951,7 @@ typedef struct acpi_pci_routing_table
|
|||
union {
|
||||
char Pad[4]; /* pad to 64 bits so sizeof() works in all cases */
|
||||
ACPI_FLEX_ARRAY(char, Source);
|
||||
} u;
|
||||
};
|
||||
} ACPI_PCI_ROUTING_TABLE;
|
||||
|
||||
#endif /* __ACRESTYP_H__ */
|
||||
|
|
|
@ -334,7 +334,18 @@
|
|||
#define ACPI_MADT14_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_REDISTRIBUTOR,f)
|
||||
#define ACPI_MADT15_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_TRANSLATOR,f)
|
||||
#define ACPI_MADT16_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_MULTIPROC_WAKEUP,f)
|
||||
#define ACPI_MADT17_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_OEM_DATA,f)
|
||||
#define ACPI_MADT17_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_CORE_PIC,f)
|
||||
#define ACPI_MADT18_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_LIO_PIC,f)
|
||||
#define ACPI_MADT19_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_HT_PIC,f)
|
||||
#define ACPI_MADT20_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_EIO_PIC,f)
|
||||
#define ACPI_MADT21_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_MSI_PIC,f)
|
||||
#define ACPI_MADT22_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_BIO_PIC,f)
|
||||
#define ACPI_MADT23_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_LPC_PIC,f)
|
||||
#define ACPI_MADT24_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_RINTC,f)
|
||||
#define ACPI_MADT25_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_IMSIC,f)
|
||||
#define ACPI_MADT26_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_APLIC,f)
|
||||
#define ACPI_MADT27_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_PLIC,f)
|
||||
#define ACPI_MADT128_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_OEM_DATA,f)
|
||||
#define ACPI_MADTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f)
|
||||
#define ACPI_MCFG0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MCFG_ALLOCATION,f)
|
||||
#define ACPI_MPAM0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_MSC_NODE,f)
|
||||
|
@ -403,6 +414,8 @@
|
|||
#define ACPI_PRMT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PRMT_HANDLER_INFO,f)
|
||||
#define ACPI_RHCTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_NODE_HEADER,f)
|
||||
#define ACPI_RHCT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_ISA_STRING,f)
|
||||
#define ACPI_RHCT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_CMO_NODE,f)
|
||||
#define ACPI_RHCT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_MMU_NODE,f)
|
||||
#define ACPI_RHCTFFFF_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_HART_INFO,f)
|
||||
#define ACPI_S3PTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_FPDT_HEADER,f)
|
||||
#define ACPI_S3PT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_S3PT_RESUME,f)
|
||||
|
|
|
@ -635,7 +635,7 @@ typedef struct acpi_cdat_dsmas
|
|||
|
||||
/* Flags for subtable above */
|
||||
|
||||
#define ACPI_CEDT_DSMAS_NON_VOLATILE (1 << 2)
|
||||
#define ACPI_CDAT_DSMAS_NON_VOLATILE (1 << 2)
|
||||
|
||||
|
||||
/* Subtable 1: Device scoped Latency and Bandwidth Information Structure (DSLBIS) */
|
||||
|
@ -1222,7 +1222,7 @@ typedef struct acpi_dmar_andd
|
|||
union {
|
||||
char __pad;
|
||||
ACPI_FLEX_ARRAY(char, DeviceName);
|
||||
} u;
|
||||
};
|
||||
|
||||
} ACPI_DMAR_ANDD;
|
||||
|
||||
|
|
|
@ -1136,7 +1136,10 @@ enum AcpiMadtType
|
|||
ACPI_MADT_TYPE_BIO_PIC = 22,
|
||||
ACPI_MADT_TYPE_LPC_PIC = 23,
|
||||
ACPI_MADT_TYPE_RINTC = 24,
|
||||
ACPI_MADT_TYPE_RESERVED = 25, /* 25 to 0x7F are reserved */
|
||||
ACPI_MADT_TYPE_IMSIC = 25,
|
||||
ACPI_MADT_TYPE_APLIC = 26,
|
||||
ACPI_MADT_TYPE_PLIC = 27,
|
||||
ACPI_MADT_TYPE_RESERVED = 28, /* 28 to 0x7F are reserved */
|
||||
ACPI_MADT_TYPE_OEM_RESERVED = 0x80 /* 0x80 to 0xFF are reserved for OEM use */
|
||||
};
|
||||
|
||||
|
@ -1550,14 +1553,17 @@ enum AcpiMadtLpcPicVersion {
|
|||
};
|
||||
|
||||
/* 24: RISC-V INTC */
|
||||
struct acpi_madt_rintc {
|
||||
typedef struct acpi_madt_rintc {
|
||||
ACPI_SUBTABLE_HEADER Header;
|
||||
UINT8 Version;
|
||||
UINT8 Reserved;
|
||||
UINT32 Flags;
|
||||
UINT64 HartId;
|
||||
UINT32 Uid; /* ACPI processor UID */
|
||||
};
|
||||
UINT32 ExtIntcId; /* External INTC Id */
|
||||
UINT64 ImsicAddr; /* IMSIC base address */
|
||||
UINT32 ImsicSize; /* IMSIC size */
|
||||
} ACPI_MADT_RINTC;
|
||||
|
||||
/* Values for RISC-V INTC Version field above */
|
||||
|
||||
|
@ -1567,6 +1573,49 @@ enum AcpiMadtRintcVersion {
|
|||
ACPI_MADT_RINTC_VERSION_RESERVED = 2 /* 2 and greater are reserved */
|
||||
};
|
||||
|
||||
/* 25: RISC-V IMSIC */
|
||||
typedef struct acpi_madt_imsic {
|
||||
ACPI_SUBTABLE_HEADER Header;
|
||||
UINT8 Version;
|
||||
UINT8 Reserved;
|
||||
UINT32 Flags;
|
||||
UINT16 NumIds;
|
||||
UINT16 NumGuestIds;
|
||||
UINT8 GuestIndexBits;
|
||||
UINT8 HartIndexBits;
|
||||
UINT8 GroupIndexBits;
|
||||
UINT8 GroupIndexShift;
|
||||
} ACPI_MADT_IMSIC;
|
||||
|
||||
/* 26: RISC-V APLIC */
|
||||
typedef struct acpi_madt_aplic {
|
||||
ACPI_SUBTABLE_HEADER Header;
|
||||
UINT8 Version;
|
||||
UINT8 Id;
|
||||
UINT32 Flags;
|
||||
UINT8 HwId[8];
|
||||
UINT16 NumIdcs;
|
||||
UINT16 NumSources;
|
||||
UINT32 GsiBase;
|
||||
UINT64 BaseAddr;
|
||||
UINT32 Size;
|
||||
} ACPI_MADT_APLIC;
|
||||
|
||||
/* 27: RISC-V PLIC */
|
||||
typedef struct acpi_madt_plic {
|
||||
ACPI_SUBTABLE_HEADER Header;
|
||||
UINT8 Version;
|
||||
UINT8 Id;
|
||||
UINT8 HwId[8];
|
||||
UINT16 NumIrqs;
|
||||
UINT16 MaxPrio;
|
||||
UINT32 Flags;
|
||||
UINT32 Size;
|
||||
UINT64 BaseAddr;
|
||||
UINT32 GsiBase;
|
||||
} ACPI_MADT_PLIC;
|
||||
|
||||
|
||||
/* 80: OEM data */
|
||||
|
||||
typedef struct acpi_madt_oem_data
|
||||
|
@ -3285,12 +3334,15 @@ enum AcpiRgrtImageType
|
|||
|
||||
typedef struct acpi_table_rhct {
|
||||
ACPI_TABLE_HEADER Header; /* Common ACPI table header */
|
||||
UINT32 Reserved;
|
||||
UINT32 Flags; /* RHCT flags */
|
||||
UINT64 TimeBaseFreq;
|
||||
UINT32 NodeCount;
|
||||
UINT32 NodeOffset;
|
||||
} ACPI_TABLE_RHCT;
|
||||
|
||||
/* RHCT Flags */
|
||||
|
||||
#define ACPI_RHCT_TIMER_CANNOT_WAKEUP_CPU (1)
|
||||
/*
|
||||
* RHCT subtables
|
||||
*/
|
||||
|
@ -3304,6 +3356,9 @@ typedef struct acpi_rhct_node_header {
|
|||
|
||||
enum acpi_rhct_node_type {
|
||||
ACPI_RHCT_NODE_TYPE_ISA_STRING = 0x0000,
|
||||
ACPI_RHCT_NODE_TYPE_CMO = 0x0001,
|
||||
ACPI_RHCT_NODE_TYPE_MMU = 0x0002,
|
||||
ACPI_RHCT_NODE_TYPE_RESERVED = 0x0003,
|
||||
ACPI_RHCT_NODE_TYPE_HART_INFO = 0xFFFF,
|
||||
};
|
||||
|
||||
|
@ -3317,6 +3372,24 @@ typedef struct acpi_rhct_isa_string {
|
|||
char Isa[];
|
||||
} ACPI_RHCT_ISA_STRING;
|
||||
|
||||
typedef struct acpi_rhct_cmo_node {
|
||||
UINT8 Reserved; /* Must be zero */
|
||||
UINT8 CbomSize; /* CBOM size in powerof 2 */
|
||||
UINT8 CbopSize; /* CBOP size in powerof 2 */
|
||||
UINT8 CbozSize; /* CBOZ size in powerof 2 */
|
||||
} ACPI_RHCT_CMO_NODE;
|
||||
|
||||
typedef struct acpi_rhct_mmu_node {
|
||||
UINT8 Reserved; /* Must be zero */
|
||||
UINT8 MmuType; /* Virtual Address Scheme */
|
||||
} ACPI_RHCT_MMU_NODE;
|
||||
|
||||
enum acpi_rhct_mmu_type {
|
||||
ACPI_RHCT_MMU_TYPE_SV39 = 0,
|
||||
ACPI_RHCT_MMU_TYPE_SV48 = 1,
|
||||
ACPI_RHCT_MMU_TYPE_SV57 = 2
|
||||
};
|
||||
|
||||
/* Hart Info node structure */
|
||||
typedef struct acpi_rhct_hart_info {
|
||||
UINT16 NumOffsets;
|
||||
|
|
|
@ -454,13 +454,15 @@ typedef struct acpi_srat_gic_its_affinity
|
|||
* 6: ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY
|
||||
*/
|
||||
|
||||
#define ACPI_SRAT_DEVICE_HANDLE_SIZE 16
|
||||
|
||||
typedef struct acpi_srat_generic_affinity
|
||||
{
|
||||
ACPI_SUBTABLE_HEADER Header;
|
||||
UINT8 Reserved;
|
||||
UINT8 DeviceHandleType;
|
||||
UINT32 ProximityDomain;
|
||||
UINT8 DeviceHandle[16];
|
||||
UINT8 DeviceHandle[ACPI_SRAT_DEVICE_HANDLE_SIZE];
|
||||
UINT32 Flags;
|
||||
UINT32 Reserved1;
|
||||
|
||||
|
|
|
@ -873,8 +873,7 @@ typedef UINT32 ACPI_EVENT_TYPE;
|
|||
#define ACPI_EVENT_POWER_BUTTON 2
|
||||
#define ACPI_EVENT_SLEEP_BUTTON 3
|
||||
#define ACPI_EVENT_RTC 4
|
||||
#define ACPI_EVENT_PCIE_WAKE 5
|
||||
#define ACPI_EVENT_MAX 5
|
||||
#define ACPI_EVENT_MAX 4
|
||||
#define ACPI_NUM_FIXED_EVENTS ACPI_EVENT_MAX + 1
|
||||
|
||||
/*
|
||||
|
|
|
@ -506,7 +506,7 @@ typedef struct aml_resource_extended_irq
|
|||
union {
|
||||
UINT32 Interrupt;
|
||||
ACPI_FLEX_ARRAY(UINT32, Interrupts);
|
||||
} u;
|
||||
};
|
||||
/* ResSourceIndex, ResSource optional fields follow */
|
||||
|
||||
} AML_RESOURCE_EXTENDED_IRQ;
|
||||
|
|
|
@ -152,7 +152,6 @@
|
|||
#ifndef __ACGCC_H__
|
||||
#define __ACGCC_H__
|
||||
|
||||
#ifndef _KERNEL
|
||||
/*
|
||||
* Use compiler specific <stdarg.h> is a good practice for even when
|
||||
* -nostdinc is specified (i.e., ACPI_USE_STANDARD_HEADERS undefined.
|
||||
|
@ -165,6 +164,7 @@ typedef __builtin_va_list va_list;
|
|||
#define va_arg(v, l) __builtin_va_arg(v, l)
|
||||
#define va_copy(d, s) __builtin_va_copy(d, s)
|
||||
#else
|
||||
#if !defined(__FreeBSD__) || !defined(_KERNEL)
|
||||
#include <stdarg.h>
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue