From 753816a324525096dbe83672190bbf4b2d7eefaf Mon Sep 17 00:00:00 2001 From: andrewfish Date: Thu, 25 Feb 2010 19:25:44 +0000 Subject: [PATCH] Add EOI API to hardware interrupt. Add PCD setting form DRAM base and size. Remove bogus PCD git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10088 6f19259b-4bc3-4df7-8a09-765794883524 --- BeagleBoardPkg/BeagleBoardPkg.dsc | 6 +++++- BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.S | 7 ++++--- BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm | 4 ++-- BeagleBoardPkg/Sec/Sec.inf | 3 ++- EmbeddedPkg/EmbeddedPkg.dec | 3 +++ .../Include/Protocol/HardwareInterrupt.h | 21 ++++++++++++++++++- Omap35xxPkg/Omap35xxPkg.dec | 1 - Omap35xxPkg/Omap35xxPkg.dsc | 1 - 8 files changed, 36 insertions(+), 10 deletions(-) diff --git a/BeagleBoardPkg/BeagleBoardPkg.dsc b/BeagleBoardPkg/BeagleBoardPkg.dsc index 189b64dc3f..cf257fb97b 100644 --- a/BeagleBoardPkg/BeagleBoardPkg.dsc +++ b/BeagleBoardPkg/BeagleBoardPkg.dsc @@ -287,7 +287,11 @@ gEmbeddedTokenSpaceGuid.PcdPrePiHobBase|0x80001000 gEmbeddedTokenSpaceGuid.PcdPrePiStackBase|0x87FE0000 # stack at top of memory gEmbeddedTokenSpaceGuid.PcdPrePiStackSize|0x20000 # 128K stack - gBeagleBoardTokenSpaceGuid.PcdBeagleBoardIRAMFullSize|0x00000000 + + gEmbeddedTokenSpaceGuid.PcdMemoryBase|0x80000000 + gEmbeddedTokenSpaceGuid.PcdMemorySize|0x10000000 + + gArmTokenSpaceGuid.PcdCpuVectorBaseAddress|0x80000000 gArmTokenSpaceGuid.PcdCpuResetAddress|0x80008000 diff --git a/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.S b/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.S index 0ae8da6a24..89bcab77ef 100644 --- a/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.S +++ b/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.S @@ -81,10 +81,11 @@ stack_pointer_setup: mov r13,r4 // Call C entry point - mov r0, #0x80000000 /* memory base arg0 */ - mov r1, #0x10000000 /* memory size arg1 */ + LoadConstantToReg (FixedPcdGet32(PcdMemorySize) ,r1) /* memory size arg1 */ + LoadConstantToReg (FixedPcdGet32(PcdMemoryBase) ,r0) /* memory size arg0 */ + - bl ASM_PFX(CEntryPoint) /* Assume C code is ARM */ + blx ASM_PFX(CEntryPoint) /* Assume C code is ARM */ ShouldNeverGetHere: /* _CEntryPoint should never return */ diff --git a/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm b/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm index 71e60b707a..52171692b5 100644 --- a/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm +++ b/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm @@ -59,8 +59,8 @@ stack_pointer_setup mov r13,r4 // Call C entry point - mov r0, #0x80000000 /* memory base arg0 */ - mov r1, #0x10000000 /* memory size arg1 */ + LoadConstantToReg (FixedPcdGet32(PcdMemorySize) ,r1) /* memory size arg1 */ + LoadConstantToReg (FixedPcdGet32(PcdMemoryBase) ,r0) /* memory size arg0 */ blx CEntryPoint /* Assume C code is thumb */ ShouldNeverGetHere diff --git a/BeagleBoardPkg/Sec/Sec.inf b/BeagleBoardPkg/Sec/Sec.inf index a74dfb6bc3..93ad6e0ebc 100644 --- a/BeagleBoardPkg/Sec/Sec.inf +++ b/BeagleBoardPkg/Sec/Sec.inf @@ -60,8 +60,9 @@ gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize gEmbeddedTokenSpaceGuid.PcdPrePiStackSize gEmbeddedTokenSpaceGuid.PcdPrePiStackBase + gEmbeddedTokenSpaceGuid.PcdMemoryBase + gEmbeddedTokenSpaceGuid.PcdMemorySize gOmap35xxTokenSpaceGuid.PcdBeagleConsoleUart gOmap35xxTokenSpaceGuid.PcdBeagleFreeTimer - gOmap35xxTokenSpaceGuid.PcdBeagleBoardIRAMFullSize diff --git a/EmbeddedPkg/EmbeddedPkg.dec b/EmbeddedPkg/EmbeddedPkg.dec index 4532149120..f79512822c 100644 --- a/EmbeddedPkg/EmbeddedPkg.dec +++ b/EmbeddedPkg/EmbeddedPkg.dec @@ -85,6 +85,9 @@ gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|32|UINT8|0x00000010 gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|0|UINT8|0x00000011 + gEmbeddedTokenSpaceGuid.PcdMemoryBase|0x0|UINT32|0x0000004e + gEmbeddedTokenSpaceGuid.PcdMemorySize|0x0|UINT32|0x0000004f + gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase|0x0|UINT32|0x00000043 gEmbeddedTokenSpaceGuid.PcdFlashFvMainOffset|0x0|UINT32|0x00000044 gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize|0x0|UINT32|0x000000045 diff --git a/EmbeddedPkg/Include/Protocol/HardwareInterrupt.h b/EmbeddedPkg/Include/Protocol/HardwareInterrupt.h index a4825832c4..b2c8f0e023 100644 --- a/EmbeddedPkg/Include/Protocol/HardwareInterrupt.h +++ b/EmbeddedPkg/Include/Protocol/HardwareInterrupt.h @@ -133,7 +133,25 @@ EFI_STATUS (EFIAPI *HARDWARE_INTERRUPT_INTERRUPT_STATE) ( IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This, IN HARDWARE_INTERRUPT_SOURCE Source, - IN BOOLEAN *InterruptState + IN BOOLEAN *InterruptState + ); + +/** + Signal to the hardware that the End Of Intrrupt state + has been reached. + + @param This Instance pointer for this protocol + @param Source Hardware source of the interrupt + + @retval EFI_SUCCESS Source interrupt EOI'ed. + @retval EFI_DEVICE_ERROR Hardware could not be programmed. + +**/ +typedef +EFI_STATUS +(EFIAPI *HARDWARE_INTERRUPT_END_OF_INTERRUPT) ( + IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This, + IN HARDWARE_INTERRUPT_SOURCE Source ); @@ -142,6 +160,7 @@ struct _EFI_HARDWARE_INTERRUPT_PROTOCOL { HARDWARE_INTERRUPT_ENABLE EnableInterruptSource; HARDWARE_INTERRUPT_DISABLE DisableInterruptSource; HARDWARE_INTERRUPT_INTERRUPT_STATE GetInterruptSourceState; + HARDWARE_INTERRUPT_END_OF_INTERRUPT EndOfInterrupt; }; extern EFI_GUID gHardwareInterruptProtocolGuid; diff --git a/Omap35xxPkg/Omap35xxPkg.dec b/Omap35xxPkg/Omap35xxPkg.dec index 2091ca66d7..413f1be63e 100644 --- a/Omap35xxPkg/Omap35xxPkg.dec +++ b/Omap35xxPkg/Omap35xxPkg.dec @@ -38,7 +38,6 @@ [PcdsFeatureFlag.common] [PcdsFixedAtBuild.common] - gOmap35xxTokenSpaceGuid.PcdBeagleBoardIRAMFullSize|0x00000000|UINT32|0x00000201 gOmap35xxTokenSpaceGuid.PcdBeagleConsoleUart|3|UINT32|0x00000202 gOmap35xxTokenSpaceGuid.PcdBeagleGpmcOffset|0x00000000|UINT32|0x00000203 gOmap35xxTokenSpaceGuid.PcdBeagleMMCHS1Base|0x00000000|UINT32|0x00000204 diff --git a/Omap35xxPkg/Omap35xxPkg.dsc b/Omap35xxPkg/Omap35xxPkg.dsc index 2efe36f255..c8cc298a89 100644 --- a/Omap35xxPkg/Omap35xxPkg.dsc +++ b/Omap35xxPkg/Omap35xxPkg.dsc @@ -145,7 +145,6 @@ gEmbeddedTokenSpaceGuid.PcdPrePiHobBase|0x80001000 gEmbeddedTokenSpaceGuid.PcdPrePiStackBase|0x87FE0000 # stack at top of memory gEmbeddedTokenSpaceGuid.PcdPrePiStackSize|0x20000 # 128K stack - gOmap35xxTokenSpaceGuid.PcdBeagleBoardIRAMFullSize|0x00000000 gArmTokenSpaceGuid.PcdCpuVectorBaseAddress|0x80000000 gArmTokenSpaceGuid.PcdCpuResetAddress|0x80008000 -- 2.39.2