1b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney/** @file
2b303605e1b7e113b4311daf161c6c3289350447bMichael KinneyHeader file for Platform Initialization Driver.
3b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
4b303605e1b7e113b4311daf161c6c3289350447bMichael KinneyCopyright (c) 2013-2015 Intel Corporation.
5b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
6b303605e1b7e113b4311daf161c6c3289350447bMichael KinneyThis program and the accompanying materials
7b303605e1b7e113b4311daf161c6c3289350447bMichael Kinneyare licensed and made available under the terms and conditions of the BSD License
8b303605e1b7e113b4311daf161c6c3289350447bMichael Kinneywhich accompanies this distribution.  The full text of the license may be found at
9b303605e1b7e113b4311daf161c6c3289350447bMichael Kinneyhttp://opensource.org/licenses/bsd-license.php
10b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
11b303605e1b7e113b4311daf161c6c3289350447bMichael KinneyTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12b303605e1b7e113b4311daf161c6c3289350447bMichael KinneyWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
14b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney**/
15b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
16b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney#ifndef _SETUP_PLATFORM_H
17b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney#define _SETUP_PLATFORM_H
18b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
19b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney//
20b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney// Data
21b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney//
22b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney#define PLATFORM_NUM_SMBUS_RSVD_ADDRESSES 4
23b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney#define VAR_OFFSET(Field)     ((UINT16) ((UINTN) &(((SYSTEM_CONFIGURATION *) 0)->Field)))
24b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney#define QUESTION_ID(Field)    (VAR_OFFSET (Field) + 1)
25b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
26b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney#define SMBUS_ADDR_CH_A_1     0xA0
27b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney#define SMBUS_ADDR_CK505      0xD2
28b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney#define SMBUS_ADDR_THERMAL_SENSOR1 0x4C
29b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney#define SMBUS_ADDR_THERMAL_SENSOR2 0x4D
30b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
31b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney///
32b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney/// HII specific Vendor Device Path Node definition.
33b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney///
34b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney#pragma pack(1)
35b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
36b303605e1b7e113b4311daf161c6c3289350447bMichael Kinneytypedef struct {
37b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney  VENDOR_DEVICE_PATH             VendorDevicePath;
38b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney  UINT16                         UniqueId;
39b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney} HII_VENDOR_DEVICE_PATH_NODE;
40b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
41b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney///
42b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney/// HII specific Vendor Device Path definition.
43b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney///
44b303605e1b7e113b4311daf161c6c3289350447bMichael Kinneytypedef struct {
45b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney  HII_VENDOR_DEVICE_PATH_NODE    Node;
46b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney  EFI_DEVICE_PATH_PROTOCOL       End;
47b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney} HII_VENDOR_DEVICE_PATH;
48b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
49b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney#pragma pack()
50b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
51b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney//
52b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney// Prototypes
53b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney//
54b303605e1b7e113b4311daf161c6c3289350447bMichael KinneyVOID
55b303605e1b7e113b4311daf161c6c3289350447bMichael KinneyProducePlatformCpuData (
56b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney  VOID
57b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney  );
58b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
59b303605e1b7e113b4311daf161c6c3289350447bMichael KinneyVOID
60b303605e1b7e113b4311daf161c6c3289350447bMichael KinneyPlatformInitQNCRegs (
61b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney  VOID
62b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney  );
63b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
64b303605e1b7e113b4311daf161c6c3289350447bMichael KinneyEFI_STATUS
65b303605e1b7e113b4311daf161c6c3289350447bMichael KinneyInitKeyboardLayout (
66b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney  VOID
67b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney  );
68b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
69b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney//
70b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney// Global externs
71b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney//
72b303605e1b7e113b4311daf161c6c3289350447bMichael Kinneyextern UINT8 UefiSetupDxeStrings[];
73b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
74b303605e1b7e113b4311daf161c6c3289350447bMichael Kinneyextern EFI_HII_DATABASE_PROTOCOL        *mHiiDataBase;
75b303605e1b7e113b4311daf161c6c3289350447bMichael Kinneyextern EFI_HII_CONFIG_ROUTING_PROTOCOL  *mHiiConfigRouting;
76b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney
77b303605e1b7e113b4311daf161c6c3289350447bMichael Kinney#endif
78