Update Nt32 platform to use dynamic HII pcd to save console output mode.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7579 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8 2009-02-23 03:20:29 +00:00
parent bdb869f653
commit fcf24bad4a
7 changed files with 124 additions and 30 deletions

View File

@ -0,0 +1,35 @@
/**@file
Setup Variable data structure for NT32 platform.
Copyright (c) 2009, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef __WIN_NT_SYSTEM_CONFIGUE_H__
#define __WIN_NT_SYSTEM_CONFIGUE_H__
#define EFI_WIN_NT_SYSTEM_CONFIG_GUID \
{ 0xb347f047, 0xaf8c, 0x490e, { 0xac, 0x07, 0x0a, 0xa9, 0xb7, 0xe5, 0x38, 0x58 }}
#pragma pack(1)
typedef struct {
//
// Console output mode
//
UINT32 ConOutColumn;
UINT32 ConOutRow;
} WIN_NT_SYSTEM_CONFIGURATION;
#pragma pack()
extern EFI_GUID gEfiWinNtSystemConfigGuid;
#endif

View File

@ -23,6 +23,44 @@ Abstract:
#include "BdsPlatform.h"
CHAR16 mFirmwareVendor[] = L"TianoCore.org";
WIN_NT_SYSTEM_CONFIGURATION mSystemConfigData;
VOID
SetupVariableInit (
VOID
)
{
EFI_STATUS Status;
UINTN Size;
Size = sizeof (mSystemConfigData);
Status = gRT->GetVariable (
L"Setup",
&gEfiWinNtSystemConfigGuid,
NULL,
&Size,
(VOID *) &mSystemConfigData
);
if (EFI_ERROR (Status)) {
//
// SetupVariable is corrupt
//
mSystemConfigData.ConOutRow = PcdGet32 (PcdConOutColumn);
mSystemConfigData.ConOutColumn = PcdGet32 (PcdConOutRow);
Status = gRT->SetVariable (
L"Setup",
&gEfiWinNtSystemConfigGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
sizeof (mSystemConfigData),
(VOID *) &mSystemConfigData
);
if (EFI_ERROR (Status)) {
DEBUG ((EFI_D_ERROR, "Failed to save Setup Variable to non-volatile storage, Status = %r\n", Status));
}
}
}
//
// BDS Platform Functions
@ -35,7 +73,7 @@ PlatformBdsInit (
Routine Description:
Platform Bds init. Incude the platform firmware vendor, revision
Platform Bds init. Include the platform firmware vendor, revision
and so crc check.
Arguments:
@ -64,6 +102,7 @@ Returns:
//
gBS->CalculateCrc32 ((VOID *) gST, sizeof (EFI_SYSTEM_TABLE), &gST->Hdr.CRC32);
SetupVariableInit ();
}
EFI_STATUS

View File

@ -27,6 +27,7 @@ Abstract:
#include <Library/DebugLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/BaseLib.h>
#include <Library/PcdLib.h>
@ -37,6 +38,7 @@ Abstract:
#include <Protocol/WinNtThunk.h>
#include <Protocol/WinNtIo.h>
#include <Guid/Bmp.h>
#include <Guid/UnixSystemConfig.h>
extern BDS_CONSOLE_CONNECT_ENTRY gPlatformConsole[];
extern EFI_DEVICE_PATH_PROTOCOL *gPlatformConnectSequence[];

View File

@ -46,6 +46,7 @@
BaseLib
MemoryAllocationLib
UefiBootServicesTableLib
UefiRuntimeServicesTableLib
BaseMemoryLib
DebugLib
PcdLib
@ -53,3 +54,11 @@
[Guids]
gEfiDefaultBmpLogoGuid
gEfiWinNtSystemConfigGuid
[Pcd.common]
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn
[Depex]
gEfiVariableArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid

View File

@ -61,7 +61,7 @@
gEfiWinNtPhysicalDisksGuid = { 0x0C95A92F, 0xA006, 0x11D4, { 0xBC, 0xFA, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
gEfiWinNtVirtualDisksGuid = { 0x0C95A928, 0xA006, 0x11D4, { 0xBC, 0xFA, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}
gEfiNt32PkgTokenSpaceGuid = { 0x0D79A645, 0x1D91, 0x40a6, { 0xA8, 0x1F, 0x61, 0xE6, 0x98, 0x2B, 0x32, 0xB4 }}
gEfiWinNtSystemConfigGuid = { 0xb347f047, 0xaf8c, 0x490e, { 0xac, 0x07, 0x0a, 0xa9, 0xb7, 0xe5, 0x38, 0x58 }}
##
# Protocols provided by Nt32Pkg for all architecture.

View File

@ -225,7 +225,7 @@
WinNtLib|Nt32Pkg/Library/DxeWinNtLib/DxeWinNtLib.inf
OemHookStatusCodeLib|Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
DebugLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
PrintLib|MdeModulePkg/Library/EdkDxePrintLib/EdkDxePrintLib.inf
PrintLib|MdeModulePkg/Library/DxePrintLibPrint2Protocol/DxePrintLibPrint2Protocol.inf
################################################################################
@ -367,6 +367,9 @@
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0
gEfiMdeModulePkgTokenSpaceGuid.PcdPlatformBootTimeOutDefault|10
[PcdsDynamicHii.common.DEFAULT]
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn|0x0053 0x0065 0x0074 0x0075 0x0070|gEfiWinNtSystemConfigGuid|0x0|80 # Variable: L"Setup"
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow|0x0053 0x0065 0x0074 0x0075 0x0070|gEfiWinNtSystemConfigGuid|0x4|25 # Variable: L"Setup"
###################################################################################################
#
@ -441,7 +444,10 @@
MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf {
<LibraryClasses>
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
}
MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
@ -480,6 +486,7 @@
IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
MdeModulePkg/Universal/DriverSampleDxe/DriverSampleDxe.inf {
<LibraryClasses>
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
@ -505,42 +512,43 @@
#
# Libraries common to PEI and DXE
#
# EdkCompatibilityPkg\Foundation\Efi\Guid\EfiGuidLib.inf
# EdkCompatibilityPkg\Foundation\Framework\Guid\EdkFrameworkGuidLib.inf
# EdkCompatibilityPkg\Foundation\Guid\EdkGuidLib.inf
# EdkCompatibilityPkg\Foundation\Library\EfiCommonLib\EfiCommonLib.inf
# EdkCompatibilityPkg\Foundation\Cpu\Pentium\CpuIA32Lib\CpuIA32Lib.inf
# EdkCompatibilityPkg\Foundation\Cpu\Itanium\CpuIA64Lib\CpuIA64Lib.inf
# EdkCompatibilityPkg\Foundation\Library\CustomizedDecompress\CustomizedDecompress.inf
# EdkCompatibilityPkg\Foundation\Library\CompilerStub\CompilerStubLib.inf
# EdkCompatibilityPkg\Foundation\Library\Dxe\Hob\HobLib.inf
# EdkCompatibilityPkg/Foundation/Efi/Guid/EfiGuidLib.inf
# EdkCompatibilityPkg/Foundation/Framework/Guid/EdkFrameworkGuidLib.inf
# EdkCompatibilityPkg/Foundation/Guid/EdkGuidLib.inf
# EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/EfiCommonLib.inf
# EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/CpuIA32Lib.inf
# EdkCompatibilityPkg/Foundation/Cpu/Itanium/CpuIa64Lib/CpuIA64Lib.inf
# EdkCompatibilityPkg/Foundation/Library/CustomizedDecompress/CustomizedDecompress.inf
# EdkCompatibilityPkg/Foundation/Library/CompilerStub/CompilerStubLib.inf
# EdkCompatibilityPkg/Foundation/Library/Dxe/Hob/HobLib.inf
#
# PEI libraries
#
# EdkCompatibilityPkg\Foundation\Framework\Ppi\EdkFrameworkPpiLib.inf
# EdkCompatibilityPkg\Foundation\Ppi\EdkPpiLib.inf
# EdkCompatibilityPkg\Foundation\Library\Pei\PeiLib\PeiLib.inf
# EdkCompatibilityPkg\Foundation\Library\Pei\Hob\PeiHobLib.inf
# EdkCompatibilityPkg/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf
# EdkCompatibilityPkg/Foundation/Ppi/EdkPpiLib.inf
# EdkCompatibilityPkg/Foundation/Library/Pei/PeiLib/PeiLib.inf
# EdkCompatibilityPkg/Foundation/Library/Pei/Hob/PeiHobLib.inf
#
# DXE libraries
#
# EdkCompatibilityPkg\Foundation\Core\Dxe\ArchProtocol\ArchProtocolLib.inf
# EdkCompatibilityPkg\Foundation\Efi\Protocol\EfiProtocolLib.inf
# EdkCompatibilityPkg\Foundation\Framework\Protocol\EdkFrameworkProtocolLib.inf
# EdkCompatibilityPkg\Foundation\Protocol\EdkProtocolLib.inf
# EdkCompatibilityPkg\Foundation\Library\Dxe\EfiDriverLib\EfiDriverLib.inf
# EdkCompatibilityPkg\Foundation\Library\RuntimeDxe\EfiRuntimeLib\EfiRuntimeLib.inf
# EdkCompatibilityPkg\Foundation\Library\Dxe\Graphics\Graphics.inf
# EdkCompatibilityPkg\Foundation\Library\Dxe\EfiIfrSupportLib\EfiIfrSupportLib.inf
# EdkCompatibilityPkg\Foundation\Library\Dxe\Print\PrintLib.inf
# EdkCompatibilityPkg\Foundation\Library\Dxe\EfiScriptLib\EfiScriptLib.inf
# EdkCompatibilityPkg\Foundation\Library\Dxe\EfiUiLib\EfiUiLib.inf
# EdkCompatibilityPkg/Foundation/Core/Dxe/ArchProtocol/ArchProtocolLib.inf
# EdkCompatibilityPkg/Foundation/Efi/Protocol/EfiProtocolLib.inf
# EdkCompatibilityPkg/Foundation/Framework/Protocol/EdkFrameworkProtocolLib.inf
# EdkCompatibilityPkg/Foundation/Protocol/EdkProtocolLib.inf
# EdkCompatibilityPkg/Foundation/Library/Dxe/EfiDriverLib/EfiDriverLib.inf
# EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/EfiRuntimeLib.inf
# EdkCompatibilityPkg/Foundation/Library/Dxe/Graphics/Graphics.inf
# EdkCompatibilityPkg/Foundation/Library/Dxe/EfiIfrSupportLib/EfiIfrSupportLib.inf
# EdkCompatibilityPkg/Foundation/Library/Dxe/Print/PrintLib.inf
# EdkCompatibilityPkg/Foundation/Library/Dxe/EfiScriptLib/EfiScriptLib.inf
# EdkCompatibilityPkg/Foundation/Library/Dxe/EfiUiLib/EfiUiLib.inf
#
# Print/Graphics Library consume SetupBrowser Print Protocol
#
# EdkCompatibilityPkg\Foundation\Library\Dxe\PrintLite\PrintLib.inf
# EdkCompatibilityPkg\Foundation\Library\Dxe\GraphicsLite\Graphics.inf
# EdkCompatibilityPkg/Foundation/Library/Dxe/PrintLite/PrintLib.inf
# EdkCompatibilityPkg/Foundation/Library/Dxe/GraphicsLite/Graphics.inf

View File

@ -202,6 +202,7 @@ INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
INF IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf ##This driver follows UEFI specification definition