aboutsummaryrefslogtreecommitdiffhomepage
path: root/targets
diff options
context:
space:
mode:
authorRon Evans <[email protected]>2024-12-14 14:26:03 +0100
committerGitHub <[email protected]>2024-12-14 14:26:03 +0100
commit17302ca762d7f8948dcb21cc675070eea445271f (patch)
treef357f9e1d3181beb4234d12f8f51c8d8f8c89d1e /targets
parentf2465992533adcf9f98dfea359aba9171a80902f (diff)
downloadtinygo-17302ca762d7f8948dcb21cc675070eea445271f.tar.gz
tinygo-17302ca762d7f8948dcb21cc675070eea445271f.zip
targets: add implementation for Tillitis TKey device (#4631)
* initial implementation for Tillitis TKey device * add UART implementation for TKey * add Pin interface implementation for TKey touch sensor * add RNG interface implementation for TKey * add helpful machine package functions to return identifiers such as name and version for TKey * use built-in timer for sleep timing on TKey * modify UART implementation for TKey to implement Serialer interface * implement BLAKE2s ROM function call for TKey device * handle abort by triggering TKey device fault using illegal instruction to halt CPU * simplify TKey implementation by inheriting from existing riscv32 target * return error for trying to configure invalid baudrates on UART * add tkey to builder test * be very specific for features passed to LLVM for specific config in use for TKey * handle feedback items from TKey device code review Signed-off-by: deadprogram <[email protected]>
Diffstat (limited to 'targets')
-rw-r--r--targets/tkey.json13
-rw-r--r--targets/tkey.ld11
2 files changed, 24 insertions, 0 deletions
diff --git a/targets/tkey.json b/targets/tkey.json
new file mode 100644
index 000000000..f450e6a1b
--- /dev/null
+++ b/targets/tkey.json
@@ -0,0 +1,13 @@
+{
+ "inherits": ["riscv32"],
+ "build-tags": ["tkey"],
+ "features": "+32bit,+c,+zmmul,-a,-d,-e,-experimental-zacas,-experimental-zcmop,-experimental-zfbfmin,-experimental-zicfilp,-experimental-zicfiss,-experimental-zimop,-experimental-ztso,-experimental-zvfbfmin,-experimental-zvfbfwma,-f,-h,-m,-relax,-smaia,-smepmp,-ssaia,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-za128rs,-za64rs,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmp,-zcmt,-zdinx,-zfa,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b",
+ "cflags": [
+ "-march=rv32iczmmul"
+ ],
+ "linkerscript": "targets/tkey.ld",
+ "scheduler": "none",
+ "gc": "leaking",
+ "flash-command": "tkey-runapp {bin}",
+ "serial": "uart"
+}
diff --git a/targets/tkey.ld b/targets/tkey.ld
new file mode 100644
index 000000000..09becf403
--- /dev/null
+++ b/targets/tkey.ld
@@ -0,0 +1,11 @@
+
+MEMORY
+{
+ RAM (rwx) : ORIGIN = 0x40000000, LENGTH = 0x20000 /* 128 KB */
+}
+
+REGION_ALIAS("FLASH_TEXT", RAM);
+
+_stack_size = 2K;
+
+INCLUDE "targets/riscv.ld"