Add EOI API to hardware interrupt. Add PCD setting form DRAM base and size. Remove...
authorandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 25 Feb 2010 19:25:44 +0000 (19:25 +0000)
committerandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 25 Feb 2010 19:25:44 +0000 (19:25 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10088 6f19259b-4bc3-4df7-8a09-765794883524

BeagleBoardPkg/BeagleBoardPkg.dsc
BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.S
BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm
BeagleBoardPkg/Sec/Sec.inf
EmbeddedPkg/EmbeddedPkg.dec
EmbeddedPkg/Include/Protocol/HardwareInterrupt.h
Omap35xxPkg/Omap35xxPkg.dec
Omap35xxPkg/Omap35xxPkg.dsc

index 189b64d..cf257fb 100644 (file)
   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
   
index 0ae8da6..89bcab7 100644 (file)
@@ -81,10 +81,11 @@ stack_pointer_setup:
   mov     r13,r4\r
 \r
   // Call C entry point\r
-  mov     r0, #0x80000000   /* memory base arg0          */\r
-  mov     r1, #0x10000000   /* memory size arg1          */\r
+  LoadConstantToReg (FixedPcdGet32(PcdMemorySize) ,r1)    /* memory size arg1          */\r
+  LoadConstantToReg (FixedPcdGet32(PcdMemoryBase) ,r0)    /* memory size arg0         */\r
+  \r
 \r
-  bl      ASM_PFX(CEntryPoint) /* Assume C code is ARM      */\r
+  blx      ASM_PFX(CEntryPoint) /* Assume C code is ARM      */\r
 \r
 ShouldNeverGetHere:\r
   /* _CEntryPoint should never return */\r
index 71e60b7..5217169 100644 (file)
@@ -59,8 +59,8 @@ stack_pointer_setup
   mov     r13,r4\r
 \r
   // Call C entry point\r
-  mov     r0, #0x80000000   /* memory base arg0          */\r
-  mov     r1, #0x10000000   /* memory size arg1          */\r
+  LoadConstantToReg (FixedPcdGet32(PcdMemorySize) ,r1)    /* memory size arg1          */\r
+  LoadConstantToReg (FixedPcdGet32(PcdMemoryBase) ,r0)    /* memory size arg0         */\r
   blx     CEntryPoint       /* Assume C code is thumb    */\r
 \r
 ShouldNeverGetHere\r
index a74dfb6..93ad6e0 100644 (file)
@@ -60,8 +60,9 @@
   gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize
   gEmbeddedTokenSpaceGuid.PcdPrePiStackSize
   gEmbeddedTokenSpaceGuid.PcdPrePiStackBase
+  gEmbeddedTokenSpaceGuid.PcdMemoryBase
+  gEmbeddedTokenSpaceGuid.PcdMemorySize
   
   gOmap35xxTokenSpaceGuid.PcdBeagleConsoleUart
   gOmap35xxTokenSpaceGuid.PcdBeagleFreeTimer
-  gOmap35xxTokenSpaceGuid.PcdBeagleBoardIRAMFullSize
 
index 4532149..f795128 100644 (file)
@@ -85,6 +85,9 @@
   gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|32|UINT8|0x00000010\r
   gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|0|UINT8|0x00000011\r
   \r
+  gEmbeddedTokenSpaceGuid.PcdMemoryBase|0x0|UINT32|0x0000004e\r
+  gEmbeddedTokenSpaceGuid.PcdMemorySize|0x0|UINT32|0x0000004f\r
+\r
   gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase|0x0|UINT32|0x00000043\r
   gEmbeddedTokenSpaceGuid.PcdFlashFvMainOffset|0x0|UINT32|0x00000044\r
   gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize|0x0|UINT32|0x000000045\r
index a482583..b2c8f0e 100644 (file)
@@ -133,7 +133,25 @@ EFI_STATUS
 (EFIAPI *HARDWARE_INTERRUPT_INTERRUPT_STATE) (\r
   IN EFI_HARDWARE_INTERRUPT_PROTOCOL    *This,\r
   IN HARDWARE_INTERRUPT_SOURCE          Source,\r
-  IN BOOLEAN                            *InterruptState\r
+  IN BOOLEAN                            *InterruptState  \r
+  );\r
+\r
+/**\r
+  Signal to the hardware that the End Of Intrrupt state \r
+  has been reached.\r
+\r
+  @param This     Instance pointer for this protocol\r
+  @param Source   Hardware source of the interrupt\r
+\r
+  @retval EFI_SUCCESS       Source interrupt EOI'ed.\r
+  @retval EFI_DEVICE_ERROR  Hardware could not be programmed.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *HARDWARE_INTERRUPT_END_OF_INTERRUPT) (\r
+  IN EFI_HARDWARE_INTERRUPT_PROTOCOL    *This,\r
+  IN HARDWARE_INTERRUPT_SOURCE          Source\r
   );\r
 \r
 \r
@@ -142,6 +160,7 @@ struct _EFI_HARDWARE_INTERRUPT_PROTOCOL {
   HARDWARE_INTERRUPT_ENABLE           EnableInterruptSource;\r
   HARDWARE_INTERRUPT_DISABLE          DisableInterruptSource;\r
   HARDWARE_INTERRUPT_INTERRUPT_STATE  GetInterruptSourceState;\r
+  HARDWARE_INTERRUPT_END_OF_INTERRUPT EndOfInterrupt;\r
 };\r
 \r
 extern EFI_GUID gHardwareInterruptProtocolGuid;\r
index 2091ca6..413f1be 100644 (file)
@@ -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
index 2efe36f..c8cc298 100644 (file)
   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