QuarkPlatformPkg: Add ForceRecovery UEFI application
[mirror_edk2.git] / QuarkPlatformPkg / Include / Platform.h
1 /** @file
2 Quark platform specific information.
3
4 Copyright (c) 2013 Intel Corporation.
5
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14
15 **/
16 #include "Uefi.h"
17
18 #ifndef __PLATFORM_H__
19 #define __PLATFORM_H__
20
21 //
22 // Constant definition
23 //
24 #define MAX_SMRAM_RANGES 4
25 #define MAX_NODE 1
26
27 #define QUARK_STAGE1_IMAGE_TYPE_MASK 0xF0
28 #define QUARK_STAGE1_BOOT_IMAGE_TYPE 0x00 // Stage1 Boot images 0x00 -> 0x0F.
29 #define QUARK_STAGE1_RECOVERY_IMAGE_TYPE 0x10 // Stage1 Recovery images 0x10 -> 0x1F.
30
31 #define QUARK_BOOTROM_BASE_ADDRESS 0xFFFE0000 // Base address of Quark ROM in memory map.
32 #define QUARK_BOOTROM_SIZE_BYTES 0x20000 // Quark ROM is 128KB.
33 #define SMM_DEFAULT_SMBASE 0x30000 // Default SMBASE address.
34 #define SMM_DEFAULT_SMBASE_SIZE_BYTES 0x10000 // Size in bytes of default SMRAM.
35
36 //
37 // Gpio to be used to assert / deassert PCI express PERST# signal.
38 //
39 #define PCIEXP_PERST_RESUMEWELL_GPIO 3
40
41 //
42 // Minimum time in microseconds for assertion of PERST# signal.
43 //
44 #define PCIEXP_PERST_MIN_ASSERT_US 100
45
46 //
47 // Microsecond delay post issueing common lane reset.
48 //
49 #define PCIEXP_DELAY_US_POST_CMNRESET_RESET 1
50
51 //
52 // Microsecond delay to wait for PLL to lock.
53 //
54 #define PCIEXP_DELAY_US_WAIT_PLL_LOCK 80
55
56 //
57 // Microsecond delay post issueing sideband interface reset.
58 //
59 #define PCIEXP_DELAY_US_POST_SBI_RESET 20
60
61 //
62 // Microsecond delay post deasserting PERST#.
63 //
64 #define PCIEXP_DELAY_US_POST_PERST_DEASSERT 10
65
66 //
67 // Catastrophic Trip point in degrees Celsius for this platform.
68 //
69 #define PLATFORM_CATASTROPHIC_TRIP_CELSIUS 105
70
71 //
72 // Platform flash update LED common definitions.
73 //
74 #define PLATFORM_FLASH_UPDATE_LED_TOGGLE_COUNT 7
75 #define PLATFORM_FLASH_UPDATE_LED_TOGGLE_DELTA (1000 * 1000) // In Microseconds for EFI_STALL.
76
77 //
78 // This structure stores the base and size of the ACPI reserved memory used when
79 // resuming from S3. This region must be allocated by the platform code.
80 //
81 typedef struct {
82 UINT32 AcpiReservedMemoryBase;
83 UINT32 AcpiReservedMemorySize;
84 UINT32 SystemMemoryLength;
85 } RESERVED_ACPI_S3_RANGE;
86
87 #define RESERVED_ACPI_S3_RANGE_OFFSET (EFI_PAGE_SIZE - sizeof (RESERVED_ACPI_S3_RANGE))
88
89 //
90 // Define valid platform types.
91 // First add value before TypePlatformMax in EFI_PLATFORM_TYPE definition
92 // and then add string description to end of EFI_PLATFORM_TYPE_NAME_TABLE_DEFINITION.
93 // Value shown for supported platforms to help sanity checking with build tools
94 // and ACPI method usage.
95 //
96 typedef enum {
97 TypeUnknown = 0, // !!! SHOULD BE THE FIRST ENTRY !!!
98 QuarkEmulation = 1,
99 ClantonPeakSVP = 2,
100 KipsBay = 3,
101 CrossHill = 4,
102 ClantonHill = 5,
103 Galileo = 6,
104 TypePlatformRsv7 = 7,
105 GalileoGen2 = 8,
106 TypePlatformMax // !!! SHOULD BE THE LAST ENTRY !!!
107 } EFI_PLATFORM_TYPE;
108
109 #define EFI_PLATFORM_TYPE_NAME_TABLE_DEFINITION \
110 L"TypeUnknown",\
111 L"QuarkEmulation",\
112 L"ClantonPeakSVP",\
113 L"KipsBay",\
114 L"CrossHill",\
115 L"ClantonHill",\
116 L"Galileo",\
117 L"TypePlatformRsv7",\
118 L"GalileoGen2",\
119
120 typedef struct {
121 UINT32 EntryOffset;
122 UINT8 ImageIndex;
123 } QUARK_EDKII_STAGE1_HEADER;
124
125 #endif