summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2021-11-15 11:42:28 +0000
committerAidan MacDonald <amachronic@protonmail.com>2021-11-18 14:14:54 -0500
commit701d4ba77e61984a71ddbf552193e5567be4e3af (patch)
treec54de2854815fa010b13b9c686715f7fea2ce7ec
parent6e61e6f0c882ae4f6797b6a8c3ae92bb41e82893 (diff)
downloadrockbox-701d4ba77e61984a71ddbf552193e5567be4e3af.tar.gz
rockbox-701d4ba77e61984a71ddbf552193e5567be4e3af.zip
x1000: Merge makefiles used for the bootloader
All three X1000 native targets turned out to have a very similar boot configuration and used a nearly identical makefile. Eliminate this duplication by moving the logic into the main makefile. Change-Id: I13044b9675c0abd605b8accdb2fee4f54549b020
-rw-r--r--firmware/target/mips/ingenic_x1000/erosqnative/boot.make30
-rw-r--r--firmware/target/mips/ingenic_x1000/fiiom3k/boot.make30
-rw-r--r--firmware/target/mips/ingenic_x1000/shanlingq1/boot.make31
-rw-r--r--firmware/target/mips/ingenic_x1000/x1000boot.make43
-rwxr-xr-xtools/configure6
5 files changed, 45 insertions, 95 deletions
diff --git a/firmware/target/mips/ingenic_x1000/erosqnative/boot.make b/firmware/target/mips/ingenic_x1000/erosqnative/boot.make
deleted file mode 100644
index b6d0844cd0..0000000000
--- a/firmware/target/mips/ingenic_x1000/erosqnative/boot.make
+++ /dev/null
@@ -1,30 +0,0 @@
-# __________ __ ___.
-# Open \______ \ ____ ____ | | _\_ |__ _______ ___
-# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
-# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
-# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
-# \/ \/ \/ \/ \/
-# $Id$
-#
-
-include $(ROOTDIR)/lib/microtar/microtar.make
-
-.SECONDEXPANSION:
-
-$(BUILDDIR)/spl.erosq: $(BUILDDIR)/spl.bin
- $(call PRINTS,MKSPL $(@F))$(TOOLSDIR)/mkspl-x1000 -type=nand -ppb=2 -bpp=2 $< $@
-
-$(BUILDDIR)/bootloader.ucl: $(BUILDDIR)/bootloader.bin
- $(call PRINTS,UCLPACK $(@F))$(TOOLSDIR)/uclpack --nrv2e -9 $< $@ >/dev/null
-
-.PHONY: $(BUILDDIR)/bootloader-info.txt
-$(BUILDDIR)/bootloader-info.txt:
- $(call PRINTS,GEN $(@F))echo $(SVNVERSION) > $@
-
-$(BUILDDIR)/$(BINARY): $(BUILDDIR)/spl.erosq \
- $(BUILDDIR)/bootloader.ucl \
- $(BUILDDIR)/bootloader-info.txt
- $(call PRINTS,TAR $(@F))tar -C $(BUILDDIR) \
- --numeric-owner --no-acls --no-xattrs --no-selinux \
- --mode=0644 --owner=0 --group=0 \
- -cf $@ $(call full_path_subst,$(BUILDDIR)/%,%,$^)
diff --git a/firmware/target/mips/ingenic_x1000/fiiom3k/boot.make b/firmware/target/mips/ingenic_x1000/fiiom3k/boot.make
deleted file mode 100644
index 77b23167c2..0000000000
--- a/firmware/target/mips/ingenic_x1000/fiiom3k/boot.make
+++ /dev/null
@@ -1,30 +0,0 @@
-# __________ __ ___.
-# Open \______ \ ____ ____ | | _\_ |__ _______ ___
-# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
-# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
-# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
-# \/ \/ \/ \/ \/
-# $Id$
-#
-
-include $(ROOTDIR)/lib/microtar/microtar.make
-
-.SECONDEXPANSION:
-
-$(BUILDDIR)/spl.m3k: $(BUILDDIR)/spl.bin
- $(call PRINTS,MKSPL $(@F))$(TOOLSDIR)/mkspl-x1000 -type=nand -ppb=2 -bpp=2 $< $@
-
-$(BUILDDIR)/bootloader.ucl: $(BUILDDIR)/bootloader.bin
- $(call PRINTS,UCLPACK $(@F))$(TOOLSDIR)/uclpack --nrv2e -9 $< $@ >/dev/null
-
-.PHONY: $(BUILDDIR)/bootloader-info.txt
-$(BUILDDIR)/bootloader-info.txt:
- $(call PRINTS,GEN $(@F))echo $(SVNVERSION) > $@
-
-$(BUILDDIR)/$(BINARY): $(BUILDDIR)/spl.m3k \
- $(BUILDDIR)/bootloader.ucl \
- $(BUILDDIR)/bootloader-info.txt
- $(call PRINTS,TAR $(@F))tar -C $(BUILDDIR) \
- --numeric-owner --no-acls --no-xattrs --no-selinux \
- --mode=0644 --owner=0 --group=0 \
- -cf $@ $(call full_path_subst,$(BUILDDIR)/%,%,$^)
diff --git a/firmware/target/mips/ingenic_x1000/shanlingq1/boot.make b/firmware/target/mips/ingenic_x1000/shanlingq1/boot.make
deleted file mode 100644
index 639f570ea3..0000000000
--- a/firmware/target/mips/ingenic_x1000/shanlingq1/boot.make
+++ /dev/null
@@ -1,31 +0,0 @@
-# __________ __ ___.
-# Open \______ \ ____ ____ | | _\_ |__ _______ ___
-# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
-# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
-# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
-# \/ \/ \/ \/ \/
-# $Id$
-#
-
-include $(ROOTDIR)/lib/microtar/microtar.make
-
-.SECONDEXPANSION:
-
-# FIXME(q1): verify NAND parameters
-$(BUILDDIR)/spl.q1: $(BUILDDIR)/spl.bin
- $(call PRINTS,MKSPL $(@F))$(TOOLSDIR)/mkspl-x1000 -type=nand -ppb=2 -bpp=2 $< $@
-
-$(BUILDDIR)/bootloader.ucl: $(BUILDDIR)/bootloader.bin
- $(call PRINTS,UCLPACK $(@F))$(TOOLSDIR)/uclpack --nrv2e -9 $< $@ >/dev/null
-
-.PHONY: $(BUILDDIR)/bootloader-info.txt
-$(BUILDDIR)/bootloader-info.txt:
- $(call PRINTS,GEN $(@F))echo $(SVNVERSION) > $@
-
-$(BUILDDIR)/$(BINARY): $(BUILDDIR)/spl.q1 \
- $(BUILDDIR)/bootloader.ucl \
- $(BUILDDIR)/bootloader-info.txt
- $(call PRINTS,TAR $(@F))tar -C $(BUILDDIR) \
- --numeric-owner --no-acls --no-xattrs --no-selinux \
- --mode=0644 --owner=0 --group=0 \
- -cf $@ $(call full_path_subst,$(BUILDDIR)/%,%,$^)
diff --git a/firmware/target/mips/ingenic_x1000/x1000boot.make b/firmware/target/mips/ingenic_x1000/x1000boot.make
index e69b6a1439..0bdf5cf7b4 100644
--- a/firmware/target/mips/ingenic_x1000/x1000boot.make
+++ b/firmware/target/mips/ingenic_x1000/x1000boot.make
@@ -7,6 +7,8 @@
# $Id$
#
+include $(ROOTDIR)/lib/microtar/microtar.make
+
INCLUDES += -I$(APPSDIR)
SRC += $(call preprocess, $(APPSDIR)/SOURCES)
@@ -14,16 +16,23 @@ LDSDEP := $(FIRMDIR)/export/cpu.h $(FIRMDIR)/export/config/$(MODELNAME).h
BOOTLDS := $(FIRMDIR)/target/$(CPU)/$(MANUFACTURER)/boot.lds
BOOTLINK := $(BUILDDIR)/boot.link
+BOOTEXT := $(suffix $(BINARY))
SPLLDS := $(FIRMDIR)/target/$(CPU)/$(MANUFACTURER)/spl.lds
SPLLINK := $(BUILDDIR)/spl.link
+SPLBINARY := spl$(BOOTEXT)
+
+BLINFO = $(BUILDDIR)/bootloader-info.txt
CLEANOBJS += $(BUILDDIR)/bootloader.* $(BUILDDIR)/spl.*
-include $(FIRMDIR)/target/$(CPU)/$(MANUFACTURER)/$(MODELNAME)/boot.make
+# Currently not needed
+#include $(FIRMDIR)/target/$(CPU)/$(MANUFACTURER)/$(MODELNAME)/boot.make
.SECONDEXPANSION:
+### Bootloader
+
$(BOOTLINK): $(BOOTLDS) $(LDSDEP)
$(call PRINTS,PP $(@F))
$(call preprocess2file,$<,$@,)
@@ -38,6 +47,12 @@ $(BUILDDIR)/bootloader.elf: $$(OBJ) $(FIRMLIB) $(CORE_LIBS) $$(BOOTLINK)
$(BUILDDIR)/bootloader.bin: $(BUILDDIR)/bootloader.elf
$(call PRINTS,OC $(@F))$(call objcopy,$<,$@)
+$(BUILDDIR)/bootloader.ucl: $(BUILDDIR)/bootloader.bin
+ $(call PRINTS,UCLPACK $(@F))$(TOOLSDIR)/uclpack --nrv2e -9 $< $@ >/dev/null
+
+
+### SPL
+
$(SPLLINK): $(SPLLDS) $(LDSDEP)
$(call PRINTS,PP $(@F))
$(call preprocess2file,$<,$@,)
@@ -51,3 +66,29 @@ $(BUILDDIR)/spl.elf: $$(OBJ) $(FIRMLIB) $(CORE_LIBS) $$(SPLLINK)
$(BUILDDIR)/spl.bin: $(BUILDDIR)/spl.elf
$(call PRINTS,OC $(@F))$(call objcopy,$<,$@)
+
+$(BUILDDIR)/$(SPLBINARY): $(BUILDDIR)/spl.bin
+ $(call PRINTS,MKSPL $(@F))$(MKFIRMWARE) $< $@
+
+
+### Generating the update package
+
+# suppress regenerating bootloader-info if nothing has changed
+BLVERSION:=$(SVNVERSION)
+OLDBLVERSION:=$(shell head -n1 $(BLINFO) 2>/dev/null || echo "NOREVISION")
+
+ifneq ($(BLVERSION),$(OLDBLVERSION))
+.PHONY: $(BLINFO)
+endif
+
+$(BLINFO):
+ $(call PRINTS,GEN $(@F))echo $(SVNVERSION) > $@
+
+# The "binary" is actually an update package which is just a tar archive
+$(BUILDDIR)/$(BINARY): $(BUILDDIR)/$(SPLBINARY) \
+ $(BUILDDIR)/bootloader.ucl \
+ $(BLINFO)
+ $(call PRINTS,TAR $(@F))tar -C $(BUILDDIR) \
+ --numeric-owner --no-acls --no-xattrs --no-selinux \
+ --mode=0644 --owner=0 --group=0 \
+ -cf $@ $(call full_path_subst,$(BUILDDIR)/%,%,$^)
diff --git a/tools/configure b/tools/configure
index 3e66785af4..67c0b6a418 100755
--- a/tools/configure
+++ b/tools/configure
@@ -4054,7 +4054,7 @@ fi
appextra="recorder:gui"
plugins="yes"
tool="$rootdir/tools/scramble -add=fiiom3k "
- boottool="" # not used
+ boottool="$rootdir/tools/mkspl-x1000 -type=nand -ppb=2 -bpp=2 "
output="rockbox.m3k"
bootoutput="bootloader.m3k"
sysfontbl="16-Terminus"
@@ -4078,7 +4078,7 @@ fi
appextra="recorder:gui"
plugins="yes"
tool="$rootdir/tools/scramble -add=shq1 "
- boottool="" # not used
+ boottool="$rootdir/tools/mkspl-x1000 -type=nand -ppb=2 -bpp=2 "
output="rockbox.q1"
bootoutput="bootloader.q1"
sysfontbl="16-Terminus"
@@ -4102,7 +4102,7 @@ fi
appextra="recorder:gui"
plugins="yes"
tool="$rootdir/tools/scramble -add=erosqnative "
- boottool="" # not used
+ boottool="$rootdir/tools/mkspl-x1000 -type=nand -ppb=2 -bpp=2 "
output="rockbox.erosq"
bootoutput="bootloader.erosq"
sysfontbl="16-Terminus"