Toolchain¶
A C toolchain for MIPS-X as ESS built it in the ES3890. It is not tied to the telephone adapters, so it may be useful for other ES38xx devices too.
| Part | What | Where |
|---|---|---|
| Compiler and linker | Clang and lld with an experimental MIPSX target |
llvm-project, branch mipsx |
| C library | picolibc, ported to MIPS-X | picolibc, branch mipsx |
| ABI | Registers, calls, stack, assembler syntax, ELF and relocations | mipsx-sdk/docs/abi.md |
| Simulator | Runs a linked program, reports pipeline hazards, and can model the SPA3000's board | mipsx-sdk/sim |
| Image tools | Pack an ELF into an SPA3000 upgrade image, verify one, and talk to the stock recovery program | mipsx-sdk/tools |
| Libraries | lwIP, littlefs and BearSSL, built and tested on the simulator | mipsx-sdk/third_party-builds |
| Ghidra module | A processor module for MIPS-X and a loader for SPA firmware images | ghidra-mipsx |
The first release, with archives and a container image, is in preparation. Until then, the mipsx-sdk README says how to build everything from source.