aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGELOG')
-rw-r--r--CHANGELOG23
1 files changed, 23 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 999bba8..7d24508 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,26 @@
+## 2.1.0
+
+asmlinator now supports creating protected-mode and real-mode VMs.
+
+the new Vm::create_by_settings consumes an (also new) VmSettings structure
+which declares the VM's base memory size and desired `IsaMode`. `Vm::create` is
+now a short-hand for
+```
+Vm::create_by_settings(VmSettings::new(mem_size, IsaMode::Protected))
+```
+
+control structures are laid out differently in 32-bit and 16-bit modes.
+
+in the protected-mode case, PSE is set and the page table is used to map memory
+as 4MiB pages. segment limits are set to their maximum values.
+
+in the real-mode case, a second code segment is established for the IDT, which
+is still at the linear address 0x2000. code, being placed at the 4096th byte
+before the end of memory, with the second code segment covering this lower
+region of memory. `cs`, `ds`, and other segment selectors are configured to
+address the last 4096 bytes of memory with code placed at (and `ip` set to)
+address 0 in this segment.
+
## 2.0.0
asmlinator now sets up VMs to be able to execute SSE, AVX, and AVX512