American Megatrends, Inc.

LegacySredir

Copyright

Release Notes

© American Megatrends, Inc.


LegacySredir

AMIBIOS Document References

Previous Release Notes

Release Notes 32.htm

Release Notes 33.htm

Release Notes 34.htm

Release Notes 35.htm

Release Notes 36.htm

Release Notes 37.htm

Release Notes 38.htm

Built on 18:02:33 12/23/14


Release Notes - NDA Required

Component Information:
Component Title: Legacy Serial Redirection
Component Reference Name: LEGACYSREDIR
Component Type: eModule
Release Date: 2012-02-02
Source Control Label: 4.5.5_LegacySredir_32
Source Control Location: SS: Alaska;$/Alaska/Source/Modules/Legacy Serial Redirection;
Driver Dependencies
ONE
Dependent Component Title: Serial Redirection
Dependent Component Reference Name: Terminal
Dependent Source Control Label: 4.6.3_Terminal_49
Dependent Source Control Location: SS: Alaska;$/Alaska/BIN/Modules/Terminal;
Protocol Dependencies
N0NE
File Dependencies
N0NE
Non-Compiled BIN and LIB File(s) within this Component:
Sredir.bin
Component Title: Serial Redirection
Component Reference Name: SREDIR
Component Source Control Label: SREDIR_CSM53.30
Component Source Control Location: SS: Alaska;$/Alaska/CSM16/LegacyRedirection;
Project Source Control Label: 8.00.10.00.0x.64
Project Source Control Location: SS: ALASKA;$/Alaska/CSM16/Complete Project/Furball10.64K/Furball10.veb;
Component Description:
The Legacy Serial Redirection Module can be added to a EFI BIOS to support serial redirection during option rom and in legacy OS. It supports PCI and MMIO Serial devices also. It supports both VGA and Non VGA systems.This module depends on EFI Serial Redirection module(Terminal Module). Legacy Serial Redirection module gets the Setup Values of Serial Redirection Module like SerialPort, Baudrate, Terminal Type, Flowcontrol, Databits, Parity and Stop bits.
Limitation of this eModule:
  • Redirection of Legacy Option rom and Legacy OS is possible through only one COM Port. Higher preference is given to the PCI Serial device, if present.

  • Legacy Redirection through the COM port is possible only if the serial device has the ability to generate IRQ.

  • In a headless system, redirection is not possible if the optionrom or utility is not using int10h for video services.
Filename | Description
Main Component | Root\Core\em\Sredir
LegacySredir.cif | Component information file for the eModule.
LegacySredir.mak | Make file becomes part of the BIOS build process.
LegacySredir.sdl | Contains BIOS build parameters.
LegacySredir.dxs | Dependency Expression file for Legacy Serial Redirection.
LegacySredir.c | File that contains main funtions and protocols to enable legacy serial redirection.
LegacySmmSredir.c | Sw Smi handler to access the MMIO space.
LegacySredir.Chm | Chm file of the emodule.
Legacy Sredir Board ModulePart | Root\Board\EM\Sredir - Gets the Terminal Setup values from EFI for setting parameters for legacy console redirecton and Provides OEM to include code before serial read or serial write through SerialCallbackCsm16Api which is a csm16 API #B.
LegacySredir-Board.cif | Component information file of the LegacySredirBoard modulePart of the eModule.
LegacySredir_Setup.c | File that is used to give the com parameters for the legacy serial redirection from Terminal module.
SerialCallback.asm | Callback file for Serial Read and Write Function.
Legacy Sredir Binary ModulePart | Root\Addon - It contains the binary image of Serial Redirection module of CSM16 Source.
LegacySREDIRAddon.cif | Component information file of the Legacy Sredir Binary modulePart of the eModule.
Sredir.bin | This bin file is added from CSM 16 source. This file contains the binary image of the serial redirection emodule.For the current label SREDIR_CSM53.26 Sredir.bin is used.
Legacy Sredir Protocol ModulePart | Root\Include\Protocol - It contains Legacy console redirection Protocol header file which contains all structures and function tables that is being used.
LegacySredirProtocol.cif | Component information file of the Legacy Sredir Protocol modulePart of the eModule.
LegacySredir.h | File that contains all structures and function tables that is used for legacy serial redirection.
BIOS Parameters:
Parameter Name | Type | Description
LEGACYSREDIR_SUPPORT | Boolean | Main switch to enable AMI Legacy Serial Redirection support in Project.
DISPLAY_WHOLE_SCREEN | Boolean | Display the whole screen before disabling the Legacy console redirection.
TRAP_INT10_WORKAROUND | Boolean | Trap Int10 to avoid the b8000 region accessed by Video option rom and Legacy console redirection.
LEGACY_SREDIR_SWSMI | Integer | SW SMI value to be used in Legacy console redirection.
SERIAL_READ_WRITE_CALLBACK | Boolean | 1- Call back will come from Sredir.bin for SerialRead and SerialWrite(SerialCallback.asm).0-Disabled..
COM_MMIO_WIDTH | Integer | MMIO Com device width size. 1- Byte, 2- Word, 4-Dword. Default Set to Dword.
InvalidPciComDeviceList | Elink | Invalid PCI Device List to skip the redirection from that device. Format of the InvalidPciComDeviceList is {VendorId, DeviceId),.
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_38, Dated: 2011-12-20
Visual eBios: RSS.5.70.0171, Dated: 2011-12-20
Compiler Tool(s): Microsoft's Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
None
General Bug Fixes:
None
EIP addressed in this label:
  • EIP#65051 - Data passing between EFI to Legacy has been changed in Legacy console redirection as we are running out of registers to pass parameters from EFI to Legacy.
  • EIP#80241 - Create 4.5.5_LegacySredir_32 RC label for Legacy console redirection. SREDIR_CSM53.30 BIN
    • Files changed for EIP fixes:
  • Root\Core\em\Sredir\Legacysredir.c - EIP#65051
  • Root\Board\em\Sredir\LegacySredir_Setup.C - EIP#65051
  • Root\Include\Protocol\LegacySredir.h - EIP#65051

    Files Changed in Sredir.bin

  • Root\Core\em\Sredir\Sredir.asm - EIP#65051
  • Root\Core\em\Sredir\OR_MOD.EQU - EIP#65051
  • Root\Core\em\Sredir\OR_MOD.ASM - EIP#65051
  • Root\Core\em\Sredir\Sredir.SDL- EIP#65051
    • Known issues and limitations in this label:
    None
    Remaining Issues:
    None
    Unit Testing
    Validate the Legacy Serial Redirection module with the following test cases and conditions.

    1. Redirection Enable/Disable Testing

      • Enable the Redirection on COM port in Setup
      • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS
      • Disable the Redirection on COM port in Setup
      • Test there is no Screen redirection and remote keyboard not working in Legacy option ROM and DOS.

    2. Baud Rate Testing

      • Enable the Redirection on COM port in Setup
      • Change the Baud rate to different option available in the setup menu
      • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    3. Terminal Type Testing

      • Enable the Redirection on COM port in Setup
      • Change the Terminal type to different option available in the setup menu
      • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    4. Test Redirection on Multiple option ROM

      • Enable the Multiple Option ROM in the system
      • Enable the Redirection on COM port in Setup
      • Test the Screen redirection and Remote keyboard in all Legacy option ROM and DOS

    5. ESC Key Sequence Testing

      • Enable the Redirection on COM port in Setup
      • Test the ESC Key sequence in Legacy option ROM and DOS

      Note : ESC key Sequence List is provided in the Terminal.chm

    6. Redirection Testing on Headless system (No VGA)

      • Enable the Redirection on COM port in Setup
      • Make sure system doesn’t have VGA controller
      • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

      Note : Some option ROM and DOS utility uses the 0xB8000 write to display the data on the screen. On this case redirection will not work. This is expected result in no VGA system.

    7. Remote Keyboard Testing on No KBC systems

      • Enable the Redirection on COM port in Setup
      • Make sure system doesn’t have KBC
      • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

      Note : Some option ROM and DOS utility uses Port 60/64 to read the data. On this case remote keyboard data will not work. This is expected result in no KBC systems.

    8. PCI Serial port Testing

      • Connect the PCI Serial device in the system
      • Enable the Redirection on PCI serial port in Setup
      • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    9. MMIO Serial Port Testing

      • Connect the Serial device into the system that uses the MMIO resource
      • Enable the Redirection on MMIO serial port in Setup
      • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS
    Validation Test Report

    Here is the Quality Assurance Test Results
    Release History:
    4.5.5_LegacySredir_32

    • [TAG] - EIP65051
      [Category] - Improvement
      [Description] - Data passing between EFI to Legacy has been changed in Legacy console redirection as we are running out of registers to pass parameters from EFI to Legacy.
      [Files] - LegacySredir.c, LegacySredir.h, LegacySredir_Setup.C, SREDIR.ASM, OR_MOD.ASM, OR_MOD.EQU

    • [TAG] - EIP80241
      [Category] - Improvement
      [Description] - Create 4.5.5_LegacySredir_32 RC label for Legacy console redirection. SREDIR_CSM53.30 BIN
      [Files] - Sredir.bin

    SREDIR_CSM53.30:

    • [TAG] - EIP80241
      [Category] - Improvement
      [Description] - SDL token updated for the SREDIR_CSM53.30 release.
      [Files] - Sredir.sdl

    • [TAG] - EIP65051
      [Category] - Improvement
      [Description] - Data passing between EFI to Legacy has been changed in Legacy console redirection as we are running out of registers to pass parameters from EFI to Legacy.
      [Files] - LegacySredir.c, LegacySredir.h, LegacySredir_Setup.C, SREDIR.ASM, OR_MOD.ASM, OR_MOD.EQU

    4.5.5_LegacySredir_31

    • [TAG] - EIP64383
      [Category] - Bug Fix
      [Severity] - Minor
      [Symptom] - System will hang when dash redirection disconnect in legacy environment
      [RootCause] - Waiting for the Transmitter Holding Register Empty bit to set to send the next data.
      [Solution] - After retry count is reached, redirection disabled.
      [Files] - Graphredir.asm , Or_mod.asm , Sredir.asm , Legacysredir.c

    • [TAG]- EIP 63665
      [Category]-IMPROVEMENT
      [Description]- Install Linux(Legacy OS) through remote. Some Linux versions are forced to text mode to redirect and some are redirected in graphics mode itself. It might not work for all the Linux versions as the Linux kernel's behave differently.
      [Files]- Terminal.sdl, Terminal.uni, Terminal.sd, LegacySredir.c, LegacySredir.h, LegacySredir_Setup.c, GRAPHREDIR.ASM, INT10REDIR.ASM, OR_MOD.ASM, OR_MOD.EQU, SREDIR.ASM

    • [TAG] - EIP75169
      [Category] - Improvement
      [Description] - Added ESC sequence support for Legacy Serial Redirection.
      [Files] - LegacySredir.c, SREDIR.ASM, KEYREDIR.ASM

    • [TAG] - EIP75982
      [Category] - New Feature
      [Description] - Redirection After BIOS POST item on the setup menu
      [Files] - Terminal.sd, Terminal.uni, LegacySredir.c, LegacySredir_Setup.c

    • [TAG] - EIP71636
      [Category] - New Feature
      [Description] - Implement the AMI_SERIAL_DEVICE protocol
      [Files] - AmiSerial.c, AmiSerial.sdl, AmiSerial.mak, AmiSerial.chm, AmiSerial.dxs, AmiSerial.cif, Terminal.c, SerialIo.c, TerminalSetup.c, InitTerminalStrings.c, TerminalSetupVar.h, Terminal.cif, TerminalAmiSerial.h, LegacySredir_Setup.c

    SREDIR_CSM53.29:

    • [TAG]- EIP 63665
      [Category]-IMPROVEMENT
      [Description]- Install Linux(Legacy OS) through remote. Some Linux versions are forced to text mode to redirect and some are redirected in graphics mode itself. It might not work for all the Linux versions as the Linux kernel's behave differently.
      [Files]- Terminal.sdl, Terminal.uni, Terminal.sd, LegacySredir.c, LegacySredir.h, LegacySredir_Setup.c, GRAPHREDIR.ASM, INT10REDIR.ASM, OR_MOD.ASM, OR_MOD.EQU, SREDIR.ASM

    • [TAG] - EIP64383
      [Category] - Bug Fix
      [Severity] - Minor
      [Symptom] - System will hang when dash redirection disconnect in legacy environment
      [RootCause] - Waiting for the Transmitter Holding Register Empty bit to set to send the next data.
      [Solution] - After retry count is reached, redirection disabled.
      [Files] - Graphredir.asm , Or_mod.asm , Sredir.asm , Legacysredir.c

    • [TAG] EIP65347
      [Category] Improvement
      [Description] Redirection function can't work when Dash AP re-connect. So in a timer interrupt checked the serial port status and enable the redirection again if the port is ready to accept the data.
      [Files] Serialio.c, GraphRedir.asm

    • [TAG] EIP75169
      [Category] Improvement
      [Description] Added ESC sequence support for Legacy Serial Redirection.
      [Files] LegacySredir.c, SREDIR.ASM , KEYREDIR.ASM
    4.5.5_LegacySredir_30

    • [TAG] - EIP55337
      [Category] - New Feature
      [Description] - Add optional code to clear keyboard buffer at ReadyToBoot in Legacy Serial Redirection driver
      [Files] - LegacySredir.c, LegacySredir.h, LegacySredir.sdl, Sredir.asm

    • [TAG]- EIP 58140
      [Category]- New Feature
      [Description]- Add Setup option for Vt-UTF8 combo key support in Legacy console redirection driver
      [Files]- Sredir.asm, Legacysredir.c, Legacysredir.h, Legacysredir_setup.c

    • [TAG] - EIP 47188
      [Category]- IMPROVEMENT
      [Description]- MMIO COM device access width SDL token support added
      [Files] - legacysredir.c, LegacySredirSmm.c, LegacySredir_setup.c

    • [TAG]- EIP 36444
      [Category]- New Feature
      [Description]- Add Setup option for Various Putty keyPad support in Legacy console redirection driver
      [Files]- LegacySredir.c, LegacySredir.h, LegacySredir_Setup.C, SREDIR.ASM, KEYREDIR.ASM, OR_MOD.EQU, SREDIR.MAK

    • [TAG] - EIP 66389
      [Category]- BUG FIX
      [Severity]- Minor
      [Symptom] - System hangs at 0xAE when legacy serial redirection is enable
      [RootCause]- Before Legacy console redirection allocates the base memory, some other driver allocates the base memory. So legacy console redirection memory location moved down. But Sredir.bin thinks that seg address of the sredir.bin is 0x9cc00. So system is hanging when we call 0x9cc00:offset, as this region is not used to copy the sredir.bin
      [Solution] - insteed of using the segment address from bin( hardcoded value), Used the segment address we get it in runtime
      [Files] - Legacysredir.c

    • [TAG] - EIP 54019
      [Category]- BUG FIX
      [Severity]- Minor
      [Symptom] - legacy console redirection doesn't work from virtual Serial Port.
      [RootCause]- Legacy console redirection always ignores the first Node in the device path
      [Solution] - For the ACPI node checking , first node of the devicepath also included.
      [Files] - Legacysredir_setup.c[TAG] - EIP 54019
      [Category]- BUG FIX
      [Severity]- Minor
      [Symptom] - legacy console redirection doesn't work from virtual Serial Port.
      [RootCause]- Legacy console redirection always ignores the first Node in the device path
      [Solution] - For the ACPI node checking , first node of the devicepath also included.
      [Files] - Legacysredir_setup.c

    SREDIR_CSM53.28:

    • [TAG]- EIP 58140
      [Category]- New Feature
      [Description]- Add Setup option for Vt-UTF8 combo key support in Legacy console redirection driver
      [Files]- Sredir.asm, Legacysredir.c, Legacysredir.h, Legacysredir_setup.c

    • [TAG] - EIP55176
      [Category] - BUG FIX
      [Severity] - Normal
      [Symptom] - Insert key function fail in remote with combination key "[Esc]+".
      [RootCause] - Insert Key break code is not sent.
      [Solution] - Insert Key break code is sent after sending the make code.
      [Files] - KEYREDIR.ASM

    • [TAG]- EIP 36444
      [Category]- New Feature
      [Description]- Add Setup option for Various Putty keyPad support in Legacy console redirection driver
      [Files]- LegacySredir.c, LegacySredir.h, LegacySredir_Setup.C, SREDIR.ASM, KEYREDIR.ASM, OR_MOD.EQU, SREDIR.MAK

    • [TAG] EIP64002
      [Category] Bug Fix
      [Severity] Normal
      [Symptom] When one arrow key is pressed in remote two arrow keys are reported to host.
      [RootCause] when Numlock is ON in the host system we turn off, to avoid conflict in scancode for KeyPad keys like up,down arrow. so when arrow is pressed at the first time it is reported as twice to the host system,one the actual key and other key is sent while sending command to turn off numlock.
      [Files]- KEYREDIR.ASM

    • [TAG] - EIP 63040
      [Category]- BUG FIX
      [Severity]- Minor
      [Symptom] - When key pressed from remote at the time of launching pxe rom output remote console has no video output, but after pressing some keys video is redirected.
      [RootCause] - FIFO Interrupt was pending and it was not handled eventhough keys was pressed.
      [Solution] - FIFO is cleared when interrupt is pending for more than 2 seconds.
      [Files] - GRAPHREDIR.ASM

    • [TAG] EIP55337
      [Category] New Feature
      [Description] Add optional code to clear keyboard buffer at ReadyToBoot in Legacy Serial Redirection driver
      [Files] Sredir.asm

    4.5.5_LegacySredir_29

    • [TAG]- EIP 53465
      [Category]-IMPROVEMENT
      [Description]- gLegacySredir variable name used as global and local variable. Changed the Local Variable name
      [Files]- LegacySredir.c

    • [TAG] - EIP 48120
      [Category]- BUG FIX
      [Severity]- Minor
      [Symptom] - Function key Ctrl + i do not work via serial redirection.
      [RootCause]- Crtl+I is mapped to tab key in the redirection module
      [Solution] - Provided the SDL token for Ctrl+I key mapping. Tab and Ctrl+I can be selected through this sdl token
      [Files] - Legacysredir.c, Legacysredir.sdl, Sredir.asm(Sredir.bin)

    • [TAG] - EIP 47188
      [Category]- IMPROVEMENT
      [Description]- MMIO COM device access width SDL token support added
      [Files] - legacysredir.c, Sredir.asm

    • [TAG] - EIP 50230
      [Category]- BUG FIX
      [Severity]- Minor
      [Symptom] - SOL is not working correctly.
      [RootCause]- SOL device is visible even though SOL feature is disabled.
      [Solution] - Validated the TerminalDriver presence on SOL device and activated it for Legacy console redirection.
      [Files] - Legacysre_setup.c

      • SREDIR_CSM53.27:

    • [TAG] - EIP 52577
      [Category]- BUG FIX
      [Severity]- Minor
      [Symptom] - Cursor disappears at iSCSI boot ROM by remote PC (Serial Redirection).
      [RootCause]- Option rom uses the different Video page number to display the screen.
      [Solution] - While taking the current cursor position, Page no also considered.
      [Files] - GRAPHREDIR.ASM

    • [TAG] - EIP 47102
      [Category]- BUG FIX
      [Severity]- Major
      [Symptom] - RST card from ultra X has an issue with Boxboro and greencity
      [RootCause]- RST card also capture the Int8. So when next time redirection capture the int8, it's becoming deadloop. Becasue Redirectio gives control back to RST int8 handler and RST handler give control back to redirection int 8 handler.
      [Solution] - If the Int8 handler is captured by somebody else, redirection will not capture the int8 again.
      [Files] - Or_mod.asm , Uartinit.asm

    • [TAG] - EIP 48120
      [Category]- BUG FIX
      [Severity]- Minor
      [Symptom] - Function key Ctrl + i do not work via serial redirection.
      [RootCause]- Crtl+I is mapped to tab key in the redirection module
      [Solution] - Provided the SDL token for Ctrl+I key mapping. Tab and Ctrl+I can be selected through this sdl token
      [Files] - Legacysredir.c, Legacysredir.sdl, Sredir.asm(Sredir.bin)

    • [TAG] - EIP 47188
      [Category]- IMPROVEMENT
      [Description]- MMIO COM device access width SDL token support added
      [Files] - legacysredir.c, Sredir.asm
      • 4.5.5_LegacySredir_28

    • COM port UID should be from 0 to 3 for SerialIo to work. This dependency removed as UID should be unique and it can be from 00 to 0xFF
      EIP 39843

    • [TAG]- EIP 44007
      [Category]-IMPROVEMENT
      [Description]- Invalid PCI COM device list added as Elink. These devices will not be used for Redirection.
      [Files]- LegacySredir.mak, LegacySredir.sdl, LegacySredir_Setup.c

    • [TAG] - EIP 44133
      [Category]- BUG FIX & IMPROVEMENT
      [Severity]- Major
      [Symptom] - Flowcontrol and Terminal type is not working in Legacy console redirection
      [RootCause] - Baud rate value overwrites the Flowcontrol and Terminal Type fields.
      [Solution] - BaudRate programming done in EFI driver. So removed the baud rate value passing into Sredir.bin
      MMIO com device width added based on SDL token. [Files] - LegacySmmSredir.c , Legacysredir.c, Legacysredir.sdl

    • Sredir.bin SREDIR_CSM53.26 used.

    • [TAG] - EIP 42307
      [Category]- BUG FIX
      [Severity]- Important
      [Symptom]- Use console redirection and enable recorder Mode, remote Keyboard doesn't work
      [RootCause]- On Recorder mode we will be using Int10 to redirect the data and Timer interrupt was not doing anything as it has to push the input data to KBC
      [Solution]- Added code to send the input data to KBC on recorder mode
      [Files] - GraphRedir.asm.
    4.5.5_LegacySredir_27
  • COM port Validation code added. Skipped the COM port if the port is not a valid one
    EIP 39300
  • Sredir.bin - SREDIR_CSM53.25 used.
    • 4.5.5_LegacySredir_26
  • Issue:Need to handle different Base Hz values for SerialStatusCode, Terminal, and Legacy Serial Redirection.
    Solution: Moved Uart input clock into Core.sdl token and used in all the above modules.
    EIP: 37332

  • Callback function added for read and write function of the Serial Port.
    EIP 37850.

  • Legacy Serial Redirection not working when serial port interrupt set to 5.
    EIP 37785.

  • Support for Baud Rate 38400 in Legacy Console Redirection Driver.
    EIP 38854.

  • Issue: Sredir.bin always allocated memory in basememory.
    Solution: If the redirection is enabled, allocaed the base memory and copied the Sredir.bin
    EIP 37831

  • Sredir.bin Size increased.

  • Resolved the programming Error.

  • Sredir.bin - SREDIR_CSM53.25 used.

    • SREDIR_CSM53.25:

  • Issue:Need to handle different Base Hz values for SerialStatusCode, Terminal, and Legacy Serial Redirection.
    Solution: Moved Uart input clock into Core.sdl token and used in all the above modules.
    EIP: 37332

  • Issue :CSM16/LegacyRedirection;SREDIR_CSM53.24 procedure "int10_hook" bug
    Solution: Output parameters restored properly in int10_3h, int10_8h & int10_Fh
    EIP 37827

  • Callback function added for read and write function of the Serial Port.
    EIP 37850

  • RedirectionFlagSignature added back as it is used by AMT

  • Hand off to old Int 10 handler if not serviced.
    EIP 38950

  • Issue: PXE rom information lost at Hyper-terminal screen in remote PC
    Solution :All line CheckSum cleared on Enable Call.
    EIP 37367

  • Issue: Legacy console redirection is slow on MMIO Serial devices.
    Solution: If the system is in Big real mode, MMIO access done directly. Otherwise Sw SMi used for reading MMIO region.
    EIP 36952

  • Sredir.bin Size Increased.

  • EIP 38950 check-in corrected.

  • For Caps Char, we are sending Make code of the ShiftKey to set the ShiftKey status. But we are not sending ShiftKey breakcode to reset the flag. Added code to send the ShiftKey breakcode after we send the next char (Caps Char). The same done for Alt and Ctrl Key aslo.
    EIP 38774
    • 4.5.5_LegacySredir_25
  • Sw Smi value for legacy console redirection changed to 0x41.
  • Sredir.bin - SREDIR_CSM53.24 used.

    • SREDIR_CSM53.24

  • Recorder Mode support added.
    EIP 36516

  • Some of the MMIO COM port has non standard bits implemented. These bits are reset to 0 in Sredir.bin.
    EIP 37123

    • SREDIR_CSM53.23:

  • Coding Standard followed.
    • NOTE: This label requires Terminal driver label 4.6.3_Terminal_43 or above.
    4.5.5_LegacySredir_24
    • SREDIR_CSM53.22
    • MMIO COM device support added. EIP 33847

    • NOTE: 8.00.10.00.0x.62 Amilegacy16.bin needed for MMIO support to be working
    4.5.5_LegacySredir_23
    • SREDIR_CSM53.21
    • Legacy console redirection module size increased. So changing the base address.EIP:26405

    • CheckSum calculation logic changed. EIP: 26405.

    • Int10 Workaround added based on SDL token. EIP 33300

    • Redirection done only for the modes 0,1,2,3 and 7. For other modes redirection will not happen. EIP 30677

    • Breakcode for Ctrl and Alt Key has been send to Port6064 with 500Ms timeout EIP 35214

    • Modified CTRL key ESC sequence as ESC ^ C. EIP 35117

    • Sredir.bin Version number added into sredir.Bin
    4.5.5_LegacySredir_22
    • EIP 24167 and EIP 24065: Serial redirection selection of 80X24 or 80X25 implemented based on setup question instead of BUILD token
    • EIP 27263: compile Error in legacy sredir when using VS 2008
    • SREDIR_CSM53.20
    4.5.5_LegacySredir_21
    • Coding Standard and File header Updated.
    4.5.5_LegacySredir_20
    • Updated the Legacy console redirection to get the Databits,Parity and Stop bits from the Terminal Driver Setup option

      EIP20874-Legacy serial redirection is using hra coded values for Databits as 8, Parity as None and Stop bit as 1

    • Symptom: PXE boot messages are not displayed on local console.

      Solution: Without Disabling the Legacy console redirection, Enable redirection is not processed.

      EIP:19089

    • EIP 20251 -Ebda value inside Legacy Serial Redirection need to be Dynamic

      Removed Unwanted code and updated with proper comments on Sredir.bin Memory allocation.

    • Symptom:Junk character displayed on Intel redirection utility with Legacy console redirection. This problem also happens only the time of Windows boot manager displayed.

      Resolution:If the cursor position is invalid, Set cursor position doesn't do anything.

    • Ctrl+D doesn't work.

      Some Scsi card uses the 0xb9000 memory as Video Segment address. So based on the Video memory offset,Video Segment has been calculated and used it for the redirection.

      EIP 21311.

    • Added Support for Int10, Function6.

      Eip 19524-Problem with legacy serial redirection when system is headless.

    • Updated the Legacy console redirection to get the Databits,Parity and Stop bits from the Terminal Driver Setup option

      EIP20874-Legacy serial redirection is using hra coded values for Databits as 8, Parity as None and Stop bit as 1

    4.5.5_LegacySredir_19
    • Symptom: System hangs on sometime on the reboot cycle.

      Rootcause: System get hangs when both int10 and legacy console try to access the 0xb8000 region.

      Solution:When the control to inside the Int10 , Redirection should not try to access the 0xb8000 segment.

      EIP:18586 The function value of FindLegacySreDirTable for compliance.

    • Symptom: Pressing key's continously in DOS ,hangs the redirection.

      Rootcause: When the control is inside the sreial interrupt and pressing key makes sreial interrupt to be pending .

      Solution: Before exit from the sreial interrupt, handle all the function untill the sreial interrupt status gets cleared.

      EIP:17168 Problem with legacy serial redirection.

    • SREDIR_CSM53.17
    4.5.5_LegacySredir_18
    • The function value of FindLegacySreDirTable for compliance.
    • send the whole screen when the disable redirection is called.
    • Check for the Serial device error
    • Resolved the,Press F2 key in DOS makes Ctrl flag to be set.
    • Line no 0xFF is not processed.
    • DOS doesn't work properly when the legacy console redirection with Hardware flow control
    • Resolved the,Press F2 key in DOS makes Ctrl flag to be set.
    • SREDIR_CSM53.16
    4.5.5_LegacySredir_17
    • SDL parameters passed from EFI to 16bit code.Added code to display whole screen before disalbing the redirection. This is done based on the SDL token. default set to disabled.
    • Added code to get the Serial port base address and IRQ from Device path and other settings from Terminal Setup options.
    • SREDIR_CSM53.15 BIN used
    4.5.5_LegacySredir_16
    • Guid's updated in the MAK file.
    • Added Status Check For GetSetupValuesForLegacySredir so that Legacy Serial Redirection Can be Enabled Based on Setup Options.
    4.5.5_LegacySredir_15
    • Support added for 25 lines.
    • Follow the coding Standard.
    • Emodule structure changed.
    • SREDIR_CSM53.14 BIN used
    • Redirection calls disable, only when the Enable redirection is called.
    4.5.5_LegacySredir_09
    • Added Push Pop Cx in Graphredir.asm to fix the hang issue from Previous Label.
    • SREDIR_CSM36.10 BIN used
    4.5.5_LegacySredir_08
    • Serial IRQ is enabled as some IRQ handler may disable the Serial IRQ when the same IRQ has been shared.
    • SREDIR_CSM36.09 BIN used
    4.5.5_LegacySredir_07
    • Timer interrupt flag set to 00 when Release Timer interrupt.
    • SREDIR_CSM36.08 BIN used
    4.5.5_LegacySredir_06
    • ESC sequence support added.
    • Release Timer interrupt when the disable serial redirection is called.
    • SREDIR_CSM36.07 BIN used
    4.5.5_LegacySredir_05
    • Some Video card hangs when we do the Word read in B800. So changed to byte read.
    • SREDIR_CSM36.06 BIN used
    4.5.5_LegacySredir_04
    • Esc Sequence support added
    • Serial IRQ chaining support added
    • SREDIR_CSM36.05 BIN used
    4.5.5_LegacySredir_03
    • Null character removed in the ESC key sequence
    • Modem status register check commented
    • Updated the display values in the BDA

    4.5.5_LegacySredir_02
    • Dos Corruption issue fixed

    4.5.5_LegacySredir_01
    • Added feature to pass Serial port Base address and IRQ

    © American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Legacy Serial Redirection
