summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sotoudeh <matthew@masot.net>2024-02-25 18:43:49 -0800
committerMatthew Sotoudeh <matthew@masot.net>2024-02-25 18:43:49 -0800
commit2554e7f506596a017d14188b28276abc9a52c93d (patch)
treea2d09a129ab553b51cade413b70290a482c62e08
parentb78d16cd5580117254aa1c03e06204f05bdf094f (diff)
blink runsmasot-blink
-rw-r--r--Makefile7
-rw-r--r--blink/blink.c6
-rw-r--r--blink/memmap.ld6
-rw-r--r--bootloader/bootloader.c3
-rw-r--r--bootloader/log.h2
-rw-r--r--ox-flash/add_header.py8
6 files changed, 23 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index 64f908d..bfaeb39 100644
--- a/Makefile
+++ b/Makefile
@@ -2,4 +2,9 @@
flash-blink:
make -B -C blink
- ./ox-flash/ox-flash -payload blink/build/blink.bin
+ python3 ox-flash/add_header.py blink/build/blink.bin blink/build/blink.payload
+ ./ox-flash/ox-flash -echo -run -payload blink/build/blink.payload
+
+flash-bootloader:
+ make -B -C bootloader
+ ./ox-flash/ox-flash -echo -run -bootloader bootloader/bootloader.bin
diff --git a/blink/blink.c b/blink/blink.c
index 260fb1f..163153c 100644
--- a/blink/blink.c
+++ b/blink/blink.c
@@ -11,7 +11,11 @@ int notmain() {
*bss++ = 0;
}
- size_t pin = 29;
+ uart_putc('h');
+ uart_putc('i');
+ uart_putc('\n');
+
+ size_t pin = 12;
gpio_set_function(pin, GPIO_GPIO);
gpio_set_output(pin);
gpio_set_on(pin);
diff --git a/blink/memmap.ld b/blink/memmap.ld
index 1aacaf3..0a543ee 100644
--- a/blink/memmap.ld
+++ b/blink/memmap.ld
@@ -1,6 +1,3 @@
-OUTPUT_ARCH(riscv)
-OUTPUT_FORMAT(elf64-littleriscv)
-
ENTRY (_start)
MEMORY
@@ -21,7 +18,7 @@ SECTIONS {
. = ORIGIN(PSRAM);
__stack_size = 2K;
- .text : {
+ .text ORIGIN(PSRAM) : {
__code_start__ = .;
KEEP(*(.text.boot))
*(.text*)
@@ -39,7 +36,6 @@ SECTIONS {
.sdata : {
. = ALIGN(4);
- __global_pointer$ = . + 0x800;
*(.sdata*)
*(.srodata*)
}
diff --git a/bootloader/bootloader.c b/bootloader/bootloader.c
index b3d3cd4..c8c56f0 100644
--- a/bootloader/bootloader.c
+++ b/bootloader/bootloader.c
@@ -24,6 +24,7 @@ void kmain() {
uartmux_configure(uartmux_signal_number(14), 0, UARTMUX_TX);
uartmux_configure(uartmux_signal_number(15), 0, UARTMUX_RX);
+ for (int i = 0; i < 500; i++) INFO("hi %d\n", i);
}
INFO("bootloader init\n");
{
@@ -43,7 +44,7 @@ void kmain() {
TRACE("timer init\n");
timer_init(CLOCK);
- INFO("addr = 0x%lx\n", payload.entry);
+ INFO("addr = 0x%x\n", payload.entry);
INFO("size = 0x%x\n", payload.size);
INFO("cksum = 0x%x\n", payload.cksum);
diff --git a/bootloader/log.h b/bootloader/log.h
index f146ce5..845d3db 100644
--- a/bootloader/log.h
+++ b/bootloader/log.h
@@ -1,7 +1,7 @@
#pragma once
#ifndef LOG_LEVEL
-#define LOG_LEVEL 3
+#define LOG_LEVEL 5
#warning "No log level set, defaulting to 3 (INFO)"
#endif
diff --git a/ox-flash/add_header.py b/ox-flash/add_header.py
new file mode 100644
index 0000000..798d16a
--- /dev/null
+++ b/ox-flash/add_header.py
@@ -0,0 +1,8 @@
+import sys
+import zlib
+import struct
+
+bin_bytes = open(sys.argv[1], 'rb').read()
+with open(sys.argv[2], 'wb') as wr:
+ wr.write(struct.pack("QII", 0x50000000, len(bin_bytes), zlib.crc32(bin_bytes)))
+ wr.write(bin_bytes)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback