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
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
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
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
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
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
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