Component Reference Name: LEGACYSREDIR
Component Type: eModule
Release Date: 2012-03-12
Source Control Label: 4.5.5_LegacySredir_33
Source Control Location: SS: Alaska;$/Alaska/Source/Modules/Legacy Serial Redirection;
Driver Dependencies
ONE
Dependent Component Title: Serial Redirection
Dependent Component Reference Name: Terminal
Dependent Source Control Label: 4.6.3_Terminal_49
Dependent Source Control Location: SS: Alaska;$/Alaska/BIN/Modules/Terminal;
Protocol Dependencies
N0NE
File Dependencies
N0NE
Non-Compiled BIN and LIB File(s) within this Component:
Sredir.bin
Component Title: Serial Redirection
Component Reference Name: SREDIR
Component Source Control Label: SREDIR_CSM53.31
Component Source Control Location: SS: Alaska;$/Alaska/CSM16/LegacyRedirection;
Project Source Control Label: 8.00.10.00.0x.64
Project Source Control Location: SS: ALASKA;$/Alaska/CSM16/Complete Project/Furball10.64K/Furball10.veb;
Component Description:
The Legacy Serial Redirection Module can be added to a EFI BIOS to support serial redirection during option rom and in legacy OS. It supports PCI and MMIO Serial devices also. It supports both VGA and Non VGA systems.This module depends on EFI Serial Redirection module(Terminal Module). Legacy Serial Redirection module gets the Setup Values of Serial Redirection Module like SerialPort, Baudrate, Terminal Type, Flowcontrol, Databits, Parity and Stop bits.
Limitation of this eModule:
  • Redirection of Legacy Option rom and Legacy OS is possible through only one COM Port. Higher preference is given to the PCI Serial device, if present.

  • Legacy Redirection through the COM port is possible only if the serial device has the ability to generate IRQ.

  • In a headless system, redirection is not possible if the optionrom or utility is not using int10h for video services.
Filename | Description
Main Component | Root\Core\em\Sredir
LegacySredir.cif | Component information file for the eModule.
LegacySredir.mak | Make file becomes part of the BIOS build process.
LegacySredir.sdl | Contains BIOS build parameters.
LegacySredir.dxs | Dependency Expression file for Legacy Serial Redirection.
LegacySredir.c | File that contains main funtions and protocols to enable legacy serial redirection.
LegacySmmSredir.c | Sw Smi handler to access the MMIO space.
LegacySredir.Chm | Chm file of the emodule.
SerialBootCall.asm | Boot Call for Serial
SredirBootFail.asm | SredirBootFail source
Legacy Sredir Board ModulePart | Root\Board\EM\Sredir - Gets the Terminal Setup values from EFI for setting parameters for legacy console redirecton and Provides OEM to include code before serial read or serial write through SerialCallbackCsm16Api which is a csm16 API #B.
LegacySredir-Board.cif | Component information file of the LegacySredirBoard modulePart of the eModule.
LegacySredir_Setup.c | File that is used to give the com parameters for the legacy serial redirection from Terminal module.
SerialCallback.asm | Callback file for Serial Read and Write Function.
Legacy Sredir Binary ModulePart | Root\Addon - It contains the binary image of Serial Redirection module of CSM16 Source.
LegacySREDIRAddon.cif | Component information file of the Legacy Sredir Binary modulePart of the eModule.
Sredir.bin | This bin file is added from CSM 16 source. This file contains the binary image of the serial redirection emodule.For the current label SREDIR_CSM53.26 Sredir.bin is used.
Legacy Sredir Protocol ModulePart | Root\Include\Protocol - It contains Legacy console redirection Protocol header file which contains all structures and function tables that is being used.
LegacySredirProtocol.cif | Component information file of the Legacy Sredir Protocol modulePart of the eModule.
LegacySredir.h | File that contains all structures and function tables that is used for legacy serial redirection.
BIOS Parameters:
Parameter Name | Type | Description
LEGACYSREDIR_SUPPORT | Boolean | Main switch to enable AMI Legacy Serial Redirection support in Project.
DISPLAY_WHOLE_SCREEN | Boolean | Display the whole screen before disabling the Legacy console redirection.
TRAP_INT10_WORKAROUND | Boolean | Trap Int10 to avoid the b8000 region accessed by Video option rom and Legacy console redirection.
LEGACY_SREDIR_SWSMI | Integer | SW SMI value to be used in Legacy console redirection.
SERIAL_READ_WRITE_CALLBACK | Boolean | 1- Call back will come from Sredir.bin for SerialRead and SerialWrite(SerialCallback.asm).0-Disabled..
COM_MMIO_WIDTH | Integer | MMIO Com device width size. 1- Byte, 2- Word, 4-Dword. Default Set to Dword.
CTRLI_KEY_MAPPING | Boolean | 0- Mapped to TAB key, 1- Mapped to CtrlI Key
CLEAR_LEGACYSREDIR_KB_BUFFER_AT_READYTOBOOT | Boolean | ON -> Legacy Serial Redirection KB Buffer will be cleared at ReadyToBoot.\OFF -> Legacy Serial Redirection KB Buffer will not be cleared at ReadyToBoot.
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_38, Dated: 2011-12-20
Visual eBios: RSS.5.70.0171, Dated: 2011-12-20
Compiler Tool(s): Microsoft's Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
  • EIP#80241 - Select Redirection After BIOS POST as BootLoader in serial redirection, the behaviour is not same as Core8.
General Bug Fixes:
  • EIP#80746 - Console redirection stop working after POST if continue press any key at remote side during boot to DOS.
  • EIP#80660 - Question about Redirection After BIOS POST option.
  • EIP#82480 - System does not boot to Legacy Devices when Launch Video OpRom DISABLED
EIP addressed in this label:
  • EIP#80746 - Console redirection stop working after POST if continue press any key at remote side during boot to DOS.
  • EIP#80660 - Question about Redirection After BIOS POST option.
  • EIP#80241 - Select Redirection After BIOS POST as BootLoader in serial redirection, the behaviour is not same as Core8.
  • EIP#82097 - Enabling Serial Interrupt in the legacy console redirection should be moved after Serial interrupt handler is installed
  • EIP#82480 - System does not boot to Legacy Devices when Launch Video OpRom DISABLED
Files changed for EIP fixes:
  • Root\Core\em\Sredir\Legacysredir.c - EIP#81401, #82480
  • Root\Board\em\Sredir\LegacySredir_Setup.C - EIP#81401
  • Root\Core\em\Sredir\SerialBootCall.asm - EIP#81401
  • Root\Core\em\Sredir\SredirBootFail.asm - EIP#81401
  • Root\Include\Protocol\LegacySredir.h - EIP#81401, #82480
  • Root\Include\Protocol\LegacySredir.mak - EIP#81401
  • Root\Include\Protocol\LegacySredir.sdl - EIP#81401

    Files Changed in Sredir.bin

  • Root\Core\em\Sredir\Sredir.asm - EIP#81401, #82480
  • Root\Core\em\Sredir\GRAPHREDIR.ASM - EIP#81401, #82480
  • Root\Core\em\Sredir\OR_MOD.EQA - EIP#81401, #82480
  • Root\Core\em\Sredir\INT10REDIR.ASM- EIP#81401
Known issues and limitations in this label:
None
Remaining Issues:
None
Unit Testing
Validate the Legacy Serial Redirection module with the following test cases and conditions.

  1. Redirection Enable/Disable Testing

    • Enable the Redirection on COM port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS
    • Disable the Redirection on COM port in Setup
    • Test there is no Screen redirection and remote keyboard not working in Legacy option ROM and DOS.

  2. Baud Rate Testing

    • Enable the Redirection on COM port in Setup
    • Change the Baud rate to different option available in the setup menu
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  3. Terminal Type Testing

    • Enable the Redirection on COM port in Setup
    • Change the Terminal type to different option available in the setup menu
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  4. Test Redirection on Multiple option ROM

    • Enable the Multiple Option ROM in the system
    • Enable the Redirection on COM port in Setup
    • Test the Screen redirection and Remote keyboard in all Legacy option ROM and DOS

  5. ESC Key Sequence Testing

    • Enable the Redirection on COM port in Setup
    • Test the ESC Key sequence in Legacy option ROM and DOS

    Note : ESC key Sequence List is provided in the Terminal.chm

  6. Redirection Testing on Headless system (No VGA)

    • Enable the Redirection on COM port in Setup
    • Make sure system doesn’t have VGA controller
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    Note : Some option ROM and DOS utility uses the 0xB8000 write to display the data on the screen. On this case redirection will not work. This is expected result in no VGA system.

  7. Remote Keyboard Testing on No KBC systems

    • Enable the Redirection on COM port in Setup
    • Make sure system doesn’t have KBC
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    Note : Some option ROM and DOS utility uses Port 60/64 to read the data. On this case remote keyboard data will not work. This is expected result in no KBC systems.

  8. PCI Serial port Testing

    • Connect the PCI Serial device in the system
    • Enable the Redirection on PCI serial port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  9. MMIO Serial Port Testing

    • Connect the Serial device into the system that uses the MMIO resource
    • Enable the Redirection on MMIO serial port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS
Validation Test Report

Here is the Quality Assurance Test Results
Release History:
4.5.5_LegacySredir_33

  • [TAG] - EIP81401
    [Category] - New Feature
    [Description] - Select Redirection After BIOS POST as BootLoader in serial redirection, the behaviour is not same as Core8.
    [Files] - LegacySredir.c, LegacySredir.mak, LegacySredir.sdl, LegacySredir_Setup.c, LegacySredir.h ,SerialBootCall.asm, SredirBootFail.asm,GRAPHREDIR.ASM, INT10REDIR.ASM, OR_MOD.EQU, SREDIR.ASM

  • [TAG] - EIP82480
    [Category] - Bug Fix
    [Severity] - Important
    [Symptom] - System does not boot to Legacy Devices when Launch Video OpRom DISABLED
    [RootCause] - Temp buffer address is not correct
    [Solution] - Redirection uses the 0x9F000 are temp buffer to save the Video data. It should have been calculated in runtime based on the Base memory allocated for sredir.bin
    [Files] - Legacysredir.c, LegacySredir.h

SREDIR_CSM53.31:

  • [TAG] - EIP81401
    [Category] - New Feature
    [Description] - Select Redirection After BIOS POST as BootLoader in serial redirection, the behaviour is made same as Core8.
    [Files] - LegacySredir.c, LegacySredir.mak, LegacySredir.sdl, LegacySredir_Setup.c, LegacySredir.h ,SerialBootCall.asm, SredirBootFail.asm,GRAPHREDIR.ASM, INT10REDIR.ASM, OR_MOD.EQU, SREDIR.ASM,LegacySredir.cif

  • [TAG] - EIP80746
    [Category] - Bug Fix
    [Severity] - Important
    [Symptom] - Console redirection stop working after POST if continue press any key at remote side during boot to DOS.
    [RootCause] - Interrupts are enabled while enabling Legacy Serial redirection in real mode. But after coming to EFI if keys are pressed in remote, UART genertes interrupt but interrupts in PIC are masked and UART says Interrupt is pending.
    [Solution] - Interrupt pending is checked in IIR register every 0.5 sec after enabling the interrupts by EnableFifoIntGeneration() in int08h hook routine, If interrupt is pending we will read all the pending Keys for clearing the FIFO. The FIFO interrupt alone is enabled during enabling Legacy Redirection as other interrupts are enabled by int08h routine and all interrupts are disabled while releasing serial interrupts
    [Files] - GRAPHREDIR.ASM, SREDIR.ASM

  • [TAG] - EIP82097
    [Category] - Improvement
    [Description] - Enabling Serial Interrupt in the legacy console redirection should be moved after Serial interrupt handler is installed
    [Files] - Sredir.asm

  • [TAG] - EIP80660
    [Category] - Bug Fix
    [Symptom] -Question about Redirection After BIOS POST option.
    [RootCause] - When recorder mode is ON , INT10 is hooked but it is not release
    [Solution] - INT10 is release when recorder mode is on
    [Files] - INT10REDIR.ASM, SREDIR.ASM

  • [TAG] - EIP82480
    [Category] - Bug Fix
    [Severity] - Important
    [Symptom] - System does not boot to Legacy Devices when Launch Video OpRom DISABLED
    [RootCause] - Temp buffer address is not correct
    [Solution] - Redirection uses the 0x9F000 are temp buffer to save the Video data. It should have been calculated in runtime based on the Base memory allocated for sredir.bin
    [Files] - Graphredir.asm, Or_mod.Equ, Sredir.asm

