Fixes to get CodeSourcery GCC and RVCT 3.1 compiling.
authorandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 3 Feb 2011 01:49:07 +0000 (01:49 +0000)
committerandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 3 Feb 2011 01:49:07 +0000 (01:49 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11298 6f19259b-4bc3-4df7-8a09-765794883524

ArmPkg/ArmPkg.dsc
ArmPkg/Library/ArmLib/Common/ArmLibSupport.asm
ArmPkg/Universal/MmcDxe/MmcBlockIo.c

index 8cc748c..6244737 100644 (file)
@@ -35,7 +35,7 @@
   XCODE:RELEASE_*_*_CC_FLAGS     = -DMDEPKG_NDEBUG 
   
   GCC:*_*_ARM_ARCHCC_FLAGS     == -march=armv7-a -mthumb
   XCODE:RELEASE_*_*_CC_FLAGS     = -DMDEPKG_NDEBUG 
   
   GCC:*_*_ARM_ARCHCC_FLAGS     == -march=armv7-a -mthumb
-  GCC:*_*_ARM_ARCHASM_FLAGS    == -march=armv7-a
+  GCC:*_*_ARM_ARCHASM_FLAGS    == -march=armv7-a -mfpu=neon
   GCC:RELEASE_*_*_CC_FLAGS     = -DMDEPKG_NDEBUG 
 
   RVCT:*_*_ARM_ARCHCC_FLAGS  == --cpu Cortex-A8 --thumb
   GCC:RELEASE_*_*_CC_FLAGS     = -DMDEPKG_NDEBUG 
 
   RVCT:*_*_ARM_ARCHCC_FLAGS  == --cpu Cortex-A8 --thumb
   ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
   ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
   ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
   ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
   ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
   ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
-  ArmPkg/Library/ArmLib/Arm11/Arm11ArmLib.inf
-  ArmPkg/Library/ArmLib/Arm11/Arm11ArmLibPrePi.inf
-  ArmPkg/Library/ArmLib/Arm9/Arm9ArmLib.inf
-  ArmPkg/Library/ArmLib/Arm9/Arm9ArmLibPrePi.inf
+#  ArmPkg/Library/ArmLib/Arm11/Arm11ArmLib.inf
+#  ArmPkg/Library/ArmLib/Arm11/Arm11ArmLibPrePi.inf
+#  ArmPkg/Library/ArmLib/Arm9/Arm9ArmLib.inf
+#  ArmPkg/Library/ArmLib/Arm9/Arm9ArmLibPrePi.inf
   ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
   ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
   ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
   ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
   ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
   ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
index 4d6c253..850bb96 100644 (file)
@@ -12,6 +12,9 @@
 //
 //------------------------------------------------------------------------------
 
 //
 //------------------------------------------------------------------------------
 
+#include <AsmMacroIoLib.h>
+    
+    INCLUDE AsmMacroIoLib.inc
 
     EXPORT  Cp15IdCode
     EXPORT  Cp15CacheInfo
 
     EXPORT  Cp15IdCode
     EXPORT  Cp15CacheInfo
@@ -41,9 +44,9 @@ Cp15CacheInfo
 
 ArmIsMPCore
   mrc     p15,0,R0,c0,c0,5
 
 ArmIsMPCore
   mrc     p15,0,R0,c0,c0,5
-  # Get Multiprocessing extension (bit31) & U bit (bit30)
+  // Get Multiprocessing extension (bit31) & U bit (bit30)
   and     R0, R0, #0xC0000000
   and     R0, R0, #0xC0000000
-  # if bit30 == 0 then the processor is part of a multiprocessor system)
+  // if bit30 == 0 then the processor is part of a multiprocessor system)
   and     R0, R0, #0x80000000
   bx      LR
 
   and     R0, R0, #0x80000000
   bx      LR
 
@@ -102,7 +105,8 @@ ArmSetTTBR0
 
 ArmGetTTBR0BaseAddress
   mrc     p15,0,r0,c2,c0,0
 
 ArmGetTTBR0BaseAddress
   mrc     p15,0,r0,c2,c0,0
-  and     r0, r0, #0xFFFFC000
+  LoadConstantToReg(0xFFFFC000,r1)  // and     r0, r0, #0xFFFFC000
+  and     r0, r0, r1
   bx      lr
 
 ArmSetDomainAccessControl
   bx      lr
 
 ArmSetDomainAccessControl
index d8bd2d1..16af1d4 100644 (file)
@@ -34,24 +34,24 @@ MmcNotifyState (
 }\r
 \r
 VOID PrintOCR(UINT32 ocr) {\r
 }\r
 \r
 VOID PrintOCR(UINT32 ocr) {\r
-    float minv, maxv, volts;\r
-    int loop;\r
+    UINTN minv, maxv, volts;\r
+    UINTN loop;\r
 \r
 \r
-    minv  = 3.6;\r
-    maxv  = 2.0;\r
-    volts = 2.0;\r
+    minv  = 36;  // 3.6\r
+    maxv  = 20;  // 2.0\r
+    volts = 20;  // 2.0\r
 \r
     // The MMC register bits [23:8] indicate the working range of the card\r
     for (loop = 8; loop < 24; loop++) {\r
         if (ocr & (1 << loop)) {\r
             if (minv > volts) minv = volts;\r
 \r
     // The MMC register bits [23:8] indicate the working range of the card\r
     for (loop = 8; loop < 24; loop++) {\r
         if (ocr & (1 << loop)) {\r
             if (minv > volts) minv = volts;\r
-            if (maxv < volts) maxv = volts + 0.1;\r
+            if (maxv < volts) maxv = volts + 1;\r
         }\r
         }\r
-        volts = volts + 0.1;\r
+        volts = volts + 1;\r
     }\r
 \r
     DEBUG((EFI_D_ERROR, "- PrintOCR ocr (0x%X)\n",ocr));\r
     }\r
 \r
     DEBUG((EFI_D_ERROR, "- PrintOCR ocr (0x%X)\n",ocr));\r
-    //DEBUG((EFI_D_ERROR, "\t- Card operating voltage: %fV to %fV\n", minv, maxv));\r
+    DEBUG((EFI_D_ERROR, "\t- Card operating voltage: %d.%d to %d.%d\n", minv/10, minv % 10, maxv/10, maxv % 10));\r
     if (((ocr >> 29) & 3) == 0)\r
         DEBUG((EFI_D_ERROR, "\t- AccessMode: Byte Mode\n"));\r
     else\r
     if (((ocr >> 29) & 3) == 0)\r
         DEBUG((EFI_D_ERROR, "\t- AccessMode: Byte Mode\n"));\r
     else\r