ARMv5 doesn't actually use romfs_size.h
authorDavid Cock <david.cock@inf.ethz.ch>
Tue, 1 Sep 2015 08:33:52 +0000 (10:33 +0200)
committerDavid Cock <david.cock@inf.ethz.ch>
Tue, 1 Sep 2015 08:33:52 +0000 (10:33 +0200)
n.b. If we want to resurrect XScale, we'll need to reimplement proper
generation of the romfs size information, preferably with a binary patch
to avoid compiling everything twice.

Signed-off-by: David Cock <david.cock@inf.ethz.ch>

hake/ARMv5.hs
hake/XScale.hs
hake/symbolic_targets.mk
platforms/Hakefile

index 0a27488..2c9236c 100644 (file)
@@ -78,8 +78,7 @@ options = (ArchDefaults.options arch archFamily) {
             optDependencies = 
                 [ PreDep InstallTree arch "/include/errors/errno.h",
                   PreDep InstallTree arch "/include/barrelfish_kpi/capbits.h",
-                  PreDep InstallTree arch "/include/asmoffsets.h", 
-                  PreDep InstallTree arch "/include/romfs_size.h" ],
+                  PreDep InstallTree arch "/include/asmoffsets.h" ],
             optLdFlags = ldFlags,
             optLdCxxFlags = ldCxxFlags,
             optLibs = stdLibs,
index 97f2004..b918fcb 100644 (file)
@@ -75,7 +75,7 @@ options = (ArchDefaults.options arch archFamily) {
             optCxxFlags = cxxFlags,
             optDefines = cDefines,
             optDependencies = 
-                [ PreDep InstallTree arch "/include/errors/errno.h",
+                [ PreDep BuildTree   arch "/include/errors/errno.h",
                   PreDep InstallTree arch "/include/barrelfish_kpi/capbits.h",
                   PreDep InstallTree arch "/include/asmoffsets.h", 
                   PreDep InstallTree arch "/include/romfs_size.h" ],
index 0489d3f..379c1ed 100644 (file)
@@ -364,7 +364,8 @@ INSTALL_PREFIX ?= /home/netos/tftpboot/$(USER)
 # upload Xeon Phi images to nfs share (leave blank to cancel)
 BARRELFISH_NFS_DIR ?="emmentaler.ethz.ch:/mnt/local/nfs/barrelfish/xeon_phi"
 
-# Only install a binary if it doesn't exist in INSTALL_PREFIX or the modification timestamp differs
+# Only install a binary if it doesn't exist in INSTALL_PREFIX or the
+# modification timestamp differs.
 
 install: $(MODULES)
        @echo ""; \
@@ -435,7 +436,6 @@ $(TESTS): %.txt: %.cfg tools/bin/simulator
 schedsim-check: $(wildcard $(SRCDIR)/tools/schedsim/*.cfg)
        for f in $^; do tools/bin/simulator $$f $(RUNTIME) | diff -q - `dirname $$f`/`basename $$f .cfg`.txt || exit 1; done
 
-
 ######################################################################
 #
 # Documentation
@@ -451,16 +451,6 @@ doxygen: Doxyfile
        doxygen $<
 .PHONY: doxygen
 
-
-######################################################################
-#
-# Intel Xeon Phi Builds
-#
-######################################################################
-
-#k1om/sbin/weever: k1om/sbin/weever_elf
-#      $(K1OM_OBJCOPY) -O binary -R .note -R .comment -S k1om/sbin/weever_elf ./k1om/sbin/weever
-
 ################################################################################
 #
 # Backwards compatibility: remove soon
@@ -478,41 +468,3 @@ simulate:
        @echo "The targets 'sim' and 'simulate' have removed."
        @echo "Type 'make help-boot' for a list of simulation targets."
 .PHONY : simulate
-
-# XXX: Horrid hack to hardcode size of romfs CPIO image into ARM kernel
-# This works in several recursive make steps:
-# 1. Create a dummy romfs_size.h header file
-# 2. Compile everything
-# 3. Create the romfs CPIO image
-# 4. Determine its size and write to romfs_size.h
-# 5. Re-compile kernel (but not the romfs) with correct size information
-# 6. Install romfs to installation location
-
-$(ARCH)/menu.lst: $(SRCDIR)/hake/menu.lst.$(ARCH)
-       cp $< $@
-
-$(ARCH)/romfs.cpio: $(SRCDIR)/tools/arm-mkbootcpio.sh $(MODULES) $(ARCH)/menu.lst
-       $(SRCDIR)/tools/arm-mkbootcpio.sh $(ARCH)/menu.lst $@
-
-# Location of hardcoded size of romfs CPIO image
-arm_romfs_cpio = "$(ARCH)/include/romfs_size.h"
-
-arm:
-       $(MAKE)
-       $(MAKE) $(ARCH)/romfs.cpio
-       echo "//Autogenerated size of romfs.cpio because the bootloader cannot calculate it" > $(arm_romfs_cpio)
-       echo "size_t romfs_cpio_archive_size = `ls -asl $(ARCH)/romfs.cpio | sed -e 's/ /\n/g' | head -6 | tail -1`;" >> $(arm_romfs_cpio)
-       $(MAKE)
-.PHONY: arm
-
-# Builds a dummy romfs_size.h
-$(ARCH)/include/romfs_size.h:
-       mkdir -p $(shell dirname $@)
-       echo "size_t romfs_cpio_archive_size = 0; //should not see this" > $@
-
-arminstall:
-       $(MAKE) arm
-       $(MAKE) install
-       install -p $(ARCH)/romfs.cpio ${INSTALL_PREFIX}/$(ARCH)/romfs.cpio
-.PHONY: arminstall
-
index eedb79a..ad2a3be 100644 (file)
@@ -386,7 +386,7 @@ let bin_rcce_lu = [ "/sbin/" ++ f | f <- [
 
     platform "XScale" [ "xscale" ]
     ([ ("xscale", "/sbin/" ++ f) | f <- [ "cpu_ixp2800", "cpu_ixp2800.bin" ]])
-    "Very basic XScale configuration for testing",
+    "Very basic XScale configuration for testing, not guaranteed to boot",
 
     --
     -- Rules to build assorted boot images
@@ -454,6 +454,15 @@ let bin_rcce_lu = [ "/sbin/" ++ f | f <- [
             Dep BuildTree "tools" "/bin/arm_molly"
           ] ++ [ (Dep BuildTree "armv7" m) | m <- gem5Modules ]),
 
+    -- XScale needs a special rule to generate "include/romfs_size.h"
+    -- XXX - this is currently a non-functional stub.  A real solution would
+    -- be to do a binary patch on the final image, if anybody still cares.
+    Rule ([ Str "echo",
+            Str ("\"size_t romfs_cpio_archive_size = 0;" ++
+                 " //should not see this\""),
+            Str ">",
+            Out "xscale" "/include/romfs_size.h" ]),
+
     --
     -- Booting: various targets for booting Barrelfish under different circumstances
     --