Release_4.5.5_LegacySredir_32

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Legacy Serial Redirection
Component Reference Name: LEGACYSREDIR
Component Type: eModule
Release Date: 2012-09-03
Source Control Label: 4.5.5_LegacySredir_34
Source Control Location: SS: Alaska;$/Alaska/Source/Modules/Legacy Serial Redirection;
Dependencies
Component Dependencies
ONE
Dependent Component Title: Serial Redirection
Dependent Component Reference Name: Terminal
Dependent Source Control Label: 4.6.3_Terminal_51
Dependent Source Control Location: SS: Alaska;$/Alaska/BIN/Modules/Terminal;

File Dependencies
N0NE

Protocol Dependencies
N0NE
Non-Compiled BIN and LIB File(s) within this Component:
Sredir.bin
Component Title: Serial Redirection
Component Reference Name: SREDIR
Component Source Control Label: SREDIR_CSM53.33
Component Source Control Location: SS: Alaska;$/Alaska/CSM16/LegacyRedirection;
Project Source Control Label: 8.00.10.00.0x.64
Project Source Control Location: SS: ALASKA;$/Alaska/CSM16/Complete Project/Furball10.64K/Furball10.veb;
Component Description:
The Legacy Serial Redirection Module can be added to a EFI BIOS to support serial redirection during option rom and in legacy OS. It supports PCI and MMIO Serial devices also. It supports both VGA and Non VGA systems.This module depends on EFI Serial Redirection module(Terminal Module). Legacy Serial Redirection module gets the Setup Values of Serial Redirection Module like SerialPort, Baudrate, Terminal Type, Flowcontrol, Databits, Parity and Stop bits.
Limitation of this eModule:
  • Redirection of Legacy Option rom and Legacy OS is possible through only one COM Port. Higher preference is given to the PCI Serial device, if present.

  • Legacy Redirection through the COM port is possible only if the serial device has the ability to generate IRQ.

  • In a headless system, redirection is not possible if the optionrom or utility is not using int10h for video services.
Sample.cif Sample Description of CIF SampleCom.c Sample Description of C Code Hhm.chm Sample Description of CHM SampleSetup.sd Sample Description SampleBin.bin Sample BIN Description
Filename | Description
Main Component | Root\Core\em\Sredir
LegacySredir.cif | Component information file for the eModule.
LegacySredir.mak | Make file becomes part of the BIOS build process.
LegacySredir.sdl | Contains BIOS build parameters.
LegacySredir.dxs | Dependency Expression file for Legacy Serial Redirection.
LegacySredir.c | File that contains main funtions and protocols to enable legacy serial redirection.
LegacySmmSredir.c | Sw Smi handler to access the MMIO space.
LegacySredir.Chm | Chm file of the emodule.
SerialBootCall.asm | Boot Call for Serial
SredirBootFail.asm | SredirBootFail source
Legacy Sredir Board ModulePart | Root\Board\EM\Sredir - Gets the Terminal Setup values from EFI for setting parameters for legacy console redirecton and Provides OEM to include code before serial read or serial write through SerialCallbackCsm16Api which is a csm16 API #B.
LegacySredir-Board.cif | Component information file of the LegacySredirBoard modulePart of the eModule.
LegacySredir_Setup.c | File that is used to give the com parameters for the legacy serial redirection from Terminal module.
SerialCallback.asm | Callback file for Serial Read and Write Function.
Legacy Sredir Binary ModulePart | Root\Addon - It contains the binary image of Serial Redirection module of CSM16 Source.
LegacySREDIRAddon.cif | Component information file of the Legacy Sredir Binary modulePart of the eModule.
Sredir.bin | This bin file is added from CSM 16 source. This file contains the binary image of the serial redirection emodule.For the current label SREDIR_CSM53.26 Sredir.bin is used.
Legacy Sredir Protocol ModulePart | Root\Include\Protocol - It contains Legacy console redirection Protocol header file which contains all structures and function tables that is being used.
LegacySredirProtocol.cif | Component information file of the Legacy Sredir Protocol modulePart of the eModule.
LegacySredir.h | File that contains all structures and function tables that is used for legacy serial redirection.
BIOS Parameters:
Parameter Name | Type | Description
LEGACYSREDIR_SUPPORT | Boolean | Main switch to enable AMI Legacy Serial Redirection support in Project.
DISPLAY_WHOLE_SCREEN | Boolean | Display the whole screen before disabling the Legacy console redirection.
TRAP_INT10_WORKAROUND | Boolean | Trap Int10 to avoid the b8000 region accessed by Video option rom and Legacy console redirection.
LEGACY_SREDIR_SWSMI | Integer | SW SMI value to be used in Legacy console redirection.
SERIAL_READ_WRITE_CALLBACK | Boolean | 1- Call back will come from Sredir.bin for SerialRead and SerialWrite(SerialCallback.asm).0-Disabled..
COM_MMIO_WIDTH | Integer | MMIO Com device width size. 1- Byte, 2- Word, 4-Dword. Default Set to Dword.
CTRLI_KEY_MAPPING | Boolean | 0- Mapped to TAB key, 1- Mapped to CtrlI Key
CLEAR_LEGACYSREDIR_KB_BUFFER_AT_READYTOBOOT | Boolean | ON -> Legacy Serial Redirection KB Buffer will be cleared at ReadyToBoot.\OFF -> Legacy Serial Redirection KB Buffer will not be cleared at ReadyToBoot.
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_39, Dated: 2012-01-04
Visual eBios: RSS.5.72.0220, Dated: 2012-01-04
Compiler Tool(s): Microsoft's Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
NONE
General Bug Fixes and EIP Addressed in this Label:
General Bug Fixes
EIP #86934 - Build error in Legacy Serial Redirection eModule when Terminal module is disabled.
EIP #94504 - screen color attributes are not transmitted to the serial terminal when the VT100+ terminal type is selected in DOS

