Added these drivers: * LegacyBiosDxe * BlockIoDxe * KeyboardDxe * Snp16Dxe * VideoDxe Signed-off-by: jljusten Reviewed-by: mdkinney Reviewed-by: geekboy15a git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11905 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   This code fills in BDA (0x400) and EBDA (pointed to by 0x4xx)
 | |
|   information. There is support for doing initializeation before
 | |
|   Legacy16 is loaded and before a legacy boot is attempted.
 | |
| 
 | |
| Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
 | |
| 
 | |
| This program and the accompanying materials
 | |
| are licensed and made available under the terms and conditions
 | |
| of the BSD License which accompanies this distribution.  The
 | |
| full text of the license may be found at
 | |
| http://opensource.org/licenses/bsd-license.php
 | |
| 
 | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | |
| 
 | |
| **/
 | |
| 
 | |
| #include "LegacyBiosInterface.h"
 | |
| 
 | |
| /**
 | |
|   Fill in the standard BDA and EBDA stuff before Legacy16 load
 | |
| 
 | |
|   @param  Private     Legacy BIOS Instance data
 | |
| 
 | |
|   @retval EFI_SUCCESS It should always work.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| LegacyBiosInitBda (
 | |
|   IN  LEGACY_BIOS_INSTANCE    *Private
 | |
|   )
 | |
| {
 | |
|   BDA_STRUC *Bda;
 | |
|   UINT8     *Ebda;
 | |
| 
 | |
|   Bda   = (BDA_STRUC *) ((UINTN) 0x400);
 | |
|   Ebda  = (UINT8 *) ((UINTN) 0x9fc00);
 | |
| 
 | |
|   ZeroMem (Bda, 0x100);
 | |
|   ZeroMem (Ebda, 0x400);
 | |
|   //
 | |
|   // 640k-1k for EBDA
 | |
|   //
 | |
|   Bda->MemSize        = 0x27f;
 | |
|   Bda->KeyHead        = 0x1e;
 | |
|   Bda->KeyTail        = 0x1e;
 | |
|   Bda->FloppyData     = 0x00;
 | |
|   Bda->FloppyTimeout  = 0xff;
 | |
| 
 | |
|   Bda->KeyStart       = 0x001E;
 | |
|   Bda->KeyEnd         = 0x003E;
 | |
|   Bda->KeyboardStatus = 0x10;
 | |
|   Bda->Ebda           = 0x9fc0;
 | |
| 
 | |
|   //
 | |
|   // Move LPT time out here and zero out LPT4 since some SCSI OPROMS
 | |
|   // use this as scratch pad (LPT4 is Reserved)
 | |
|   //
 | |
|   Bda->Lpt1_2Timeout  = 0x1414;
 | |
|   Bda->Lpt3_4Timeout  = 0x1400;
 | |
| 
 | |
|   *Ebda               = 0x01;
 | |
| 
 | |
|   return EFI_SUCCESS;
 | |
| }
 |