XScale builds
authorDavid Cock <david.cock@inf.ethz.ch>
Fri, 28 Aug 2015 15:10:19 +0000 (17:10 +0200)
committerDavid Cock <david.cock@inf.ethz.ch>
Fri, 28 Aug 2015 15:10:19 +0000 (17:10 +0200)
Signed-off-by: David Cock <david.cock@inf.ethz.ch>

hake/Config.hs.arm-gcc-4.9-2014q4
hake/Config.hs.ubuntu
hake/XScale.hs
platforms/Hakefile

index 17d119a..cbbc047 100644 (file)
@@ -22,16 +22,20 @@ import Data.List
 --
 -- Toolchain definitions.  By default, these rely on $PATH 
 --
-arm_gcc_path = "/home/netos/tools/gcc-arm-embedded/" ++
+
+-- ARM toolchain
+arm_gnu_path = "/home/netos/tools/gcc-arm-embedded/" ++
                "gcc-arm-none-eabi-4_9-2014q4" ++
                "/bin/"
-arm_gcc_prefix = "arm-none-eabi-"
-arm_cc       = arm_gcc_path ++ arm_gcc_prefix ++ "gcc"
-arm_objcopy  = arm_gcc_path ++ arm_gcc_prefix ++ "objcopy"
-arm_objdump  = arm_gcc_path ++ arm_gcc_prefix ++ "objdump"
-arm_ar       = arm_gcc_path ++ arm_gcc_prefix ++ "ar"
-arm_ranlib   = arm_gcc_path ++ arm_gcc_prefix ++ "ranlib"
-arm_cxx      = arm_gcc_path ++ arm_gcc_prefix ++ "g++"
+arm_gnu_prefix = "arm-none-eabi-"
+arm_gnu_tool = findTool arm_gnu_path arm_gnu_prefix
+
+arm_cc       = arm_gnu_tool "gcc"
+arm_objcopy  = arm_gnu_tool "objcopy"
+arm_objdump  = arm_gnu_tool "objdump"
+arm_ar       = arm_gnu_tool "ar"
+arm_ranlib   = arm_gnu_tool "ranlib"
+arm_cxx      = arm_gnu_tool "g++"
 
 x86_cc       = "gcc"
 x86_cxx      = "g++"
index 00d57ae..ce6240a 100644 (file)
@@ -49,6 +49,18 @@ thumb_ar       = thumb_gnu_tool "ar"
 thumb_ranlib   = thumb_gnu_tool "ranlib"
 thumb_cxx      = thumb_gnu_tool "g++"
 
+-- ARM big-endian (e.g. XScale) toolchain
+armeb_gnu_path = "/opt/gcc-linaro-4.9-2015.02-3-x86_64_armeb-eabi/bin"
+armeb_gnu_prefix = "armeb-eabi-"
+armeb_gnu_tool = findTool armeb_gnu_path armeb_gnu_prefix
+
+armeb_cc       = armeb_gnu_tool "gcc"
+armeb_objcopy  = armeb_gnu_tool "objcopy"
+armeb_objdump  = armeb_gnu_tool "objdump"
+armeb_ar       = armeb_gnu_tool "ar"
+armeb_ranlib   = armeb_gnu_tool "ranlib"
+armeb_cxx      = armeb_gnu_tool "g++"
+
 -- X86 (32/64) toolchain
 x86_gnu_path = ""
 x86_gnu_prefix = ""
index f3a1336..97f2004 100644 (file)
@@ -27,12 +27,12 @@ import qualified ArchDefaults
 arch = "xscale"
 archFamily = "arm"
 
-compiler    = Config.arm_cc
-objcopy     = Config.arm_objcopy
-objdump     = Config.arm_objdump
-ar          = Config.arm_ar
-ranlib      = Config.arm_ranlib
-cxxcompiler = Config.arm_cxx
+compiler    = Config.armeb_cc
+objcopy     = Config.armeb_objcopy
+objdump     = Config.armeb_objdump
+ar          = Config.armeb_ar
+ranlib      = Config.armeb_ranlib
+cxxcompiler = Config.armeb_cxx
 
 ourCommonFlags = [ Str "-Wno-packed-bitfield-compat",
                    Str "-Wno-format",
index 38549d1..adfacbb 100644 (file)
@@ -388,6 +388,10 @@ let bin_rcce_lu = [ "/sbin/" ++ f | f <- [
     ([ ("arm11mp", "/sbin/" ++ f) | f <- [ "cpu", "cpu.bin" ]])
     "Very basic ARM11MP configuration for testing",
 
+    platform "XScale" [ "xscale" ]
+    ([ ("xscale", "/sbin/" ++ f) | f <- [ "cpu_ixp2800", "cpu_ixp2800.bin" ]])
+    "Very basic XScale configuration for testing",
+
     --
     -- Rules to build assorted boot images
     --