EIP Addressed
EIP #86934 - Build error in Legacy Serial Redirection eModule when Terminal module is disabled.
EIP #94504 - screen color attributes are not transmitted to the serial terminal when the VT100+ terminal type is selected in DOS
EIP #90333 - CSM_SUPPORT dependcey should be added for the Legacy console redirection driver.
EIP #84345 - Error checking and SMM dependency added
EIP #84341 - Added Separate PCI_UART_INPUT_CLOCK token for setting the Clock for PCI Serial UART.
EIP #95246 - RTS is used to control redirection flow when FlowControl is enabled. When RTS is disabled (host not ready to accept data) Redirection is disabled and when RTS is enabled (i.e CTS is set) Redirection is enabled again.
EIP #84341 - Added Separate PCI_UART_INPUT_CLOCK token for setting the Clock for PCI Serial UART.
EIP #81445 - Sredir.bin uses the 0xF000:0xEA90 fixed location and this needs to removed
EIP #90467 - LoopBack Detection is implemented in Legacy Console Redirection. If LoopBack Device found , Interrupts are not hooked. Also added check for any false device from Super IO.
EIP #93687 - StackOverFlow Occurs in DOS with Legacy Console redirection enabled when multiple interrupt call happens in presence of Kbcemulation and while executing RU.exe. So, we are exiting out of our hook routine if already any other interrupt is being Serviced.
Files Changed for General Bug Fixes and EIP Addressed in this Label:
Root\Core\em\Sredir\Legacysredir.c (EIP #84341, #95246)
Root\Core\em\Sredir\Legacysredir.sdl (EIP #86934, #90333)
Root\Core\em\Sredir\Legacysredir.dxs (EIP #84345)
Root\Core\em\Sredir\LegacySmmSredir.c (EIP #84345)
Root\Board\EM\SredirLegacySredir_Setup.c (EIP #84345, #94504)

Files Changed in Sredir.bin
Root\Core\em\Sredir\Sredir.asm - (EIP#81445, #90467, #95246)
Root\Core\em\Sredir\GRAPHREDIR.ASM - (EIP#81445, #95246, #93687)
Root\Core\em\Sredir\OR_MOD.EQA - (EIP#93687)
Root\Core\em\Sredir\KEYREDIR.ASM- (EIP#81445)
Root\Core\em\Sredir\INT10REDIR.ASM- (EIP#81445, #95246)
Known Limitations and Erratas in this label:
NONE
Remaining Issues:
Issue(s) with a Description
NONE
Unit Testing:
Validate the Legacy Serial Redirection module with the following test cases and conditions.

  1. Redirection Enable/Disable Testing

    • Enable the Redirection on COM port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS
    • Disable the Redirection on COM port in Setup
    • Test there is no Screen redirection and remote keyboard not working in Legacy option ROM and DOS.

  2. Baud Rate Testing

    • Enable the Redirection on COM port in Setup
    • Change the Baud rate to different option available in the setup menu
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  3. Terminal Type Testing

    • Enable the Redirection on COM port in Setup
    • Change the Terminal type to different option available in the setup menu
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  4. Test Redirection on Multiple option ROM

    • Enable the Multiple Option ROM in the system
    • Enable the Redirection on COM port in Setup
    • Test the Screen redirection and Remote keyboard in all Legacy option ROM and DOS

  5. ESC Key Sequence Testing

    • Enable the Redirection on COM port in Setup
    • Test the ESC Key sequence in Legacy option ROM and DOS

    Note : ESC key Sequence List is provided in the Terminal.chm

  6. Redirection Testing on Headless system (No VGA)

    • Enable the Redirection on COM port in Setup
    • Make sure system does not have VGA controller
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    Note : Some option ROM and DOS utility uses the 0xB8000 write to display the data on the screen. On this case redirection will not work. This is expected result in no VGA system.

  7. Remote Keyboard Testing on No KBC systems

    • Enable the Redirection on COM port in Setup
    • Make sure system does not have KBC
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    Note : Some option ROM and DOS utility uses Port 60/64 to read the data. On this case remote keyboard data will not work. This is expected result in no KBC systems.

  8. PCI Serial port Testing

    • Connect the PCI Serial device in the system
    • Enable the Redirection on PCI serial port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  9. MMIO Serial Port Testing

    • Connect the Serial device into the system that uses the MMIO resource
    • Enable the Redirection on MMIO serial port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS
Validation Testing:
START
Here is the Quality Assurance System Test Plan
Here is the Quality Assurance Test Results
Release History:
4.5.5_LegacySredir_34

  • [TAG] EIP86934
    [Category] Bug Fix
    [Severity] Minor
    [Symptom] Build error in Legacy Serial Redirection eModule when Terminal module is disabled.
    [RootCause] Legacy Serial Redirection uses tokens from Terminal eModule.
    [Solution] Legacy Serial Redirection eModule is enabled only when terminal eModule is enabled.
    [Files] LegacySredir.sdl

  • [TAG] EIP90333
    [Description] CSM_SUPPORT dependcey should be added for the Legacy console redirection driver.
    [Files] LegacySredir.sdl

  • [TAG] EIP84345
    [Category] Improvement
    [Description] Error checking and SMM dependency added
    [Files] LegacySmmSredir.c, LegacySredir.dxs

  • [TAG] EIP84341
    [Category] Improvement
    [Description] Added Separate PCI_UART_INPUT_CLOCK token for setting the Clock for PCI Serial UART.
    [Files] Terminal.sdl, TerminalSetup.c, SerialIo.c, LegacySredir.c, LegacySredir_Setup.c

  • [TAG] EIP95246
    [Category] Improvement
    [Description] RTS is used to control redirection flow when FlowControl is enabled. When RTS is disabled (host not ready to accept data) Redirection is disabled and when RTS is enabled (i.e CTS is set) Redirection is enabled again.
    [Files] Terminal.sdl, SerialIo.c, LegacySredir.c, SREDIR.ASM, INT10REDIR.ASM, GRAPHREDIR.ASM

  • [TAG] EIP94504
    [Category] Bug Fix
    [Severity] Normal
    [Symptom] screen color attributes are not transmitted to the serial terminal when the VT100+ terminal type is selected in DOS
    [RootCause] Terminal Type VT100+ was taken as VT100 in Legacy Serial Redirection.
    [Solution] VT100+ is taken as VT100+ type.
    [Files] LegacySredir_Setup.c

SREDIR_CSM53.33:

  • [TAG] EIP81445 [Category] Improvement
    [Description] Sredir.bin uses the 0xF000:0xEA90 fixed location and this needs to removed
    [Files] "SREDIR.ASM""GRAPHREDIR.ASM""KEYREDIR.ASM"

  • [TAG] EIP90467
    [Category] Improvement
    [Description] LoopBack Detection is implemented in Legacy Console Redirection. If LoopBack Device found , Interrupts are not hooked. Also added check for any false device from Super IO.
    [Files] Sredir.asm, SerialIo.c

  • [TAG] EIP95246
    [Category] Improvement
    [Description] RTS is used to control redirection flow when FlowControl is enabled. When RTS is disabled (host not ready to accept data) Redirection is disabled and when RTS is enabled (i.e CTS is set) Redirection is enabled again.
    [Files] Terminal.sdl, SerialIo.c, LegacySredir.c, SREDIR.ASM, INT10REDIR.ASM, GRAPHREDIR.ASM

  • [TAG] EIP93687
    [Category] Improvement
    [Description] StackOverFlow Occurs in DOS with Legacy Console redirection enabled when multiple interrupt call happens in presence of Kbcemulation and while executing RU.exe.
    So, we are exiting out of our hook routine if already any other interrupt is being Serviced.
    [Files] GRAPHREDIR.ASM, OR_MOD.ASM

  • [TAG] EIP98497
    [Category] Bug Fix
    [Severity] Minor
    [Symptom] String Ç displayed in Hyper-terminal while booting to DOS
    [RootCause] The backspace that was sent to clear the Ç character (character that was sent to test for presence of Loopback Device. ) does not clear the character. It just shifts the cursor position by one backwards
    [Solution] BackSpace is sent to move cursor position back and Space is sent to clear the Ç character.
    [Files] SREDIR.ASM

Release_4.5.5_LegacySredir_33
Release_4.5.5_LegacySredir_32

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Legacy Serial Redirection
Component Reference Name: LEGACYSREDIR
Component Type: eModule
Release Date: 2012-10-26
Source Control Label: 4.5.5_LegacySredir_35
Source Control Location: SS: Alaska;$/Alaska/Source/Modules/Legacy Serial Redirection;
Dependencies
Component Dependencies
ONE
Dependent Component Title: Serial Redirection
Dependent Component Reference Name: Terminal
Dependent Source Control Label: 4.6.3_Terminal_51
Dependent Source Control Location: SS: Alaska;$/Alaska/BIN/Modules/Terminal;

File Dependencies
N0NE

Protocol Dependencies
N0NE
Non-Compiled BIN and LIB File(s) within this Component:
Sredir.bin
Component Title: Serial Redirection
Component Reference Name: SREDIR
Component Source Control Label: SREDIR_CSM53.34
Component Source Control Location: SS: Alaska;$/Alaska/CSM16/LegacyRedirection;
Project Source Control Label: 8.00.10.00.0x.64
Project Source Control Location: SS: ALASKA;$/Alaska/CSM16/Complete Project/Furball10.64K/Furball10.veb;
Component Description:
The Legacy Serial Redirection Module can be added to a EFI BIOS to support serial redirection during option rom and in legacy OS. It supports PCI and MMIO Serial devices also. It supports both VGA and Non VGA systems.This module depends on EFI Serial Redirection module(Terminal Module). Legacy Serial Redirection module gets the Setup Values of Serial Redirection Module like SerialPort, Baudrate, Terminal Type, Flowcontrol, Databits, Parity and Stop bits.
Limitation of this eModule:
  • Redirection of Legacy Option rom and Legacy OS is possible through only one COM Port. Higher preference is given to the PCI Serial device, if present.

  • Legacy Redirection through the COM port is possible only if the serial device has the ability to generate IRQ.

  • In a headless system, redirection is not possible if the optionrom or utility is not using int10h for video services.
Sample.cif Sample Description of CIF SampleCom.c Sample Description of C Code Hhm.chm Sample Description of CHM SampleSetup.sd Sample Description SampleBin.bin Sample BIN Description
Filename | Description
Main Component | Root\Core\em\Sredir
LegacySredir.cif | Component information file for the eModule.
LegacySredir.mak | Make file becomes part of the BIOS build process.
LegacySredir.sdl | Contains BIOS build parameters.
LegacySredir.dxs | Dependency Expression file for Legacy Serial Redirection.
LegacySredir.c | File that contains main funtions and protocols to enable legacy serial redirection.
LegacySmmSredir.c | Sw Smi handler to access the MMIO space.
LegacySredir.Chm | Chm file of the emodule.
SerialBootCall.asm | Boot Call for Serial
SredirBootFail.asm | SredirBootFail source
Legacy Sredir Board ModulePart | Root\Board\EM\Sredir - Gets the Terminal Setup values from EFI for setting parameters for legacy console redirecton and Provides OEM to include code before serial read or serial write through SerialCallbackCsm16Api which is a csm16 API #B.
LegacySredir-Board.cif | Component information file of the LegacySredirBoard modulePart of the eModule.
LegacySredir_Setup.c | File that is used to give the com parameters for the legacy serial redirection from Terminal module.
SerialCallback.asm | Callback file for Serial Read and Write Function.
Legacy Sredir Binary ModulePart | Root\Addon - It contains the binary image of Serial Redirection module of CSM16 Source.
LegacySREDIRAddon.cif | Component information file of the Legacy Sredir Binary modulePart of the eModule.
Sredir.bin | This bin file is added from CSM 16 source. This file contains the binary image of the serial redirection emodule.For the current label SREDIR_CSM53.34 Sredir.bin is used.
Legacy Sredir Protocol ModulePart | Root\Include\Protocol - It contains Legacy console redirection Protocol header file which contains all structures and function tables that is being used.
LegacySredirProtocol.cif | Component information file of the Legacy Sredir Protocol modulePart of the eModule.
LegacySredir.h | File that contains all structures and function tables that is used for legacy serial redirection.
BIOS Parameters:
Parameter Name | Type | Description
LEGACYSREDIR_SUPPORT | Boolean | Main switch to enable AMI Legacy Serial Redirection support in Project.
DISPLAY_WHOLE_SCREEN | Boolean | Display the whole screen before disabling the Legacy console redirection.
TRAP_INT10_WORKAROUND | Boolean | Trap Int10 to avoid the b8000 region accessed by Video option rom and Legacy console redirection.
LEGACY_SREDIR_SWSMI | Integer | SW SMI value to be used in Legacy console redirection.
SERIAL_READ_WRITE_CALLBACK | Boolean | 1- Call back will come from Sredir.bin for SerialRead and SerialWrite(SerialCallback.asm).0-Disabled..
COM_MMIO_WIDTH | Integer | MMIO Com device width size. 1- Byte, 2- Word, 4-Dword. Default Set to Dword.
CTRLI_KEY_MAPPING | Boolean | 0- Mapped to TAB key, 1- Mapped to CtrlI Key
CTRLH_KEY_MAPPING | Boolean | 0- Mapped to BackSpace Key, 1- Mapped to CtrlH Key
CLEAR_LEGACYSREDIR_KB_BUFFER_AT_READYTOBOOT | Boolean | ON -> Legacy Serial Redirection KB Buffer will be cleared at ReadyToBoot.\OFF -> Legacy Serial Redirection KB Buffer will not be cleared at ReadyToBoot.
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_40, Dated: 2012-01-04
Visual eBios: RSS.5.72.0220, Dated: 2012-01-04
Compiler Tool(s): Microsoft's Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
NONE
General Bug Fixes and EIP Addressed in this Label:
General Bug Fixes
EIP #102238- Remote Keyboard not working in DOS in ME SOL
EIP #103560- When typing in host KB, it just overwrites text that FreeDOS has displayed in ChiefRiver crb in non VGA Case

EIP Addressed
EIP #101094- Generic change for sdl token to control the ctrl+H key
EIP #102238- Remote Keyboard not working in DOS in ME SOL
EIP #103560- When typing in host KB, it just overwrites text that FreeDOS has displayed in ChiefRiver crb in non VGA Case
Files Changed for General Bug Fixes and EIP Addressed in this Label:
Root\Core\em\Sredir\Legacysredir.c (EIP #101094)
Root\Core\em\Sredir\Legacysredir.sdl (EIP #101094)
Root\Core\em\Terminal\SerialIo.c - (EIP# 102238)

Files Changed in Sredir.bin
Root\Core\em\Sredir\Sredir.asm - (EIP# 101094,#102238)
Root\Core\em\Sredir\INT10REDIR.ASM - (EIP# 103560)
Known Limitations and Erratas in this label:
NONE
Remaining Issues:
Issue(s) with a Description
NONE
Unit Testing:
Validate the Legacy Serial Redirection module with the following test cases and conditions.

  1. Redirection Enable/Disable Testing

    • Enable the Redirection on COM port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS
    • Disable the Redirection on COM port in Setup
    • Test there is no Screen redirection and remote keyboard not working in Legacy option ROM and DOS.

  2. Baud Rate Testing

    • Enable the Redirection on COM port in Setup
    • Change the Baud rate to different option available in the setup menu
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  3. Terminal Type Testing

    • Enable the Redirection on COM port in Setup
    • Change the Terminal type to different option available in the setup menu
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  4. Test Redirection on Multiple option ROM

    • Enable the Multiple Option ROM in the system
    • Enable the Redirection on COM port in Setup
    • Test the Screen redirection and Remote keyboard in all Legacy option ROM and DOS

  5. ESC Key Sequence Testing

    • Enable the Redirection on COM port in Setup
    • Test the ESC Key sequence in Legacy option ROM and DOS

    Note : ESC key Sequence List is provided in the Terminal.chm

  6. Redirection Testing on Headless system (No VGA)

    • Enable the Redirection on COM port in Setup
    • Make sure system does not have VGA controller
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    Note : Some option ROM and DOS utility uses the 0xB8000 write to display the data on the screen. On this case redirection will not work. This is expected result in no VGA system.

  7. Remote Keyboard Testing on No KBC systems

    • Enable the Redirection on COM port in Setup
    • Make sure system does not have KBC
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    Note : Some option ROM and DOS utility uses Port 60/64 to read the data. On this case remote keyboard data will not work. This is expected result in no KBC systems.

  8. PCI Serial port Testing

    • Connect the PCI Serial device in the system
    • Enable the Redirection on PCI serial port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  9. MMIO Serial Port Testing

    • Connect the Serial device into the system that uses the MMIO resource
    • Enable the Redirection on MMIO serial port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  10. Generic change for sdl token to control Ctrl+H

    • Boot to DOS
    • Goto Keyboard Data Area
    • Press Ctrl + H. Checked if Ctrl + H is received or BackSpace.
Validation Testing:
DOCUMENT ANY BQA TESTING RESULTS
Here is the Quality Assurance System Test Plan
Here is the Quality Assurance Test Results
Release History:
4.5.5_LegacySredir_35

  • [TAG] EIP101094
    [Category] Improvement
    [Description] Generic change for sdl token to control the ctrl+H key
    [Files] LegacySredir.sdl, LegacySredir.c, Sredir.asm

SREDIR_CSM53.34:

  • [TAG] EIP103726
    [Category] Improvement
    [Description] Update for Version 34.
    [Files] Sredir.sdl

  • [TAG] EIP102238
    [Category] Bug Fix
    [Severity] Normal
    [Symptom] Remote Keyboard not working in DOS in ME SOL
    [RootCause] DTE will be disbaled for checking Presence of Serial mouse.The DTE is not enabled again, so the application thinks the client is not ready and stops sending the data
    [Solution] DTE(Data Terminal Ready) is enabled after checking the presence of serial mouse.
    [Files] SREDIR.ASM, SerialIo.c

  • [TAG] EIP101094
    [Category] Improvement
    [Description] Generic change for sdl token to control the ctrl+H key
    [Files] LegacySredir.c, LegacySredir.sdl, Sredir.asm

  • [TAG] EIP103560
    [Category] Bug Fix
    [Severity] Important
    [Symptom] When typing in host KB, it just overwrites text that FreeDOS has displayed in ChiefRiver crb in non VGA Case
    [RootCause] FreeDos takes the number of rows on the screen through BDA location 40h:84h which was not updated. This value is used by FreeDos for clearing the screen and CursorPosition Variable was corrupted.
    [Solution] 40h:84h location is updated properly in our int10h hook (Set Video mode) with no. of rows and CursorPosition Variable is made as Word
    [Files] INT10REDIR.ASM

Release_4.5.5_LegacySredir_34
Release_4.5.5_LegacySredir_33
Release_4.5.5_LegacySredir_32

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Legacy Serial Redirection
Component Reference Name: LEGACYSREDIR
Component Type: eModule
Release Date: 2013-07-31
Source Control Label: 4.5.5_LegacySredir_36
Source Control Location: SS: Alaska;$/Alaska/Source/Modules/Legacy Serial Redirection;
Dependencies
Component Dependencies
ONE
Dependent Component Title: Serial Redirection
Dependent Component Reference Name: Terminal
Dependent Source Control Label: 4.6.3_Terminal_52
Dependent Source Control Location: SS: Alaska;$/Alaska/BIN/Modules/Terminal;

File Dependencies
N0NE

Protocol Dependencies
N0NE
Non-Compiled BIN and LIB File(s) within this Component:
Sredir.bin
Component Title: Serial Redirection
Component Reference Name: SREDIR
Component Source Control Label: SREDIR_CSM53.35
Component Source Control Location: SS: Alaska;$/Alaska/CSM16/LegacyRedirection;
Project Source Control Label: 8.00.10.00.0x.64
Project Source Control Location: SS: ALASKA;$/Alaska/CSM16/Complete Project/Furball10.64K/Furball10.veb;
Component Description:
The Legacy Serial Redirection Module can be added to a EFI BIOS to support serial redirection during option rom and in legacy OS. It supports PCI and MMIO Serial devices also. It supports both VGA and Non VGA systems.This module depends on EFI Serial Redirection module(Terminal Module). Legacy Serial Redirection module gets the Setup Values of Serial Redirection Module like SerialPort, Baudrate, Terminal Type, Flowcontrol, Databits, Parity and Stop bits.
Limitation of this eModule:
  • Redirection of Legacy Option rom and Legacy OS is possible through only one COM Port. Higher preference is given to the PCI Serial device, if present.

  • Legacy Redirection through the COM port is possible only if the serial device has the ability to generate IRQ.

  • In a headless system, redirection is not possible if the optionrom or utility is not using int10h for video services.
Filename | Description
Main Component | Root\Core\em\Sredir
LegacySredir.cif | Component information file for the eModule.
LegacySredir.mak | Make file becomes part of the BIOS build process.
LegacySredir.sdl | Contains BIOS build parameters.
LegacySredir.dxs | Dependency Expression file for Legacy Serial Redirection.
LegacySredir.c | File that contains main funtions and protocols to enable legacy serial redirection.
LegacySmmSredir.c | Sw Smi handler to access the MMIO space.
LegacySredir.Chm | Chm file of the emodule.
SerialBootCall.asm | Boot Call for Serial
SredirBootFail.asm | SredirBootFail source
Legacy Sredir Board ModulePart | Root\Board\EM\Sredir - Gets the Terminal Setup values from EFI for setting parameters for legacy console redirecton and Provides OEM to include code before serial read or serial write through SerialCallbackCsm16Api which is a csm16 API #B.
LegacySredir-Board.cif | Component information file of the LegacySredirBoard modulePart of the eModule.
LegacySredir_Setup.c | File that is used to give the com parameters for the legacy serial redirection from Terminal module.
SerialCallback.asm | Callback file for Serial Read and Write Function.
Legacy Sredir Binary ModulePart | Root\Addon - It contains the binary image of Serial Redirection module of CSM16 Source.
LegacySREDIRAddon.cif | Component information file of the Legacy Sredir Binary modulePart of the eModule.
Sredir.bin | This bin file is added from CSM 16 source. This file contains the binary image of the serial redirection emodule.For the current label SREDIR_CSM53.35 Sredir.bin is used.
Legacy Sredir Protocol ModulePart | Root\Include\Protocol - It contains Legacy console redirection Protocol header file which contains all structures and function tables that is being used.
LegacySredirProtocol.cif | Component information file of the Legacy Sredir Protocol modulePart of the eModule.
LegacySredir.h | File that contains all structures and function tables that is used for legacy serial redirection.
BIOS Parameters:
Parameter Name | Type | Description
LEGACYSREDIR_SUPPORT | Boolean | Main switch to enable AMI Legacy Serial Redirection support in Project.
DISPLAY_WHOLE_SCREEN | Boolean | Display the whole screen before disabling the Legacy console redirection.
TRAP_INT10_WORKAROUND | Boolean | Trap Int10 to avoid the b8000 region accessed by Video option rom and Legacy console redirection.
LEGACY_SREDIR_SWSMI | Integer | SW SMI value to be used in Legacy console redirection.
SERIAL_READ_WRITE_CALLBACK | Boolean | 1- Call back will come from Sredir.bin for SerialRead and SerialWrite(SerialCallback.asm).0-Disabled..
COM_MMIO_WIDTH | Integer | MMIO Com device width size. 1- Byte, 2- Word, 4-Dword. Default Set to Dword.
CTRLI_KEY_MAPPING | Boolean | 0- Mapped to TAB key, 1- Mapped to CtrlI Key
CTRLH_KEY_MAPPING | Boolean | 0- Mapped to BackSpace Key, 1- Mapped to CtrlH Key
CHECK_FOR_LOOPBACK_DEVICE | Boolean | 0- hardware Loop back checking disabled 1- Hardware loopback checking enabled and if present redirection skipped for the port
CLEAR_LEGACYSREDIR_KB_BUFFER_AT_READYTOBOOT | Boolean | ON -> Legacy Serial Redirection KB Buffer will be cleared at ReadyToBoot.\OFF -> Legacy Serial Redirection KB Buffer will not be cleared at ReadyToBoot.
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_40, Dated: 2012-01-04
Visual eBios: RSS.5.72.0220, Dated: 2012-01-04
Compiler Tool(s): Microsoft's Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
NONE
General Bug Fixes and EIP Addressed in this Label:
General Bug Fixes
EIP #122394- 0xE0000~0xEFFFF was overwrite by Legacy Serial Redirection module.
EIP #123584- when active PCI console redirectioin support, keyboard not response at POST stage
EIP #110859- Legacy serial redirection always works on last COM port
EIP #105512- Some part of the video screen is not updated on the redirection screen.
EIP #130895- Parsing incomplete while creating chm for CSM16/Legacy Redirection module

EIP Addressed
EIP #122654- Hardware Loopback device checking added.
EIP #125655- MMIO Address validated before reading or writing to the MMIO region in the SW SMI handler
Files Changed for General Bug Fixes and EIP Addressed in this Label:
Root\Core\em\Sredir\Legacysredir.c (EIP #122394, #123584)
Root\Core\em\Sredir\LegacySmmSredir.c (EIP #125655)
Root\Core\em\Sredir\LegacySredir.dxs (EIP #125655)
Root\Board\EM\Sredir\LegacySredir_Setup.C (EIP #122654, #110859)
Root\Core\em\Sredir\Legacysredir.sdl (EIP #122654)
Root\Core\em\Sredir\SerialBootCall.asm (EIP #122394)
Root\Core\em\Sredir\SredirBootFail.asm (EIP #122394)

Files Changed in Sredir.bin
Root\BSP\eM\Sredir\GRAPHREDIR.ASM - (EIP#105512, #130895)
Root\BSP\eM\Sredir\INT10REDIR.ASM - (EIP#130895)
Known Limitations and Erratas in this label:
NONE
Remaining Issues:
Issue(s) with a Description
NONE
Unit Testing:
Validate the Legacy Serial Redirection module with the following test cases and conditions.

  1. Redirection Enable/Disable Testing

    • Enable the Redirection on COM port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS
    • Disable the Redirection on COM port in Setup
    • Test there is no Screen redirection and remote keyboard not working in Legacy option ROM and DOS.

  2. Baud Rate Testing

    • Enable the Redirection on COM port in Setup
    • Change the Baud rate to different option available in the setup menu
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  3. Terminal Type Testing

    • Enable the Redirection on COM port in Setup
    • Change the Terminal type to different option available in the setup menu
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  4. Test Redirection on Multiple option ROM

    • Enable the Multiple Option ROM in the system
    • Enable the Redirection on COM port in Setup
    • Test the Screen redirection and Remote keyboard in all Legacy option ROM and DOS

  5. ESC Key Sequence Testing

    • Enable the Redirection on COM port in Setup
    • Test the ESC Key sequence in Legacy option ROM and DOS

    Note : ESC key Sequence List is provided in the Terminal.chm

  6. Redirection Testing on Headless system (No VGA)

    • Enable the Redirection on COM port in Setup
    • Make sure system does not have VGA controller
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    Note : Some option ROM and DOS utility uses the 0xB8000 write to display the data on the screen. On this case redirection will not work. This is expected result in no VGA system.

  7. Remote Keyboard Testing on No KBC systems

    • Enable the Redirection on COM port in Setup
    • Make sure system does not have KBC
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    Note : Some option ROM and DOS utility uses Port 60/64 to read the data. On this case remote keyboard data will not work. This is expected result in no KBC systems.

  8. PCI Serial port Testing

    • Connect the PCI Serial device in the system
    • Enable the Redirection on PCI serial port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  9. MMIO Serial Port Testing

    • Connect the Serial device into the system that uses the MMIO resource
    • Enable the Redirection on MMIO serial port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  10. Generic change for sdl token to control Ctrl+H

    • Boot to DOS
    • Goto Keyboard Data Area
    • Press Ctrl + H. Checked if Ctrl + H is received or BackSpace.
Validation Testing:
DOCUMENT ANY BQA TESTING RESULTS
Here is the Quality Assurance System Test Plan
Here is the Quality Assurance Test Results
Release History:
4.5.5_LegacySredir_36

Note: This label is validated with CppCheck version 1.60.1
  • [TAG] EIP122654
    [Category] Improvement
    [Description] Hardware Loopback device checking added.
    [Files] legacySredir_Setup.c, LegacySredir.sdl

  • [TAG] EIP125655
    [Category] Improvement
    [Description] MMIO Address validated before reading or writing to the MMIO region in the SW SMI handler
    [Files] LegacySmmSredir.c, LegacySredir.dxs

  • [TAG] EIP122394
    [Category] Bug Fix
    [Severity] Normal
    [Symptom] 0xE0000~0xEFFFF was overwrite by Legacy Serial Redirection module.
    [RootCause] LegacySerialRedirection driver assumed that SerialBootcall.asm will be the first entry in CsmOem16Functions which was wrong.
    [Solution] Added a Signature check code for SerialBootCall.asm and SredirBootFail.asm before it writes to the memory location 0xE0000~0xEFFFF.
    [Files] LegacySredir.c, SerialBootCall.asm, SredirBootFail.asm

  • TAG] EIP123584
    [Category] Bug Fix
    [Severity] Minor
    [Symptom] when active PCI console redirectioin support, keyboard not response at POST stage
    [RootCause] CSM16 region status changed by Legacy Serial Redirection driver
    [Solution] CSM16 region unlocked and locked again only when the Legacy OS booting happens
    [Files] Legacysredir.c

  • [TAG] EIP110859
    [Category] Bug Fix
    [Severity] Minor
    [Symptom] Legacy serial redirection always works on last COM port
    [RootCause] COM port selection continued for all the COM ports instead breaking when it's find the 1st COM port
    [Solution] When the 1st com port found for redirection returned from the function
    [Files] LegacySredir_Setup.c

SREDIR_CSM53.35:

  • [TAG] EIP105512
    [Category] Bug Fix
    [Severity] Important
    [Symptom] Some part of the video screen is not updated on the redirection screen.
    [RootCause] Current Checksum calculations has some limitations because of which the checksum is same even though the character in the line is changed.
    [Solution] Checksum is calculated using 32bit edb 88320 CRC concept, considering only Character and attribute which overcomes the limitation and cursor position is updated in Int08h when cursor position is changed alone.
    [Files] GRAPHREDIR.ASM

  • [TAG] EIP130895
    [Category] Bug Fix
    [Severity] Normal
    [Symptom] Parsing incomplete while creating chm for CSM16/Legacy Redirection module
    [RootCause] was missing in INT10REDIR.ASM and GRAPHREDIR.ASM files
    [Solution] Added the ;
    [Files] INT10REDIR.ASM, GRAPHREDIR.ASM

Release_4.5.5_LegacySredir_35
Release_4.5.5_LegacySredir_34
Release_4.5.5_LegacySredir_33
Release_4.5.5_LegacySredir_32

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Legacy Serial Redirection
Component Reference Name: LEGACYSREDIR
Component Type: eModule
Release Date: 2014-01-27
Source Control Label: 4.5.5_LegacySredir_37
Source Control Location: SS: Alaska;$/Alaska/Source/Modules/Legacy Serial Redirection;
Dependencies
Component Dependencies
ONE
Dependent Component Title: Serial Redirection
Dependent Component Reference Name: Terminal
Dependent Source Control Label: 4.6.3_Terminal_53
Dependent Source Control Location: SS: Alaska;$/Alaska/BIN/Modules/Terminal;

File Dependencies
N0NE

Protocol Dependencies
N0NE
Non-Compiled BIN and LIB File(s) within this Component:
Sredir.bin
Component Title: Serial Redirection
Component Reference Name: SREDIR
Component Source Control Label: SREDIR_CSM53.36
Component Source Control Location: SS: Alaska;$/Alaska/CSM16/LegacyRedirection;
Project Source Control Label: 8.00.10.00.0x.64
Project Source Control Location: SS: ALASKA;$/Alaska/CSM16/Complete Project/Furball10.64K/Furball10.veb;
Component Description:
The Legacy Serial Redirection Module can be added to a EFI BIOS to support serial redirection during option rom and in legacy OS. It supports PCI and MMIO Serial devices also. It supports both VGA and Non VGA systems.This module depends on EFI Serial Redirection module(Terminal Module). Legacy Serial Redirection module gets the Setup Values of Serial Redirection Module like SerialPort, Baudrate, Terminal Type, Flowcontrol, Databits, Parity and Stop bits.
Limitation of this eModule:
  • Redirection of Legacy Option rom and Legacy OS is possible through only one COM Port. Higher preference is given to the PCI Serial device, if present.

  • Legacy Redirection through the COM port is possible only if the serial device has the ability to generate IRQ.

  • In a headless system, redirection is not possible if the optionrom or utility is not using int10h for video services.
Filename | Description
Main Component | Root\Core\em\Sredir
LegacySredir.cif | Component information file for the eModule.
LegacySredir.mak | Make file becomes part of the BIOS build process.
LegacySredir.sdl | Contains BIOS build parameters.
LegacySredir.dxs | Dependency Expression file for Legacy Serial Redirection.
LegacySredir.c | File that contains main funtions and protocols to enable legacy serial redirection.
LegacySmmSredir.c | Sw Smi handler to access the MMIO space.
LegacySredir.Chm | Chm file of the emodule.
SerialBootCall.asm | Boot Call for Serial
SredirBootFail.asm | SredirBootFail source
Legacy Sredir Board ModulePart | Root\Board\EM\Sredir - Gets the Terminal Setup values from EFI for setting parameters for legacy console redirecton and Provides OEM to include code before serial read or serial write through SerialCallbackCsm16Api which is a csm16 API #B.
LegacySredir-Board.cif | Component information file of the LegacySredirBoard modulePart of the eModule.
LegacySredir_Setup.c | File that is used to give the com parameters for the legacy serial redirection from Terminal module.
SerialCallback.asm | Callback file for Serial Read and Write Function.
Legacy Sredir Binary ModulePart | Root\Addon - It contains the binary image of Serial Redirection module of CSM16 Source.
LegacySREDIRAddon.cif | Component information file of the Legacy Sredir Binary modulePart of the eModule.
Sredir.bin | This bin file is added from CSM 16 source. This file contains the binary image of the serial redirection emodule.For the current label SREDIR_CSM53.35 Sredir.bin is used.
Legacy Sredir Protocol ModulePart | Root\Include\Protocol - It contains Legacy console redirection Protocol header file which contains all structures and function tables that is being used.
LegacySredirProtocol.cif | Component information file of the Legacy Sredir Protocol modulePart of the eModule.
LegacySredir.h | File that contains all structures and function tables that is used for legacy serial redirection.
BIOS Parameters:
Parameter Name | Type | Description
LEGACYSREDIR_SUPPORT | Boolean | Main switch to enable AMI Legacy Serial Redirection support in Project.
DISPLAY_WHOLE_SCREEN | Boolean | Display the whole screen before disabling the Legacy console redirection.
TRAP_INT10_WORKAROUND | Boolean | Trap Int10 to avoid the b8000 region accessed by Video option rom and Legacy console redirection.
LEGACY_SREDIR_SWSMI | Integer | SW SMI value to be used in Legacy console redirection.
SERIAL_READ_WRITE_CALLBACK | Boolean | 1- Call back will come from Sredir.bin for SerialRead and SerialWrite(SerialCallback.asm).0-Disabled..
COM_MMIO_WIDTH | Integer | MMIO Com device width size. 1- Byte, 2- Word, 4-Dword. Default Set to Dword.
CTRLI_KEY_MAPPING | Boolean | 0- Mapped to TAB key, 1- Mapped to CtrlI Key
CTRLH_KEY_MAPPING | Boolean | 0- Mapped to BackSpace Key, 1- Mapped to CtrlH Key
CHECK_FOR_LOOPBACK_DEVICE | Boolean | 0- hardware Loop back checking disabled 1- Hardware loopback checking enabled and if present redirection skipped for the port
CLEAR_LEGACYSREDIR_KB_BUFFER_AT_READYTOBOOT | Boolean | ON -> Legacy Serial Redirection KB Buffer will be cleared at ReadyToBoot.\OFF -> Legacy Serial Redirection KB Buffer will not be cleared at ReadyToBoot.
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_41, Dated: 2013-03-15
Visual eBios: RSS.5.73.0243, Dated: 2013-03-15
Compiler Tool(s): Microsoft's Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
NONE
General Bug Fixes and EIP Addressed in this Label:
General Bug Fixes
EIP #134807- Redirection doesn't work with MMIO PCI device
EIP #144074- Not able to recognize Esc key sequence for Ctrl and Alt key
EIP #146597 - Build Error in Legacy Serial Redirection for label 4.5.5_LegacySredir_37
EIP #147701 - DOS redirection is not working in Shark Bay platform.

EIP Addressed
EIP #134807- Redirection doesn't work with MMIO PCI device
EIP #144074- Not able to recognize Esc key sequence for Ctrl and Alt key
EIP #146051- Refresh Key needs to be configured via SDL token for Legacy Serial Redirection.
EIP #129549- Serial Redirection has dependency on Amilegacy16.bin
EIP #144752 - Refresh Key needs to be configured via SDL token for Legacy Serial Redirection.
EIP #146597 - Build Error in Legacy Serial Redirection for label 4.5.5_LegacySredir_37
EIP #147701 - DOS redirection is not working in Shark Bay platform.
Files Changed for General Bug Fixes and EIP Addressed in this Label:
Root\Core\em\Sredir\Legacysredir.c (EIP #134807, #146051, #129549, #147701)
Root\Addon\Sredir.bin (EIP #134807, #146051)
Root\Board\EM\Sredir\LegacySredir_Setup.C (EIP #146051)
Root\Include\Protocol\LegacySredir.h (EIP #146051, #129549, #146597)

Files Changed in Sredir.bin
Root\CORE\eM\Sredir\OR_MOD.EQU - (EIP #129549, #144752)
Root\CORE\eM\Sredir\SREDIR.ASM - (EIP #129549, #144752, #134807)
Root\CORE\eM\Sredir\KEYREDIR.ASM - (EIP #144752, #144074)
Known Limitations and Erratas in this label:
NONE
Remaining Issues:
NONE
Unit Testing:
Validate the Legacy Serial Redirection module with the following test cases and conditions.

  1. Redirection Enable/Disable Testing

    • Enable the Redirection on COM port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS
    • Disable the Redirection on COM port in Setup
    • Test there is no Screen redirection and remote keyboard not working in Legacy option ROM and DOS.

  2. Baud Rate Testing

    • Enable the Redirection on COM port in Setup
    • Change the Baud rate to different option available in the setup menu
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  3. Terminal Type Testing

    • Enable the Redirection on COM port in Setup
    • Change the Terminal type to different option available in the setup menu
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  4. Test Redirection on Multiple option ROM

    • Enable the Multiple Option ROM in the system
    • Enable the Redirection on COM port in Setup
    • Test the Screen redirection and Remote keyboard in all Legacy option ROM and DOS

  5. ESC Key Sequence Testing

    • Enable the Redirection on COM port in Setup
    • Test the ESC Key sequence in Legacy option ROM and DOS

    Note : ESC key Sequence List is provided in the Terminal.chm

  6. Redirection Testing on Headless system (No VGA)

    • Enable the Redirection on COM port in Setup
    • Make sure system does not have VGA controller
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    Note : Some option ROM and DOS utility uses the 0xB8000 write to display the data on the screen. On this case redirection will not work. This is expected result in no VGA system.

  7. Remote Keyboard Testing on No KBC systems

    • Enable the Redirection on COM port in Setup
    • Make sure system does not have KBC
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    Note : Some option ROM and DOS utility uses Port 60/64 to read the data. On this case remote keyboard data will not work. This is expected result in no KBC systems.

  8. PCI Serial port Testing

    • Connect the PCI Serial device in the system
    • Enable the Redirection on PCI serial port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  9. MMIO Serial Port Testing

    • Connect the Serial device into the system that uses the MMIO resource
    • Enable the Redirection on MMIO serial port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  10. Generic change for sdl token to control Ctrl+H

    • Boot to DOS
    • Goto Keyboard Data Area
    • Press Ctrl + H. Checked if Ctrl + H is received or BackSpace.
Validation Testing:
Here is the Quality Assurance System Test Plan
Here is the Quality Assurance Test Results
Release History:
4.5.5_LegacySredir_37

  • [TAG] EIP134807
    [Category] Bug Fix
    [Severity] Important
    [Symptom] Redirection doesn't work with MMIO PCI device
    [RootCause] CTRLH_MAPPING and MMIO_WORD_WIDTH both the equate uses the same values.
    [Solution] Modified CTRLH_MAPPING equate value
    [Files] LegacySredir.c, Sredir.bin

  • [TAG] EIP146051
    [Category] Improvement
    [Description] Refresh Key needs to be configured via SDL token for Legacy Serial Redirection.
    [Files] LegacySredir.c, LegacySredir_Setup.C, LegacySredir.h, Sredir.bin

  • [TAG] EIP129549
    [Category] Improvement
    [Description] Serial Redirection has dependency on Amilegacy16.bin
    [Files] LegacySredir.c, LegacySredir.h, OR_MOD.EQU, SREDIR.ASM

  • [TAG] EIP146597
    [Category] Bug Fix
    [Severity] Important
    [Symptom] Build Error in Legacy Serial Redirection for label 4.5.5_LegacySredir_37
    [RootCause] Modules Which were consuming EFI_LEGACY_SREDIR_PROTOCOL had been throwing error, since the Protocol header file LegacySredir.h has been updated.
    [Solution] Added #define Macros for backward Compatibility
    [Files] LegacySredir.h

  • [TAG] EIP147701
    [Category] Bug Fix
    [Severity] Important
    [Symptom] DOS redirection is not working in Shark Bay platform.
    [RootCause] Wrong Value assigned to CTRLH_MAPPING Macro in LegacySredir.c
    [Solution] Assigned Value to CTRLH_MAPPING Macro, according to the value defined for CTRLH_MAPPING Equate in Sredir.asm
    [Files] LegacySredir.c

SREDIR_CSM53.36:

  • [TAG] EIP144752
    [Category] Improvement
    [Description] Refresh Key needs to be configured via SDL token for Legacy Serial Redirection.
    [Files] KEYREDIR.ASM, OR_MOD.EQU, SREDIR.SDL, SREDIR.ASM

  • [TAG] EIP134807
    [Category] Bug Fix
    [Severity] Minor
    [Symptom] Redirection doesn't work with MMIO PCI device
    [RootCause] CTRLH_MAPPING and MMIO_WORD_WIDTH both the equate uses the same values.
    [Solution] Modified CTRLH_MAPPING equate value
    [Files] Sredir.Asm

  • [TAG] EIP129549
    [Category] Improvement
    [Description] Serial Redirection has dependency on Amilegacy16.bin
    [Files] OR_MOD.EQU, SREDIR.ASM, LegacySredir.c, LegacySredir.h

  • [TAG] EIP144074
    [Category] Bug Fix
    [Severity] Important
    [Symptom] Not able to recognize Esc key sequence for Ctrl and Alt key
    [RootCause] CTRL and ALT Key ESC key break code send before next key received.
    [Solution] Waited for another key if the ctrl or alt ESC key sequence is received.
    [Files] KEYREDIR.ASM

Release_4.5.5_LegacySredir_36
Release_4.5.5_LegacySredir_35
Release_4.5.5_LegacySredir_34
Release_4.5.5_LegacySredir_33
Release_4.5.5_LegacySredir_32

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Legacy Serial Redirection
Component Reference Name: LEGACYSREDIR
Component Type: eModule
Release Date: 2014-07-17
Source Control Label: 4.5.5_LegacySredir_38
Source Control Location: SS: Alaska;$/Alaska/Source/Modules/Legacy Serial Redirection;
Dependencies
Component Dependencies
ONE
Dependent Component Title: Serial Redirection
Dependent Component Reference Name: Terminal
Dependent Source Control Label: 4.6.3_Terminal_55
Dependent Source Control Location: SS: Alaska;$/Alaska/BIN/Modules/Terminal;

File Dependencies
N0NE

Protocol Dependencies
N0NE
Non-Compiled BIN and LIB File(s) within this Component:
Sredir.bin
Component Title: Serial Redirection
Component Reference Name: SREDIR
Component Source Control Label: SREDIR_CSM53.36
Component Source Control Location: SS: Alaska;$/Alaska/CSM16/LegacyRedirection;
Project Source Control Label: 8.00.10.00.0x.64
Project Source Control Location: SS: ALASKA;$/Alaska/CSM16/Complete Project/Furball10.64K/Furball10.veb;
Component Description:
The Legacy Serial Redirection Module can be added to a EFI BIOS to support serial redirection during option rom and in legacy OS. It supports PCI and MMIO Serial devices also. It supports both VGA and Non VGA systems.This module depends on EFI Serial Redirection module(Terminal Module). Legacy Serial Redirection module gets the Setup Values of Serial Redirection Module like SerialPort, Baudrate, Terminal Type, Flowcontrol, Databits, Parity and Stop bits.
Limitation of this eModule:
  • Legacy Redirection through the COM port is possible only if the serial device has the ability to generate IRQ.

  • In a headless system, redirection is not possible if the optionrom or utility is not using int10h for video services.
Filename | Description
Main Component | Root\Core\em\Sredir
LegacySredir.cif | Component information file for the eModule.
LegacySredir.mak | Make file becomes part of the BIOS build process.
LegacySredir.sdl | Contains BIOS build parameters.
LegacySredir.dxs | Dependency Expression file for Legacy Serial Redirection.
LegacySredir.c | File that contains main funtions and protocols to enable legacy serial redirection.
LegacySmmSredir.c | Sw Smi handler to access the MMIO space.
LegacySredir.Chm | Chm file of the emodule.
SerialBootCall.asm | Boot Call for Serial
SredirBootFail.asm | SredirBootFail source
Legacy Sredir Board ModulePart | Root\Board\EM\Sredir - Gets the Terminal Setup values from EFI for setting parameters for legacy console redirecton and Provides OEM to include code before serial read or serial write through SerialCallbackCsm16Api which is a csm16 API #B.
LegacySredir-Board.cif | Component information file of the LegacySredirBoard modulePart of the eModule.
LegacySredir_Setup.c | File that is used to give the com parameters for the legacy serial redirection from Terminal module.
SerialCallback.asm | Callback file for Serial Read and Write Function.
Legacy Sredir Binary ModulePart | Root\Addon - It contains the binary image of Serial Redirection module of CSM16 Source.
LegacySREDIRAddon.cif | Component information file of the Legacy Sredir Binary modulePart of the eModule.
Sredir.bin | This bin file is added from CSM 16 source. This file contains the binary image of the serial redirection emodule.For the current label SREDIR_CSM53.35 Sredir.bin is used.
Legacy Sredir Protocol ModulePart | Root\Include\Protocol - It contains Legacy console redirection Protocol header file which contains all structures and function tables that is being used.
LegacySredirProtocol.cif | Component information file of the Legacy Sredir Protocol modulePart of the eModule.
LegacySredir.h | File that contains all structures and function tables that is used for legacy serial redirection.
BIOS Parameters:
Parameter Name | Type | Description
LEGACYSREDIR_SUPPORT | Boolean | Main switch to enable AMI Legacy Serial Redirection support in Project.
DISPLAY_WHOLE_SCREEN | Boolean | Display the whole screen before disabling the Legacy console redirection.
TRAP_INT10_WORKAROUND | Boolean | Trap Int10 to avoid the b8000 region accessed by Video option rom and Legacy console redirection.
LEGACY_SREDIR_SWSMI | Integer | SW SMI value to be used in Legacy console redirection.
SERIAL_READ_WRITE_CALLBACK | Boolean | 1- Call back will come from Sredir.bin for SerialRead and SerialWrite(SerialCallback.asm).0-Disabled..
COM_MMIO_WIDTH | Integer | MMIO Com device width size. 1- Byte, 2- Word, 4-Dword. Default Set to Dword.
CTRLI_KEY_MAPPING | Boolean | 0- Mapped to TAB key, 1- Mapped to CtrlI Key
CTRLH_KEY_MAPPING | Boolean | 0- Mapped to BackSpace Key, 1- Mapped to CtrlH Key
CHECK_FOR_LOOPBACK_DEVICE | Boolean | 0- hardware Loop back checking disabled 1- Hardware loopback checking enabled and if present redirection skipped for the port
CLEAR_LEGACYSREDIR_KB_BUFFER_AT_READYTOBOOT | Boolean | ON -> Legacy Serial Redirection KB Buffer will be cleared at ReadyToBoot.\OFF -> Legacy Serial Redirection KB Buffer will not be cleared at ReadyToBoot.
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_41, Dated: 2013-03-15
Visual eBios: RSS.5.73.0243, Dated: 2013-03-15
Compiler Tool(s): Microsoft's Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
NONE
General Bug Fixes and EIP Addressed in this Label:
General Bug Fixes
EIP #172120- Redirection After BIOS POST feature is not working.
EIP #172101- Build Error in Legacy Serial Redirection Driver when COM_MMIO_WIDTH SDL token value is 2.

EIP Addressed
EIP #172073- Setup option for Legacy Serial Redirection.
Files Changed for General Bug Fixes and EIP Addressed in this Label:
Root\Board\EM\Sredir\LegacySredir_Setup.C (EIP #172101,#172073)
Root\Core\EM\Sredir\SerialBootCall.asm (EIP #172120)
Root\Core\EM\Sredir\SerialBootFail.asm (EIP #172120)
Known Limitations and Erratas in this label:
NONE
Remaining Issues:
NONE
Unit Testing:
Validate the Legacy Serial Redirection module with the following test cases and conditions.

  1. Redirection Enable/Disable Testing

    • Enable the Redirection on COM port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS
    • Disable the Redirection on COM port in Setup
    • Test there is no Screen redirection and remote keyboard not working in Legacy option ROM and DOS.

  2. Baud Rate Testing

    • Enable the Redirection on COM port in Setup
    • Change the Baud rate to different option available in the setup menu
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  3. Terminal Type Testing

    • Enable the Redirection on COM port in Setup
    • Change the Terminal type to different option available in the setup menu
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  4. Test Redirection on Multiple option ROM

    • Enable the Multiple Option ROM in the system
    • Enable the Redirection on COM port in Setup
    • Test the Screen redirection and Remote keyboard in all Legacy option ROM and DOS

  5. ESC Key Sequence Testing

    • Enable the Redirection on COM port in Setup
    • Test the ESC Key sequence in Legacy option ROM and DOS

    Note : ESC key Sequence List is provided in the Terminal.chm

  6. Redirection Testing on Headless system (No VGA)

    • Enable the Redirection on COM port in Setup
    • Make sure system does not have VGA controller
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    Note : Some option ROM and DOS utility uses the 0xB8000 write to display the data on the screen. On this case redirection will not work. This is expected result in no VGA system.

  7. Remote Keyboard Testing on No KBC systems

    • Enable the Redirection on COM port in Setup
    • Make sure system does not have KBC
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    Note : Some option ROM and DOS utility uses Port 60/64 to read the data. On this case remote keyboard data will not work. This is expected result in no KBC systems.

  8. PCI Serial port Testing

    • Connect the PCI Serial device in the system
    • Enable the Redirection on PCI serial port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  9. MMIO Serial Port Testing

    • Connect the Serial device into the system that uses the MMIO resource
    • Enable the Redirection on MMIO serial port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  10. Generic change for sdl token to control Ctrl+H

    • Boot to DOS
    • Goto Keyboard Data Area
    • Press Ctrl + H. Checked if Ctrl + H is received or BackSpace.
Validation Testing:
Here is the Quality Assurance System Test Plan
Here is the Quality Assurance Test Results
Release History:
4.5.5_LegacySredir_38

  • [TAG] EIP172120
    [Category] Bug Fix
    [Severity] Important
    [Symptom] Redirection After BIOS POST feature is not working.
    [RootCause] The flag Indicating whether redirection can happen or not is not updated. 1)The way of Defining signatures and Comparing Signatures are different. 2)The variables defined in CSM16 files( SreDirBin_Base_Segadd, SreDirBin_Base_Offadd, Flag ) are accessed wrongly.
    [Solution] a) The pointer used to check for signatures must be UINT32* or we should define signatures byte by byte (db '$','S','B','F', db '$','S','B','C'). so changed the way of defining Signatures in CSM16 files from dd '$SBF' to db '$','S','B','F'. b) Variables should be accessed using OFFSET Keyword.
    [Files] SerialBootCall.asm, SerialBootFail.asm

  • [TAG] EIP172073
    [Category] Improvement
    [Description] Setup option for Legacy Serial Redirection.
    [Files] Terminal.sd, Terminal.uni, LegacySredir_Setup.c

  • [TAG] EIP172101
    [Category] Bug Fix
    [Severity] Important
    [Symptom] Build Error in Legacy Serial Redirection Driver when COM_MMIO_WIDTH SDL token value is 2.
    [RootCause] semicolon was missing.
    [Solution] added semicolon.
    [Files] LegacySredir_Setup.C

Release_4.5.5_LegacySredir_37
Release_4.5.5_LegacySredir_36
Release_4.5.5_LegacySredir_35
Release_4.5.5_LegacySredir_34
Release_4.5.5_LegacySredir_33
Release_4.5.5_LegacySredir_32

© American Megatrends Inc.


LegacySredir

AMIBIOS Document References

Previous Validation Test Report

Validation Test Report 32.htm

Validation Test Report 33.htm

Validation Test Report 34.htm

Validation Test Report 36.htm

Validation Test Report 37.htm

Validation Test Report 38.htm

Validation Test Report 35.html


Release Notes - NDA Required

Validation Test Report for Legacy Serial Redirection Label (INT)_a_4.5.5_LegacySredir_32

Platform Information Form :

Board Information - HuronRiver
BIOS Information (Label, Path) - Labeled'4.6.5.1_VEB_1ABUC102 ';Path 'SS: Alaska;$/Alaska/Projects/Intel/SandyBridge/CougarPoint_HuronRiver_4650_1ABUC/HuronRiver.Veb';
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

2) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

3) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update:

4) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update:

5) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
St atus Update:

6) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

7) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- U/T
Status Update: SUT is with KBC so untestable

8) REF-32342:.N/A Console Redirection via Serial port in without VGA---- U/T
Status Update: SUT is with VGA so untestable

Terminal

9) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:

Platform Information Form :

Board Information - Bromolow
BIOS Information (Label, Path) - Labeled'4.6.4.1_VEB_1AOSX015';SS: Alaska;$/Alaska/Projects/Intel/SandyBridge/CougarPoint_Bromolow_Crb_1AOSX/Bromolow.Veb;
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

2) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

3) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update:

4) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update:

5) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
Status Update:

6) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

7) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- U/T
Status Update: KBC is supported

8) RREF-32342:.N/A Console Redirection via Serial port in without VGA---- <U/T
Status Update: VGA is supported

Terminal

9) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:


Release Notes - NDA Required

Validation Test Report for Legacy Serial Redirection Label (INT)_a_4.5.5_LegacySredir_33

Platform Information Form :

Board Information - HuronRiver
BIOS Information (Label, Path) - Labeled'4.6.5.1_VEB_1ABUC103 ';Path 'SS: Alaska;$/Alaska/Projects/Intel/SandyBridge/CougarPoint_HuronRiver_4650_1ABUC/HuronRiver.Veb';
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

2) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

3) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update:

4) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update: *** To test enable token INSTALL_LEGACY_OS_THROUGH_REMOTE in Terminal.sdl

5) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
St atus Update:

6) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

7) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- U/T
Status Update: *** This platform has On-board KBC controller

8) REF-32342:.N/A Console Redirection via Serial port in without VGA---- U/T
Status Update: S*** This platform has On-board VGA controller

Terminal

9) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:

Platform Information Form :

Board Information - Intel Rosecity CRB
BIOS Information (Label, Path) - Labeled'4.6.5.1_RoseCity_0ABYV0015';SS: Alaska;$/Alaska/Projects/Intel/SandyBridge/Romley/RoseCity_CRB_0ABYV/RoseCity.veb;
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

2) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

3) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update:

4) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update: Linux RHEL 5.4

5) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
Status Update:

6) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

7) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- U/T
Status Update: *** This platform has On-board KBC controlle

8) RREF-32342:.N/A Console Redirection via Serial port in without VGA---- <U/T
Status Update: *** This platform has On-board VGA controller

Terminal

9) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:

Platform Information Form :

Board Information - Chief River
BIOS Information (Label, Path) - Labeled'4.6.5.3_VEB_1APTJ018';SS: Alaska;$/Alaska/Projects/Intel/IvyBridge/PantherPoint_ChiefRiver_Crb_1APTJ/ChiefRiver.veb;
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

2) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

3) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update: *** No PXE option in BIOS. Tested with RAID Option ROM

4) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update: Linux RHEL 5.4

5) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
Status Update:

6) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

7) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- U/T
Status Update: *** This platform has On-board KBC controller

8) RREF-32342:.N/A Console Redirection via Serial port in without VGA---- PASS
Status Update:

Terminal

9) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:

Platform Information Form :

Board Information - Bromolow
BIOS Information (Label, Path) - Labeled'4.6.4.1_VEB_1AOSX015';SS: Alaska;$/Alaska/Projects/Intel/SandyBridge/CougarPoint_Bromolow_Crb_1AOSX/Bromolow.veb;
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

2) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

3) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update:

4) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update:

5) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
Status Update:

6) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

7) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- PASS
Status Update:

8) RREF-32342:.N/A Console Redirection via Serial port in without VGA---- U/T
Status Update:*** This platform has On-board VGA controller

Terminal

9) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:


Release Notes - NDA Required

Validation Test Report for Legacy Serial Redirection Label (INT)_b_4.5.5_LegacySredir_34

Platform Information Form :

Board Information - HuronRiver
BIOS Information (Label, Path) - Labeled'4.6.5.1_VEB_1ABUC104';Path 'SS: Alaska;$/Alaska/Projects/Intel/SandyBridge/CougarPoint_HuronRiver_4650_1ABUC/HuronRiver.Veb';
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

2) REF-32335: .N/A Console Redirection via PCI/e Serial Card---- U/T
Status Update: Test is applicable for only SUT without Serial port

3) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

4) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update: Tested with RAID Option ROM

5) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update:

6) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
St atus Update:

7) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

8) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- U/T
Status Update: This platform has On-board KBC controller

9) REF-32342:.N/A Console Redirection via Serial port in without VGA---- U/T
Status Update: This platform has On-board VGA controller

Terminal

10) REF-33696: .N/A ESC Sequence for Putty ESC[N~ keypad ---- PASS
Status Update:

11) REF-33694: .N/A ESC Sequence for Putty Linux keypad ---- PASS
Status Update:

12) REF-33693: .N/A ESC Sequence for Putty SCO keypad ---- PASS
Status Update:

13) REF-33692: .N/A ESC Sequence for Putty VT400 keypad ---- PASS
Status Update:

14) REF-33695: .N/A ESC Sequence for Putty Xterm R6 keypad ---- PASS
Status Update:

15) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:

Platform Information Form :

Board Information - Bromolow
BIOS Information (Label, Path) - Labeled'4.6.4.1_VEB_1AOSX015'; Path 'SS: Alaska;$/Alaska/Projects/Intel/SandyBridge/CougarPoint_Bromolow_Crb_1AOSX/Bromolow.veb';
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

2) REF-32335: .N/A Console Redirection via PCI/e Serial Card---- U/T
Status Update: Test is applicable for only SUT without Serial port

3) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

4) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update: Tested with RAID Option ROM

5) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update:

6) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
St atus Update:

7) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

8) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- PASS
Status Update:

9) REF-32342:.N/A Console Redirection via Serial port in without VGA---- U/T
Status Update: This platform has On-board VGA controller

Terminal

10) REF-33696: .N/A ESC Sequence for Putty ESC[N~ keypad ---- PASS
Status Update:

11) REF-33694: .N/A ESC Sequence for Putty Linux keypad ---- PASS
Status Update:

12) REF-33693: .N/A ESC Sequence for Putty SCO keypad ---- PASS
Status Update:

13) REF-33692: .N/A ESC Sequence for Putty VT400 keypad ---- PASS
Status Update:

14) REF-33695: .N/A ESC Sequence for Putty Xterm R6 keypad ---- PASS
Status Update:

15) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:

Platform Information Form :

Board Information - MahoBay
BIOS Information (Label, Path) - Labeled'4.6.5.3_VEB_1APTC021';SS: Alaska;$/Alaska/Projects/Intel/IvyBridge/PantherPoint_MahoBay_Crb_1APTC/MahoBay.veb;
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

2) REF-32335: .N/A Console Redirection via PCI/e Serial Card---- PASS
Status Update: Tested with SOL [Broadcom]

3) REF-32335: .N/A Console Redirection via Serial port for DOS---- U/T
Status Update: No Serial Port is available

4) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- U/T
Status Update: No Serial Port is available

5) REF-32341: Linux Console Redirection via Serial port in LINUX ---- U/T
Status Update: No Serial Port is available

6) REF-32339:.N/A Console Redirection via Serial port in Putty ---- U/T
Status Update: No Serial Port is available

7) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- U/T
Status Update: b>U/T

8) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- PASS
Status Update:

9) REF-32342:.N/A Console Redirection via Serial port in without VGA---- PASS
Status Update:

Terminal

10) REF-33696: .N/A ESC Sequence for Putty ESC[N~ keypad ---- U/T
Status Update: No Serial Port is available

11) REF-33694: .N/A ESC Sequence for Putty Linux keypad ---- U/T
Status Update: No Serial Port is available

12) REF-33693: .N/A ESC Sequence for Putty SCO keypad ---- U/T
Status Update: No Serial Port is available

13) REF-33692: .N/A ESC Sequence for Putty VT400 keypad ---- U/T
Status Update: No Serial Port is available

14) REF-33695: .N/A ESC Sequence for Putty Xterm R6 keypad ---- U/T
Status Update: No Serial Port is available

15) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- U/T
Status Update: No Serial Port is available


Release Notes - NDA Required

Validation Test Report for Legacy Serial Redirection Label (INT)_a_4.5.5_LegacySredir_36

Platform Information Form :

Board Information - ChiefRiver
BIOS Information (Label, Path) - 4.6.5.3_VEB_1APTJ024_';Path SS: Alaska;$/Alaska/Projects/Intel/IvyBridge/PantherPoint_ChiefRiver_Crb_1APTJ/;
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

2) REF-32335: .N/A Console Redirection via PCI/e Serial Card---- PASS
Status Update:

3) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

4) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update:

5) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update:

6) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
St atus Update:

7) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

8) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- U/T
Status Update: This platform has On-board KBC controller

9) REF-32342:.N/A Console Redirection via Serial port in without VGA---- PASS
Status Update: Disconnected Onboard VGA and set "Launch video Option Rom" as "Do not Launch" under CSM Configuration.

Terminal

10) REF-33696: .N/A ESC Sequence for Putty ESC[N~ keypad ---- PASS
Status Update:

11) REF-33694: .N/A ESC Sequence for Putty Linux keypad ---- PASS
Status Update:

12) REF-33693: .N/A ESC Sequence for Putty SCO keypad ---- PASS
Status Update:

13) REF-33691: .N/A ESC Sequence for Putty VT100 keypad ---- PASS
Status Update:

14) REF-33692: .N/A ESC Sequence for Putty VT400 keypad ---- PASS
Status Update:

15) REF-33695: .N/A ESC Sequence for Putty Xterm R6 keypad ---- PASS
Status Update:

16) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:


Release Notes - NDA Required

Validation Test Report for Legacy Serial Redirection Label (INT)_b_4.5.5_LegacySredir_37

Platform Information Form :

Board Information - ChiefRiver
BIOS Information (Label, Path) - '4.6.5.4_VEB_1APTJ029';Path SS: Alaska;$/Alaska/Projects/Intel/IvyBridge/PantherPoint_ChiefRiver_Crb_1APTJ/ChiefRiver.veb;
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Configuration:
BIOS: 1APTJ029
Board: Emerald Lake2 Fab2
CPU: IVY C0/C1
PCH: PPT C0
Memory: 1GB 1333MHz(DDR3)

Build

1) REF-31549: .N/A 32 Bit Project Compile---- Blocked
Status Update: Intel CPU Reference Code is not to support X64_BUILD=0

2) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

3) REF-32335: .N/A Console Redirection via PCI/e Serial Card---- PASS
Status Update: Tested with Off board PCI Serial Card where MMIO width is 1

4) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update: Tested redirection in dos other dos tool like PL.exe and RU.EXE

5) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update: Tested with Leg PXE Option ROM

6) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update: Set token INSTALL_LEGACY_OS_THROUGH_REMOTE=1

7) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
St atus Update: Ctrl+r - PASS
Refresh screen from HOST - PASS
Redirection for DOS tool like pl & RU- PASS

8) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

9) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- Blocked
Status Update: Platform has On-board KBC controller

10) REF-32342:.N/A Console Redirection via Serial port in without VGA---- PASS
Status Update: Disconnected Onboard VGA and set "Launch video Option Rom" as "Do not Launch" under CSM Configuration.

Terminal

11) REF-33696: .N/A ESC Sequence for Putty ESC[N~ keypad ---- PASS
Status Update:

12) REF-33694: .N/A ESC Sequence for Putty Linux keypad ---- PASS
Status Update:

13) REF-33693: .N/A ESC Sequence for Putty SCO keypad ---- PASS
Status Update:

14) REF-33691: .N/A ESC Sequence for Putty VT100 keypad ---- PASS
Status Update:

15) REF-33692: .N/A ESC Sequence for Putty VT400 keypad ---- PASS
Status Update:

16) REF-33695: .N/A ESC Sequence for Putty Xterm R6 keypad ---- PASS
Status Update:

17) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:

Platform Information Form :

Board Information - SugarBay
BIOS Information (Label, Path) - '4.6.5.5_VEB_1AOQ1001';
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A 32 Bit Project Compile---- PASS
Status Update:

2) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

3) REF-32335: .N/A Console Redirection via PCI/e Serial Card---- PASS
Status Update: Tested with Off board PCI Serial Card where MMIO width is 1

4) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

5) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update: Tested with Leg PXE Option ROM

6) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update: Set token INSTALL_LEGACY_OS_THROUGH_REMOTE=1

7) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
St atus Update: Ctrl+r - PASS
Refresh screen from HOST - PASS
Redirection for DOS tool like pl & RU- PASS

8) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

9) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- Blocked
Status Update: Platform has On-board KBC controller

10) REF-32342:.N/A Console Redirection via Serial port in without VGA---- PASS
Status Update: Disconnected Onboard VGA and set "Launch video Option Rom" as "Do not Launch" under CSM Configuration.
PL tool will not redirected in this case

Terminal

11) REF-33696: .N/A ESC Sequence for Putty ESC[N~ keypad ---- PASS
Status Update:

12) REF-33694: .N/A ESC Sequence for Putty Linux keypad ---- PASS
Status Update:

13) REF-33693: .N/A ESC Sequence for Putty SCO keypad ---- PASS
Status Update: Set OEM_ESC_SEQUENCES token to 0

14) REF-33691: .N/A ESC Sequence for Putty VT100 keypad ---- PASS
Status Update:

15) REF-33692: .N/A ESC Sequence for Putty VT400 keypad ---- PASS
Status Update:

16) REF-33695: .N/A ESC Sequence for Putty Xterm R6 keypad ---- PASS
Status Update:

17) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:


Release Notes - NDA Required

Validation Test Report for Legacy Serial Redirection Label (INT)_a_4.5.5_LegacySredir_38

Platform Information Form :

Board Information - ChiefRiver
BIOS Information (Label, Path) - '4.6.5.4_VEB_1APTJ030';Path SS: Alaska;$/Alaska/Projects/Intel/IvyBridge/PantherPoint_ChiefRiver_Crb_1APTJ/ChiefRiver.veb;
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Configuration:
BIOS: 1APTJ029
Board: Emerald Lake2 Fab2
CPU: IVY C0/C1
PCH: PPT C0
Memory: 1GB 1333MHz(DDR3)

Build

1) REF-31549: .N/A 32 Bit Project Compile---- Blocked
Status Update: Intel CPU Reference Code is not to support X64_BUILD=0

2) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

3) REF-32335: .N/A Console Redirection via PCI/e Serial Card---- PASS
Status Update: Tested with Off board PCI Serial Card where MMIO width is 1

4) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

5) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update: Tested with Legacy PXE and RAID Option ROM

6) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update: Set token INSTALL_LEGACY_OS_THROUGH_REMOTE=1

7) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
St atus Update:

8) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

9) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- Blocked
Status Update: Platform has On-board KBC controller

10) REF-32342:.N/A Console Redirection via Serial port in without VGA---- PASS
Status Update: Disconnected Onboard VGA and set "Launch video Option Rom" as "Do not Launch" under CSM Configuration.

Terminal

11) REF-33696: .N/A ESC Sequence for Putty ESC[N~ keypad ---- PASS
Status Update:

12) REF-33694: .N/A ESC Sequence for Putty Linux keypad ---- PASS
Status Update:

13) REF-33693: .N/A ESC Sequence for Putty SCO keypad ---- PASS
Status Update:

14) REF-33691: .N/A ESC Sequence for Putty VT100 keypad ---- PASS
Status Update:

15) REF-33692: .N/A ESC Sequence for Putty VT400 keypad ---- PASS
Status Update:

16) REF-33695: .N/A ESC Sequence for Putty Xterm R6 keypad ---- PASS
Status Update:

17) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:

Platform Information Form :

Board Information - SugarBay
BIOS Information (Label, Path) - '4.6.5.5_VEB_1AOQ1001';
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A 32 Bit Project Compile---- PASS
Status Update:

2) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

3) REF-32335: .N/A Console Redirection via PCI/e Serial Card---- PASS
Status Update: Tested with Off board PCI Serial Card where MMIO width is 1

4) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

5) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update: Tested with Legacy PXE and RAID Option ROM

6) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update:

7) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
St atus Update:

8) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

9) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- Blocked
Status Update: Platform has On-board KBC controller

10) REF-32342:.N/A Console Redirection via Serial port in without VGA---- PASS
Status Update: Disconnected Onboard VGA and set "Launch video Option Rom" as "Do not Launch" under CSM Configuration.

Terminal

11) REF-33696: .N/A ESC Sequence for Putty ESC[N~ keypad ---- PASS
Status Update:

12) REF-33694: .N/A ESC Sequence for Putty Linux keypad ---- PASS
Status Update:

13) REF-33693: .N/A ESC Sequence for Putty SCO keypad ---- PASS
Status Update: Set OEM_ESC_SEQUENCES token to 0

14) REF-33691: .N/A ESC Sequence for Putty VT100 keypad ---- PASS
Status Update:

15) REF-33692: .N/A ESC Sequence for Putty VT400 keypad ---- PASS
Status Update:

16) REF-33695: .N/A ESC Sequence for Putty Xterm R6 keypad ---- PASS
Status Update:

17) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:


Release Notes - NDA Required

Validation Test Report for Legacy Serial Redirection Label (INT)_a_4.5.5_LegacySredir_35

Platform Information Form :

Board Information - ChiefRiver
BIOS Information (Label, Path) - 4.6.5.3_VEB_1APTJ023_';Path SS: Alaska;$/Alaska/Projects/Intel/IvyBridge/PantherPoint_ChiefRiver_Crb_1APTJ/;
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

2) REF-32335: .N/A Console Redirection via PCI/e Serial Card---- U/T
Status Update: Test is applicable for only SUT without Serial port

3) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

4) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update: Tested with RAID Option ROM

5) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update:

6) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
St atus Update:

7) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

8) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- U/T
Status Update: This platform has On-board KBC controller

9) REF-32342:.N/A Console Redirection via Serial port in without VGA---- U/T
Status Update: This platform has On-board VGA controller

Terminal

10) REF-33696: .N/A ESC Sequence for Putty ESC[N~ keypad ---- PASS
Status Update:

11) REF-33694: .N/A ESC Sequence for Putty Linux keypad ---- PASS
Status Update:

12) REF-33693: .N/A ESC Sequence for Putty SCO keypad ---- PASS
Status Update:

13) REF-33692: .N/A ESC Sequence for Putty VT400 keypad ---- PASS
Status Update:

14) REF-33695: .N/A ESC Sequence for Putty Xterm R6 keypad ---- PASS
Status Update:

15) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:

Platform Information Form :

Board Information - Sugarbay
BIOS Information (Label, Path) - Label 4.6.5.4_VEB_1AOQI001; Path SS: /Alaska/Projects/Intel/SandyBridge/IMBA-Q670;
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

2) REF-32335: .N/A Console Redirection via PCI/e Serial Card---- PASS
Status Update:

3) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

4) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update: Tested with RAID Option ROM

5) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update:

6) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
St atus Update:

7) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

8) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- U/T
Status Update: This platform has On-board KBC controller

9) REF-32342:.N/A Console Redirection via Serial port in without VGA---- PASS
Status Update:

Terminal

10) REF-33696: .N/A ESC Sequence for Putty ESC[N~ keypad ---- PASS
Status Update:

11) REF-33694: .N/A ESC Sequence for Putty Linux keypad ---- PASS
Status Update:

12) REF-33693: .N/A ESC Sequence for Putty SCO keypad ---- PASS
Status Update:

13) REF-33692: .N/A ESC Sequence for Putty VT400 keypad ---- PASS
Status Update:

14) REF-33695: .N/A ESC Sequence for Putty Xterm R6 keypad ---- PASS
Status Update:

15) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:

Platform Information Form :

Board Information - Rosecity
BIOS Information (Label, Path) - Labeled4.6.4.1_RoseCity_0ABVH016;SS: Alaska;$/Alaska/Projects/Intel/SandyBridge/Romley/RoseCity_CRB_0ABVH;
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build

1) REF-31549: .N/A Test ROM Build---- PASS
Status Update:

Legacy Serial Redirection

2) REF-32335: .N/A Console Redirection via PCI/e Serial Card---- PASS
Status Update: Tested with SOL [Broadcom]

3) REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

4) REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update:

5) REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update:

6) REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
Status Update: No Serial Port is available

7) REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

8) REF-32343: .N/A Console Redirection via Serial port in without KBC ---- PASS
Status Update:

9) REF-32342:.N/A Console Redirection via Serial port in without VGA---- PASS
Status Update:

Terminal

10) REF-33696: .N/A ESC Sequence for Putty ESC[N~ keypad ---- PASS
Status Update:

11) REF-33694: .N/A ESC Sequence for Putty Linux keypad ---- PASS
Status Update:

12) REF-33693: .N/A ESC Sequence for Putty SCO keypad ---- PASS
Status Update:

13) REF-33692: .N/A ESC Sequence for Putty VT400 keypad ---- PASS
Status Update:

14) REF-33695: .N/A ESC Sequence for Putty Xterm R6 keypad ---- PASS
Status Update:

15) REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:


Copyright

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

Copyright (c) 1999-2014 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.


AMIBIOS Component Release Notes

For VGA hardware installed system (Figure 1), BIOS uses INT08 to monitor video buffer (segments 0xA000, 0xB000). The video buffer contents will be redirect to remote terminal. For no VGA hardware system (Figure 2), BIOS hooks INT10 to trap video output functions, a pseudo video buffer (not 0xA000, 0xB000) is allocated for saving video contents. INT08 is still used to monitor and redirect the video contents.

Figure 1: VGA hardware installed system

Figure 2: NON - VGA system

Non-VGA System INT10 function Support:

INT10 , 0 - Set Video Mode

INT10 , 1 - Set Cursor Type

INT10 , 2 - Set Cursor Position

INT10 , 3 - Read Cursor Position

INT10 , 6 AL=0 - Clean a block.

INT10 , 8 - Read Character And Attribute At Cursor.

INT10 , 9 - Write Character And Attribute At Cursor.

INT10 , A - Write Character At Current Cursor.

INT10 , E - Write Text In Teletype Mode.

INT10 , F - Get Current Video State.

INT10 ,13 - Write String.

Non-VGA System Limitation:

1. No Video Buffer.

2. No INT10 function support list:

INT10, 4 - Read Light Pen.

INT10, 5 - Select Active Display

INT10, 6 - Scroll Active Page Up.

INT10, 7 - Scroll Active Page Down.

INT10, B - Set Color Palette.

INT10, C - Write Graphics Pixel At Coordinate

INT10, D - Read Graphics Pixel At Coordinate.

INT10,10 - Set/Get Palette Registers.

INT10,11 - Character Generator Routine.

INT10,12 - Video Subsystem Configuration.


ESC Sequence

ESC Sequence Supported by Legacy Console Redirection and Terminal

Standard ANSII sequences

