The _DMA object contains a resource template, this change
adds support for the walk resources function so that ACPI
devices containing a _DMA object can actually parse it to
detect DMA ranges for the respective bus.
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
This change defers the resolution of package elements that
are named references until after the entire namespace has been
loaded from the definition block. This allows such references
to be in fact forward references for both module level code
and control methods.
Provide common creation code for the Alias operator. All objects
are now handled the same, with the only exception being the
Method() operator. It has a special internal Alias type.
The -vx [messageId] option, where the x stands for EXpect, allows the
compiler to expect that the compilation will result in an ASL exception
with a particular messageId. If this error is not raised. The
compilation will result in an error. This will help create a whole new
class of compilation tests in ASLTS.
Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
These tests compare a resource descriptor and an equivalent buffer to ensure
proper resource descriptor compilation. The buffer does not account for the
shared bit for V2 resource descriptors (see section 6.4.3.8.2.x in the ACPI
6.2 spec). This commit changes this test buffer to include the shared bit
(the 3rd bit of the 6th byte of V2 resource descriptors). The specification
is expected to reflect these changes (sections 6.4.3.8.2.1, 6.4.3.8.2.2, and
6.4.3.8.2.3).
Updated buffers include buffers equivalent to I2cSearialBusv2, SpiSerialBusv2,
and UartSerialBusv2
Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
/WX turns warning into fatal erros for MSVC builds. We need /WX- during
EDK2 porting to allow agile development.
Now it is time to enable /WX. Lv Zheng.
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
This patch adds AcpiOsStall() and AcpiOsSleep() support.
Currently we do not support asynchronous polling of key stroke and timer,
so AcpiOsSleep() is simply an invocation of AcpiOsStall(). Lv Zheng.
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
This patch adds AcpiOsGetTimer() support for EFI environment.
Note that currently we don't support timezone. Lv Zheng.
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
This patch only adds stub supports for multi-threading OSLs to make
EFI ported application running.
In order to fully support acpiexec in a non multi-threading environment,
ACPICA core itself need to be upgraded to contain full asynchrnous support.
Lv Zheng.
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
This patch adds support in edksetup.sh to allow StdLib build target to
use different inf/dsc files. Lv Zheng.
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI spec allows to configure different 32-bit/64-bit table addresses for
DSDT and FACS. And for FACS, it's meaningful to dump both of them as they
are used to support different suspend protocols.
While:
1. on Linux, only 1 instance is supported for DSDT/FACS; and
2. on EFI, the code in OslGetTable() is buggy with special table instances,
causing endless file dump for such tables (reported by Shao Ming in link
#2).
This patch adds DSDT/FACS instance support for Linux/EFI but doesn't cover
BSD as BSD acpidump needs a full refresh. Fixed by Lv Zheng.
Link: https://bugs.acpica.org/show_bug.cgi?id=1407 [#1]
Link: https://github.com/acpica/acpica/issues/285 [#2]
Reported-by: Shao Ming <smbest163@163.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
In order to build ACPICA EFI tools with EDK-II on Windows, 64-bit
multiply/shift supports are also required to be implemented. Otherwise,
MSVC complains:
acpidump.lib(utstrtoul64.obj) : error LNK2001: unresolved external symbol __allmul
acpidump.lib(uthex.obj) : error LNK2001: unresolved external symbol __aullshr
Note:
1. This patch also splits _EDK2_EFI from _GNU_EFI as they might have
different math64 supports.
2. Support of gcc math64 is not included in this patch.
3. Support of EDK2 arch independent math64 is done via linking to BaseLib.
This patch fixes this issue. Reported by Shao Ming, fixed by Lv Zheng.
Tested-by: "Shao, Ming" <smbest163@163.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Several changes are needed to compile EDK-II port of acpidump on
Windows:
1. sort acpi.h inclusion: va_list is used before it's definition, we
only need to ensure order of acenv.h/acenvex.h/actypes.h.
2. /GL-: enabling global optimization causes memset() to be linked by
MSVC builds.
3. /DUSE_MS_ABI: to enable simpler uefi_call_wrapper().
4. /D__x86_64__|__i386__: they are strictly required by ACPICA headers,
but not defined by MSVC.
Signed-off-by: "Shao, Ming" <smbest163@163.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
ACPI 6.2 adds support for the Software Delegated Exception Interface,
which is described by "Software Delegated Exception Interface (SDEI)"
ARM DEN0054A.
Add the necessary types in the ACPICA header files and support for
compiling/decompiling the table.
Signed-off-by: James Morse <james.morse@arm.com>
Today DtCompileTable() will return AE_BAD_PARAMETER if it has already
reached the end of the FieldList. This prevents it building the SDEI
table (which is only a table header) as a simple table.
Explicitly check whether there are more fields before calling
DtCompileTable() on the simple-table compile path.
Signed-off-by: James Morse <james.morse@arm.com>
Revert commit ba5020b2dbe (Disassembler: Enhance resource
descriptor detection) as it is based on an assumption that doesn't
hold all the time and causes problems to happen because of that.
Broken platform:
HPE Moonshot ProLiant DL380Gen9
HPE Moonshot M400 Server Cartridge
Reported-by: Linda Knippers <linda.knippers@hpe.com>
Reported-by: Graeme Gregory <graeme.gregory@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Linux guys start to define access size values for
ACPI_RESOURCE_GENERIC_REGISTER, while it should be better to just define
the access_size -> access_bit_width algorithm and deply it for both
ACPI_RESOURCE_GENERIC_REGISTER and ACPI_GENERIC_ADDRESS types. Lv Zheng.
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
This patch enables duplication check for late stage. The previous fixes
only prepare mechanism for late stage table verification and checksum
verification is enabled by default. But an explicit !Null TableIndex is
required to enable duplication check for late stage. Lv Zheng.
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
This reverts commit d28f6c2927053d85f33780b66c0d9050f0e30d3a.
This appears to be a workaround for some bad ASL or other code. This
type of code should not be in the ACPICA code.
ARM IORT specification has provision to define Proximity domain
in SMMUv3 IORT table. Adding required changes to decode
Proximity domain of SMMUv3 IORT table.
Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>