]> git.proxmox.com Git - mirror_edk2.git/blame - DuetPkg/FvbRuntimeService/FvbInfo.c
Update the copyright notice format
[mirror_edk2.git] / DuetPkg / FvbRuntimeService / FvbInfo.c
CommitLineData
9071550e 1/**@file\r
b1f700a8
HT
2Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
3This program and the accompanying materials \r
9071550e 4are licensed and made available under the terms and conditions of the BSD License \r
5which accompanies this distribution. The full text of the license may be found at \r
6http://opensource.org/licenses/bsd-license.php \r
7 \r
8THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
9WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
10\r
11Module Name:\r
12\r
13 FvbInfo.c\r
14\r
15Abstract:\r
16\r
17 Defines data structure that is the volume header found.These data is intent\r
18 to decouple FVB driver with FV header.\r
19\r
20**/\r
21#include "FileIo.h"\r
22#include "FlashLayout.h"\r
23\r
24typedef struct {\r
25 UINT64 FvLength;\r
26 EFI_FIRMWARE_VOLUME_HEADER FvbInfo;\r
27 EFI_FV_BLOCK_MAP_ENTRY End;\r
28} EFI_FVB_MEDIA_INFO;\r
29\r
30#define FVB_MEDIA_BLOCK_SIZE FIRMWARE_BLOCK_SIZE\r
31#define RECOVERY_BOIS_BLOCK_NUM FIRMWARE_BLOCK_NUMBER\r
32#define SYSTEM_NV_BLOCK_NUM 2\r
33\r
34EFI_FVB_MEDIA_INFO mPlatformFvbMediaInfo[] = {\r
35 //\r
36 // Systen NvStorage FVB\r
37 //\r
38 {\r
39 NV_STORAGE_FVB_SIZE,\r
40 {\r
41 {\r
42 0,\r
43 }, // ZeroVector[16]\r
44 EFI_SYSTEM_NV_DATA_FV_GUID,\r
45 NV_STORAGE_FVB_SIZE,\r
46 EFI_FVH_SIGNATURE,\r
47 EFI_FVB2_READ_ENABLED_CAP |\r
48 EFI_FVB2_READ_STATUS |\r
49 EFI_FVB2_WRITE_ENABLED_CAP |\r
50 EFI_FVB2_WRITE_STATUS |\r
51 EFI_FVB2_ERASE_POLARITY,\r
52 sizeof (EFI_FIRMWARE_VOLUME_HEADER) + sizeof (EFI_FV_BLOCK_MAP_ENTRY),\r
53 0, // CheckSum\r
54 0, // ExtHeaderOffset\r
55 {\r
56 0,\r
57 }, // Reserved[1]\r
58 1, // Revision\r
59 {\r
60 NV_STORAGE_FVB_BLOCK_NUM,\r
61 FV_BLOCK_SIZE,\r
62 }\r
63 },\r
64 {\r
65 0,\r
66 0\r
67 }\r
68 },\r
69 //\r
70 // System FTW FVB\r
71 //\r
72 {\r
73 NV_FTW_FVB_SIZE,\r
74 {\r
75 {\r
76 0,\r
77 }, // ZeroVector[16]\r
78 EFI_SYSTEM_NV_DATA_FV_GUID,\r
79 NV_FTW_FVB_SIZE,\r
80 EFI_FVH_SIGNATURE,\r
81 EFI_FVB2_READ_ENABLED_CAP |\r
82 EFI_FVB2_READ_STATUS |\r
83 EFI_FVB2_WRITE_ENABLED_CAP |\r
84 EFI_FVB2_WRITE_STATUS |\r
85 EFI_FVB2_ERASE_POLARITY,\r
86 sizeof (EFI_FIRMWARE_VOLUME_HEADER) + sizeof (EFI_FV_BLOCK_MAP_ENTRY),\r
87 0, // CheckSum\r
88 0, // ExtHeaderOffset\r
89 {\r
90 0,\r
91 }, // Reserved[1]\r
92 1, // Revision\r
93 {\r
94 NV_FTW_FVB_BLOCK_NUM,\r
95 FV_BLOCK_SIZE,\r
96 }\r
97 },\r
98 {\r
99 0,\r
100 0\r
101 }\r
102 }\r
103};\r
104\r
105EFI_STATUS\r
106GetFvbInfo (\r
107 IN UINT64 FvLength,\r
108 OUT EFI_FIRMWARE_VOLUME_HEADER **FvbInfo\r
109 )\r
110{\r
111 UINTN Index;\r
112\r
113 for (Index = 0; Index < sizeof (mPlatformFvbMediaInfo) / sizeof (EFI_FVB_MEDIA_INFO); Index += 1) {\r
114 if (mPlatformFvbMediaInfo[Index].FvLength == FvLength) {\r
115 *FvbInfo = &mPlatformFvbMediaInfo[Index].FvbInfo;\r
116 return EFI_SUCCESS;\r
117 }\r
118 }\r
119\r
120 return EFI_NOT_FOUND;\r
121}\r