aboutsummaryrefslogtreecommitdiff
path: root/src/vendorcode/amd/cimx/rd890/amdAcpiLib.h
diff options
context:
space:
mode:
authorKerry Sheh <shekairui@gmail.com>2012-01-31 20:39:37 +0800
committerPatrick Georgi <patrick@georgi-clan.de>2012-02-02 13:54:36 +0100
commit9292d89be84d6abf9257ddb872887d4f53b2a00e (patch)
tree9eaa548f1742745f57fc92a12734649fec8db1cd /src/vendorcode/amd/cimx/rd890/amdAcpiLib.h
parent17670866a0d12839bc2a4c852210ccf11d3cb4b2 (diff)
RD890 Northbridge: AMD RD890/SR56X0 Northbridge CIMX code
Change-Id: If9908ffeb5b707a660db38dc44f5118347cbcc06 Signed-off-by: Kerry Sheh <kerry.she@amd.com> Signed-off-by: Kerry Sheh <shekairui@gmail.com> Reviewed-on: http://review.coreboot.org/557 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
Diffstat (limited to 'src/vendorcode/amd/cimx/rd890/amdAcpiLib.h')
-rw-r--r--src/vendorcode/amd/cimx/rd890/amdAcpiLib.h136
1 files changed, 136 insertions, 0 deletions
diff --git a/src/vendorcode/amd/cimx/rd890/amdAcpiLib.h b/src/vendorcode/amd/cimx/rd890/amdAcpiLib.h
new file mode 100644
index 0000000000..46ad04faea
--- /dev/null
+++ b/src/vendorcode/amd/cimx/rd890/amdAcpiLib.h
@@ -0,0 +1,136 @@
+/**
+ * @file
+ *
+ * ACPI common library
+ *
+ *
+ *
+ * @xrefitem bom "File Content Label" "Release Content"
+ * @e project: Common Library
+ * @e sub-project:
+ * @e \$Revision:$ @e \$Date:$
+ *
+ */
+/*****************************************************************************
+ *
+ * Copyright (C) 2012 Advanced Micro Devices, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices, Inc. nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ ***************************************************************************/
+
+#ifndef _AMDACPILIB_H_
+#define _AMDACPILIB_H_
+
+#ifndef ASSERT
+ #define ASSERT
+#endif
+
+#pragma pack(push, 1)
+
+///Header for RSDP table
+typedef struct _RSDP {
+ UINT64 Signature; ///< signature
+ UINT8 Checksum; ///< 8 bit checksum
+ UINT8 OEMID[6]; ///< OEM identifier
+ UINT8 Revision; ///< revision
+ UINT32 RsdtAddress; ///< pointer to rsdt
+ UINT32 Length; ///< length of RSDP
+ UINT64 XsdtAddress; ///< pointer to xsdt
+ UINT8 ExtendedChecksum; ///< checksum of xsdt
+ UINT8 Reserved[3]; ///< reserved
+} RSDP;
+
+///Header for general ACPI table
+typedef struct _DESCRIPTION_HEADER {
+ UINT32 Signature; ///< signature
+ UINT32 Length; ///< length
+ UINT8 Revision; ///< revision
+ UINT8 Checksum; ///< 8 bit checksum
+ UINT8 OEMID[6]; ///< OEM identifier
+ UINT8 OEMTableID[8]; ///< OEM table identifier
+ UINT32 OEMRevision; ///< OEM revision
+ UINT32 CreatorID; ///< table creator identifier
+ UINT32 CreatorRevision; ///< table revision
+} DESCRIPTION_HEADER;
+
+///IO APIC struct in MADT table
+typedef struct {
+ UINT8 Type; ///< type
+ UINT8 Length; ///< length
+ UINT8 ApicId; ///< Apic Id
+ UINT8 Reserved; ///< reserved
+ UINT32 IoApicBase; ///< IO APIC base address
+ UINT32 GlobalInterruptBase; ///< Global Interrupt Base
+} MADT_IO_APIC_STRUCT;
+
+///Local APIC struct in MADT table
+typedef struct {
+ UINT8 Type; ///< type
+ UINT8 Length; ///< length
+ UINT8 AcpiProcessorId; ///< ACPI Processor ID
+ UINT8 ApicId; ///< Apic Id
+ UINT32 Flags; ///< Flags
+} MADT_LOCAL_APIC_STRUCT;
+
+///Local SAPIC struct in MADT table
+typedef struct {
+ UINT8 Type; ///< type
+ UINT8 Length; ///< length
+ UINT8 ApicId; ///< Apic Id
+ UINT8 Reserved; ///< reserved
+ UINT32 GlobalInterruptBase; ///< Global Interrupt Base
+ UINT64 IoApicBase; ///< IO SAPIC base address
+} MADT_IO_SAPIC_STRUCT;
+
+#pragma pack(pop)
+
+AGESA_STATUS
+LibAmdSetAcpiTable (
+ IN VOID *TablePtr,
+ IN BOOLEAN Checksum,
+ IN UINTN *TableHandle
+ );
+
+AGESA_STATUS
+LibAmdGetAcpiTable (
+ IN UINT32 Signature,
+ IN VOID **TablePtr,
+ IN UINTN *TableHandle
+ );
+
+
+VOID
+LibAmdUpdateAcpiTableChecksum (
+ IN VOID* TablePtr
+);
+
+UINT8
+LibAmdGetAcpiTableChecksum (
+ IN VOID* TablePtr
+);
+
+
+#endif \ No newline at end of file