Commit Graph

  • d5a4acef67 tokenizer reimplemented Anton Lydike 2021-12-13 23:23:55 +0100
  • 52e189c226 fixed missing newline at the end of the file Anton Lydike 2021-12-10 13:46:57 +0100
  • b317974dcc made sure register values adhere to correct 32bit two's complement standard - fixes #4 Anton Lydike 2021-12-10 13:25:22 +0100
  • a0259707b2 Released v1.0.0 to PyPi v1.0.0 Anton Lydike 2021-12-05 21:17:05 +0100
  • e65775774a extended userspace RV32I with li, la and mv instruction Anton Lydike 2021-12-05 16:45:06 +0100
  • e9c11e9a41 added correct instruction printing Anton Lydike 2021-11-16 08:02:27 +0100
  • 0b34aea520
    Merge pull request #1 from AntonLydike/kernel-mode Anton Lydike 2021-10-10 19:58:35 +0200
  • 7ab3f8361d code cleanup to increase visibility Anton Lydike 2021-09-30 22:04:49 +0200
  • d09b7a5cb1 overhaul of debugging info printing Anton Lydike 2021-09-30 21:54:50 +0200
  • d0c5abe845 added a whole lot of debugging info for privileged emulation Anton Lydike 2021-09-30 20:58:44 +0200
  • 3d4d36bfe4 moved dependency on pyelftools into scoped function where it's used to reduce the number of dependencies required overall kernel-mode Anton Lydike 2021-09-03 15:01:55 +0200
  • 0c96a87dcb added RV32A extension, only missing LR.W and SC.W Anton Lydike 2021-09-03 14:59:34 +0200
  • 3033eb9985 tranlsation from absolute addressed to symbol-relative names for debugging Anton Lydike 2021-08-30 20:10:22 +0200
  • ca71e196c2 added verbose flag and improved verbose output Anton Lydike 2021-08-30 19:40:13 +0200
  • f2d07f90b5 priv: added __main__ script to module which correctly configures the cpu depending on --kernel or --image options Anton Lydike 2021-08-30 15:40:13 +0200
  • 0651eabe18 fixed how ecalls are represented and handled Anton Lydike 2021-08-30 15:09:31 +0200
  • 684c858300 added support for IO modules Anton Lydike 2021-08-26 10:48:26 +0200
  • df9e610d14 forgot to commit image loader code Anton Lydike 2021-08-26 10:47:47 +0200
  • 1f03449694 added memory image support to priv emulator Anton Lydike 2021-08-26 10:46:06 +0200
  • 4c352d8567 [MMU] caching last used code section Anton Lydike 2021-06-08 16:34:45 +0200
  • e8685af328 [PrivMMU] cleaned up file formatting Anton Lydike 2021-06-08 16:34:19 +0200
  • 3d07c97a52 [PrivCPU] improved step function performance by checking time every tenth cycle Anton Lydike 2021-06-08 16:33:48 +0200
  • 60a2a8d546 [CSR] adding cache to mstatus register Anton Lydike 2021-06-08 16:32:39 +0200
  • 6b4f38d030 [ElfLoader] added cache for already decoded instructions Anton Lydike 2021-06-08 15:07:51 +0200
  • 05c17bc029 [PrivCPU] fixed debugger skipping over ebreak instructions Anton Lydike 2021-06-08 14:44:13 +0200
  • baa1f24eb7 [CpuTraps] fixed formatting for mcause registers Anton Lydike 2021-06-08 14:42:44 +0200
  • 777717ed2e [PrivRV32I] fixed csrrw instruction to correctly switch register contents Anton Lydike 2021-06-08 11:36:33 +0200
  • c7b3693740 [Regsietrs] ensuring register values are 32bit Anton Lydike 2021-06-08 11:36:00 +0200
  • cc598c0910 [PrivCPU] changed timer compare to lower equals to trigger exactly on time Anton Lydike 2021-06-08 11:35:20 +0200
  • affaa60d22 [PrivCPU] adding performance counter Anton Lydike 2021-06-08 11:34:28 +0200
  • 48ce44993b [CSR] Adding dump_mstatus method to csr Anton Lydike 2021-06-08 11:32:27 +0200
  • 639f91b192 [decoder] removed sign extension for CSR type instructions Anton Lydike 2021-06-08 11:31:58 +0200
  • c25b9f2343 [PrivCPU] implemented CPU interrupt handling context switch Anton Lydike 2021-06-08 00:23:09 +0200
  • 4c7f3ffe67 [PrivCPU] fixed perf-counter not comparing against shifted time Anton Lydike 2021-06-08 00:22:30 +0200
  • c2002cd46d [PrivCPU] fixed naming for csr mtimecmp callback function Anton Lydike 2021-06-08 00:21:51 +0200
  • 5b2b12507d [PrivRV32I] added half od csrrs instruction (reading only) Anton Lydike 2021-06-08 00:21:05 +0200
  • 052ad56310 [CSR] fixed call to enum value member Anton Lydike 2021-06-08 00:20:25 +0200
  • d9e5d78f87 [Registers] removed info when writing to zero register Anton Lydike 2021-06-08 00:19:36 +0200
  • 79d913baaf [decoder] fixed formatting in print_ins function Anton Lydike 2021-06-08 00:19:04 +0200
  • 9278235e44 [decoder] fixed botched j immediate decoding Anton Lydike 2021-06-08 00:18:44 +0200
  • 6351f1e84d [PrivRV32I] fixed bug with blt backwards jumps missing by one Anton Lydike 2021-06-06 09:55:15 +0200
  • f14bd2b983 [PrivCPU, PrivRV32I] fixed bug where ebreaks where missed during debugging Anton Lydike 2021-06-05 16:19:35 +0200
  • c1110b9ce3 [ElfLoader] better formatting for jump and load/store instructions Anton Lydike 2021-06-05 15:29:40 +0200
  • 37910018b9 [PrivRV32I] finally correct parsing of load/store instruction args Anton Lydike 2021-06-05 15:29:06 +0200
  • e4537f86d9 [PrivRV32I] implemented csrrwi instruction Anton Lydike 2021-06-05 15:28:27 +0200
  • c770cc05cf [Priv Exceptions] added __str__ as __repr__ alias to CpuTrap to correctly format exceptions when printed Anton Lydike 2021-06-05 15:25:39 +0200
  • 3e4920f5d9 [decoder] fixed bug when decoding add/sub instruction Anton Lydike 2021-06-05 15:24:40 +0200
  • 849d5f4fc3 [decoder, ElfLoader] decoing an instruction now returns all args as int Anton Lydike 2021-06-05 15:24:16 +0200
  • f9b0bac245 [Priv Exceptions] fixed constructor typo in TimerInterrupt Anton Lydike 2021-06-05 09:56:05 +0200
  • 9424390b65 [decoder] Added mret, sret, uret, wfi instruction decoding support Anton Lydike 2021-06-05 09:54:58 +0200
  • 198d14d5fb [Priv Exceptions] added __repr__ to CpuTrap class Anton Lydike 2021-06-05 09:29:20 +0200
  • ca3b4099d4 [Priv] moved CSR constants to a separate file Anton Lydike 2021-06-05 09:27:03 +0200
  • 79369889f4 [CSR] fixed method naming for _addr_to_name (now _name_to_addr) Anton Lydike 2021-06-04 20:37:08 +0200
  • de261c4c43 [Priv] overhauled instruction architecture Anton Lydike 2021-06-04 20:36:33 +0200
  • c963fe3989 [Priv] small fixes for overlooked things Anton Lydike 2021-05-26 18:40:42 +0200
  • 85af9b992f [PrivCPU] overhaul of instruction cycle, adding more CSR interaction Anton Lydike 2021-05-25 23:50:38 +0200
  • 7239212729 [CSR] adding virtual csr registers Anton Lydike 2021-05-25 23:49:37 +0200
  • 6653ef7e7c [CPU] set correct MISA Anton Lydike 2021-05-25 11:14:52 +0200
  • a1f29b9d97 [CPU] cleaned up constructor Anton Lydike 2021-05-25 11:14:18 +0200
  • 49b59cd46a [CSR] added read/write checks and unified name to addr resuloution Anton Lydike 2021-05-25 10:49:54 +0200
  • 291f44a192 [CSR] unknown csr names now fail without exception Anton Lydike 2021-05-25 10:24:24 +0200
  • c4cd83701f [CSR, PrivCPU] Added csr callback registration through decorator Anton Lydike 2021-05-24 15:51:05 +0200
  • 504407c0d9 [CSR] adding callbacks to each csr block Anton Lydike 2021-05-24 14:34:35 +0200
  • db2b0b314b [PrivCPU, PrivRV32I] fix for relative jumps and branches Anton Lydike 2021-05-24 10:08:53 +0200
  • 6bd5cd1598 [ElfLoader] better formatting for load and save instructions Anton Lydike 2021-05-24 10:08:01 +0200
  • ed6912a060 [ElfLoader] added bounds check to elf loader and casting binary data to bytearray Anton Lydike 2021-05-24 10:07:21 +0200
  • 55be71dcc3 [CSR] added time and timeh csr codes Anton Lydike 2021-05-24 10:05:34 +0200
  • 3a79bfdada [ElfLoader] also loading .sdata and .sbss sections now Anton Lydike 2021-05-23 12:59:59 +0200
  • 3f11cd84ca [decoder] fixed error with decoding slli type instructions Anton Lydike 2021-05-23 12:58:47 +0200
  • f3959be843 [decoder] now returning instruction number as third return value Anton Lydike 2021-05-23 10:44:27 +0200
  • 0475d8d384 [CPU] added instruction XLEN attribute to CPU class to support multiple instruction lengths Anton Lydike 2021-05-23 10:42:04 +0200
  • c9a136d595 [instructions] fixed error in auipc command Anton Lydike 2021-05-22 21:05:14 +0200
  • ee0aac30c4 [instructions] moved regs and mmu to properties to work with janky PrivCPU Anton Lydike 2021-05-22 21:04:43 +0200
  • 1bdf2e6efe [mmu] fixed typo in docstring Anton Lydike 2021-05-22 21:03:56 +0200
  • c48a5efee3 [cpu] fixed formatting to include cpu class extensions Anton Lydike 2021-05-22 21:03:37 +0200
  • 15da68995c [priv] module now able to load and execute elf binaries Anton Lydike 2021-05-22 21:02:36 +0200
  • a4735db388 Added a decoder module which can deocde some RV32I/M instructions Anton Lydike 2021-05-22 21:01:03 +0200
  • 483a3f2416 Priv: [wip] implementing privileged architecture Anton Lydike 2021-05-19 12:14:43 +0200
  • a2e206eaee renamed CPU.__run -> CPU._run, it's now overwriteable by subclasses Anton Lydike 2021-05-19 09:51:51 +0200
  • e45655e4c0 fixed some syscall docs Anton Lydike 2021-04-24 21:49:27 +0200
  • 1abdc79e5e added additional logging to invalid mmu data access, needs a better exception Anton Lydike 2021-04-24 21:48:45 +0200
  • fa22d76f13 Added libstring and documentation for the general library Anton Lydike 2021-04-24 18:32:43 +0200
  • 6bb0ad3793 Added libstring and documentation for the general library Anton Lydike 2021-04-24 18:32:35 +0200
  • a645e6259a Added more debugger documentation Anton Lydike 2021-04-24 18:26:31 +0200
  • 462639ade7 Added run_ins method to debugger to run an instruction Anton Lydike 2021-04-24 18:24:42 +0200
  • 5d484f08cf Minor fixes like imports and edge-case handling Anton Lydike 2021-04-24 18:24:11 +0200
  • f45a37e705 Added MMU.get_bin_containing Anton Lydike 2021-04-24 18:23:12 +0200
  • ff5ba9a7ef made CPU.run_instruction public Anton Lydike 2021-04-24 18:20:06 +0200
  • da895f00cd added stack field to cpu Anton Lydike 2021-04-24 18:19:37 +0200
  • f646bf1f1d added readthedocs badge Anton Lydike 2021-04-23 22:08:59 +0200
  • 6436f8930a fixed stack docs in README Anton Lydike 2021-04-23 22:01:09 +0200
  • d72f83d19c derp: wrong url to readthedocs in readme Anton Lydike 2021-04-23 21:58:21 +0200
  • db0b9c26c3 updated documentation style in .idea config Anton Lydike 2021-04-23 21:33:40 +0200
  • 905c2adcf5 added docs links to README Anton Lydike 2021-04-23 21:33:17 +0200
  • f5f41f4e18 fixed errorneous license text in headers Anton Lydike 2021-04-23 21:28:57 +0200
  • a276638f57 fixed docs folder not included in readthedocs build [second try] Anton Lydike 2021-04-23 21:22:26 +0200
  • e8870420d3 fixed docs folder not included in readthedocs build Anton Lydike 2021-04-23 21:19:25 +0200
  • 40559f00b4 Added instruction on how to build docs locally to README Anton Lydike 2021-04-23 21:15:13 +0200
  • 0b6f8a05d8 Added markdown docs from docs folder to readthedocs output Anton Lydike 2021-04-23 21:11:55 +0200
  • 242af5c7a3 implemented mmu.allocate_region and reworked how the stack works Anton Lydike 2021-04-23 20:32:19 +0200