summaryrefslogtreecommitdiff
path: root/platform/wavelet3d
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2024-05-22 15:08:00 -0600
committerAlejandro Soto <alejandro@34project.org>2024-05-24 05:58:43 -0600
commit2d7390ffa53d9146c64b4dbe698cda3835cb3201 (patch)
tree61104abf284875c4fd1b58b4896f0f7eaa5eb616 /platform/wavelet3d
parent4e634e196f542b76933d6bbe1861849557898683 (diff)
platform/wavelet3d/host_sw: implement mk build for w3d host software
Diffstat (limited to '')
-rw-r--r--platform/wavelet3d/host_sw/mod.mk34
-rw-r--r--platform/wavelet3d/main.cpp2
-rw-r--r--platform/wavelet3d/mod.mk6
3 files changed, 40 insertions, 2 deletions
diff --git a/platform/wavelet3d/host_sw/mod.mk b/platform/wavelet3d/host_sw/mod.mk
new file mode 100644
index 0000000..b68c47d
--- /dev/null
+++ b/platform/wavelet3d/host_sw/mod.mk
@@ -0,0 +1,34 @@
+cores := w3d_host_flash w3d_host_sw w3d_picolibc
+
+define core/w3d_host_sw
+ $(this)/deps := w3d_picolibc
+ $(this)/cross := riscv32-none-elf-
+ $(this)/hooks := cc objcopy obj
+
+ $(this)/obj_deps := picolibc/picolibc.specs
+
+ $(this)/cc_files := main.c
+ $(this)/cc_flags = -g -march=rv32imafc -mabi=ilp32f --specs=$$(obj)/picolibc/picolibc.specs
+ $(this)/ld_flags := --oslib=semihost
+ $(this)/ld_binary := w3d_host_flash
+
+ $(this)/objcopy_src := w3d_host_flash
+ $(this)/objcopy_obj := w3d_host_flash.bin
+endef
+
+define core/w3d_picolibc
+ $(this)/hooks := meson obj
+
+ $(this)/obj_deps := /$(here)cross-riscv32-none-elf.txt
+
+ $(this)/meson_src := picolibc
+ $(this)/meson_objs := picolibc/picolibc.specs
+
+ $(this)/meson_args = \
+ -Dincludedir=include \
+ -Dlibdir=lib \
+ -Dspecsdir=. \
+ -Dmultilib=false \
+ -Dprefix=$$(src)/$$(obj)/picolibc \
+ --cross-file $(here)cross-riscv32-none-elf.txt
+endef
diff --git a/platform/wavelet3d/main.cpp b/platform/wavelet3d/main.cpp
index 2771551..8cd3989 100644
--- a/platform/wavelet3d/main.cpp
+++ b/platform/wavelet3d/main.cpp
@@ -89,7 +89,7 @@ int main(int argc, char **argv)
auto dram = std::make_unique<unsigned[]>(DRAM_SIZE);
- constexpr const char *FLASH_IMG_FILE = "host_flash.bin";
+ constexpr const char *FLASH_IMG_FILE = "w3d_host_flash.bin";
FILE *flash_img = std::fopen(FLASH_IMG_FILE, "rb");
if (!flash_img) {
diff --git a/platform/wavelet3d/mod.mk b/platform/wavelet3d/mod.mk
index 77382f1..b78f01a 100644
--- a/platform/wavelet3d/mod.mk
+++ b/platform/wavelet3d/mod.mk
@@ -1,10 +1,14 @@
+subdirs := host_sw
+
define core
- $(this)/deps := axixbar if_common gfx
+ $(this)/deps := axixbar if_common gfx w3d_host_sw
$(this)/rtl_top := w3d_top
$(this)/rtl_dirs := .
$(this)/rtl_files := w3d_top.sv
+ $(this)/obj_deps := gfx_bootrom.hex w3d_host_flash.bin
+
$(this)/vl_main := main.cpp remote_jtag.cpp
$(this)/vl_pkgconfig := sdl2
endef