summaryrefslogtreecommitdiff
path: root/sys/src/cmd/vmx
AgeCommit message (Collapse)Author
2022-01-24vmx: fix PCI ID for virtio block devicesMichael Forney
The transitional PCI device ID for block devices is 0x1001, and the virtio spec says that devices must have the transitional device ID or 0x1040 + the virtio device ID (2).
2021-09-25vmx: update openbsd kernel heuristicsOri Bernstein
in OpenBSD 6.9 and up, the kernel (bsd, bsd.mp) still has the ostype symbols, but bsd.rd appears to have lost them, even when decompressed. so, as a result, we should use what we have, which isn't much.
2021-07-11vmx: reset virtio queue state on device resetcinap_lenrek
when a virtio device gets reset, we have to also reset the device shadow indices: availableidx and usedidx. for extra safetly, we also reset the buffer descriptor table addresses. this is accomplished by adding a vioqreset(VIOQueue*) function that brings the queue to its initial reset state. this fixes non functional ethernet after reboot(8).
2021-07-06vmx: emulate ps/2 intellimouse scrollingSigrid Solveig Haflínudóttir
2021-05-12vmx: fix 9p debug server and make it compatible to /proccinap_lenrek
The 9p debug server was broken as it assumed the first tree file added would have a qid of 0 (it has a qid of 1 as the root directory is using 0 already). Instead, just compare File* pointers and get rid of the table (less code). When passing 64-bit unsigned addresses as 64-bit signed file offsets, we have to make sure to not pass negative offsets (filtered out by kernel and lib9p)! This is solved by clearing and sign bit in encoding and 63-bit sign extension on decoding. Make the mem file writable (needed for acid). The 9p debug server provided a single directory containing mem and regs files. This patch renames the regs file (which is in vmx specific text format) to "xregs" and adds "regs" and "kregs" file which use the same format as exported by the kernels /proc filesystem. This allows one to bind the vmx directory over a proc directory and attach acid to a running system like: mount -b /srv/vmx /proc/1 acid -k -lkernel 1 /sys/src/9/pc64/9pc64
2021-05-12vmx: avoid strdup() register names for register cachecinap_lenrek
If we tokenize the register file contents in a static buffer, we can avoid having to duplicate the register names. All callers to rpoke() provide constant register arguments so they also do not need to be duplicated.
2021-05-12vmx: implement long mode page table translationcinap_lenrek
This allows vmx to translate virtual addresses to physical when the gues runs in long mode.
2021-02-23vmx: reduce cpu load by eliminating nop-loopSigrid
Sacrifice some of the sub-millisecond timer precision in favor of less cpu load when the timer is about to be kicked a bit early. Result is visible *especially* when the guest idling. Timer proc *still* has to send to the channel (in order to kick PIT and RTC logic), which takes time, and compensates a bit for possibly early runs.
2020-12-10vmx: clean up mksegment, memset only if segment existed (devsegment clears ↵Sigrid
new ones)
2020-12-08vmx(1): build vmxgdb by default, clean it up as wellSigrid
2020-12-08vmx: nanosec(): fix non-interruptable temporary, assign fasthz only once ↵cinap_lenrek
after xstart
2020-12-08vmx: add fmt checking, fix fmt errors, remove duplication for vmdebugcinap_lenrek
2020-12-08vesa: make unsupported function not an error, set return statusSigrid
2020-12-08vmx: add -D option to enable debug messages, use vmdebug for non-fatal "errors"Sigrid
2020-12-07vmx: add -v|-w flag to control window creation behaviourcinap_lenrek
The -v flag now does not create a new rio window, while -w flag does (restores the old behaviour). This allows vmx to run under vncs and is in general mode aligned to other emulators and programs.
2020-12-06amd64, vmx: support avx/avx2 for host/guest; use *noavx= in plan9.ini to disableSigrid
2020-11-02vmx: mask out bits 0:2 and 24:30 of pci CONFIG_ADDRESS on readcinap_lenrek
These bits are reserved, and by the specification, must return zero on read. This is also used by plan 9 for detecting config mode #1.
2020-10-23vmx/vga: fix allocimage leaksSigrid
2020-10-09vmx: add Kmod4Sigrid
2020-08-10vmx: does not do well with certain fb widths, so restrict itSigrid
2020-08-07vmx: set xstart to either nsec or cycles depending on what is availableSigrid
2020-08-01vmx(1): use _tos->cyclefreq (thanks cinap)Sigrid
2020-07-31vmx(1): add missing fileSigrid
2020-07-31vmx(1): use cycles() instead of nsec() when possibleSigrid
this provides better timing and reduced number of syscalls (~2.7M old vs ~35K new in a test)
2020-07-31vmx: use _actual_ system kbmapSigrid
2019-05-19vmx: handle build arch exclude in /sys/src/cmd/mkfilecinap_lenrek
2019-05-01vmx: build vmx only for 386 or amd64cinap_lenrek
vmx uses non portable word unpacking macros, breaking the build for arm64. vmx only works on a pc anyway. this forces objtype to 386 on these machines, similar to what the kernel mkfiles do.
2019-03-06vmx: check for draw initialization errorsmischief
2018-05-12add signed fixed size integer typedefsqwx
2018-02-25vmx: allow setting mac address of using ea:nnnnnnnnnnnn! prefix, use ↵cinap_lenrek
genrandom() to generate mac globally unique mac address
2017-12-15ether: allow spoofing of source mac address for bridges; used by vmxcinap_lenrek
to implement layer 2 bridges in userspace, we disable to auto filling of the source mac address when bridge mode is enabled on the connection.
2017-12-13vmx(1): fix virtio network bloomfilteraiju
2017-11-27vmx(1): fix openbsd 6.2 amd64 !entrystate bugaiju
2017-08-28devvmx, vmx: lilu dallas multivmaiju
2017-08-28vmx(1): don't realloc virtio queues -- breaks pointersaiju
2017-08-24vmx(1): VGA framebuffer should be normal memoryaiju
2017-08-24vmx(1): fixed code that assumed uintptr==uvlongaiju
2017-08-24vmx(1): memory map improvements, x86 simulator for MMIOaiju
2017-08-14vmx: allocate sticky instead of more expensive fixed segmentcinap_lenrek
2017-08-13vmx: pass multiboot framebuffer info to kernelcinap_lenrek
2017-08-07vmx: fix hlt idle problemcinap_lenrek
2017-06-27vmx(1): I/O string instructions, incomplete support for IDE disks, misc fixesaiju
2017-06-26vmx: fix build on non-x86 architectures (switch vlong)aiju
2017-06-22vmx(1): fix translateflat on 64-bitaiju
2017-06-21vmx(1): add support for (so far) crude 9p debugging fs; add gdb stub; clean ↵aiju
up linux gdt code
2017-06-20vmx(1): obsdfb: check if curmode is nilaiju
2017-06-20vmx(1): round up frame buffer size to whole pages, ignore vga access in ↵aiju
linear framebuffer, tell openbsd about framebuffer
2017-06-20vmx(1): clean up region handling code; changes to support amd64aiju
2017-06-19vmx(1): i8042: translation changes reported keyboard idaiju
2017-06-18vmx(1): linux kernel loading; PIT fixes to support linux; support VGA 0x3D4 ↵aiju
word writes; support sending virtio ethernet packets to a file and prepending snoopy headers