mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-11-04 06:52:16 +00:00 
			
		
		
		
	1. removed an extra call to SetVectorBase() in the SetMode() function.
2. implemented GetInterruptLine() function. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8418 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
		
							parent
							
								
									6535652ebd
								
							
						
					
					
						commit
						ae6a37f06b
					
				@ -209,8 +209,8 @@ Interrupt8259SetVectorBase (
 | 
			
		||||
    IoWrite8 (LEGACY_8259_MASK_REGISTER_MASTER, Mask);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  IoWrite8 (LEGACY_8259_CONTROL_REGISTER_SLAVE, 0x20);
 | 
			
		||||
  IoWrite8 (LEGACY_8259_CONTROL_REGISTER_MASTER, 0x20);
 | 
			
		||||
  IoWrite8 (LEGACY_8259_CONTROL_REGISTER_SLAVE, LEGACY_8259_EOI);
 | 
			
		||||
  IoWrite8 (LEGACY_8259_CONTROL_REGISTER_MASTER, LEGACY_8259_EOI);
 | 
			
		||||
 | 
			
		||||
  return EFI_SUCCESS;
 | 
			
		||||
}
 | 
			
		||||
@ -351,11 +351,6 @@ Interrupt8259SetMode (
 | 
			
		||||
    //
 | 
			
		||||
    // Write new legacy mode mask/trigger level
 | 
			
		||||
    //
 | 
			
		||||
    Interrupt8259SetVectorBase (This, LEGACY_MODE_BASE_VECTOR_MASTER, LEGACY_MODE_BASE_VECTOR_SLAVE);
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // Enable Interrupts
 | 
			
		||||
    //
 | 
			
		||||
    Interrupt8259WriteMask (mLegacyModeMask, mLegacyModeEdgeLevel);
 | 
			
		||||
 | 
			
		||||
    return EFI_SUCCESS;
 | 
			
		||||
@ -391,11 +386,6 @@ Interrupt8259SetMode (
 | 
			
		||||
    //
 | 
			
		||||
    // Write new protected mode mask/trigger level
 | 
			
		||||
    //
 | 
			
		||||
    Interrupt8259SetVectorBase (This, PROTECTED_MODE_BASE_VECTOR_MASTER, PROTECTED_MODE_BASE_VECTOR_SLAVE);
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // Enable Interrupts
 | 
			
		||||
    //
 | 
			
		||||
    Interrupt8259WriteMask (mProtectedModeMask, mProtectedModeEdgeLevel);
 | 
			
		||||
 | 
			
		||||
    return EFI_SUCCESS;
 | 
			
		||||
@ -519,7 +509,33 @@ Interrupt8259GetInterruptLine (
 | 
			
		||||
  OUT UINT8                     *Vector
 | 
			
		||||
  )
 | 
			
		||||
{
 | 
			
		||||
  return EFI_UNSUPPORTED;
 | 
			
		||||
  EFI_PCI_IO_PROTOCOL *PciIo;
 | 
			
		||||
  UINT8               InterruptLine;
 | 
			
		||||
  EFI_STATUS          Status;
 | 
			
		||||
 | 
			
		||||
  Status = gBS->HandleProtocol (
 | 
			
		||||
                  PciHandle,
 | 
			
		||||
                  &gEfiPciIoProtocolGuid,
 | 
			
		||||
                  (VOID **) &PciIo
 | 
			
		||||
                  );
 | 
			
		||||
  if (EFI_ERROR (Status)) {
 | 
			
		||||
    return EFI_INVALID_PARAMETER;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  PciIo->Pci.Read (
 | 
			
		||||
               PciIo,
 | 
			
		||||
               EfiPciIoWidthUint8,
 | 
			
		||||
               PCI_INT_LINE_OFFSET,
 | 
			
		||||
               1,
 | 
			
		||||
               &InterruptLine
 | 
			
		||||
               );
 | 
			
		||||
  //
 | 
			
		||||
  // Interrupt line is same location for standard PCI cards, standard
 | 
			
		||||
  // bridge and CardBus bridge.
 | 
			
		||||
  //
 | 
			
		||||
  *Vector = InterruptLine;
 | 
			
		||||
 | 
			
		||||
  return EFI_SUCCESS;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
/** @file
 | 
			
		||||
  Driver implementing the Tiano Legacy 8259 Protocol
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2005, 2009, Intel Corporation                                                         
 | 
			
		||||
Copyright (c) 2005 - 2009, Intel Corporation                                                         
 | 
			
		||||
All rights reserved. This program and the accompanying materials                          
 | 
			
		||||
are licensed and made available under the terms and conditions of the BSD License         
 | 
			
		||||
which accompanies this distribution.  The full text of the license may be found at        
 | 
			
		||||
@ -18,11 +18,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | 
			
		||||
#include <FrameworkDxe.h>
 | 
			
		||||
 | 
			
		||||
#include <Protocol/Legacy8259.h>
 | 
			
		||||
#include <Protocol/PciIo.h>
 | 
			
		||||
 | 
			
		||||
#include <Library/UefiBootServicesTableLib.h>
 | 
			
		||||
#include <Library/DebugLib.h>
 | 
			
		||||
#include <Library/IoLib.h>
 | 
			
		||||
#include <Library/BaseLib.h>
 | 
			
		||||
 | 
			
		||||
#include <IndustryStandard/Pci22.h>
 | 
			
		||||
//
 | 
			
		||||
// 8259 Hardware definitions
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
#/** @file
 | 
			
		||||
# 8259 Interrupt Controller driver
 | 
			
		||||
#
 | 
			
		||||
# Copyright (c) 2005 - 2007, 2009, Intel Corporation                                                         
 | 
			
		||||
# Copyright (c) 2005 - 2009, Intel Corporation                                                         
 | 
			
		||||
# All rights reserved. This program and the accompanying materials                          
 | 
			
		||||
# are licensed and made available under the terms and conditions of the BSD License         
 | 
			
		||||
# which accompanies this distribution.  The full text of the license may be found at        
 | 
			
		||||
@ -40,6 +40,7 @@
 | 
			
		||||
 | 
			
		||||
[Protocols]
 | 
			
		||||
  gEfiLegacy8259ProtocolGuid                    # PROTOCOL ALWAYS_PRODUCED
 | 
			
		||||
  gEfiPciIoProtocolGuid
 | 
			
		||||
 | 
			
		||||
[Depex]
 | 
			
		||||
  TRUE
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user