Update bootloader README and clean up makefile

This commit is contained in:
2025-09-02 15:46:55 -05:00
parent 0845370c43
commit a0427ad949
2 changed files with 28 additions and 24 deletions

View File

@@ -1,31 +1,35 @@
# Boot Firmware for CHIBI PC-09
TODO: Description of what the firmware does for the PC-09.
This is the firmware for the CHIBI PC-09. In the future it will provide the
CHIBI with initialization code, a UART driver, some self test features.
## Building the Firmware
You will need GNU `make`, and [`asm6809`](https://www.6809.org.uk/asm6809) to
build the firmware. Obtaining a working copy of `asm6809` could be difficult if
you aren't on Debian, Ubuntu, or Windows as instructions for building it are not
given on the `asm6809` website. Functional instructions for building from Git or
tarball are given here:
Building the firmware from source requires [LWTOOLS](http://www.lwtools.ca/) for
building S-Records of the ROM, and `mot2bin` from
[F9DASM](https://github.com/Arakula/f9dasm) for building binary images. A GNU
Make makefile is provided for building on Linux.
### Using the Makefile
To generate an S-Record run:
```sh
git clone https://www.6809.org.uk/git/asm6809.git
cd asm6809
./configure
make
sudo make install
make boot.s19
```
From there all you should have to do to generate a `boot.bin` is:
To generate a binary run:
```sh
git clone https://github.com/amberisvibin/chibi-pc09.git
cd chibi-pc09/code/boot
make
```
The makefile also can clean up after itself:
```sh
make clean
```
## Firmware Licensing
This firmware like the rest of the CHIBI PC-09 is licensed under the MIT

View File

@@ -8,13 +8,14 @@
# Project Defaults & Folders
# ------------------------------------------------------------------------------
TARGET := boot
TARGROM := $(TARGET).bin
SRCDIR := src/
TARGET := boot
TARGREC := $(TARGET).s19
TARGROM := $(TARGET).bin
SRCDIR := src/
BUILDDIR := build/
SRCS := $(wildcard $(SRCDIR)*.s)
OBJS := $(patsubst $(SRCDIR)%.s,$(BUILDDIR)%.o,$(SRCS))
INCS := $(wildcard $(SRCDIR)*.inc)
SRCS := $(wildcard $(SRCDIR)*.s)
OBJS := $(patsubst $(SRCDIR)%.s,$(BUILDDIR)%.o,$(SRCS))
INCS := $(wildcard $(SRCDIR)*.inc)
# ------------------------------------------------------------------------------
# Toolchain Definitions
@@ -34,11 +35,11 @@ LDFLAGS := -f srec -m map.txt -s linkscript
all: $(TARGROM)
# Fix srec into flashable bin file
$(TARGROM): $(TARGET).s19
$(TARGROM): $(TARGREC)
$(FIX) -out $@ $<
# Link objects
$(TARGET).s19: $(OBJS)
$(TARGREC): $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
# Assemble objects
@@ -46,7 +47,6 @@ $(OBJS): $(BUILDDIR)%.o : $(SRCDIR)%.s
-@mkdir -p $(BUILDDIR)
$(AS) $(ASFLAGS) -o $@ $<
.IGNORE: clean
clean:
@echo 'Cleaning up intermediary files...'
@rm -rv $(TARGROM) $(TARGET).s19 map.txt $(BUILDDIR)
@rm -rv $(TARGROM) $(TARGREC) map.txt $(BUILDDIR)