aboutsummaryrefslogtreecommitdiff
path: root/boot
diff options
context:
space:
mode:
authorThomas Albers Raviola <thomas@thomaslabs.org>2025-02-13 01:48:01 +0100
committerThomas Albers Raviola <thomas@thomaslabs.org>2025-02-13 01:48:01 +0100
commit70af8cae86d75b4b02e9f7bd7d3614262bc5eb16 (patch)
tree831401e72b02956863e31e6663aa9ab3b9b66eac /boot
parent13c0217bf19a2ddfb24b673455f6d362a46ebf7b (diff)
Linearize MakefilesHEADmaster
Diffstat (limited to 'boot')
-rw-r--r--boot/Makefile45
-rw-r--r--boot/cmd/Makefile20
-rw-r--r--boot/devmode/Makefile22
-rw-r--r--boot/devmode/bootloader.c2
4 files changed, 49 insertions, 40 deletions
diff --git a/boot/Makefile b/boot/Makefile
index 88d3c6e..9c3f7c7 100644
--- a/boot/Makefile
+++ b/boot/Makefile
@@ -1,32 +1,31 @@
-BUILD=$(PROJECT_ROOT)/build/boot
+BOOT_BUILD = $(BUILD)/boot
-TARGET=$(BUILD)/bootloader.hex
-IHX=$(BUILD)/boot.ihx
+BOOT_SRC =\
+ boot.asm\
+ main.c
-ASM=$(filter-out crt0.asm, $(wildcard *.asm))
-SRC=$(wildcard *.c)
-PAYLOADS=cmd devmode
+PAYLOADS = cmd devmode
+PAYLOADS_HEX = $(foreach p,$(PAYLOADS),$(BOOT_BUILD)/$(p)/$(p).hex)
-PAYLOADS_HEX=$(foreach payload,$(PAYLOADS),$(BUILD)/$(payload)/$(payload).hex)
+HEX = $(BOOT_BUILD)/boot.hex $(PAYLOADS_HEX)
-HEX=$(BUILD)/boot.hex $(PAYLOADS_HEX)
+BOOT_CRT0 = $(BOOT_BUILD)/crt0.rel
+DEPS += $(patsubst %.rel,%.d,$(BOOT_CRT0))
-CODE_LOC=0x0120
-DATA_LOC=0xC000
-STACK_LOC=0x0000
-GSINIT_LOC=0x0090
+BOOT_OBJ = $(patsubst %,$(BOOT_BUILD)/%.rel,$(basename $(BOOT_SRC)))
+DEPS += $(patsubst %.rel,%.d,$(BOOT_OBJ))
-all : $(TARGET)
+$(BOOT_BUILD)/boot.ihx : EXTRA_LDFLAGS=$(BOOT_LDFLAGS)
+$(BOOT_BUILD)/boot.ihx : $(BOOT_OBJ)
-$(TARGET) : $(HEX)
- cp $(BUILD)/boot.hex /tmp/bootloader.hex
- dd if=$(BUILD)/cmd/cmd.hex of=/tmp/bootloader.hex obs=4096 seek=1 conv=notrunc 2>/dev/null
- dd if=$(BUILD)/cmd/cmd.hex of=/tmp/bootloader.hex obs=4096 seek=2 conv=notrunc 2>/dev/null
- mv /tmp/bootloader.hex $@
+$(BOOT_OBJ) : | $(BOOT_BUILD)
+$(BOOT_BUILD) :
+ @mkdir -p $@
-.PHONY : $(PAYLOADS_HEX)
-$(PAYLOADS_HEX) : $(BUILD)/crt0.rel
- make -C $(notdir $(basename $@)) CRT0=$<
+$(BOOT_BUILD)/bootloader.hex : $(HEX)
+ @cp $(BOOT_BUILD)/boot.hex /tmp/bootloader.hex
+ @dd if=$(BOOT_BUILD)/cmd/cmd.hex of=/tmp/bootloader.hex obs=4096 seek=1 conv=notrunc 2>/dev/null
+ @dd if=$(BOOT_BUILD)/devmode/devmode.hex of=/tmp/bootloader.hex obs=4096 seek=2 conv=notrunc 2>/dev/null
+ @mv /tmp/bootloader.hex $@
-include $(PROJECT_ROOT)/include.mk
--include $(BUILD)/crt0.d
+include $(patsubst %,boot/%/Makefile,$(PAYLOADS))
diff --git a/boot/cmd/Makefile b/boot/cmd/Makefile
index 5c359e4..6e2c692 100644
--- a/boot/cmd/Makefile
+++ b/boot/cmd/Makefile
@@ -1,12 +1,16 @@
-BUILD=$(PROJECT_ROOT)/build/boot/cmd
+BOOT_CMD_BUILD = $(BOOT_BUILD)/cmd
-TARGET=$(BUILD)/cmd.hex
-IHX=$(BUILD)/cmd.ihx
+BOOT_CMD_SRC =\
+ main.c
-ASM=$(wildcard *.asm)
-SRC=$(wildcard *.c)
+BOOT_CMD_OBJ =\
+ $(patsubst %,$(BOOT_CMD_BUILD)/%.rel,$(basename $(BOOT_CMD_SRC)))
+DEPS +=\
+ $(patsubst %.rel,%.d,$(BOOT_CMD_OBJ))
-all : $(TARGET) $(PROJECT_ROOT)/payload.mk
+$(BOOT_CMD_BUILD)/cmd.ihx : EXTRA_LDFLAGS=$(PAYLOAD_LDFLAGS)
+$(BOOT_CMD_BUILD)/cmd.ihx : $(BOOT_CRT0) $(BOOT_CMD_OBJ)
-include $(PROJECT_ROOT)/payload.mk
-include $(PROJECT_ROOT)/include.mk
+$(BOOT_CMD_OBJ) : | $(BOOT_CMD_BUILD)
+$(BOOT_CMD_BUILD) :
+ @mkdir -p $@
diff --git a/boot/devmode/Makefile b/boot/devmode/Makefile
index 24c841a..ea9380d 100644
--- a/boot/devmode/Makefile
+++ b/boot/devmode/Makefile
@@ -1,12 +1,18 @@
-BUILD=$(PROJECT_ROOT)/build/boot/devmode
+BOOT_DEVMODE_BUILD = $(BOOT_BUILD)/devmode
-TARGET=$(BUILD)/devmode.hex
-IHX=$(BUILD)/devmode.ihx
+BOOT_DEVMODE_SRC =\
+ bootloader.c\
+ crc16.c
-ASM=$(wildcard *.asm)
-SRC=$(wildcard *.c)
+BOOT_DEVMODE_OBJ =\
+ $(patsubst %,$(BOOT_DEVMODE_BUILD)/%.rel,\
+ $(basename $(BOOT_DEVMODE_SRC)))
+DEPS +=\
+ $(patsubst %.rel,%.d,$(BOOT_DEVMODE_OBJ))
-all : $(TARGET)
+$(BOOT_DEVMODE_BUILD)/devmode.ihx : EXTRA_LDFLAGS=$(PAYLOAD_LDFLAGS)
+$(BOOT_DEVMODE_BUILD)/devmode.ihx : $(BOOT_CRT0) $(BOOT_DEVMODE_OBJ)
-include $(PROJECT_ROOT)/payload.mk
-include $(PROJECT_ROOT)/include.mk
+$(BOOT_DEVMODE_OBJ) : | $(BOOT_DEVMODE_BUILD)
+$(BOOT_DEVMODE_BUILD) :
+ @mkdir -p $@
diff --git a/boot/devmode/bootloader.c b/boot/devmode/bootloader.c
index dd28c34..8380e88 100644
--- a/boot/devmode/bootloader.c
+++ b/boot/devmode/bootloader.c
@@ -308,7 +308,7 @@ init_sio(void)
// wr1: interrupt on every Rx, no wait function
1, SIO_RX_INT_MD0 | SIO_RX_INT_MD1,
// wr3: enable Rx - 8 bit char
- 3, 0b11000001
+ 3, 0b11000001,
// wr5: enable Tx - 8 bit char
5, 0b01101000
};