From 2d7390ffa53d9146c64b4dbe698cda3835cb3201 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Wed, 22 May 2024 15:08:00 -0600 Subject: platform/wavelet3d/host_sw: implement mk build for w3d host software --- platform/wavelet3d/host_sw/mod.mk | 34 ++++++++++++++++++++++++++++++++++ platform/wavelet3d/main.cpp | 2 +- platform/wavelet3d/mod.mk | 6 +++++- 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 platform/wavelet3d/host_sw/mod.mk (limited to 'platform') 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(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 -- cgit v1.2.3