src/southbridge/amd/cimx_wrapper: Run dos2unix on the files.
authorUwe Hermann <uwe@hermann-uwe.de>
Sat, 1 Jan 2011 23:36:03 +0000 (23:36 +0000)
committerUwe Hermann <uwe@hermann-uwe.de>
Sat, 1 Jan 2011 23:36:03 +0000 (23:36 +0000)
Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6237 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

src/southbridge/amd/cimx_wrapper/Kconfig
src/southbridge/amd/cimx_wrapper/Makefile.inc
src/southbridge/amd/cimx_wrapper/sb800/Amd.h
src/southbridge/amd/cimx_wrapper/sb800/Amdlib.h
src/southbridge/amd/cimx_wrapper/sb800/SBPLATFORM.h

index 243acef91c16e883507e2ac87ba8c825eb20163a..6dfd5f6c2e55b7e2e0dc86ef97410bdf2194642e 100644 (file)
 # along with this program; if not, write to the Free Software\r
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA\r
 #\r
-#\r
+\r
 config SOUTHBRIDGE_AMD_CIMX_WRAPPER\r
-        bool\r
-        default n\r
+       bool\r
+       default n\r
 \r
 config SOUTHBRIDGE_AMD_CIMX_WRAPPER_SB800\r
-        bool\r
-        select IOAPIC\r
-        select SOUTHBRIDGE_AMD_CIMX_WRAPPER\r
+       bool\r
+       select IOAPIC\r
+       select SOUTHBRIDGE_AMD_CIMX_WRAPPER\r
 \r
 source src/southbridge/amd/cimx_wrapper/sb800/Kconfig\r
+\r
index 6774dc86180b637c7cccaad186bc958ea3541b75..1d9abf76ddf38dc03c9e4e6bd4d15781f6b3265e 100644 (file)
@@ -16,4 +16,6 @@
 # along with this program; if not, write to the Free Software\r
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA\r
 #\r
+\r
 subdirs-$(CONFIG_SOUTHBRIDGE_AMD_CIMX_WRAPPER_SB800) += sb800\r
