Commit Graph

160 Commits

Author SHA1 Message Date
de261c4c43 [Priv] overhauled instruction architecture 2021-06-04 20:36:33 +02:00
c963fe3989 [Priv] small fixes for overlooked things 2021-05-26 18:40:42 +02:00
85af9b992f [PrivCPU] overhaul of instruction cycle, adding more CSR interaction 2021-05-25 23:50:38 +02:00
7239212729 [CSR] adding virtual csr registers 2021-05-25 23:49:37 +02:00
6653ef7e7c [CPU] set correct MISA 2021-05-25 11:14:52 +02:00
a1f29b9d97 [CPU] cleaned up constructor 2021-05-25 11:14:18 +02:00
49b59cd46a [CSR] added read/write checks and unified name to addr resuloution 2021-05-25 10:49:54 +02:00
291f44a192 [CSR] unknown csr names now fail without exception 2021-05-25 10:24:24 +02:00
c4cd83701f [CSR, PrivCPU] Added csr callback registration through decorator 2021-05-24 15:51:05 +02:00
504407c0d9 [CSR] adding callbacks to each csr block 2021-05-24 14:34:35 +02:00
Anton Lydike
db2b0b314b [PrivCPU, PrivRV32I] fix for relative jumps and branches 2021-05-24 10:08:53 +02:00
Anton Lydike
6bd5cd1598 [ElfLoader] better formatting for load and save instructions 2021-05-24 10:08:01 +02:00
Anton Lydike
ed6912a060 [ElfLoader] added bounds check to elf loader and casting binary data to bytearray 2021-05-24 10:07:21 +02:00
Anton Lydike
55be71dcc3 [CSR] added time and timeh csr codes 2021-05-24 10:05:34 +02:00
Anton Lydike
3a79bfdada [ElfLoader] also loading .sdata and .sbss sections now 2021-05-23 12:59:59 +02:00
Anton Lydike
3f11cd84ca [decoder] fixed error with decoding slli type instructions 2021-05-23 12:58:47 +02:00
Anton Lydike
f3959be843 [decoder] now returning instruction number as third return value 2021-05-23 10:44:27 +02:00
Anton Lydike
0475d8d384 [CPU] added instruction XLEN attribute to CPU class to support multiple instruction lengths 2021-05-23 10:42:04 +02:00
Anton Lydike
c9a136d595 [instructions] fixed error in auipc command 2021-05-22 21:05:14 +02:00
Anton Lydike
ee0aac30c4 [instructions] moved regs and mmu to properties to work with janky PrivCPU 2021-05-22 21:04:43 +02:00
Anton Lydike
1bdf2e6efe [mmu] fixed typo in docstring 2021-05-22 21:03:56 +02:00
Anton Lydike
c48a5efee3 [cpu] fixed formatting to include cpu class extensions 2021-05-22 21:03:37 +02:00
Anton Lydike
15da68995c [priv] module now able to load and execute elf binaries 2021-05-22 21:02:36 +02:00
Anton Lydike
a4735db388 Added a decoder module which can deocde some RV32I/M instructions
Some of them even correctly O.o
2021-05-22 21:01:03 +02:00
Anton Lydike
483a3f2416 Priv: [wip] implementing privileged architecture 2021-05-19 12:14:43 +02:00
Anton Lydike
a2e206eaee renamed CPU.__run -> CPU._run, it's now overwriteable by subclasses 2021-05-19 09:51:51 +02:00
Anton Lydike
fa22d76f13 Added libstring and documentation for the general library 2021-04-24 18:32:43 +02:00
Anton Lydike
6bb0ad3793 Added libstring and documentation for the general library 2021-04-24 18:32:35 +02:00
Anton Lydike
a645e6259a Added more debugger documentation 2021-04-24 18:26:31 +02:00
Anton Lydike
462639ade7 Added run_ins method to debugger to run an instruction 2021-04-24 18:24:42 +02:00
Anton Lydike
5d484f08cf Minor fixes like imports and edge-case handling 2021-04-24 18:24:11 +02:00
Anton Lydike
f45a37e705 Added MMU.get_bin_containing 2021-04-24 18:23:12 +02:00
Anton Lydike
ff5ba9a7ef made CPU.run_instruction public 2021-04-24 18:20:06 +02:00
Anton Lydike
da895f00cd added stack field to cpu 2021-04-24 18:19:37 +02:00
Anton Lydike
f646bf1f1d added readthedocs badge 2021-04-23 22:08:59 +02:00
Anton Lydike
6436f8930a fixed stack docs in README 2021-04-23 22:01:09 +02:00
Anton Lydike
d72f83d19c derp: wrong url to readthedocs in readme 2021-04-23 21:58:21 +02:00
Anton Lydike
db0b9c26c3 updated documentation style in .idea config 2021-04-23 21:33:40 +02:00
Anton Lydike
905c2adcf5 added docs links to README 2021-04-23 21:33:17 +02:00
Anton Lydike
f5f41f4e18 fixed errorneous license text in headers 2021-04-23 21:28:57 +02:00
Anton Lydike
a276638f57 fixed docs folder not included in readthedocs build [second try] 2021-04-23 21:22:26 +02:00
Anton Lydike
e8870420d3 fixed docs folder not included in readthedocs build 2021-04-23 21:19:25 +02:00
Anton Lydike
40559f00b4 Added instruction on how to build docs locally to README 2021-04-23 21:15:13 +02:00
Anton Lydike
0b6f8a05d8 Added markdown docs from docs folder to readthedocs output 2021-04-23 21:11:55 +02:00
Anton Lydike
242af5c7a3 implemented mmu.allocate_region and reworked how the stack works 2021-04-23 20:32:19 +02:00
Anton Lydike
bc8c061c6d removed stack pref pseudo-op in preperation for real stack impl 2021-04-23 19:53:06 +02:00
Anton Lydike
a52506a17f updated docs for new logging 2021-04-23 19:37:38 +02:00
Anton Lydike
2cd407aa79 added readthedocs link to readme 2021-04-23 19:21:13 +02:00
Anton Lydike
4ff9be4061 brainfart when configuring readthedocs theme 2021-04-23 19:14:49 +02:00
Anton Lydike
2810fb53a2 using correct readthedocs theme? 2021-04-23 19:13:34 +02:00