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
diff --git a/BeagleBoardPkg/BeagleBoardPkg.dsc b/BeagleBoardPkg/BeagleBoardPkg.dsc
index 189b64d..cf257fb 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 0ae8da6..89bcab7 100644
--- a/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.S
+++ b/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.S
@@ -81,10 +81,11 @@
   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 71e60b7..5217169 100644
--- a/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm
+++ b/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm
@@ -59,8 +59,8 @@
   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 a74dfb6..93ad6e0 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 4532149..f795128 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 a482583..b2c8f0e 100644
--- a/EmbeddedPkg/Include/Protocol/HardwareInterrupt.h
+++ b/EmbeddedPkg/Include/Protocol/HardwareInterrupt.h
@@ -133,7 +133,25 @@
 (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 @@
   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 2091ca6..413f1be 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 2efe36f..c8cc298 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