tillitis-key/hw/application_fpga/fw/tk1
2022-11-02 15:52:29 +01:00
..
blake2s Rename to TK1 2022-10-26 09:20:02 +02:00
firmware.lds Rename to TK1 2022-10-26 09:20:02 +02:00
lib.c Rename to TK1 2022-10-26 09:20:02 +02:00
lib.h Rename to TK1 2022-10-26 09:20:02 +02:00
main.c Change to max 100 KB app with 28 KB stack 2022-11-02 15:52:29 +01:00
Makefile Rename to TK1 2022-10-26 09:20:02 +02:00
proto.c Rename to TK1 2022-10-26 09:20:02 +02:00
proto.h Rename to TK1 2022-10-26 09:20:02 +02:00
README.md Rename to TK1 2022-10-26 09:20:02 +02:00
start.S Change to max 100 KB app with 28 KB stack 2022-11-02 15:52:29 +01:00
types.h Rename to TK1 2022-10-26 09:20:02 +02:00

Tillitis Key firmware

Build the firmware

You need Clang with 32 bit RISC-V support. You can check this with:

$ llc --version | grep riscv32
    riscv32    - 32-bit RISC-V

or just try building.

Build the FPGA bitstream with the firmware using make in the hw/application_fpga directory.

If your available objcopy and size commands is anything other than the default llvm-objcopy-14 and llvm-size-14 define OBJCOPY and SIZE to whatever they're called on your system.

Using QEMU

Checkout the tk1 branch of our version of the qemu and build:

$ git clone -b tk1 https://github.com/tillitis/qemu
$ mkdir qemu/build
$ cd qemu/build
$ ../configure --target-list=riscv32-softmmu --disable-werror
$ make -j $(nproc)

(Built with warnings-as-errors disabled, see this issue.)

Run it like this:

$ /path/to/qemu/build/qemu-system-riscv32 -nographic -M tk1,fifo=chrid -bios firmware.elf \
  -chardev pty,id=chrid

This attaches the FIFO to a tty, something like /dev/pts/16 which you can use with host software to talk to the firmware.

To quit QEMU you can use: Ctrl-a x (see Ctrl-a ? for other commands).

Debugging? Use the HTIF console by removing -DNOCONSOLE from the CFLAGS and using the helper functions in lib.c for printf-like debugging.

You can also use the qemu monitor for debugging, e.g. info registers, or run qemu with -d in_asm or -d trace:riscv_trap.

Happy hacking!