+\r
index b7fd04574551627c27d7d7b4747c73134565eb96..ee140d4adfb919d135947ec2a73f94f560c0f79d 100644 (file)
-/*****************************************************************************\r
- * AMD Generic Encapsulated Software Architecture                            */\r
-/**\r
- * @file\r
- *\r
- * Agesa structures and definitions\r
- *\r
- * Contains AMD AGESA/CIMx core interface\r
- *\r
- * @xrefitem bom "File Content Label" "Release Content"\r
- * @e project:      AGESA\r
- * @e sub-project:  Include\r
- * @e \$Revision:$   @e \$Date:$\r
- */\r
-/*\r
- *****************************************************************************\r
- *\r
- * This file is part of the coreboot project.\r
- *\r
- * Copyright (C) 2010 Advanced Micro Devices, Inc.\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; version 2 of the License.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA\r
- * ***************************************************************************\r
- *\r
- */\r
-\r
-#ifndef _AMD_H_\r
-#define _AMD_H_\r
-\r
-// AGESA Types and Definitions\r
-\r
-#ifndef NULL\r
-  #define NULL 0\r
-#endif\r
-\r
-#define LAST_ENTRY 0xFFFFFFFF\r
-#define IOCF8 0xCF8\r
-#define IOCFC 0xCFC\r
-#define IN\r
-#define OUT\r
-#define IMAGE_SIGNATURE 'DMA$'\r
-\r
-typedef UINTN AGESA_STATUS;\r
-\r
-#define AGESA_SUCCESS       ((AGESA_STATUS) 0x0)\r
-#define AGESA_ALERT         ((AGESA_STATUS) 0x40000000)\r
-#define AGESA_WARNING       ((AGESA_STATUS) 0x40000001)\r
-#define AGESA_UNSUPPORTED   ((AGESA_STATUS) 0x80000003)\r
-#define AGESA_ERROR         ((AGESA_STATUS) 0xC0000001)\r
-#define AGESA_CRITICAL      ((AGESA_STATUS) 0xC0000002)\r
-#define AGESA_FATAL         ((AGESA_STATUS) 0xC0000003)\r
-\r
-typedef AGESA_STATUS (*CALLOUT_ENTRY) (UINT32 Param1, UINTN Param2, VOID* ConfigPtr);\r
-typedef AGESA_STATUS (*IMAGE_ENTRY) (IN OUT VOID* ConfigPtr);\r
-typedef AGESA_STATUS (*MODULE_ENTRY) (IN OUT VOID* ConfigPtr);\r
-\r
-///This allocation type is used by the AmdCreateStruct entry point\r
-typedef enum {\r
-  PreMemHeap = 0,                                           ///< Create heap in cache.\r
-  PostMemDram,                                              ///< Create heap in memory.\r
-  ByHost                                                    ///< Create heap by Host.\r
-} ALLOCATION_METHOD;\r
-\r
-/// These width descriptors are used by the library function, and others, to specify the data size\r
-typedef enum ACCESS_WIDTH {\r
-  AccessWidth8 = 1,                                         ///< Access width is 8 bits.\r
-  AccessWidth16,                                            ///< Access width is 16 bits.\r
-  AccessWidth32,                                            ///< Access width is 32 bits.\r
-  AccessWidth64,                                            ///< Access width is 64 bits.\r
-\r
-  AccessS3SaveWidth8 = 0x81,                                ///< Save 8 bits data.\r
-  AccessS3SaveWidth16,                                      ///< Save 16 bits data.\r
-  AccessS3SaveWidth32,                                      ///< Save 32 bits data.\r
-  AccessS3SaveWidth64,                                      ///< Save 64 bits data.\r
-} ACCESS_WIDTH;\r
-\r
-// AGESA Structures\r
-\r
-/// The standard header for all AGESA services.\r
-typedef struct _AMD_CONFIG_PARAMS {\r
-  IN       UINT32          ImageBasePtr;     ///< The AGESA Image base address.\r
-  IN       UINT32          Func;             ///< The service desired, @sa dispatch.h.\r
-  IN       UINT32          AltImageBasePtr;  ///< Alternate Image location\r
-  IN       UINT32          PcieBasePtr;      ///< PCIe MMIO Base address, if configured.\r
-  union {                                    ///< Callback pointer\r
-    IN       UINT64          PlaceHolder;    ///< Place holder\r
-    IN       CALLOUT_ENTRY   CalloutPtr;     ///< For Callout from AGESA\r
-  } CALLBACK;\r
-  IN OUT   UINT32          Reserved[2];      ///< This space is reserved for future use.\r
-} AMD_CONFIG_PARAMS;\r
-\r
-\r
-/// AGESA Binary module header structure\r
-typedef struct _AMD_IMAGE_HEADER {\r
-  IN       UINT32  Signature;                          ///< Binary Signature\r
-  IN       CHAR8   CreatorID[8];                       ///< 8 characters ID\r
-  IN       CHAR8   Version[12];                        ///< 12 characters version\r
-  IN       UINT32  ModuleInfoOffset;                   ///< Offset of module\r
-  IN       UINT32  EntryPointAddress;                  ///< Entry address\r
-  IN       UINT32  ImageBase;                          ///< Image base\r
-  IN       UINT32  RelocTableOffset;                   ///< Relocate Table offset\r
-  IN       UINT32  ImageSize;                          ///< Size\r
-  IN       UINT16  Checksum;                           ///< Checksum\r
-  IN       UINT8   ImageType;                          ///< Type\r
-  IN       UINT8   V_Reserved;                         ///< Reserved\r
-} AMD_IMAGE_HEADER;\r
-\r
-/// AGESA Binary module header structure\r
-typedef struct _AMD_MODULE_HEADER {\r
-  IN       UINT32          ModuleHeaderSignature;      ///< Module signature\r
-  IN       CHAR8           ModuleIdentifier[8];        ///< 8 characters ID\r
-  IN       CHAR8           ModuleVersion[12];          ///< 12 characters version\r
-  IN       MODULE_ENTRY    ModuleDispatcherPtr;        ///< A pointer point to dispatcher\r
-  IN       struct _AMD_MODULE_HEADER  *NextBlockPtr;    ///< Next module header link\r
-} AMD_MODULE_HEADER;\r
-\r
-#define FUNC_0    0   // bit-placed for PCI address creation\r
-#define FUNC_1    1\r
-#define FUNC_2    2\r
-#define FUNC_3    3\r
-#define FUNC_4    4\r
-#define FUNC_5    5\r
-#define FUNC_6    6\r
-#define FUNC_7    7\r
-\r
-//   SBDFO - Segment Bus Device Function Offset\r
-//   31:28   Segment (4-bits)\r
-//   27:20   Bus     (8-bits)\r
-//   19:15   Device  (5-bits)\r
-//   14:12   Function (3-bits)\r
-//   11:00   Offset  (12-bits)\r
-\r
-#if 0\r
-#define MAKE_SBDFO(Seg, Bus, Dev, Fun, Off) ((((UINT32) (Seg)) << 28) | (((UINT32) (Bus)) << 20) | \\r
-                   (((UINT32) (Dev)) << 15) | (((UINT32) (Fun)) << 12) | ((UINT32) (Off)))\r
-#endif\r
-#define ILLEGAL_SBDFO 0xFFFFFFFF\r
-\r
-/// CPUID data received registers format\r
-typedef struct _SB_CPUID_DATA {\r
-  IN OUT   UINT32          EAX_Reg;                ///< CPUID instruction result in EAX\r
-  IN OUT   UINT32          EBX_Reg;                ///< CPUID instruction result in EBX\r
-  IN OUT   UINT32          ECX_Reg;                ///< CPUID instruction result in ECX\r
-  IN OUT   UINT32          EDX_Reg;                ///< CPUID instruction result in EDX\r
-} SB_CPUID_DATA;\r
-\r
-#define WARM_RESET 1\r
-#define COLD_RESET 2      // Cold reset\r
-#define RESET_CPU  4      // Triggers a CPU reset\r
-\r
-/// HT frequency for external callbacks\r
-typedef enum {\r
-  HT_FREQUENCY_200M          = 0,                 ///< HT speed 200 for external callbacks\r
-  HT_FREQUENCY_400M          = 2,                 ///< HT speed 400 for external callbacks\r
-  HT_FREQUENCY_600M          = 4,                 ///< HT speed 600 for external callbacks\r
-  HT_FREQUENCY_800M          = 5,                 ///< HT speed 800 for external callbacks\r
-  HT_FREQUENCY_1000M         = 6,                 ///< HT speed 1000 for external callbacks\r
-  HT_FREQUENCY_1200M         = 7,                 ///< HT speed 1200 for external callbacks\r
-  HT_FREQUENCY_1400M         = 8,                 ///< HT speed 1400 for external callbacks\r
-  HT_FREQUENCY_1600M         = 9,                 ///< HT speed 1600 for external callbacks\r
-  HT_FREQUENCY_1800M         = 10,                ///< HT speed 1800 for external callbacks\r
-  HT_FREQUENCY_2000M         = 11,                ///< HT speed 2000 for external callbacks\r
-  HT_FREQUENCY_2200M         = 12,                ///< HT speed 2200 for external callbacks\r
-  HT_FREQUENCY_2400M         = 13,                ///< HT speed 2400 for external callbacks\r
-  HT_FREQUENCY_2600M         = 14,                ///< HT speed 2600 for external callbacks\r
-  HT_FREQUENCY_2800M         = 17,                ///< HT speed 2800 for external callbacks\r
-  HT_FREQUENCY_3000M         = 18,                ///< HT speed 3000 for external callbacks\r
-  HT_FREQUENCY_3200M         = 19                 ///< HT speed 3200 for external callbacks\r
-} HT_FREQUENCIES;\r
-\r
-#ifndef BIT0\r
-  #define BIT0        0x0000000000000001ull\r
-#endif\r
-#ifndef BIT1\r
-  #define BIT1        0x0000000000000002ull\r
-#endif\r
-#ifndef BIT2\r
-  #define BIT2        0x0000000000000004ull\r
-#endif\r
-#ifndef BIT3\r
-  #define BIT3        0x0000000000000008ull\r
-#endif\r
-#ifndef BIT4\r
-  #define BIT4        0x0000000000000010ull\r
-#endif\r
-#ifndef BIT5\r
-  #define BIT5        0x0000000000000020ull\r
-#endif\r
-#ifndef BIT6\r
-  #define BIT6        0x0000000000000040ull\r
-#endif\r
-#ifndef BIT7\r
-  #define BIT7        0x0000000000000080ull\r
-#endif\r
-#ifndef BIT8\r
-  #define BIT8        0x0000000000000100ull\r
-#endif\r
-#ifndef BIT9\r
-  #define BIT9        0x0000000000000200ull\r
-#endif\r
-#ifndef BIT10\r
-  #define BIT10       0x0000000000000400ull\r
-#endif\r
-#ifndef BIT11\r
-  #define BIT11       0x0000000000000800ull\r
-#endif\r
-#ifndef BIT12\r
-  #define BIT12       0x0000000000001000ull\r
-#endif\r
-#ifndef BIT13\r
-  #define BIT13       0x0000000000002000ull\r
-#endif\r
-#ifndef BIT14\r
-  #define BIT14       0x0000000000004000ull\r
-#endif\r
-#ifndef BIT15\r
-  #define BIT15       0x0000000000008000ull\r
-#endif\r
-#ifndef BIT16\r
-  #define BIT16       0x0000000000010000ull\r
-#endif\r
-#ifndef BIT17\r
-  #define BIT17       0x0000000000020000ull\r
-#endif\r
-#ifndef BIT18\r
-  #define BIT18       0x0000000000040000ull\r
-#endif\r
-#ifndef BIT19\r
-  #define BIT19       0x0000000000080000ull\r
-#endif\r
-#ifndef BIT20\r
-  #define BIT20       0x0000000000100000ull\r
-#endif\r
-#ifndef BIT21\r
-  #define BIT21       0x0000000000200000ull\r
-#endif\r
-#ifndef BIT22\r
-  #define BIT22       0x0000000000400000ull\r
-#endif\r
-#ifndef BIT23\r
-  #define BIT23       0x0000000000800000ull\r
-#endif\r
-#ifndef BIT24\r
-  #define BIT24       0x0000000001000000ull\r
-#endif\r
-#ifndef BIT25\r
-  #define BIT25       0x0000000002000000ull\r
-#endif\r
-#ifndef BIT26\r
-  #define BIT26       0x0000000004000000ull\r
-#endif\r
-#ifndef BIT27\r
-  #define BIT27       0x0000000008000000ull\r
-#endif\r
-#ifndef BIT28\r
-  #define BIT28       0x0000000010000000ull\r
-#endif\r
-#ifndef BIT29\r
-  #define BIT29       0x0000000020000000ull\r
-#endif\r
-#ifndef BIT30\r
-  #define BIT30       0x0000000040000000ull\r
-#endif\r
-#ifndef BIT31\r
-  #define BIT31       0x0000000080000000ull\r
-#endif\r
-#ifndef BIT32\r
-  #define BIT32       0x0000000100000000ull\r
-#endif\r
-#ifndef BIT33\r
-  #define BIT33       0x0000000200000000ull\r
-#endif\r
-#ifndef BIT34\r
-  #define BIT34       0x0000000400000000ull\r
-#endif\r
-#ifndef BIT35\r
-  #define BIT35       0x0000000800000000ull\r
-#endif\r
-#ifndef BIT36\r
-  #define BIT36       0x0000001000000000ull\r
-#endif\r
-#ifndef BIT37\r
-  #define BIT37       0x0000002000000000ull\r
-#endif\r
-#ifndef BIT38\r
-  #define BIT38       0x0000004000000000ull\r
-#endif\r
-#ifndef BIT39\r
-  #define BIT39       0x0000008000000000ull\r
-#endif\r
-#ifndef BIT40\r
-  #define BIT40       0x0000010000000000ull\r
-#endif\r
-#ifndef BIT41\r
-  #define BIT41       0x0000020000000000ull\r
-#endif\r
-#ifndef BIT42\r
-  #define BIT42       0x0000040000000000ull\r
-#endif\r
-#ifndef BIT43\r
-  #define BIT43       0x0000080000000000ull\r
-#endif\r
-#ifndef BIT44\r
-  #define BIT44       0x0000100000000000ull\r
-#endif\r
-#ifndef BIT45\r
-  #define BIT45       0x0000200000000000ull\r
-#endif\r
-#ifndef BIT46\r
-  #define BIT46       0x0000400000000000ull\r
-#endif\r
-#ifndef BIT47\r
-  #define BIT47       0x0000800000000000ull\r
-#endif\r
-#ifndef BIT48\r
-  #define BIT48       0x0001000000000000ull\r
-#endif\r
-#ifndef BIT49\r
-  #define BIT49       0x0002000000000000ull\r
-#endif\r
-#ifndef BIT50\r
-  #define BIT50       0x0004000000000000ull\r
-#endif\r
-#ifndef BIT51\r
-  #define BIT51       0x0008000000000000ull\r
-#endif\r
-#ifndef BIT52\r
-  #define BIT52       0x0010000000000000ull\r
-#endif\r
-#ifndef BIT53\r
-  #define BIT53       0x0020000000000000ull\r
-#endif\r
-#ifndef BIT54\r
-  #define BIT54       0x0040000000000000ull\r
-#endif\r
-#ifndef BIT55\r
-  #define BIT55       0x0080000000000000ull\r
-#endif\r
-#ifndef BIT56\r
-  #define BIT56       0x0100000000000000ull\r
-#endif\r
-#ifndef BIT57\r
-  #define BIT57       0x0200000000000000ull\r
-#endif\r
-#ifndef BIT58\r
-  #define BIT58       0x0400000000000000ull\r
-#endif\r
-#ifndef BIT59\r
-  #define BIT59       0x0800000000000000ull\r
-#endif\r
-#ifndef BIT60\r
-  #define BIT60       0x1000000000000000ull\r
-#endif\r
-#ifndef BIT61\r
-  #define BIT61       0x2000000000000000ull\r
-#endif\r
-#ifndef BIT62\r
-  #define BIT62       0x4000000000000000ull\r
-#endif\r
-#ifndef BIT63\r
-  #define BIT63       0x8000000000000000ull\r
-#endif\r
-\r
-#endif\r
+/*****************************************************************************
+ * AMD Generic Encapsulated Software Architecture                            */
+/**
+ * @file
+ *
+ * Agesa structures and definitions
+ *
+ * Contains AMD AGESA/CIMx core interface
+ *
+ * @xrefitem bom "File Content Label" "Release Content"
+ * @e project:      AGESA
+ * @e sub-project:  Include
+ * @e \$Revision:$   @e \$Date:$
+ */
+/*
+ *****************************************************************************
+ *
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2010 Advanced Micro Devices, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ * ***************************************************************************
+ *
+ */
+
+#ifndef _AMD_H_
+#define _AMD_H_
+
+// AGESA Types and Definitions
+
+#ifndef NULL
+  #define NULL 0
+#endif
+
+#define LAST_ENTRY 0xFFFFFFFF
+#define IOCF8 0xCF8
+#define IOCFC 0xCFC
+#define IN
+#define OUT
+#define IMAGE_SIGNATURE 'DMA$'
+
+typedef UINTN AGESA_STATUS;
+
+#define AGESA_SUCCESS       ((AGESA_STATUS) 0x0)
+#define AGESA_ALERT         ((AGESA_STATUS) 0x40000000)
+#define AGESA_WARNING       ((AGESA_STATUS) 0x40000001)
+#define AGESA_UNSUPPORTED   ((AGESA_STATUS) 0x80000003)
+#define AGESA_ERROR         ((AGESA_STATUS) 0xC0000001)
+#define AGESA_CRITICAL      ((AGESA_STATUS) 0xC0000002)
+#define AGESA_FATAL         ((AGESA_STATUS) 0xC0000003)
+
+typedef AGESA_STATUS (*CALLOUT_ENTRY) (UINT32 Param1, UINTN Param2, VOID* ConfigPtr);
+typedef AGESA_STATUS (*IMAGE_ENTRY) (IN OUT VOID* ConfigPtr);
+typedef AGESA_STATUS (*MODULE_ENTRY) (IN OUT VOID* ConfigPtr);
+
+///This allocation type is used by the AmdCreateStruct entry point
+typedef enum {
+  PreMemHeap = 0,                                           ///< Create heap in cache.
+  PostMemDram,                                              ///< Create heap in memory.
+  ByHost                                                    ///< Create heap by Host.
+} ALLOCATION_METHOD;
+
+/// These width descriptors are used by the library function, and others, to specify the data size
+typedef enum ACCESS_WIDTH {
+  AccessWidth8 = 1,                                         ///< Access width is 8 bits.
+  AccessWidth16,                                            ///< Access width is 16 bits.
+  AccessWidth32,                                            ///< Access width is 32 bits.
+  AccessWidth64,                                            ///< Access width is 64 bits.
+
+  AccessS3SaveWidth8 = 0x81,                                ///< Save 8 bits data.
+  AccessS3SaveWidth16,                                      ///< Save 16 bits data.
+  AccessS3SaveWidth32,                                      ///< Save 32 bits data.
+  AccessS3SaveWidth64,                                      ///< Save 64 bits data.
+} ACCESS_WIDTH;
+
+// AGESA Structures
+
+/// The standard header for all AGESA services.
+typedef struct _AMD_CONFIG_PARAMS {
+  IN       UINT32          ImageBasePtr;     ///< The AGESA Image base address.
+  IN       UINT32          Func;             ///< The service desired, @sa dispatch.h.
+  IN       UINT32          AltImageBasePtr;  ///< Alternate Image location
+  IN       UINT32          PcieBasePtr;      ///< PCIe MMIO Base address, if configured.
+  union {                                    ///< Callback pointer
+    IN       UINT64          PlaceHolder;    ///< Place holder
+    IN       CALLOUT_ENTRY   CalloutPtr;     ///< For Callout from AGESA
+  } CALLBACK;
+  IN OUT   UINT32          Reserved[2];      ///< This space is reserved for future use.
+} AMD_CONFIG_PARAMS;
+
+
+/// AGESA Binary module header structure
+typedef struct _AMD_IMAGE_HEADER {
+  IN       UINT32  Signature;                          ///< Binary Signature
+  IN       CHAR8   CreatorID[8];                       ///< 8 characters ID
+  IN       CHAR8   Version[12];                        ///< 12 characters version
+  IN       UINT32  ModuleInfoOffset;                   ///< Offset of module
+  IN       UINT32  EntryPointAddress;                  ///< Entry address
+  IN       UINT32  ImageBase;                          ///< Image base
+  IN       UINT32  RelocTableOffset;                   ///< Relocate Table offset
+  IN       UINT32  ImageSize;                          ///< Size
+  IN       UINT16  Checksum;                           ///< Checksum
+  IN       UINT8   ImageType;                          ///< Type
+  IN       UINT8   V_Reserved;                         ///< Reserved
+} AMD_IMAGE_HEADER;
+
+/// AGESA Binary module header structure
+typedef struct _AMD_MODULE_HEADER {
+  IN       UINT32          ModuleHeaderSignature;      ///< Module signature
+  IN       CHAR8           ModuleIdentifier[8];        ///< 8 characters ID
+  IN       CHAR8           ModuleVersion[12];          ///< 12 characters version
+  IN       MODULE_ENTRY    ModuleDispatcherPtr;        ///< A pointer point to dispatcher
+  IN       struct _AMD_MODULE_HEADER  *NextBlockPtr;    ///< Next module header link
+} AMD_MODULE_HEADER;
+
+#define FUNC_0    0   // bit-placed for PCI address creation
+#define FUNC_1    1
+#define FUNC_2    2
+#define FUNC_3    3
+#define FUNC_4    4
+#define FUNC_5    5
+#define FUNC_6    6
+#define FUNC_7    7
+
+//   SBDFO - Segment Bus Device Function Offset
+//   31:28   Segment (4-bits)
+//   27:20   Bus     (8-bits)
+//   19:15   Device  (5-bits)
+//   14:12   Function (3-bits)
+//   11:00   Offset  (12-bits)
+
+#if 0
+#define MAKE_SBDFO(Seg, Bus, Dev, Fun, Off) ((((UINT32) (Seg)) << 28) | (((UINT32) (Bus)) << 20) | \
+                   (((UINT32) (Dev)) << 15) | (((UINT32) (Fun)) << 12) | ((UINT32) (Off)))
+#endif
+#define ILLEGAL_SBDFO 0xFFFFFFFF
+
+/// CPUID data received registers format
+typedef struct _SB_CPUID_DATA {
+  IN OUT   UINT32          EAX_Reg;                ///< CPUID instruction result in EAX
+  IN OUT   UINT32          EBX_Reg;                ///< CPUID instruction result in EBX
+  IN OUT   UINT32          ECX_Reg;                ///< CPUID instruction result in ECX
+  IN OUT   UINT32          EDX_Reg;                ///< CPUID instruction result in EDX
+} SB_CPUID_DATA;
+
+#define WARM_RESET 1
+#define COLD_RESET 2      // Cold reset
+#define RESET_CPU  4      // Triggers a CPU reset
+
+/// HT frequency for external callbacks
+typedef enum {
+  HT_FREQUENCY_200M          = 0,                 ///< HT speed 200 for external callbacks
+  HT_FREQUENCY_400M          = 2,                 ///< HT speed 400 for external callbacks
+  HT_FREQUENCY_600M          = 4,                 ///< HT speed 600 for external callbacks
+  HT_FREQUENCY_800M          = 5,                 ///< HT speed 800 for external callbacks
+  HT_FREQUENCY_1000M         = 6,                 ///< HT speed 1000 for external callbacks
+  HT_FREQUENCY_1200M         = 7,                 ///< HT speed 1200 for external callbacks
+  HT_FREQUENCY_1400M         = 8,                 ///< HT speed 1400 for external callbacks
+  HT_FREQUENCY_1600M         = 9,                 ///< HT speed 1600 for external callbacks
+  HT_FREQUENCY_1800M         = 10,                ///< HT speed 1800 for external callbacks
+  HT_FREQUENCY_2000M         = 11,                ///< HT speed 2000 for external callbacks
+  HT_FREQUENCY_2200M         = 12,                ///< HT speed 2200 for external callbacks
+  HT_FREQUENCY_2400M         = 13,                ///< HT speed 2400 for external callbacks
+  HT_FREQUENCY_2600M         = 14,                ///< HT speed 2600 for external callbacks
+  HT_FREQUENCY_2800M         = 17,                ///< HT speed 2800 for external callbacks
+  HT_FREQUENCY_3000M         = 18,                ///< HT speed 3000 for external callbacks
+  HT_FREQUENCY_3200M         = 19                 ///< HT speed 3200 for external callbacks
+} HT_FREQUENCIES;
+
+#ifndef BIT0
+  #define BIT0        0x0000000000000001ull
+#endif
+#ifndef BIT1
+  #define BIT1        0x0000000000000002ull
+#endif
+#ifndef BIT2
+  #define BIT2        0x0000000000000004ull
+#endif
+#ifndef BIT3
+  #define BIT3        0x0000000000000008ull
+#endif
+#ifndef BIT4
+  #define BIT4        0x0000000000000010ull
+#endif
+#ifndef BIT5
+  #define BIT5        0x0000000000000020ull
+#endif
+#ifndef BIT6
+  #define BIT6        0x0000000000000040ull
+#endif
+#ifndef BIT7
+  #define BIT7        0x0000000000000080ull
+#endif
+#ifndef BIT8
+  #define BIT8        0x0000000000000100ull
+#endif
+#ifndef BIT9
+  #define BIT9        0x0000000000000200ull
+#endif
+#ifndef BIT10
+  #define BIT10       0x0000000000000400ull
+#endif
+#ifndef BIT11
+  #define BIT11       0x0000000000000800ull
+#endif
+#ifndef BIT12
+  #define BIT12       0x0000000000001000ull
+#endif
+#ifndef BIT13
+  #define BIT13       0x0000000000002000ull
+#endif
+#ifndef BIT14
+  #define BIT14       0x0000000000004000ull
+#endif
+#ifndef BIT15
+  #define BIT15       0x0000000000008000ull
+#endif
+#ifndef BIT16
+  #define BIT16       0x0000000000010000ull
+#endif
+#ifndef BIT17
+  #define BIT17       0x0000000000020000ull
+#endif
+#ifndef BIT18
+  #define BIT18       0x0000000000040000ull
+#endif
+#ifndef BIT19
+  #define BIT19       0x0000000000080000ull
+#endif
+#ifndef BIT20
+  #define BIT20       0x0000000000100000ull
+#endif
+#ifndef BIT21
+  #define BIT21       0x0000000000200000ull
+#endif
+#ifndef BIT22
+  #define BIT22       0x0000000000400000ull
+#endif
+#ifndef BIT23
+  #define BIT23       0x0000000000800000ull
+#endif
+#ifndef BIT24
+  #define BIT24       0x0000000001000000ull
+#endif
+#ifndef BIT25
+  #define BIT25       0x0000000002000000ull
+#endif
+#ifndef BIT26
+  #define BIT26       0x0000000004000000ull
+#endif
+#ifndef BIT27
+  #define BIT27       0x0000000008000000ull
+#endif
+#ifndef BIT28
+  #define BIT28       0x0000000010000000ull
+#endif
+#ifndef BIT29
+  #define BIT29       0x0000000020000000ull
+#endif
+#ifndef BIT30
+  #define BIT30       0x0000000040000000ull
+#endif
+#ifndef BIT31
+  #define BIT31       0x0000000080000000ull
+#endif
+#ifndef BIT32
+  #define BIT32       0x0000000100000000ull
+#endif
+#ifndef BIT33
+  #define BIT33       0x0000000200000000ull
+#endif
+#ifndef BIT34
+  #define BIT34       0x0000000400000000ull
+#endif
+#ifndef BIT35
+  #define BIT35       0x0000000800000000ull
+#endif
+#ifndef BIT36
+  #define BIT36       0x0000001000000000ull
+#endif
+#ifndef BIT37
+  #define BIT37       0x0000002000000000ull
+#endif
+#ifndef BIT38
+  #define BIT38       0x0000004000000000ull
+#endif
+#ifndef BIT39
+  #define BIT39       0x0000008000000000ull
+#endif
+#ifndef BIT40
+  #define BIT40       0x0000010000000000ull
+#endif
+#ifndef BIT41
+  #define BIT41       0x0000020000000000ull
+#endif
+#ifndef BIT42
+  #define BIT42       0x0000040000000000ull
+#endif
+#ifndef BIT43
+  #define BIT43       0x0000080000000000ull
+#endif
+#ifndef BIT44
+  #define BIT44       0x0000100000000000ull
+#endif
+#ifndef BIT45
+  #define BIT45       0x0000200000000000ull
+#endif
+#ifndef BIT46
+  #define BIT46       0x0000400000000000ull
+#endif
+#ifndef BIT47
+  #define BIT47       0x0000800000000000ull
+#endif
+#ifndef BIT48
+  #define BIT48       0x0001000000000000ull
+#endif
+#ifndef BIT49
+  #define BIT49       0x0002000000000000ull
+#endif
+#ifndef BIT50
+  #define BIT50       0x0004000000000000ull
+#endif
+#ifndef BIT51
+  #define BIT51       0x0008000000000000ull
+#endif
+#ifndef BIT52
+  #define BIT52       0x0010000000000000ull
+#endif
+#ifndef BIT53
+  #define BIT53       0x0020000000000000ull
+#endif
+#ifndef BIT54
+  #define BIT54       0x0040000000000000ull
+#endif
+#ifndef BIT55
+  #define BIT55       0x0080000000000000ull
+#endif
+#ifndef BIT56
+  #define BIT56       0x0100000000000000ull
+#endif
+#ifndef BIT57
+  #define BIT57       0x0200000000000000ull
+#endif
+#ifndef BIT58
+  #define BIT58       0x0400000000000000ull
+#endif
+#ifndef BIT59
+  #define BIT59       0x0800000000000000ull
+#endif
+#ifndef BIT60
+  #define BIT60       0x1000000000000000ull
+#endif
+#ifndef BIT61
+  #define BIT61       0x2000000000000000ull
+#endif
+#ifndef BIT62
+  #define BIT62       0x4000000000000000ull
+#endif
+#ifndef BIT63
+  #define BIT63       0x8000000000000000ull
+#endif
+
+#endif
index 48177ed1777ce41058506140deca802f379c0f15..e8b94303cbe232550238361b309b5e63db826fdb 100644 (file)
-/*\r
- *****************************************************************************\r
- *\r
- * This file is part of the coreboot project.\r
- *\r
- * Copyright (C) 2010 Advanced Micro Devices, Inc.\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; version 2 of the License.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA\r
- * ***************************************************************************\r
- *\r
- */\r
-\r
-#ifndef _AMD_SB_LIB_H_\r
-#define _AMD_SB_LIB_H_\r
-\r
-typedef CHAR8  *va_list;\r
-#ifndef _INTSIZEOF\r
-  #define _INTSIZEOF (n) ( (sizeof (n) + sizeof (UINTN) - 1) & ~(sizeof (UINTN) - 1) )\r
-#endif\r
-\r
-// Also support coding convention rules for var arg macros\r
-#ifndef va_start\r
-  #define va_start(ap, v)  ( ap = (va_list)&(v) + _INTSIZEOF (v) )\r
-#endif\r
-#define va_arg(ap, t)    ( *(t *) ((ap += _INTSIZEOF (t)) - _INTSIZEOF (t)) )\r
-#define va_end(ap)      ( ap = (va_list)0 )\r
-\r
-#pragma pack (push, 1)\r
-\r
-#define IMAGE_ALIGN          32*1024\r
-#define NUM_IMAGE_LOCATION   32\r
-\r
-//Entry Point Call\r
-typedef void (*CIM_IMAGE_ENTRY) (void* pConfig);\r
-\r
-//Hook Call\r
-\r
-typedef struct _CIMFILEHEADER\r
-{\r
-  UINT32  AMDLogo;\r
-  UINT64  CreatorID;\r
-  UINT32  Version1;\r
-  UINT32  Version2;\r
-  UINT32  Version3;\r
-  UINT32  ModuleInfoOffset;\r
-  UINT32  EntryPoint;\r
-  UINT32  ImageBase;\r
-  UINT32  RelocTableOffset;\r
-  UINT32  ImageSize;\r
-  UINT16  CheckSum;\r
-  UINT8 ImageType;\r
-  UINT8 Reserved2;\r
-} CIMFILEHEADER;\r
-\r
-#ifndef BIT0\r
-  #define BIT0 (1 << 0)\r
-#endif\r
-#ifndef BIT1\r
-  #define BIT1 (1 << 1)\r
-#endif\r
-#ifndef BIT2\r
-  #define BIT2 (1 << 2)\r
-#endif\r
-#ifndef BIT3\r
-  #define BIT3 (1 << 3)\r
-#endif\r
-#ifndef BIT4\r
-  #define BIT4 (1 << 4)\r
-#endif\r
-#ifndef BIT5\r
-  #define BIT5 (1 << 5)\r
-#endif\r
-#ifndef BIT6\r
-  #define BIT6 (1 << 6)\r
-#endif\r
-#ifndef BIT7\r
-  #define BIT7 (1 << 7)\r
-#endif\r
-#ifndef BIT8\r
-  #define BIT8 (1 << 8)\r
-#endif\r
-#ifndef BIT9\r
-  #define BIT9 (1 << 9)\r
-#endif\r
-#ifndef BIT10\r
-  #define BIT10 (1 << 10)\r
-#endif\r
-#ifndef BIT11\r
-  #define BIT11 (1 << 11)\r
-#endif\r
-#ifndef BIT12\r
-  #define BIT12 (1 << 12)\r
-#endif\r
-#ifndef BIT13\r
-  #define BIT13 (1 << 13)\r
-#endif\r
-#ifndef BIT14\r
-  #define BIT14 (1 << 14)\r
-#endif\r
-#ifndef BIT15\r
-  #define BIT15 (1 << 15)\r
-#endif\r
-#ifndef BIT16\r
-  #define BIT16 (1 << 16)\r
-#endif\r
-#ifndef BIT17\r
-  #define BIT17 (1 << 17)\r
-#endif\r
-#ifndef BIT18\r
-  #define BIT18 (1 << 18)\r
-#endif\r
-#ifndef BIT19\r
-  #define BIT19 (1 << 19)\r
-#endif\r
-#ifndef BIT20\r
-  #define BIT20 (1 << 20)\r
-#endif\r
-#ifndef BIT21\r
-  #define BIT21 (1 << 21)\r
-#endif\r
-#ifndef BIT22\r
-  #define BIT22 (1 << 22)\r
-#endif\r
-#ifndef BIT23\r
-  #define BIT23 (1 << 23)\r
-#endif\r
-#ifndef  BIT24\r
-  #define BIT24 (1 << 24)\r
-#endif\r
-#ifndef BIT25\r
-  #define BIT25 (1 << 25)\r
-#endif\r
-#ifndef BIT26\r
-  #define BIT26 (1 << 26)\r
-#endif\r
-#ifndef BIT27\r
-  #define BIT27 (1 << 27)\r
-#endif\r
-#ifndef BIT28\r
-  #define BIT28 (1 << 28)\r
-#endif\r
-#ifndef BIT29\r
-  #define BIT29 (1 << 29)\r
-#endif\r
-#ifndef BIT30\r
-  #define BIT30 (1 << 30)\r
-#endif\r
-#ifndef BIT31\r
-  #define BIT31 (1 << 31)\r
-#endif\r
-\r
-#pragma pack (pop)\r
-\r
-typedef enum\r
-{\r
-  AccWidthUint8 = 0,\r
-  AccWidthUint16,\r
-  AccWidthUint32,\r
-} ACC_WIDTH;\r
-\r
-#define S3_SAVE  0x80\r
-\r
-#endif\r
+/*
+ *****************************************************************************
+ *
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2010 Advanced Micro Devices, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ * ***************************************************************************
+ *
+ */
+
+#ifndef _AMD_SB_LIB_H_
+#define _AMD_SB_LIB_H_
+
+typedef CHAR8  *va_list;
+#ifndef _INTSIZEOF
+  #define _INTSIZEOF (n) ( (sizeof (n) + sizeof (UINTN) - 1) & ~(sizeof (UINTN) - 1) )
+#endif
+
+// Also support coding convention rules for var arg macros
+#ifndef va_start
+  #define va_start(ap, v)  ( ap = (va_list)&(v) + _INTSIZEOF (v) )
+#endif
+#define va_arg(ap, t)    ( *(t *) ((ap += _INTSIZEOF (t)) - _INTSIZEOF (t)) )
+#define va_end(ap)      ( ap = (va_list)0 )
+
+#pragma pack (push, 1)
+
+#define IMAGE_ALIGN          32*1024
+#define NUM_IMAGE_LOCATION   32
+
+//Entry Point Call
+typedef void (*CIM_IMAGE_ENTRY) (void* pConfig);
+
+//Hook Call
+
+typedef struct _CIMFILEHEADER
+{
+  UINT32  AMDLogo;
+  UINT64  CreatorID;
+  UINT32  Version1;
+  UINT32  Version2;
+  UINT32  Version3;
+  UINT32  ModuleInfoOffset;
+  UINT32  EntryPoint;
+  UINT32  ImageBase;
+  UINT32  RelocTableOffset;
+  UINT32  ImageSize;
+  UINT16  CheckSum;
+  UINT8 ImageType;
+  UINT8 Reserved2;
+} CIMFILEHEADER;
+
+#ifndef BIT0
+  #define BIT0 (1 << 0)
+#endif
+#ifndef BIT1
+  #define BIT1 (1 << 1)
+#endif
+#ifndef BIT2
+  #define BIT2 (1 << 2)
+#endif
+#ifndef BIT3
+  #define BIT3 (1 << 3)
+#endif
+#ifndef BIT4
+  #define BIT4 (1 << 4)
+#endif
+#ifndef BIT5
+  #define BIT5 (1 << 5)
+#endif
+#ifndef BIT6
+  #define BIT6 (1 << 6)
+#endif
+#ifndef BIT7
+  #define BIT7 (1 << 7)
+#endif
+#ifndef BIT8
+  #define BIT8 (1 << 8)
+#endif
+#ifndef BIT9
+  #define BIT9 (1 << 9)
+#endif
+#ifndef BIT10
+  #define BIT10 (1 << 10)
+#endif
+#ifndef BIT11
+  #define BIT11 (1 << 11)
+#endif
+#ifndef BIT12
+  #define BIT12 (1 << 12)
+#endif
+#ifndef BIT13
+  #define BIT13 (1 << 13)
+#endif
+#ifndef BIT14
+  #define BIT14 (1 << 14)
+#endif
+#ifndef BIT15
+  #define BIT15 (1 << 15)
+#endif
+#ifndef BIT16
+  #define BIT16 (1 << 16)
+#endif
+#ifndef BIT17
+  #define BIT17 (1 << 17)
+#endif
+#ifndef BIT18
+  #define BIT18 (1 << 18)
+#endif
+#ifndef BIT19
+  #define BIT19 (1 << 19)
+#endif
+#ifndef BIT20
+  #define BIT20 (1 << 20)
+#endif
+#ifndef BIT21
+  #define BIT21 (1 << 21)
+#endif
+#ifndef BIT22
+  #define BIT22 (1 << 22)
+#endif
+#ifndef BIT23
+  #define BIT23 (1 << 23)
+#endif
+#ifndef  BIT24
+  #define BIT24 (1 << 24)
+#endif
+#ifndef BIT25
+  #define BIT25 (1 << 25)
+#endif
+#ifndef BIT26
+  #define BIT26 (1 << 26)
+#endif
+#ifndef BIT27
+  #define BIT27 (1 << 27)
+#endif
+#ifndef BIT28
+  #define BIT28 (1 << 28)
+#endif
+#ifndef BIT29
+  #define BIT29 (1 << 29)
+#endif
+#ifndef BIT30
+  #define BIT30 (1 << 30)
+#endif
+#ifndef BIT31
+  #define BIT31 (1 << 31)
+#endif
+
+#pragma pack (pop)
+
+typedef enum
+{
+  AccWidthUint8 = 0,
+  AccWidthUint16,
+  AccWidthUint32,
+} ACC_WIDTH;
+
+#define S3_SAVE  0x80
+
+#endif
index ea71c441489547532a18c80cdfbfe8012225f82f..9127dbee5fd67cb6ae7aa04df69ee74bb50c315a 100644 (file)
-/*\r
- *****************************************************************************\r
- *\r
- * This file is part of the coreboot project.\r
- *\r
- * Copyright (C) 2010 Advanced Micro Devices, Inc.\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; version 2 of the License.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA\r
- * ***************************************************************************\r
- *\r
- */\r
-\r
-#ifndef  _AMD_SBPLATFORM_H_\r
-#define  _AMD_SBPLATFORM_H_\r
-\r
-#include <southbridge/amd/cimx_wrapper/sb800/cbtypes.h>\r
-typedef UINT64 PLACEHOLDER;\r
-#include <southbridge/amd/cimx_wrapper/sb800/Amdlib.h>\r
-#include <southbridge/amd/cimx_wrapper/sb800/Amd.h>\r
-#include <vendorcode/amd/cimx/lib/amdlib32.h> //TODO merge with agesa wrapper\r
-#include <vendorcode/amd/cimx/sb800/SB800.h>\r
-#include <vendorcode/amd/cimx/sb800/SBTYPE.h>\r
-#include <vendorcode/amd/cimx/sb800/ACPILIB.h>\r
-#include <vendorcode/amd/cimx/sb800/SBDEF.h>\r
-#include <vendorcode/amd/cimx/sb800/AMDSBLIB.h>\r
-#include <vendorcode/amd/cimx/sb800/SBSUBFUN.h>\r
-#include <vendorcode/amd/cimx/sb800/OEM.h>\r
-\r
-#ifdef NULL\r
-  #undef NULL\r
-#endif\r
-#define NULL            0\r
-\r
-#ifndef SBOEM_ACPI_RESTORE_SWSMI\r
-  #define SBOEM_BEFORE_PCI_RESTORE_SWSMI    0xD3\r
-  #define SBOEM_AFTER_PCI_RESTORE_SWSMI     0xD4\r
-#endif\r
-\r
-#ifndef _AMD_NB_CIM_X_PROTOCOL_H_\r
-\r
-/// Extended PCI Address\r
-typedef struct _EXT_PCI_ADDR {\r
-  UINT32                  Reg :16; ///< / PCI Register\r
-  UINT32                  Func:3;  ///< / PCI Function\r
-  UINT32                  Dev :5;  ///< / PCI Device\r
-  UINT32                  Bus :8;  ///< / PCI Address\r
-} EXT_PCI_ADDR;\r
-\r
-/// PCI Address\r
-typedef union _PCI_ADDR {\r
-  UINT32                  ADDR; ///< / 32 bit Address\r
-  EXT_PCI_ADDR            Addr; ///< / Extended PCI Address\r
-} PCI_ADDR;\r
-#endif\r
-\r
-#define FIXUP_PTR(ptr)  ptr\r
-\r
-//------------------------------------------------------------------------------------------------------------------------//\r
-/**\r
- * SB_CIMx_PARAMETER                0                1                   2            Defult Value When CIMx Take over\r
- *  SpreadSpectrum         CIMx take over   User (Setup Option) User (Setup Option)               Enable\r
- * SpreadSpectrumType      CIMx take over   User (Setup Option) User (Setup Option)               Normal\r
- *     HpetTimer           CIMx take over   User (Setup Option) User (Setup Option)               Enable\r
- *     HpetMsiDis          CIMx take over   User (Setup Option) User (Setup Option)               Enable (0x00)\r
- *      IrConfig           CIMx take over   User (Setup Option) User (Setup Option)               Disable (0x00)\r
- * SpiFastReadEnable       CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- * SpiFastReadSpeed        CIMx take over   User (Setup Option) User (Setup Option)               Disable (NULL)\r
- *     NbSbGen2            CIMx take over   User (Setup Option) User (Setup Option)               Enable\r
- * AlinkPhyPllPowerDown    CIMx take over   User (Setup Option) User (Setup Option)               Enable\r
- * ResetCpuOnSyncFlood     CIMx take over   User (Setup Option) User (Setup Option)               Enable\r
- *     GppGen2             CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- *  GppMemWrImprove        CIMx take over   User (Setup Option) User (Setup Option)               Enable\r
- *    GppPortAspm          CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- *  GppLaneReversal        CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- *  GppPhyPllPowerDown     CIMx take over   User (Setup Option) User (Setup Option)               Enable\r
- *  UsbPhyPowerDown        CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- *  SBGecDebugBus          CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- *     SBGecPwr            CIMx take over   User (Setup Option) User (Setup Option)               Nerver Power down (0x11)\r
- *   SataSetMaxGen2        CIMx take over   User (Setup Option) User (Setup Option)               Max Gen3 (0x00)\r
- *   SataClkMode           CIMx take over   User (Setup Option) User (Setup Option)               0x90   int. 100Mhz\r
- *  SataAggrLinkPmCap      CIMx take over   User (Setup Option) User (Setup Option)               Enable\r
- *  SataPortMultCap        CIMx take over   User (Setup Option) User (Setup Option)               Enable\r
- *   SataPscCap            CIMx take over   User (Setup Option) User (Setup Option)               Enable (0x00)\r
- *   SataSscCap            CIMx take over   User (Setup Option) User (Setup Option)               Enable (0x00)\r
- * SataFisBasedSwitching   CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- *   SataCccSupport        CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- *   SataMsiCapability     CIMx take over   User (Setup Option) User (Setup Option)               Enable\r
- *   SataClkAutoOff        CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- *    AcDcMsg              CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- *   TimerTickTrack        CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- *  ClockInterruptTag      CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- *  OhciTrafficHanding     CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- *  EhciTrafficHanding     CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- *  FusionMsgCMultiCore    CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- *   FusionMsgCStage       CIMx take over   User (Setup Option) User (Setup Option)               Disable\r
- */\r
-#define SB_CIMx_PARAMETER  0x02\r
-\r
-// Generic \r
-#define cimSpreadSpectrumDefault        TRUE\r
-#define cimSpreadSpectrumTypeDefault   0x00      // Normal\r
-#define cimHpetTimerDefault             TRUE\r
-#define cimHpetMsiDisDefault            FALSE     // Enable\r
-#define cimIrConfigDefault              0x00      // Disable\r
-#define cimSpiFastReadEnableDefault     0x00      // Disable\r
-#define cimSpiFastReadSpeedDefault      0x00      // NULL\r
-// GPP/AB Controller \r
-#define cimNbSbGen2Default              TRUE\r
-#define cimAlinkPhyPllPowerDownDefault  TRUE\r
-#define cimResetCpuOnSyncFloodDefault   TRUE\r
-#define cimGppGen2Default               FALSE\r
-#define cimGppMemWrImproveDefault       TRUE\r
-#define cimGppPortAspmDefault           FALSE\r
-#define cimGppLaneReversalDefault       FALSE\r
-#define cimGppPhyPllPowerDownDefault    TRUE \r
-// USB Controller\r
-#define cimUsbPhyPowerDownDefault       FALSE\r
-// GEC Controller\r
-#define cimSBGecDebugBusDefault         FALSE\r
-#define cimSBGecPwrDefault              0x03\r
-// Sata Controller \r
-#define cimSataSetMaxGen2Default        0x00\r
-#define cimSATARefClkSelDefault         0x10\r
-#define cimSATARefDivSelDefault         0x80\r
-#define cimSataAggrLinkPmCapDefault     TRUE\r
-#define cimSataPortMultCapDefault       TRUE\r
-#define cimSataPscCapDefault            0x00      // Enable\r
-#define cimSataSscCapDefault            0x00      // Enable\r
-#define cimSataFisBasedSwitchingDefault FALSE \r
-#define cimSataCccSupportDefault        FALSE\r
-#define cimSataClkAutoOffDefault        FALSE\r
-#define cimNativepciesupportDefault     FALSE\r
-// Fusion Related \r
-#define cimAcDcMsgDefault               FALSE\r
-#define cimTimerTickTrackDefault        FALSE\r
-#define cimClockInterruptTagDefault     FALSE\r
-#define cimOhciTrafficHandingDefault    FALSE\r
-#define cimEhciTrafficHandingDefault    FALSE\r
-#define cimFusionMsgCMultiCoreDefault   FALSE\r
-#define cimFusionMsgCStageDefault       FALSE\r
-\r
-#endif // _AMD_SBPLATFORM_H_\r
+/*
+ *****************************************************************************
+ *
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2010 Advanced Micro Devices, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ * ***************************************************************************
+ *
+ */
+
+#ifndef  _AMD_SBPLATFORM_H_
+#define  _AMD_SBPLATFORM_H_
+
+#include <southbridge/amd/cimx_wrapper/sb800/cbtypes.h>
+typedef UINT64 PLACEHOLDER;
+#include <southbridge/amd/cimx_wrapper/sb800/Amdlib.h>
+#include <southbridge/amd/cimx_wrapper/sb800/Amd.h>
+#include <vendorcode/amd/cimx/lib/amdlib32.h> //TODO merge with agesa wrapper
+#include <vendorcode/amd/cimx/sb800/SB800.h>
+#include <vendorcode/amd/cimx/sb800/SBTYPE.h>
+#include <vendorcode/amd/cimx/sb800/ACPILIB.h>
+#include <vendorcode/amd/cimx/sb800/SBDEF.h>
+#include <vendorcode/amd/cimx/sb800/AMDSBLIB.h>
+#include <vendorcode/amd/cimx/sb800/SBSUBFUN.h>
+#include <vendorcode/amd/cimx/sb800/OEM.h>
+
+#ifdef NULL
+  #undef NULL
+#endif
+#define NULL            0
+
+#ifndef SBOEM_ACPI_RESTORE_SWSMI
+  #define SBOEM_BEFORE_PCI_RESTORE_SWSMI    0xD3
+  #define SBOEM_AFTER_PCI_RESTORE_SWSMI     0xD4
+#endif
+
+#ifndef _AMD_NB_CIM_X_PROTOCOL_H_
+
+/// Extended PCI Address
+typedef struct _EXT_PCI_ADDR {
+  UINT32                  Reg :16; ///< / PCI Register
+  UINT32                  Func:3;  ///< / PCI Function
+  UINT32                  Dev :5;  ///< / PCI Device
+  UINT32                  Bus :8;  ///< / PCI Address
+} EXT_PCI_ADDR;
+
+/// PCI Address
+typedef union _PCI_ADDR {
+  UINT32                  ADDR; ///< / 32 bit Address
+  EXT_PCI_ADDR            Addr; ///< / Extended PCI Address
+} PCI_ADDR;
+#endif
+
+#define FIXUP_PTR(ptr)  ptr
+
+//------------------------------------------------------------------------------------------------------------------------//
+/**
+ * SB_CIMx_PARAMETER                0                1                   2            Defult Value When CIMx Take over
+ *  SpreadSpectrum         CIMx take over   User (Setup Option) User (Setup Option)               Enable
+ * SpreadSpectrumType      CIMx take over   User (Setup Option) User (Setup Option)               Normal
+ *     HpetTimer           CIMx take over   User (Setup Option) User (Setup Option)               Enable
+ *     HpetMsiDis          CIMx take over   User (Setup Option) User (Setup Option)               Enable (0x00)
+ *      IrConfig           CIMx take over   User (Setup Option) User (Setup Option)               Disable (0x00)
+ * SpiFastReadEnable       CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ * SpiFastReadSpeed        CIMx take over   User (Setup Option) User (Setup Option)               Disable (NULL)
+ *     NbSbGen2            CIMx take over   User (Setup Option) User (Setup Option)               Enable
+ * AlinkPhyPllPowerDown    CIMx take over   User (Setup Option) User (Setup Option)               Enable
+ * ResetCpuOnSyncFlood     CIMx take over   User (Setup Option) User (Setup Option)               Enable
+ *     GppGen2             CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ *  GppMemWrImprove        CIMx take over   User (Setup Option) User (Setup Option)               Enable
+ *    GppPortAspm          CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ *  GppLaneReversal        CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ *  GppPhyPllPowerDown     CIMx take over   User (Setup Option) User (Setup Option)               Enable
+ *  UsbPhyPowerDown        CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ *  SBGecDebugBus          CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ *     SBGecPwr            CIMx take over   User (Setup Option) User (Setup Option)               Nerver Power down (0x11)
+ *   SataSetMaxGen2        CIMx take over   User (Setup Option) User (Setup Option)               Max Gen3 (0x00)
+ *   SataClkMode           CIMx take over   User (Setup Option) User (Setup Option)               0x90   int. 100Mhz
+ *  SataAggrLinkPmCap      CIMx take over   User (Setup Option) User (Setup Option)               Enable
+ *  SataPortMultCap        CIMx take over   User (Setup Option) User (Setup Option)               Enable
+ *   SataPscCap            CIMx take over   User (Setup Option) User (Setup Option)               Enable (0x00)
+ *   SataSscCap            CIMx take over   User (Setup Option) User (Setup Option)               Enable (0x00)
+ * SataFisBasedSwitching   CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ *   SataCccSupport        CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ *   SataMsiCapability     CIMx take over   User (Setup Option) User (Setup Option)               Enable
+ *   SataClkAutoOff        CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ *    AcDcMsg              CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ *   TimerTickTrack        CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ *  ClockInterruptTag      CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ *  OhciTrafficHanding     CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ *  EhciTrafficHanding     CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ *  FusionMsgCMultiCore    CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ *   FusionMsgCStage       CIMx take over   User (Setup Option) User (Setup Option)               Disable
+ */
+#define SB_CIMx_PARAMETER  0x02
+
+// Generic 
+#define cimSpreadSpectrumDefault        TRUE
+#define cimSpreadSpectrumTypeDefault   0x00      // Normal
+#define cimHpetTimerDefault             TRUE
+#define cimHpetMsiDisDefault            FALSE     // Enable
+#define cimIrConfigDefault              0x00      // Disable
+#define cimSpiFastReadEnableDefault     0x00      // Disable
+#define cimSpiFastReadSpeedDefault      0x00      // NULL
+// GPP/AB Controller 
+#define cimNbSbGen2Default              TRUE
+#define cimAlinkPhyPllPowerDownDefault  TRUE
+#define cimResetCpuOnSyncFloodDefault   TRUE
+#define cimGppGen2Default               FALSE
+#define cimGppMemWrImproveDefault       TRUE
+#define cimGppPortAspmDefault           FALSE
+#define cimGppLaneReversalDefault       FALSE
+#define cimGppPhyPllPowerDownDefault    TRUE 
+// USB Controller
+#define cimUsbPhyPowerDownDefault       FALSE
+// GEC Controller
+#define cimSBGecDebugBusDefault         FALSE
+#define cimSBGecPwrDefault              0x03
+// Sata Controller 
+#define cimSataSetMaxGen2Default        0x00
+#define cimSATARefClkSelDefault         0x10
+#define cimSATARefDivSelDefault         0x80
+#define cimSataAggrLinkPmCapDefault     TRUE
+#define cimSataPortMultCapDefault       TRUE
+#define cimSataPscCapDefault            0x00      // Enable
+#define cimSataSscCapDefault            0x00      // Enable
+#define cimSataFisBasedSwitchingDefault FALSE 
+#define cimSataCccSupportDefault        FALSE
+#define cimSataClkAutoOffDefault        FALSE
+#define cimNativepciesupportDefault     FALSE
+// Fusion Related 
+#define cimAcDcMsgDefault               FALSE
+#define cimTimerTickTrackDefault        FALSE
+#define cimClockInterruptTagDefault     FALSE
+#define cimOhciTrafficHandingDefault    FALSE
+#define cimEhciTrafficHandingDefault    FALSE
+#define cimFusionMsgCMultiCoreDefault   FALSE
+#define cimFusionMsgCStageDefault       FALSE
+
+#endif // _AMD_SBPLATFORM_H_