American Megatrends, Inc.

RsdpPlus

Copyright

Release Notes

© American Megatrends, Inc.


Copyright

American Megatrends, Inc.
5555 Oakbrook Parkway
Suite 200
Norcross, GA 30093 (USA)

Copyright (c) 1999-2011 American Megatrends, Inc. All Rights Reserved.

This publication contains proprietary information, which is protected by copyright. No part of this publication may be reproduced, transcribed, stored in a retrieval system, translated into any language or computer language, or transmitted in any form whatsoever without the prior written consent of the publisher, American Megatrends, Inc.

American Megatrends, Inc. retains the right to update, change, modify this publication at any time, without notice.

For Additional Information

Call American Megatrends BIOS Sales Department at 1-800-828-9264 for additional information.

Limitations of Liability

In no event shall American Megatrends be held liable for any loss, expenses, or damages of any kind whatsoever, whether direct, indirect, incidental, or consequential, arising from the design or use of this product or the support materials provided with the product.

Limited Warranty

No warranties are made, either expressed or implied, with regard to the contents of this work, its merchantability, or fitness for a particular use. American Megatrends assumes no responsibility for errors and omissions or for the uses made of the material contained herein or reader decisions based on such use.

Trademark and Copyright Acknowledgments

All product names used in this publication are for identification purposes only and are trademarks of their respective Companies.


Release Notes - NDA Required

Component Information:
Component Title: RsdpPlus
Component Reference Name: RsdpPlus
Component Type: eModule
Release Date: 2013-05-08
Source Control Label: 4.6.4.0_RsdpPlus_07
Source Control Location: SS: Alaska;$/Alaska/SOURCE/Modules/RsdpPlus;

Dependencies
ONE
Dependent Component Title: ACPI
Dependent Component Reference Name: ACPI
Dependent Source Control Label: 4.6.4.0_ACPI_40 or Above
Dependent Source Control Location: SS: Alaska;$/Alaska/BIN/Modules/ACPI/Template;

Non-Compiled BIN and LIB File(s) within this Component:
N0NE
Component Description:
An ACPI-compatible system must provide an RSDP in the system’s low address space. The only purpose of structure is to provide the physical address of the RSDT and XSDT. According to ACPI specification, If the OS want to find the RSDP on IA-PC Systems, the OSPM will search physical memory ranges on 16-byte boundaries for a valid Root Sytem Description Pointer structure signature and checksum match as follows:
1. The first 1 KB of the Extended BIOS Data Area (EBDA). For EISA or MCA systems, the EBDA can be found in the two-byte location 40:0Eh on the BIOS data area.
2. The BIOS read-only memory space between 0E0000h~0FFFFFh.

But this mechanism wouldn't implement on UEFI enable system. It effects some tools which via the RSDP to carry out. Like afuwin and RU...etc. So We create a RsdpPlus eModule to keep the mechanism on UEFI enable system.
Rsdp+ Root Files
Filename | Description
RsdpPlus.cif | Component information file for the eModule.
RsdpPlus.sdl | Contain BIOS build parameters and defines entry points.
RsdpPlus.mak | Make file becomes part of the BIOS build process.
RsdpPlus.dxs | RsdpPlus in DXE phase dependency file.
RsdpPlus.c | Installing RsdpPlus protocol.
RsdpPlusLink.c | Contain two Elink functions.
RsdpPlus.chm | File that provide necessary information about RsdpPlus Module.
ManageShadowRam.c | Installing two protocol function for other module used.
ShdowRamProtocol.h | Define SHADOW_RAM_PROTOCOL structure and Protocol GUID.
ModulePart Name: Rsdp+ Includes
ModulePart Description: Define RsdpPlus Protocol structure and Protocol GUID.
Filename | Description
RsdpPlusIncludes.cif | Component information file for the Module part.
ManageShadowProtocol.h | Define MANAGE_SHADOW_RAM_PROTOCOL structure and Protocol GUID.
AMI Build Tools:
Tools Label: 4.5.5_tools_36, Dated: 2011-06-30
Visual eBios: RSS.5.70.0171, Dated: 2010-10-0
Compiler Tool(s):Microsoft's Windows Driver Kit (WDK) Ver. 7600.16385.1
Projects based on Aptio core version 4.6.3.7 or older, should use old DDK compiler.
Projects based on Aptio core version 4.6.4.0 or newer, should use new WDK 7.1.0 compiler.
New features added in this label:
Install a protocol function that can manage the shadow ram.(E000~F000)
General Bug Fixes and EIP Addressed in this Label:
General Bug Fixes
Using HeapToF000 to insert 2 datas with alignment will cause a part of 1st data covered by 2nd data

EIP Addressed
EIP#116590
Files Changed for General Bug Fixes and EIP Addressed in this Label:
General Bug Fixes
ManageShadowRam.c