Key or Function | Sequence
Right | <ESC> [ , C
Left | <ESC> [ , D
Up | <ESC> [ , A
Down | <ESC> [ , B
Home | <ESC> [ , H
End | <ESC> [ , K
F1 | <ESC> O , P
F2 | <ESC> O , Q
F3 | <ESC> O , R
F4 | <ESC> O , S
Sytem Reset | <ESC>R<ESC>r<ESC>R

Other Sequences
Key or Function | Sequence
Home | <ESC> h
End | <ESC> k
Insert | <ESC> +
Delete | <ESC> -
Page Up | <ESC> ?
Page Down | <ESC> /
F1 | <ESC> 1
F2 | <ESC> 2
F3 | <ESC> 3
F4 | <ESC> 4
F5 | <ESC> 5
F6 | <ESC> 6
F7 | <ESC> 7
F8 | <ESC> 8
F9 | <ESC> 9
F10 | <ESC> 0
F11 | <ESC> !
F12 | <ESC> @

Output Sequences
(These sequences are output by the terminal driver)

Function | Sequence
Clear Screen | <ESC> [ , 2 , J
Set Mode | <ESC> [ , = , 3 , h

ESC Sequence Supported by Legacy Console Redirection and Terminal
For Putty VT100 KeyPad

Key or Function | Sequence
Home | <ESC> [ , 1, ~
Ins | <ESC> [ , 2, ~
Del | <ESC> [ , 3, ~
End | <ESC> [ , 4, ~
Pg Up | <ESC> [ , 5, ~
Pg Dn | <ESC> [ , 6, ~
F1 | <ESC> O , P
F2 | <ESC> O , Q
F3 | <ESC> O , R
F4 | <ESC> O , S
F5 | <ESC> O , T
F6 | <ESC> O , U
F7 | <ESC> O , V
F8 | <ESC> O , W
F9 | <ESC> O , X
F10 | <ESC> O , Y
F11 | <ESC> O , Z
F12 | <ESC> O , [

ESC Sequence Supported by Legacy Console Redirection and Terminal
For Putty VT400 KeyPad

Key or Function | Sequence
Pg Up | <ESC> [ , 3, ~
Pg Dn | <ESC> [ , 6, ~
Del | <ESC> [ , 4, ~
Home | <ESC> [ , 1, ~
End | <ESC> [ , 5, ~
Insert | <ESC> [ , 1, ~
F1 | <ESC> [ , 1, 1, ~
F2 | <ESC> [ , 1, 2, ~
F3 | <ESC> [ , 1, 3,~
F4 | <ESC> [ , 1, 4, ~
F5 | <ESC> [ , 1, 5, ~
F6 | <ESC> [ , 1, 7, ~
F7 | <ESC> [ , 1, 8, ~
F8 | <ESC> [ , 1, 9,~
F9 | <ESC> [ , 2, 0, ~
F10 | <ESC> [ , 2, 1, ~
F11 | <ESC> [ , 2, 3, ~
F12 | <ESC> [ , 2, 4, ~

ESC Sequence Supported by Legacy Console Redirection and Terminal
For Putty SCO KeyPad

Key or Function | Sequence
F1 | <ESC> [ , M
F2 | <ESC> [ , N
F3 | <ESC> [ , O
F4 | <ESC> [ , P
F5 | <ESC> [ , Q
F6 | <ESC> [ , R
F7 | <ESC> [ , S
F8 | <ESC> [ , T
F9 | <ESC> [ , U
F10 | <ESC> [ , V
F11 | <ESC> [ , W
F12 | <ESC> [ , X
Pg Up | <ESC> [ , I
Pg Dn | <ESC> [ , G
Del | <ESC> [ , F
Ins | <ESC> [ , L
Home | <ESC> [ , H
End | <ESC> [ , F

ESC Sequence Supported by Legacy Console Redirection and Terminal
For Putty Linux KeyPad

Key or Function | Sequence
F1 | <ESC> [ , [, A
F2 | <ESC> [ , [, B
F3 | <ESC> [ , [, C
F4 | <ESC> [ , [, D
F5 | <ESC> [ , [, E
F6 | <ESC> [ , 1, 7
F7 | <ESC> [ , 1, 8
F8 | <ESC> [ , 1, 9
F9 | <ESC> [ , 2, 0
F10 | <ESC> [ , 2, 1
F11 | <ESC> [ , 2, 3
F12 | <ESC> [ , 2, 4
Del | <ESC> [ , 3, ~
End | <ESC> [ , 4, ~
Pg Up | <ESC> [ , 5, ~
Pg Dn | <ESC> [ , 6, ~
Home | <ESC> [ , 1, ~
Insert | <ESC> [ , 2, ~

ESC Sequence Supported by Legacy Console Redirection and Terminal
For Putty Xterm R6 KeyPad

Key or Function | Sequence
F1 | <ESC> O , P
F2 | <ESC> O , Q
F3 | <ESC> O , R
F4 | <ESC> O , S
F5 | <ESC> [ , 1, 5, ~
F6 | <ESC> [ , 1, 7, ~
F7 | <ESC> [ , 1, 8, ~
F9 | <ESC> [ , 2, 0, ~
F10 | <ESC> [ , 2, 1, ~
F11 | <ESC> [ , 2, 3, ~
F12 | <ESC> [ , 2, 4, ~
Home | <ESC> [ , 1, ~
Del | <ESC> [ , 3, ~
End | <ESC> [ , 4, ~
Pg Up | <ESC> [ , 5, ~
Pg Up | <ESC> [ , 6, ~
Insert | <ESC> [ , 2, ~

ESC Sequence Supported by Legacy Console Redirection and Terminal
For Putty ESC[N~ KeyPad

Pg Up | <ESC> [ , 5, ~
Pg Dn | <ESC> [ , 6, ~
End | <ESC> [ , 4, ~
Home | <ESC> [ , 1, ~
Del | <ESC> [ , 3, ~
F1 | <ESC> [ , 1, 1, ~
F2 | <ESC> [ , 1, 2, ~
F3 | <ESC> [ , 1, 3,~
F4 | <ESC> [ , 1, 4, ~
F5 | <ESC> [ , 1, 5, ~
F6 | <ESC> [ , 1, 7, ~
F7 | <ESC> [ , 1, 8, ~
F8 | <ESC> [ , 1, 9,~
F9 | <ESC> [ , 2, 0, ~
F10 | <ESC> [ , 2, 1, ~
F11 | <ESC> [ , 2, 3, ~
F12 | <ESC> [ , 2, 4, ~


1) Supports Below Baud Rate

Legacy Console Redirection

  1. Supports Below Baud Rate

    2. 9600, 19200, 38400, 57600 and 115200

  2. Supports Below Terminal Type

    3. VT100, VT100+, VT-UTF8 and ANSI

  3. Supports Below Data bits

    4. 7 and 8

  4. Supports Below Parity

    5. None, Even, ODD, Mark and Space

  5. Supports Below Stop bits

    6. 1 and 2

  6. Supports Below Flow control

    7. None and Hardware RTS/CTS

  7. VT-UTF8 Combo Key Support

    8. Enabled/Disabled for VT-UTF8 Combo Key Support for ANSI/VT100 terminals

  8. Recorder Mode

    9. On this mode enabled only test will be send. This is to capture Terminal data

  9. Resolution 100x31

    10. Enabled or Disabled extended terminal resolution

  10. Supports 80*24 and 80*25 mode

    11. HyperTerminal supports only 80*24 lines. But other application like Putty supports 80*25. So to support utility like Putty Legacy console redirection also supports both the modes.

  11. Putty KeyPad

    12. VT100, LINUX, XTERMR6, SCO, ESCN and VT400. Selecting Function Key and KeyPad in Putty

  12. Redirection After BIOS POST

    13. Always Enable and BootLoader. Default value is Always Enable which means Legacy Console Redirection is enabled for Legacy OS

  13. Supports Headless (No VGA) Systems.

    14. Legacy console redirection has own Int10 functions and traps the Int10 calls to support Headless system.

  14. Supports Legacy Free Systems ( No Ps2 controller)

    15. Instead of pushing the keyboard data to port60/64 , to support Legacy free system it calls the Int9 with value

  15. Supports Redirection through PCI serial devices.

    16. Legacy console redirection gets the Base address and IRQ from PCI serial Device and uses for the Redirection.

  16. Supports different Video Segment.

    17. Some Option rom uses the different Video segment to display the text mode. Legacy console redirection checks, if the Active Video segment is different it uses the data from active display segment.

  17. Supports Ctrl+r to redraw the whole screen.

    18. Some Intel SOL utility sends CTRL+R to refresh the screen. Once Redirection modules sees there is Ctrl+R , it will send the whole screen

  18. If the hardware flowcontrol failed, switch back to no hardware flow control to avoid the system hanging.

    19. When the hardware flow control is enabled, before we send the data to serial device it checks for RTS and CTS, if it’s not ready for particular period of time and it times out and comes out without sending data. But if the hardware really disconnected RTS and CTS will be never set and for each char there will be timeout. It makes system to slow. To avoid that if the failure reaches particular count , redirection disabled the hardware flow control checking.

  19. Redirection sends only changed lines to make Redirection faster.

    20. Redirection maintain the checksum for each line only if the checksum is mismatch between last data in the line and current data in the line it sends the data. Otherwise it won’t. This makes redirection faster.

  20. Supports the Esc Sequence.

  21. LINUX Redirection of certain Kernel's is supported.


Untitled Document

AMIBIOS Component Porting Guide

Legacy Serial Redirection Porting Guide

INTRODUCTION

1. The legacy serial redirection module is used for the purpose redirection during legacy Option Rom and in Legacy OS.

2. Serial redirection module is added in CSM 16 source,built there and added to csm32 module as a Binary file. This binary file contains the siganture for legacy serial redirection.

3. Legacy serial redirection is enabled before dispatching all legacy option roms and before passing the control to the Operating system.

4. The Com parameters such as Serial port base address, Serial IRQ, Baudrate, Terminal Type and Flowcontrol can be changed in GetSetupValuesForLegacySredir function. These values are passed from CSM32 module to CSM16 module.


Release Notes - NDA Required

Component Information:
Component Title: Legacy Serial Redirection
Component Reference Name: LEGACYSREDIR
Component Type: eModule
Release Date: 2014-12-23
Source Control Label: 4.5.5_LegacySredir_39
Source Control Location: SS: Alaska;$/Alaska/Source/Modules/Legacy Serial Redirection;
Dependencies
Component Dependencies
Serial Redirection
Dependent Component Title: Serial Redirection
Dependent Component Reference Name: Terminal
Dependent Source Control Label: 4.6.3_Terminal_55
Dependent Source Control Location: SS: Alaska;$/Alaska/BIN/Modules/Terminal;
AmiBufferValidationLib
Dependent Component Title: AmiBufferValidationLib
Dependent Component Reference Name: AmiBufferValidationLib
Dependent Source Control Label: AmiBufferValidationLib_01
Dependent Source Control Location: SS: Alaska;$/Alaska/SOURCE/Modules/AmiBufferValidationLib;
Non-Compiled BIN and LIB File(s) within this Component:
Sredir.bin
Component Title: Serial Redirection
Component Reference Name: SREDIR
Component Source Control Label: SREDIR_CSM53.38
Component Source Control Location: SS: Alaska;$/Alaska/CSM16/LegacyRedirection;
Project Source Control Label:8.00.10.00.0x.76
Project Source Control Location: SS: ALASKA;$/Alaska/CSM16/Complete Project/Furball10.64K/Furball10.veb;
Component Description:
The Legacy Serial Redirection Module can be added to a EFI BIOS to support serial redirection during option rom and in legacy OS. It supports PCI and MMIO Serial devices also. It supports both VGA and Non VGA systems.This module depends on EFI Serial Redirection module(Terminal Module). Legacy Serial Redirection module gets the Setup Values of Serial Redirection Module like SerialPort, Baudrate, Terminal Type, Flowcontrol, Databits, Parity and Stop bits.
Note: UART_POLLING_REDIRECTION will work with 4.5.5_LegacySredir_39 and SREDIR_CSM53.37 label or above
Limitation of this eModule:
  • Legacy Redirection through the COM port is possible only if the serial device has the ability to generate IRQ.

  • In a headless system, redirection is not possible if the optionrom or utility is not using int10h for video services.
Filename | Description
Main Component | Root\Core\em\Sredir
LegacySredir.cif | Component information file for the eModule.
LegacySredir.mak | Make file becomes part of the BIOS build process.
LegacySredir.sdl | Contains BIOS build parameters.
LegacySredir.dxs | Dependency Expression file for Legacy Serial Redirection.
LegacySredir.c | File that contains main funtions and protocols to enable legacy serial redirection.
LegacySmmSredir.c | Sw Smi handler to access the MMIO space.
LegacySredir.Chm | Chm file of the emodule.
SerialBootCall.asm | Boot Call for Serial
SredirBootFail.asm | SredirBootFail source
Legacy Sredir Board ModulePart | Root\Board\EM\Sredir - Gets the Terminal Setup values from EFI for setting parameters for legacy console redirecton and Provides OEM to include code before serial read or serial write through SerialCallbackCsm16Api which is a csm16 API #B.
LegacySredir-Board.cif | Component information file of the LegacySredirBoard modulePart of the eModule.
LegacySredir_Setup.c | File that is used to give the com parameters for the legacy serial redirection from Terminal module.
SerialCallback.asm | Callback file for Serial Read and Write Function.
Legacy Sredir Binary ModulePart | Root\Addon - It contains the binary image of Serial Redirection module of CSM16 Source.
LegacySREDIRAddon.cif | Component information file of the Legacy Sredir Binary modulePart of the eModule.
Sredir.bin | This bin file is added from CSM 16 source. This file contains the binary image of the serial redirection emodule.For the current label SREDIR_CSM53.35 Sredir.bin is used.
Legacy Sredir Protocol ModulePart | Root\Include\Protocol - It contains Legacy console redirection Protocol header file which contains all structures and function tables that is being used.
LegacySredirProtocol.cif | Component information file of the Legacy Sredir Protocol modulePart of the eModule.
LegacySredir.h | File that contains all structures and function tables that is used for legacy serial redirection.
BIOS Parameters:
Parameter Name | Type | Description
LEGACYSREDIR_SUPPORT | Boolean | Main switch to enable AMI Legacy Serial Redirection support in Project.
DISPLAY_WHOLE_SCREEN | Boolean | Display the whole screen before disabling the Legacy console redirection.
TRAP_INT10_WORKAROUND | Boolean | Trap Int10 to avoid the b8000 region accessed by Video option rom and Legacy console redirection.
LEGACY_SREDIR_SWSMI | Integer | SW SMI value to be used in Legacy console redirection.
SERIAL_READ_WRITE_CALLBACK | Boolean | 1- Call back will come from Sredir.bin for SerialRead and SerialWrite(SerialCallback.asm).0-Disabled..
COM_MMIO_WIDTH | Integer | MMIO Com device width size. 1- Byte, 2- Word, 4-Dword. Default Set to Dword.
CTRLI_KEY_MAPPING | Boolean | 0- Mapped to TAB key, 1- Mapped to CtrlI Key
CTRLH_KEY_MAPPING | Boolean | 0- Mapped to BackSpace Key, 1- Mapped to CtrlH Key
CHECK_FOR_LOOPBACK_DEVICE | Boolean | 0- hardware Loop back checking disabled 1- Hardware loopback checking enabled and if present redirection skipped for the port
CLEAR_LEGACYSREDIR_KB_BUFFER_AT_READYTOBOOT | Boolean | ON -> Legacy Serial Redirection KB Buffer will be cleared at ReadyToBoot.\OFF -> Legacy Serial Redirection KB Buffer will not be cleared at ReadyToBoot.
UART_POLLING_REDIRECTION | Boolean | Use polling method redirection to send and receive data from COM Port
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_41, Dated: 2013-03-15
Visual eBios: RSS.5.73.0243, Dated: 2013-03-15
Compiler Tool(s): Microsoft's Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
NONE
General Bug Fixes and EIP Addressed in this Label:
General Bug Fixes
None

EIP Addressed
EIP #192802 - Support for legacy redirection by UART polling is added for platforms in which serial port does not support IRQ on PIC Mode.
EIP #192802 - SREDIR.BIN from SREDIR_CSM53.37 for 4.5.5_LegacySredir_39 RC LABEL
EIP #193345 - Sredir bin module needs to be modified to make use ACPI timer instead of 8254 timer
EIP #192305 - Replacing SmmGetMemoryType usage in LegacySredir module with AmiBufferValidationLib
Files Changed for General Bug Fixes and EIP Addressed in this Label:
Root\Core\EM\Sredir\LegacySredir.c (EIP #192802, #193345 )
Root\Core\EM\Sredir\LegacySredir.sdl (EIP #192802)
Root\Include\Protocol\LegacySredir.h (EIP #192802)
Root\Addon\Sredir.bin (EIP #192802, #193345 )
Root\Core\EM\Sredir\LegacySredir.mak (EIP #192305)
Root\Core\EM\Sredir\LegacySmmSredir.c (EIP #192305)
Root\Core\EM\Sredir\LegacySredir_Setup.C (EIP #192305)
Known Limitations and Erratas in this label:
NONE
Remaining Issues:
NONE
Unit Testing:
Validate the Legacy Serial Redirection module with the following test cases and conditions.

  1. Redirection Enable/Disable Testing

    • Enable the Redirection on COM port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS
    • Disable the Redirection on COM port in Setup
    • Test there is no Screen redirection and remote keyboard not working in Legacy option ROM and DOS.

  2. Baud Rate Testing

    • Enable the Redirection on COM port in Setup
    • Change the Baud rate to different option available in the setup menu
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  3. Terminal Type Testing

    • Enable the Redirection on COM port in Setup
    • Change the Terminal type to different option available in the setup menu
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  4. Test Redirection on Multiple option ROM

    • Enable the Multiple Option ROM in the system
    • Enable the Redirection on COM port in Setup
    • Test the Screen redirection and Remote keyboard in all Legacy option ROM and DOS

  5. ESC Key Sequence Testing

    • Enable the Redirection on COM port in Setup
    • Test the ESC Key sequence in Legacy option ROM and DOS

    Note : ESC key Sequence List is provided in the Terminal.chm

  6. Redirection Testing on Headless system (No VGA)

    • Enable the Redirection on COM port in Setup
    • Make sure system does not have VGA controller
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    Note : Some option ROM and DOS utility uses the 0xB8000 write to display the data on the screen. On this case redirection will not work. This is expected result in no VGA system.

  7. Remote Keyboard Testing on No KBC systems

    • Enable the Redirection on COM port in Setup
    • Make sure system does not have KBC
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

    Note : Some option ROM and DOS utility uses Port 60/64 to read the data. On this case remote keyboard data will not work. This is expected result in no KBC systems.

  8. PCI Serial port Testing

    • Connect the PCI Serial device in the system
    • Enable the Redirection on PCI serial port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  9. MMIO Serial Port Testing

    • Connect the Serial device into the system that uses the MMIO resource
    • Enable the Redirection on MMIO serial port in Setup
    • Test the Screen redirection and Remote keyboard in Legacy option ROM and DOS

  10. Generic change for sdl token to control Ctrl+H

    • Boot to DOS
    • Goto Keyboard Data Area
    • Press Ctrl + H. Checked if Ctrl + H is received or BackSpace.
Validation Testing:
Quality Assurance System Test Plan
Quality Assurance Test Results
Release History:
4.5.5_LegacySredir_39

  • [TAG] EIP192802
    [Category] Improvement
    [Description] Support for legacy redirection by UART polling is added for platforms in which serial port does not support IRQ on PIC Mode.
    [Files] LegacySredir.c,LegacySredir.h,LegacySredir.sdl

  • [TAG] EIP192918
    [Category] Improvement
    [Description] SREDIR.BIN from SREDIR_CSM53.37 for 4.5.5_LegacySredir_39 RC LABEL
    [Files] Sredir.bin

  • [TAG] EIP193345
    [Category] Improvement
    [Description] Sredir bin module needs to be modified to make use ACPI timer instead of 8254 timer
    [Files] Sredir.asm, LegacySredir.c, csm.sdl, Sredir,bin

  • [TAG] EIP192305
    [Category] Improvement
    [Description] Replacing SmmGetMemoryType usage in LegacySredir module with AmiBufferValidationLib
    [Files] LegacySredir.mak, LegacySmmSredir.c, LegacySredir_Setup.C

SREDIR_CSM53.38:

  • [TAG] EIP193345
    [Category] Improvement
    [Description] Sredir bin module needs to be modified to make use ACPI timer instead of 8254 timer
    [Files] Sredir.asm, LegacySredir.c, csm.sdl, Sredir,bin

Release_4.5.5_LegacySredir_38
Release_4.5.5_LegacySredir_37
Release_4.5.5_LegacySredir_36
Release_4.5.5_LegacySredir_35
Release_4.5.5_LegacySredir_34
Release_4.5.5_LegacySredir_33
Release_4.5.5_LegacySredir_32

© American Megatrends Inc.


Release Notes - NDA Required

Validation Test Report for Legacy Serial Redirection Label (INT)_b_4.5.5_LegacySredir_39

Platform Information Form :

Board Information - ChiefRiver
BIOS Information (Label, Path) - '4.6.5.4_VEB_1APTJ030';Path SS: Alaska;$/Alaska/Projects/Intel/IvyBridge/PantherPoint_ChiefRiver_Crb_1APTJ/ChiefRiver.veb;
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Configuration:
BIOS: 1APTJ030
Board: Emerald Lake2 Fab2
CPU: IVY C0/C1
PCH: PPT 04/C0
Memory: 2GB 1600MHz(DDR3)

Build

REF-31549: .N/A 32 Bit Project Compile---- Blocked
Status Update: Intel CPU Reference Code is not to support X64_BUILD=0

REF-37927: .N/A Linux - Test ROM build---- Blocked
Status Update: Not applicable for Aptio 4

REF-31549: .N/A Test ROM Build---- PASS
Status Update:

CppCheck

REF-37351: N/A Cpp Check---- Blocked
Status Update: Not applicable for Aptio 4

Legacy Serial Redirection

REF-32335: .N/A Console Redirection via PCI/e Serial Card---- PASS
Status Update: SERIALIO_PCI_SERIAL_SUPPORT =1
TOTAL_PCI_SERIAL_PORTS = 2
PCI_SERIAL_MMIO_WIDTH = 1

REF-32335: .N/A Console Redirection via Serial port for DOS---- PASS
Status Update:

REF-32338:.N/A Console Redirection via Serial port for Option ROM---- PASS
Status Update: Tested with leg option ROM of PXE and Off-board SAS card

REF-32341: Linux Console Redirection via Serial port in LINUX ---- PASS
Status Update: Set token INSTALL_LEGACY_OS_THROUGH_REMOTE = 1 Tested with Red Hat Enterprise 6.1

REF-32339:.N/A Console Redirection via Serial port in Putty ---- PASS
Status Update: Set token DONT_SEND_ASCII_CONTROL_PRINTABLE_CHARACTERS = 1

REF-32340:.N/A Console Redirection via Serial port in TeraTerm---- PASS
Status Update:

REF-32343: .N/A Console Redirection via Serial port in without KBC ---- Blocked
Status Update: Platform has On-board KBC controller

REF-32342:.N/A Console Redirection via Serial port in without VGA---- PASS
Status Update: Platform is not support for on-brd VGA. Tested with\without Off-board VGA.

Terminal

REF-33696: .N/A ESC Sequence for Putty ESC[N~ keypad ---- PASS
Status Update:

REF-33694: .N/A ESC Sequence for Putty Linux keypad ---- PASS
Status Update:

REF-33693: .N/A ESC Sequence for Putty SCO keypad ---- PASS
Status Update: OEM_ESC_SEQUENCES=1

REF-33691: .N/A ESC Sequence for Putty VT100 keypad ---- PASS
Status Update:

REF-33692: .N/A ESC Sequence for Putty VT400 keypad ---- PASS
Status Update:

REF-33695: .N/A ESC Sequence for Putty Xterm R6 keypad ---- PASS
Status Update:

REF-32332 : .Not OS Specific ESC Sequence in HyperTerminal ---- PASS
Status Update:


Function by File Name

AMIBIOS Function Reference

By File Name

The following is a list of the .asm files.
For a list in alphabetical order, see In Alphabetical Order.
For a list by segment, see By Segment.

  • LegacySmmSredir.c
  • LegacySredir.c
  • LegacySredir.dxs
  • LegacySredir.h
  • LegacySredir.mak
  • LegacySredir_Setup.C
  • SerialBootCall.asm
  • SerialCallback.Asm
  • SredirBootFail.asm


LegacySmmSredir.c

Description:
Legacy console redirection SMM support

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

Function | Description
LegacySreDirInSmmFunction | Legacy Serial Redirection Smm entry point
LegacySredirSMIHandler | Legacy Serial Redirection Smm handler function
ReadSerialPort | Read the Data from Serial Port
WriteBufferSerialPort | Write the buffer of data to Serial port
WriteSerialPort | Write the Data to Serial Port


LegacySreDirInSmmFunction in the LegacySmmSredir.c

Function : LegacySreDirInSmmFunction

File: LegacySmmSredir.c
Description:
Legacy Serial Redirection  Smm entry point
Input:
Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT
 EFI System Table - Pointer to System Table
Output:
EFI_STATUS OR EFI_NOT_FOUND


LegacySredirSMIHandler in the LegacySmmSredir.c

Function : LegacySredirSMIHandler

File: LegacySmmSredir.c
Description:
Legacy Serial Redirection Smm handler function
Input:
DispatchHandle  - EFI Handle
DispatchContext - Pointer to the EFI_SMM_SW_DISPATCH_CONTEXT
Output:


ReadSerialPort in the LegacySmmSredir.c

Function : ReadSerialPort

File: LegacySmmSredir.c
Description:
Read the Data from Serial Port
Input:
SREDIR_INPUT_PARAMETER SredirParam
Output:
Returns:


WriteBufferSerialPort in the LegacySmmSredir.c

Function : WriteBufferSerialPort

File: LegacySmmSredir.c
Description:
Write the buffer of data to Serial port
Input:
SREDIR_INPUT_PARAMETER SredirParam
Output:
Returns:


WriteSerialPort in the LegacySmmSredir.c

Function : WriteSerialPort

File: LegacySmmSredir.c
Description:
Write the Data to Serial Port
Input:
SREDIR_INPUT_PARAMETER SredirParam
Output:
Returns:


LegacySredir.c

Description:
Serial Redirection Compatibility Support Module entry point and interface functions

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

Function | Description
ClearKbCharBuffer | Function to clear the Keyboard character buffer (in the 16-bit Serial Redirection module)
CopySredirBinIntoBaseMemory | This function copies the Sredir.bin into Base Memory
DataCopiedToCsm16Function | This function copies the segment and offset address of sredir.bin
DisableLegacySredir | This function is used to disable the Legacy Serial redirection This function contains calls for functions which are used to release the interrupts which are used for Serial Redirection
EnableLegacySredir | This function is used for enabling the legacy Serial Redirection This function contains calls for Intialising Serial ports and hooking the interrupts which are required for purpose of Redirection
FindLegacySredirRom | This function searches for ROM within the data previously loaded from the main FV image and returns its pointer and size.
InitilizeBuadRate | This Function is used to Initilize the Baud Rate of the COM port
Legacy_OS_SerialRedirection | This function is used for Legacy Serial Redirection
LegacySredirEntryPoint | Legacy Serial Redirection driver entry point
LegacySreDirNotInSmmFunction | Legacy Serial Redirection Non Smm entry point


ClearKbCharBuffer in the LegacySredir.c

Function : ClearKbCharBuffer

File: LegacySredir.c
Description:
Function to clear the Keyboard character buffer
 (in the 16-bit Serial Redirection module)
Input:
IN EFI_EVENT   Event
IN VOID        *Context
Output:
None


CopySredirBinIntoBaseMemory in the LegacySredir.c

Function : CopySredirBinIntoBaseMemory

File: LegacySredir.c
Description:
This function copies the Sredir.bin into Base Memory
Input:
This
Indicates the AMI_LEGACY_SREDIR_PROTOCOL instance.
Output:
EFI_SUCCESS


DataCopiedToCsm16Function in the LegacySredir.c

Function : DataCopiedToCsm16Function

File: LegacySredir.c
Description:
This function copies the segment and offset address of sredir.bin
Input:
UINTN                  StructStartAddress
AMI_COM_PARAMETERS     *AmiComParameters
Output:
EFI_SUCCESS


DisableLegacySredir in the LegacySredir.c

Function : DisableLegacySredir

File: LegacySredir.c
Description:
This function is used to disable the Legacy Serial redirection
This function contains calls for functions which are used to
release the interrupts which are used for Serial Redirection
Input:
This
Indicates the AMI_LEGACY_SREDIR_PROTOCOL instance.
Output:
EFI_SUCCESS


EnableLegacySredir in the LegacySredir.c

Function : EnableLegacySredir

File: LegacySredir.c
Description:
This function is used for enabling the legacy Serial Redirection
This function contains calls for Intialising Serial ports and
hooking the interrupts which are required for purpose of Redirection
Input:
This
Indicates the AMI_LEGACY_SREDIR_PROTOCOL instance.
Output:
EFI_SUCCESS


FindLegacySredirRom in the LegacySredir.c

Function : FindLegacySredirRom

File: LegacySredir.c
Description:
This function searches for ROM within the data previously loaded
from the main FV image and returns its pointer and size.
Input:
Module Id
 Vendor Id
 Device Id
 Image Start Address
 Image Size
Output:
EFI_SUCCESS or EFI_NOT_FOUND


InitilizeBuadRate in the LegacySredir.c

Function : InitilizeBuadRate

File: LegacySredir.c
Description:
This Function is used to Initilize the Baud Rate of the COM port
Input:
AMI_COM_PARAMETERS AmiComParameters
Output:
Com port Baud Rate Initilized.


Legacy_OS_SerialRedirection in the LegacySredir.c

Function : Legacy_OS_SerialRedirection

File: LegacySredir.c
Description:
This function is used for Legacy Serial Redirection
Input:
EFI_Hanlde - Image Handle
 EFI_System_Table - Pointer to System Table
Output:
EFI_SUCCESS or EFI_NOT_FOUND


LegacySredirEntryPoint in the LegacySredir.c

Function : LegacySredirEntryPoint

File: LegacySredir.c
Description:
Legacy Serial Redirection driver entry point
Input:
Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT
 EFI System Table - Pointer to System Table
Output:
EFI_STATUS OR EFI_NOT_FOUND


LegacySreDirNotInSmmFunction in the LegacySredir.c

Function : LegacySreDirNotInSmmFunction

File: LegacySredir.c
Description:
Legacy Serial Redirection Non Smm entry point
Input:
Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT
 EFI System Table - Pointer to System Table
Output:
EFI_STATUS OR EFI_NOT_FOUND


LegacySredir.dxs

Description:
Dependancy Expression file for Legacy Serial Redirection


LegacySredir.h

Description:
Legacy console redirection Protocol header file

The following functions are used in the file: LegacySredir.h.

Function | Description
LEGACY_SREDIR_DISABLE | Disable the Legacy Serial Redirection
LEGACY_SREDIR_ENABLE | Enable the Legacy Serial Redirection

The following data structures are used in the file: LegacySredir.h.

Variable | Description
AMI_COM_PARAMETERS | This structure consists of Com parameters and setup values which are used to transfer the data from EFI to Legacy for Legacy Redirection.
AMI_LEGACYSREDIR_FUNCTIONS | This structure consists of functions which are used for Leagcy Redirection
AMI_LEGACYSREDIR_TABLE |


AMI_COM_PARAMETERS in the LegacySredir.h

Variable : AMI_COM_PARAMETERS

File: LegacySredir.h
Description:
This structure consists of Com parameters and setup values
which are used to transfer the data from EFI to Legacy for
Legacy Redirection.
Notes:
Don't Change this structure,as the same structure is defined in
CSM16 Serial Redirection.


AMI_LEGACYSREDIR_FUNCTIONS in the LegacySredir.h

Variable : AMI_LEGACYSREDIR_FUNCTIONS

File: LegacySredir.h
Fields:

LEGACY_SreDirInitializeSerialPort | Initialises | the Serial Port
LEGACY_SerialRedirection | Starts | the Legacy Serial Redirection by hooking the required interrupts
LEGACY_ReleaseSerialRedirection | Stops | the Legacy Serial Redirection by Releasing the corresponding interrupts
LEGACY_InvalidFunction_FAR | Invalid | function

Description:
This structure consists of functions which are used for Leagcy Redirection


AMI_LEGACYSREDIR_TABLE in the LegacySredir.h

Variable : AMI_LEGACYSREDIR_TABLE

File: LegacySredir.h


LEGACY_SREDIR_DISABLE in the LegacySredir.h

Function : LEGACY_SREDIR_DISABLE

File: LegacySredir.h
Description:
Disable the Legacy Serial Redirection
Input:
This        Legacy Serial Redirection Protocol address
Output:
EFI_SUCCESS     Redirection Disabled
EFI_NOT_FOUND   Redirection Not disabled


LEGACY_SREDIR_ENABLE in the LegacySredir.h

Function : LEGACY_SREDIR_ENABLE

File: LegacySredir.h
Description:
Enable the Legacy Serial Redirection
Input:
This        Legacy Serial Redirection Protocol address
Output:
EFI_SUCCESS     Redirection Enabled
EFI_NOT_FOUND   Redirection Not enabled


LegacySredir.mak

Description:
Make file for the Legacy Serial Redirection Module part


LegacySredir_Setup.C

Description:
This File is used to get the Terminal Setup values from EFI

The following functions are used in the file: LegacySredir_Setup.C.

Function | Description
CheckForLoopbackDevice | Checks if a hardware loopback plug is attached and sets the result in Parameters->SerialDevicePresentOnPort.
GetPciSerialComPortNumber | This Function is used to get the Comport number to map Terminal Driver Setup values
GetSetupValuesForLegacySredir | This Function is used to get the Setup Values of Terminal Module
InitilizeNonCommonSerialRegsiters | This Function is used to Initilize the Non Standard Serial Port Registers
SerialReadPort | This Function is used to Read the
SerialWritePort | This Function is used to Read the
SkipInvalidPciComDevice | Skip the Invalid PCI COM device that is provided in the InvalidPciComDeviceList
ValidateComPort | Validate the COM port using Scratch Pad Registers.


CheckForLoopbackDevice in the LegacySredir_Setup.C

Function : CheckForLoopbackDevice

File: LegacySredir_Setup.C
Description:
Checks if a hardware loopback plug is attached and sets
the result in Parameters->SerialDevicePresentOnPort.
Input:
IN EFI_SERIAL_IO_PROTOCOL *SerialIo
Output:
VOID


GetPciSerialComPortNumber in the LegacySredir_Setup.C

Function : GetPciSerialComPortNumber

File: LegacySredir_Setup.C
Description:
This Function is used to get the Comport number to map Terminal Driver Setup values
Input:
IN  UINT8   Device,
IN  UINT8   Function
Output:
Comport number


GetSetupValuesForLegacySredir in the LegacySredir_Setup.C

Function : GetSetupValuesForLegacySredir

File: LegacySredir_Setup.C
Description:
This Function is used to get the Setup Values of Terminal Module
Input:
Nothing
Output:
AmiComParameters - SerialPort, Baudrate, Terminal Type, Flowcontrol


InitilizeNonCommonSerialRegsiters in the LegacySredir_Setup.C

Function : InitilizeNonCommonSerialRegsiters

File: LegacySredir_Setup.C
Description:
This Function is used to Initilize the Non Standard
Serial Port Registers
Input:
AmiComParameters-Address of the COM port parameters Structure
Output:
None
Notes:
Some of the MMIO com ports has non Standard bits in Registers
Those regsiters are all initilized on this function.


SerialReadPort in the LegacySredir_Setup.C

Function : SerialReadPort

File: LegacySredir_Setup.C
Description:
This Function is used to Read the
Input:
IN  UINT32  BaseAddress,
IN  UINT32  Offset,
IN  BOOLEAN MmioDevice
Output:
None


SerialWritePort in the LegacySredir_Setup.C

Function : SerialWritePort

File: LegacySredir_Setup.C
Description:
This Function is used to Read the
Input:
IN  UINT32  BaseAddress,
IN  UINT32  Offset,
IN  BOOLEAN MmioDevice
IN  UINT8   Data
Output:
Data


SkipInvalidPciComDevice in the LegacySredir_Setup.C

Function : SkipInvalidPciComDevice

File: LegacySredir_Setup.C
Description:
Skip the Invalid PCI COM device that is provided in the
InvalidPciComDeviceList
Input:
IN  UINT16 VendorId,
IN  UINT16 DeviceId,
Output:
TRUE - If the device has to be skipped
FALSE - Don't Skip the device


ValidateComPort in the LegacySredir_Setup.C

Function : ValidateComPort

File: LegacySredir_Setup.C
Description:
Validate the COM port using Scratch Pad Registers.
Input:
IN  UINT32   BaseAddress,
IN  BOOLEAN  MmioDevice
Output:
Comport number


SerialBootCall.asm

Description:
Call Back function registered for
CSM16_OEM_BEFORE_CALL_BOOT_VECTOR


SerialCallback.Asm

The following functions are used in the file: SerialCallback.Asm.

Function | Description
ReadSerialPort | Oem Function before serial Write
SerialCsm16_API | This routine is implementation of the CSM16 API #B
WriteSerialPort | Oem Function before serial Read


ReadSerialPort in the SerialCallback.Asm

Function : ReadSerialPort

File: SerialCallback.Asm
Segment: OEM16_CSEG
Description:
Oem Function before serial Write
Input:
None
Output:
None
Modified:
None


SerialCsm16_API in the SerialCallback.Asm

Function : SerialCsm16_API

File: SerialCallback.Asm
Segment: OEM16_CSEG
Description:
This routine is implementation of the CSM16 API #B
Input:
CX     00h   - Serial Read
          01h   - Serial Write
Output:
Modified:
None


WriteSerialPort in the SerialCallback.Asm

Function : WriteSerialPort

File: SerialCallback.Asm
Segment: OEM16_CSEG
Description:
Oem Function before serial Read
Input:
None
Output:
None
Modified:
None


SredirBootFail.asm

Description:
Call Back function registered for CSM16_OEM_ON_BOOT_FAIL


Function by Segment

By Segment

The following is a list of the segments.
For a list in alphabetical order, see In Alphabetical Order.
For a list by file name, see By File Name.

  • OEM16_CSEG


OEM16_CSEG

The following functions are used in the segment: OEM16_CSEG.

Function | Description
ReadSerialPort | Oem Function before serial Write
SerialCsm16_API | This routine is implementation of the CSM16 API #B
WriteSerialPort | Oem Function before serial Read


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.
For a list by segment, see By Segment.

  • A
  • C
  • D
  • E
  • F
  • G
  • I
  • L
  • R
  • S
  • V
  • W


Functions in Alphabetical Order

A

Data Structure | Description
AMI_COM_PARAMETERS | This structure consists of Com parameters and setup values which are used to transfer the data from EFI to Legacy for Legacy Redirection.
AMI_LEGACYSREDIR_FUNCTIONS | This structure consists of functions which are used for Leagcy Redirection
AMI_LEGACYSREDIR_TABLE |


Functions in Alphabetical Order

C

Function | Description
CheckForLoopbackDevice | Checks if a hardware loopback plug is attached and sets the result in Parameters->SerialDevicePresentOnPort.
ClearKbCharBuffer | Function to clear the Keyboard character buffer (in the 16-bit Serial Redirection module)
CopySredirBinIntoBaseMemory | This function copies the Sredir.bin into Base Memory


Functions in Alphabetical Order

D

Function | Description
DataCopiedToCsm16Function | This function copies the segment and offset address of sredir.bin
DisableLegacySredir | This function is used to disable the Legacy Serial redirection This function contains calls for functions which are used to release the interrupts which are used for Serial Redirection


Functions in Alphabetical Order

E

Function | Description
EnableLegacySredir | This function is used for enabling the legacy Serial Redirection This function contains calls for Intialising Serial ports and hooking the interrupts which are required for purpose of Redirection


Functions in Alphabetical Order

F

Function | Description
FindLegacySredirRom | This function searches for ROM within the data previously loaded from the main FV image and returns its pointer and size.


Functions in Alphabetical Order

G

Function | Description
GetPciSerialComPortNumber | This Function is used to get the Comport number to map Terminal Driver Setup values
GetSetupValuesForLegacySredir | This Function is used to get the Setup Values of Terminal Module


Functions in Alphabetical Order

I

Function | Description
InitilizeBuadRate | This Function is used to Initilize the Baud Rate of the COM port
InitilizeNonCommonSerialRegsiters | This Function is used to Initilize the Non Standard Serial Port Registers


Functions in Alphabetical Order

L

Function | Description
Legacy_OS_SerialRedirection | This function is used for Legacy Serial Redirection
LEGACY_SREDIR_DISABLE | Disable the Legacy Serial Redirection
LEGACY_SREDIR_ENABLE | Enable the Legacy Serial Redirection
LegacySredirEntryPoint | Legacy Serial Redirection driver entry point
LegacySreDirInSmmFunction | Legacy Serial Redirection Smm entry point
LegacySreDirNotInSmmFunction | Legacy Serial Redirection Non Smm entry point
LegacySredirSMIHandler | Legacy Serial Redirection Smm handler function


Functions in Alphabetical Order

R

Function | Description
ReadSerialPort | Read the Data from Serial Port
ReadSerialPort | Oem Function before serial Write


Functions in Alphabetical Order

S

Function | Description
SerialCsm16_API | This routine is implementation of the CSM16 API #B
SerialReadPort | This Function is used to Read the
SerialWritePort | This Function is used to Read the
SkipInvalidPciComDevice | Skip the Invalid PCI COM device that is provided in the InvalidPciComDeviceList


Functions in Alphabetical Order

V

Function | Description
ValidateComPort | Validate the COM port using Scratch Pad Registers.


Functions in Alphabetical Order

W

Function | Description
WriteBufferSerialPort | Write the buffer of data to Serial port
WriteSerialPort | Write the Data to Serial Port
WriteSerialPort | Oem Function before serial Read


General Information