Download Crate CSM16 Specifications
Transcript
Table of Contents 1 Introduction .....................................................................................................1 1.1 1.2 1.3 2 Design Discussion .............................................................................................2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 3 Overview ..............................................................................................1 Scope ...................................................................................................1 Rationale ..............................................................................................1 Definitions of Terms................................................................................2 CSM-Specific References .........................................................................3 CSM Overview .......................................................................................3 2.3.1 Legacy Overview .......................................................................3 2.3.2 Differences between Traditional BIOS and EFI ...............................4 2.3.3 BDS Legacy Flow .......................................................................5 2.3.4 Components of CSM ..................................................................6 CSM Architecture ...................................................................................6 2.4.1 Overview .................................................................................6 2.4.2 EfiCompatibility .........................................................................8 2.4.3 Compatibility16 ....................................................................... 14 2.4.4 CompatibilitySmm ................................................................... 16 2.4.5 Thunk and Reverse Thunk Overview........................................... 16 Interactions between CSM and Legacy BIOS ............................................. 18 2.5.1 BDS and Legacy Drivers ........................................................... 18 2.5.2 16-Bit Traditional Code ............................................................ 20 Assumptions ........................................................................................ 22 2.6.1 External Assumptions .............................................................. 22 2.6.2 Internal Assumptions ............................................................... 22 2.6.3 Design Assumptions ................................................................ 23 Valid EFI and Legacy Combinations ......................................................... 24 Code Definitions ............................................................................................. 26 3.1 3.2 Introduction ........................................................................................ 26 EfiCompatibility Code ............................................................................ 27 3.2.1 Legacy BIOS Protocol ............................................................... 27 EFI_LEGACY_BIOS_PROTOCOL .............................................................. 27 EFI_LEGACY_BIOS_PROTOCOL.Int86() ................................................... 29 EFI_LEGACY_BIOS_PROTOCOL.FarCall86() .............................................. 35 EFI_LEGACY_BIOS_PROTOCOL.CheckPciRom() ........................................ 37 EFI_LEGACY_BIOS_PROTOCOL.InstallPciRom() ........................................ 38 EFI_LEGACY_BIOS_PROTOCOL.LegacyBoot() ........................................... 40 EFI_LEGACY_BIOS_PROTOCOL.UpdateKeyboardLedStatus() ...................... 43 EFI_LEGACY_BIOS_PROTOCOL.GetBbsInfo()............................................ 44 EFI_LEGACY_BIOS_PROTOCOL.ShadowAllLegacyOproms() ........................ 45 EFI_LEGACY_BIOS_PROTOCOL.PrepareToBootEfi() ................................... 46 EFI_LEGACY_BIOS_PROTOCOL.GetLegacyRegion() ................................... 47 EFI_LEGACY_BIOS_PROTOCOL.CopyLegacyRegion() ................................. 49 EFI_LEGACY_BIOS_PROTOCOL.BootUnconventionalDevice() ...................... 50 3.2.2 Legacy BIOS Platform Protocol .................................................. 52 EFI_LEGACY_BIOS_PLATFORM_PROTOCOL .............................................. 52 EFI_LEGACY_BIOS_PLATFORM_PROTOCOL.GetPlatformInfo() ..................... 54 EfiGetPlatformBinaryMpTable ................................................................. 57 EfiGetPlatformBinaryOemIntData ........................................................... 59 EfiGetPlatformBinaryOem16Data ............................................................ 61 v