EIP Addressed
EIP#116590
Known Limitations and Erratas in this label:
NONE
Remaining Issues:
NONE
Unit Testing:
NONE
Validation Testing:
NONE
Release History:
4.6.4.0_RsdpPlus_06 - 1/30/2013
[TAG]EIP108029
[Category]Bug Fix
[Description]The XSDT table lost when exit shell to legacy boot.
[RootCause]When key in exit to exist shell, fast boot will re-load BDS phase and then into Shell twice. It causes Rsdp data grow up three-ble size in Shdow ram. And the original data Rsdpplus si stored from Shadowram would be destoried.
[Files]RsdpPlus.sdl, ManageShadowRam.c
4.6.4.0_RsdpPlus_05 - 10/25/2012
[TAG]EIP104587
[Category]Bug Fix
[Description]Update RsdpPlus to 4.6.4.0_RsdpPlus_04 with Core 4.6.5.4. it hang up when exit Shell to legacy boot.
[RootCause]It's wrong backup data size. So if restore the data into E000 and F000, it will cause the system halt when boot to legacy.
[Files]ManageShadowRam.c
4.6.4.0_RsdpPlus_04 - 10/18/2012
[TAG]EIP98247
[Category]Improvement
[Description][RsdpPlus]Add alignment support in MANAGE_SHADOW_RAM_PROTOCOL.
[Files]RsdpPlus.mak, RsdpPlus.c, ManageShadowRam.c, ManageShadowRam.h, ManageShadowProtocol.h
[TAG]EIP92735
[Category]Improvement
[Description]Please help to return the pointer and offset of HeapToF000 in MANAGE_SHADOW_RAM_PROTOCOL.
[Files]RsdpPlus.c, ManageShadowRam.c, ManageShadowProtocol.h, ManageShadowProtocol.h
[TAG]EIP94704
[Category]Bug Fix
[Description][HP_DTO_emodule] token DEFAULT_CSM_LAUNCH_POLICY=0 and BIOS hang with FastBoot enable when monitor was disconnected
[RootCause] ManageShasdow protocl is not able to installed, when monitor was disconnected.So change the register event to BdsAllDeriverConnectGuid and if locate protocl failure return status continue.
[Files]RsdpPlusLInk.c, ManageShadowRam.c
[Files]RsdpPlus.c, ManageShadowRam.c, ManageShadowProtocol.h, ManageShadowProtocol.h
4.6.4.0_RsdpPlus_03 - 02/09/2012
[TAG]EIP81756
[Category]New Feature
[Description]Enhance RspdPlus module.
[Files]RsdpPlus.sdl, RsdpPlus.mak, RsdpPlus.c, RsdpPlusLInk.c, RsdpPlus.cif, RsdpPlusIncludes.cif, RsdpPlusIncludes.cif, RsdpPlus.chm
4.6.4.0_RsdpPlus_02 - 12/14/2011
[TAG]EIP77341
[Category]Defect
[Description]V110 can't running ATI_DIAG problem .
[Files]RsdpPlus.cif, RsdpPlus.mak, RsdpPlus.sdl, RsdpPlus.c
4.6.4.0_RsdpPlus_01 - 10/21/2011
[TAG]EIP73307
[Category]Improvement
[Description]The system will hang up or reset during POST when RSDP module and SG function support.
[Files]RsdpPlus.c
4.6.4.0_RsdpPlus_Beta_01 - 10/11/2011
First Release.

© American Megatrends Inc.


Function by File Name

AMIBIOS Function Reference

By File Name

The following is a list of the source files.
For a list in alphabetical order, see In Alphabetical Order.

  • ManageShadowProtocol.h
  • ManageShadowRam.c
  • RsdpPlus.c
  • RsdpPlus.mak
  • RsdpPlusLInk.c
  • ShadowRamProtocol.h
Built on 15:16:10 05/08/13


ManageShadowProtocol.h

Description:


ManageShadowRam.c

Description:

The following functions are used in the file: ManageShadowRam.c.

Function | Description
EraseShadowAfterEfiBoot | This is "AfterEfiBootLaunchHook" elink function. It will restore original data to Shadow ram.
HeapToE000 | This is protocol function. According to input data and copy those datas to buffer.
HeapToF000 | This is protocol function. According to input data and copy those datas to buffer.
ManageShadowRamEntryPoint | Entry point for RsdpPlus initialization. Register a ConOutStarted protocol callback function. And allocate two buff for Manage Shadow Ram protocol used. Install Manage Shadow Ram protocol.
OemUpdateE000ShdowRamHook |
OemUpdateF000ShdowRamHook |
ShadowRamCallBack | Install Shadow Ram Protocol.
UpdateShadowBeforEfiBoot | This is "BeforeEfiBootLaunchHook" elink function. It will store original data of Shadow ram and then copy shadow buff's data to shadow ram.


EraseShadowAfterEfiBoot in the ManageShadowRam.c

Function : EraseShadowAfterEfiBoot

File: ManageShadowRam.c
Description:
This is "AfterEfiBootLaunchHook" elink function.
        It will restore original data to Shadow ram.
Input:
VOID
Output:
VOID


HeapToE000 in the ManageShadowRam.c

Function : HeapToE000

File: ManageShadowRam.c
Description:
This is protocol function.
        According to input data and copy those datas to buffer.
Input:
UINT8 	*pData
    UINT32	Align
    UINTN 	Length
    DATA_BUFF_STRUC *pData2 OPTIONAL
