From cd3d739e6f3d4d356ac8c34b25f16df82a5f2789 Mon Sep 17 00:00:00 2001
From: Frans Kaashoek <kaashoek@Frans-Kaashoeks-MacBook-Pro.local>
Date: Wed, 17 Aug 2011 20:52:28 -0400
Subject: [PATCH] bootloader reads into a physical address (not a virtual
 address)

---
 bootmain.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/bootmain.c b/bootmain.c
index c2d6050..6c9f1ff 100644
--- a/bootmain.c
+++ b/bootmain.c
@@ -73,17 +73,17 @@ readsect(void *dst, uint offset)
   insl(0x1F0, dst, SECTSIZE/4);
 }
 
-// Read 'count' bytes at 'offset' from kernel into virtual address 'va'.
+// Read 'count' bytes at 'offset' from kernel into physical address 'pa'.
 // Might copy more than asked.
 void
-readseg(uchar* va, uint count, uint offset)
+readseg(uchar* pa, uint count, uint offset)
 {
-  uchar* eva;
+  uchar* epa;
 
-  eva = va + count;
+  epa = pa + count;
 
   // Round down to sector boundary.
-  va -= offset % SECTSIZE;
+  pa -= offset % SECTSIZE;
 
   // Translate from bytes to sectors; kernel starts at sector 1.
   offset = (offset / SECTSIZE) + 1;
@@ -91,6 +91,6 @@ readseg(uchar* va, uint count, uint offset)
   // If this is too slow, we could read lots of sectors at a time.
   // We'd write more to memory than asked, but it doesn't matter --
   // we load in increasing order.
-  for(; va < eva; va += SECTSIZE, offset++)
-    readsect(va, offset);
+  for(; pa < epa; pa += SECTSIZE, offset++)
+    readsect(pa, offset);
 }
-- 
GitLab