Commit Graph

  • fa6217d35e Added data generators and preliminary computer model. Florian Nücke 2020-10-25 18:39:01 +01:00
  • b00a4bb2c7 Make computer rotatable. Florian Nücke 2020-10-25 18:37:52 +01:00
  • 7cfe59a4f7 Send singular escape press. Florian Nücke 2020-10-20 10:33:40 +02:00
  • c5585d39a3 Constant for ticks per second. Florian Nücke 2020-10-20 10:21:11 +02:00
  • 8b3f845078 Track elapsed cycles and try to catch up and don't skip some when still running when a tick is called. Florian Nücke 2020-10-20 10:20:22 +02:00
  • 57c23eac07 Removed broken fix for issue that really came from bad screen positioning. Florian Nücke 2020-10-15 13:46:40 +02:00
  • fdafde0c8f Fixed client also responding to status request escape codes. Florian Nücke 2020-10-09 12:51:29 +02:00
  • e9bb1e2b8d Cleaned up terminal rendering code, in particular made it more robust when scaled. Florian Nücke 2020-10-09 12:07:08 +02:00
  • fb34a90131 Terminal is getting stylish. Florian Nücke 2020-10-09 11:24:12 +02:00
  • 45293504cf Added support for colors in terminal. Florian Nücke 2020-10-09 08:57:33 +02:00
  • 74abfb0134 Maybe? Florian Nücke 2020-10-09 01:04:54 +02:00
  • 728b81aca5 Uhh... ok. This way then maybe? Florian Nücke 2020-10-09 00:57:22 +02:00
  • 6c7a477285 Fixed dep. Florian Nücke 2020-10-09 00:55:50 +02:00
  • 32fb4d0560 Bump Ceres version. Florian Nücke 2020-10-09 00:54:16 +02:00
  • 71d779c85c More control sequences and fixed cursor position reporting. Florian Nücke 2020-10-09 00:48:34 +02:00
  • 1a09559cda Add support for ctrl+c/d/z. Florian Nücke 2020-10-08 21:31:23 +02:00
  • b458f36595 Doesn't make sense for board to have hardcoded device tree address. Expose method to generate device tree to some address instead. Florian Nücke 2020-10-08 18:51:53 +02:00
  • c130828008 Reduce number of packages a bit. Florian Nücke 2020-10-05 12:53:49 +02:00
  • 063b625c6c Make sure to mark chunk dirty when running to ensure changes get serialized. Florian Nücke 2020-10-05 11:56:54 +02:00
  • 2fd8ee3815 Delete blob storage when disposing memory in computer block. Florian Nücke 2020-10-05 11:40:51 +02:00
  • 1a724c355e Made computer block serializable. Florian Nücke 2020-10-05 11:27:04 +02:00
  • d8d568daca Added utility class for limiting memory allocated for VMs. Florian Nücke 2020-10-05 11:26:27 +02:00
  • 5f1a69efc3 Added utility class for storing blob data outside of NBT. Florian Nücke 2020-10-05 11:26:09 +02:00
  • 2166e3888c Added missing package-infos. Florian Nücke 2020-10-05 11:25:44 +02:00
  • 5305854b86 Update for new Ceres version. Florian Nücke 2020-10-04 12:45:44 +02:00
  • ead10cc155 Make NBTSerialization reuse existing arrays in deserialization. Florian Nücke 2020-10-04 02:03:31 +02:00
  • 28a945f887 Embed jars of our extra dependencies. Use Ceres, add NBT serialization format. Serialize Terminal using Ceres. Florian Nücke 2020-10-02 03:37:09 +02:00
  • 308a1c5e10 Remove application plugin. Florian Nücke 2020-10-02 02:26:14 +02:00
  • 0f38d79b51 clazz -> type Florian Nücke 2020-10-02 02:24:27 +02:00
  • 12a02f71b0 Utility methods for safely applying messages to tile entities. Expecting to need this a lot. Florian Nücke 2020-09-30 13:44:18 +02:00
  • fb281bd5fa Small rename. Check if chunk exists before accessing it on server. Florian Nücke 2020-09-30 13:34:37 +02:00
  • 9275d9562a Send terminal output to client and input back to server. Florian Nücke 2020-09-30 13:27:32 +02:00
  • cd1d06842d Started implementing a computer block as use/test-case for serialization. Florian Nücke 2020-09-29 13:01:32 +02:00
  • 8a7aabfdad Using sedna-buildroot as source for binaries now. Moved configs to buildroot repo. Florian Nücke 2020-09-28 13:22:46 +02:00
  • ddbfc38a14 Fixed maven url. Florian Nücke 2020-09-26 21:45:33 +02:00
  • 1dded657c6 Stripped out the vm package because it feels very redundant now. Florian Nücke 2020-09-26 21:27:25 +02:00
  • 5a8e48022d Pulled emulator into separate project. Florian Nücke 2020-09-26 14:41:34 +02:00
  • d68271c99b Fixed bounds check and exception type. Florian Nücke 2020-09-26 11:59:35 +02:00
  • 452f02e102 Removed alignment asserts (broke tests). Fixed bounds checks in memory classes. Florian Nücke 2020-09-26 11:29:57 +02:00
  • 641b603c2f Add option for flushing for block devices. Florian Nücke 2020-09-26 11:23:10 +02:00
  • 1d61793cbb Removed redundant lines from build.gradle and made compile args easier to modify. Florian Nücke 2020-09-26 02:57:08 +02:00
  • 5d6fab0dac Enforce some sane limits on block device request sizes and throttle throughput. Florian Nücke 2020-09-26 02:55:47 +02:00
  • 78b853308a Little bit of documentation and dead code removal. Florian Nücke 2020-09-26 01:31:06 +02:00
  • 9722ae24d1 Make BlockDevices closeable, allows properly closing file based ones. Florian Nücke 2020-09-25 20:19:55 +02:00
  • 0033140d37 Somehow kernel thought it needed USB and Networking again... removed that. Again. Florian Nücke 2020-09-25 17:46:10 +02:00
  • 00eb257632 Added buildroot configs. Florian Nücke 2020-09-25 17:32:48 +02:00
  • e1a91b0371 Made console device configurable independently from input device. Florian Nücke 2020-09-25 17:11:45 +02:00
  • c7990ea8bc Gave up and accepted we need bootargs (for now), so those can be set on board now. Florian Nücke 2020-09-25 15:46:03 +02:00
  • b4c8bfcdf9 Catching right error for read-only block devices. Florian Nücke 2020-09-25 15:45:10 +02:00
  • 380d5669f0 Allow devices to declare supported load/store widths. Makes us a little less reliant on asserts. Checked in memory map => direct load/store on devices is still unchecked and fast. Florian Nücke 2020-09-25 15:18:28 +02:00
  • 1528c6ea53 Use constants for clarity. Florian Nücke 2020-09-25 14:49:27 +02:00
  • 2f747558e9 Only use UnsafeMemory on little endian systems (because that's what our R5CPU says it's using). Florian Nücke 2020-09-25 12:39:59 +02:00
  • c1a11cb57b Some RISC-V float constants, unused for now. Florian Nücke 2020-09-25 02:21:26 +02:00
  • 138290cc86 Added VirtIO Block Device, backed by new BlockDevice interface. Currently supports ByteBuffers and memory mapped files. Florian Nücke 2020-09-25 02:20:52 +02:00
  • 8d5ef3850b Added utility method for skipping sections of a descriptor chain. Florian Nücke 2020-09-25 02:19:44 +02:00
  • 105fd4ab56 Moved UART out of board, kinda hacky for now. Florian Nücke 2020-09-24 21:36:43 +02:00
  • 3af8ba59a0 Some more 64 bit maybe someday future-proofing. Florian Nücke 2020-09-24 21:30:11 +02:00
  • e67e3580e7 Write input device config directly into config space instead of separate buffer. Florian Nücke 2020-09-24 18:12:38 +02:00
  • b2fb6ed730 Mapping of GLFW keycodes to evdev keycodes. Florian Nücke 2020-09-24 17:53:49 +02:00
  • ada89fdddb Added VirtIO Input Device base class and keyboard device implementation. Florian Nücke 2020-09-24 17:53:20 +02:00
  • 78ec00379e Unified naming between UART and VirtIO console methods. Florian Nücke 2020-09-24 16:56:06 +02:00
  • df49fcb580 Register provider for VirtIO devices. Florian Nücke 2020-09-24 16:55:39 +02:00
  • dda84ba927 Added bare minimum VirtIO console device. Florian Nücke 2020-09-24 16:54:32 +02:00
  • e80ea9120b Ring buffers can be smaller and made notification receiver optional to implement. Florian Nücke 2020-09-24 15:20:57 +02:00
  • 9a2244bf20 Base class for VirtIO devices, taking care of common plumbing. Florian Nücke 2020-09-24 14:20:32 +02:00
  • 916432f81b Make device cache in memory map thread safe. Florian Nücke 2020-09-24 13:29:17 +02:00
  • 1f43d7bc85 Add name for VirtIO devicetree provider. Florian Nücke 2020-09-24 13:28:47 +02:00
  • caaad3e637 Give terminal an input buffer and make dirty flag atomic. This allows to write "input" on its own, e.g. in response to certain escape sequences. Florian Nücke 2020-09-24 13:27:16 +02:00
  • 330eda9a8a Utility method for setting up interrupts. Florian Nücke 2020-09-24 13:26:16 +02:00
  • eb22fef001 Added 64 bit width to sizes and handle it in memory implementations. Florian Nücke 2020-09-24 13:26:03 +02:00
  • 49b6a56ca3 Added pasting to test screen. Closes #1. Florian Nücke 2020-09-21 01:15:25 +02:00
  • 2822f18f0e Removed now unnecessary zero flushing. Florian Nücke 2020-09-20 23:13:42 +02:00
  • bc04f7b20b More dead code. Florian Nücke 2020-09-20 13:58:30 +02:00
  • 23c480c748 Javadoc fix. Florian Nücke 2020-09-20 13:58:17 +02:00
  • 65e41b2490 Removed dead code. Florian Nücke 2020-09-20 13:58:06 +02:00
  • 1a5b1a47f4 First Minecraft thing for testing, opens UI with a terminal and starts a VM. Florian Nücke 2020-09-19 22:52:27 +02:00
  • 2f90f021b3 Made UART timeout to actually do something. Florian Nücke 2020-09-19 18:34:03 +02:00
  • f0212ddb98 Fixed potential illegal read from UART queue after clear. Florian Nücke 2020-09-19 18:33:33 +02:00
  • 1f99a2eade Cleaned up ISA tests a little. Florian Nücke 2020-09-19 14:59:42 +02:00
  • a877ad1370 Understood how tests communicate. All passing now! Florian Nücke 2020-09-19 14:47:02 +02:00
  • 44dff6b0c6 Made gradlew executable. Florian Nücke 2020-09-19 12:00:07 +02:00
  • 91daec02c4 Fixed input getting dropped if buffer is full. Florian Nücke 2020-09-19 11:56:26 +02:00
  • 47cd914e44 Remapping cpu field to "this" (first local) in generated methods. Florian Nücke 2020-09-19 08:54:46 +02:00
  • 6939ca93f6 Split up atomic operations more, inlining them in translator. Florian Nücke 2020-09-19 08:50:47 +02:00
  • cdc736f733 OK Florian Nücke 2020-09-19 00:55:23 +02:00
  • 457933d9a4 Removed unused interface. Florian Nücke 2020-09-19 00:49:51 +02:00
  • 90d6c491df Removed unused and barely useful "assembler". Florian Nücke 2020-09-19 00:48:20 +02:00
  • b626887bac Use shared util methods. Florian Nücke 2020-09-19 00:47:15 +02:00
  • d98393ad8d Unified naming. Florian Nücke 2020-09-19 00:44:50 +02:00
  • 31479e4568 Inlined a few more big and common switches in translator. Gives a small performance boost from ~2.7s to ~2.5s. I suspect this is because traces need to be re-generated every so often, allowing less time for the hotspot vm to optimize these calls. Florian Nücke 2020-09-19 00:40:27 +02:00
  • 69e637d5fd Fixed cycle count for benchmark. Was high because of initial input testing was using it... Florian Nücke 2020-09-19 00:29:22 +02:00
  • d16ac47d46 Fixed arg parser. Florian Nücke 2020-09-19 00:28:21 +02:00
  • 8e300f8987 More readable. Florian Nücke 2020-09-19 00:22:00 +02:00
  • 096606b6ff Minor rename. Florian Nücke 2020-09-19 00:07:45 +02:00
  • a36ee2090f Added remaining riscv-tests, made it easier to select which ones to run. All v mode stuff is pretty broken. Not really getting how tests want to communicate whether they passed or failed yet I think. Florian Nücke 2020-09-19 00:07:32 +02:00
  • 797f673a3e Fixed divu. 2^XLEN-1 != 2^31-1 when XLEN = 32, oops. Florian Nücke 2020-09-18 14:55:09 +02:00
  • 8344950443 Added basic and super hacky input. Split up Main into a benchmark and a regular run, added gradle task (run) to start it outside the IDE. Florian Nücke 2020-09-18 13:51:48 +02:00
  • 5c478c1203 Added missing step 7 in address translation. One more passing test. Florian Nücke 2020-09-18 10:34:53 +02:00
  • 13d4d7ac1f Print cycles to failure for getting there with debugger faster.. Florian Nücke 2020-09-18 10:34:32 +02:00
  • e2c6185e32 Clear MPRV on xret as per spec. Florian Nücke 2020-09-18 09:31:11 +02:00