Output:
EFI_STATUS


HeapToF000 in the ManageShadowRam.c

Function : HeapToF000

File: ManageShadowRam.c
Description:
This is protocol function.
        According to input data and copy those datas to buffer.
Input:
UINT8 *pData
    UINT32 Align
    UINTN Length
    DATA_BUFF_STRUC *pData2 OPTIONAL
Output:
EFI_STATUS


ManageShadowRamEntryPoint in the ManageShadowRam.c

Function : ManageShadowRamEntryPoint

File: ManageShadowRam.c
Description:
Entry point for RsdpPlus initialization.
        Register a ConOutStarted protocol callback function.
        And allocate two buff for Manage Shadow Ram protocol used.
        Install Manage Shadow Ram protocol.
Input:
EFI_HANDLE			ImageHandle
    EFI_SYSTEM_TABLE 	*SystemTable
Output:
EFI_STATUS	Status


OemUpdateE000ShdowRamHook in the ManageShadowRam.c

Function : OemUpdateE000ShdowRamHook

File: ManageShadowRam.c
Description:

Input:

Output:

VOID


OemUpdateF000ShdowRamHook in the ManageShadowRam.c

Function : OemUpdateF000ShdowRamHook

File: ManageShadowRam.c
Description:

Input:

IN UINT32*	pShadowRam
    IN UINTN	UsageLength

Output:

VOID


ShadowRamCallBack in the ManageShadowRam.c

Function : ShadowRamCallBack

File: ManageShadowRam.c
Description:
Install Shadow Ram Protocol.
Input:
EFI_EVENT	Event
    VOID 		*Context
Output:
EFI_STATUS	Status


UpdateShadowBeforEfiBoot in the ManageShadowRam.c

Function : UpdateShadowBeforEfiBoot

File: ManageShadowRam.c
Description:
This is "BeforeEfiBootLaunchHook" elink function.
        It will store original data of Shadow ram and then copy
        shadow buff's data to shadow ram.
Input:
VOID
Output:
VOID


RsdpPlus.c

Description:

The following functions are used in the file: RsdpPlus.c.

Function | Description
RsdpPlusEntryPoint | Entry point for RsdpPlus initialization. Register a ConOutStarted protocol call back function.


RsdpPlusEntryPoint in the RsdpPlus.c

Function : RsdpPlusEntryPoint

File: RsdpPlus.c
Description:
Entry point for RsdpPlus initialization.
        Register a ConOutStarted protocol call back function.
Input:
EFI_HANDLE			ImageHandle
    EFI_SYSTEM_TABLE 	*SystemTable
Output:
EFI_STATUS	Status


RsdpPlus.mak

Description:


RsdpPlusLInk.c

Description:

The following functions are used in the file: RsdpPlusLInk.c.

Function | Description
EraseShadow | AfterEfiBootLaunchHook eLink function.
UpdateShadow | BeforeEfiBootLaunchHook eLink function.


EraseShadow in the RsdpPlusLInk.c

Function : EraseShadow

File: RsdpPlusLInk.c
Description:
AfterEfiBootLaunchHook eLink function.
Input:
VOID
Output:
VOID


UpdateShadow in the RsdpPlusLInk.c

Function : UpdateShadow

File: RsdpPlusLInk.c
Description:
BeforeEfiBootLaunchHook eLink function.
Input:
VOID
Output:
VOID


ShadowRamProtocol.h

Description:


Functions in Alphabetical Order

In Alphabetical Order

The following topics provide a list in alphabetical order.
For a list by file name, see By File Name.

  • E
  • H
  • M
  • O
  • R
  • S
  • U


Functions in Alphabetical Order

E

Function | Description
EraseShadow | AfterEfiBootLaunchHook eLink function.
EraseShadowAfterEfiBoot | This is "AfterEfiBootLaunchHook" elink function. It will restore original data to Shadow ram.


Functions in Alphabetical Order

H

Function | Description
HeapToE000 | This is protocol function. According to input data and copy those datas to buffer.
HeapToF000 | This is protocol function. According to input data and copy those datas to buffer.


Functions in Alphabetical Order

M

Function | Description
ManageShadowRamEntryPoint | Entry point for RsdpPlus initialization. Register a ConOutStarted protocol callback function. And allocate two buff for Manage Shadow Ram protocol used. Install Manage Shadow Ram protocol.


Functions in Alphabetical Order

O

Function | Description
OemUpdateE000ShdowRamHook |
OemUpdateF000ShdowRamHook |


Functions in Alphabetical Order

R

Function | Description
RsdpPlusEntryPoint | Entry point for RsdpPlus initialization. Register a ConOutStarted protocol call back function.


Functions in Alphabetical Order

S

Function | Description
ShadowRamCallBack | Install Shadow Ram Protocol.


Functions in Alphabetical Order

U

Function | Description
UpdateShadow | BeforeEfiBootLaunchHook eLink function.
UpdateShadowBeforEfiBoot | This is "BeforeEfiBootLaunchHook" elink function. It will store original data of Shadow ram and then copy shadow buff's data to shadow ram.


General Information