summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2020-08-13 08:05:13 -0400
committerRobert Morris <[email protected]>2020-08-13 08:05:13 -0400
commite1a2cd59faf0cf7a3b315cefff11d68b68ec54a7 (patch)
tree79bc9fa5898946b04e61b3366003b117bf6773c2 /kernel
parentd32eac366fd06ec58cc3b34a3ca1824864bd7618 (diff)
parent315c37c0f1e7c05f7b7d0ec145a2002b0612c49c (diff)
downloadxv6-labs-e1a2cd59faf0cf7a3b315cefff11d68b68ec54a7.tar.gz
xv6-labs-e1a2cd59faf0cf7a3b315cefff11d68b68ec54a7.tar.bz2
xv6-labs-e1a2cd59faf0cf7a3b315cefff11d68b68ec54a7.zip
Merge branch 'riscv' of g.csail.mit.edu:xv6-dev into riscv
Diffstat (limited to 'kernel')
-rw-r--r--kernel/entry.S2
-rw-r--r--kernel/proc.c14
-rw-r--r--kernel/ramdisk.c2
-rw-r--r--kernel/virtio_disk.c1
-rw-r--r--kernel/vm.c4
5 files changed, 12 insertions, 11 deletions
diff --git a/kernel/entry.S b/kernel/entry.S
index ef5a56a..62fe1f2 100644
--- a/kernel/entry.S
+++ b/kernel/entry.S
@@ -1,7 +1,7 @@
# qemu -kernel starts at 0x1000. the instructions
# there seem to be provided by qemu, as if it
# were a ROM. the code at 0x1000 jumps to
- # 0x8000000, the _start function here,
+ # 0x80000000, the _start function here,
# in machine mode. each CPU starts here.
.section .data
.globl stack0
diff --git a/kernel/proc.c b/kernel/proc.c
index cf7f260..417e30a 100644
--- a/kernel/proc.c
+++ b/kernel/proc.c
@@ -183,13 +183,13 @@ proc_freepagetable(pagetable_t pagetable, uint64 sz)
// a user program that calls exec("/init")
// od -t xC initcode
uchar initcode[] = {
- 0x17, 0x05, 0x00, 0x00, 0x13, 0x05, 0x05, 0x02,
- 0x97, 0x05, 0x00, 0x00, 0x93, 0x85, 0x05, 0x02,
- 0x9d, 0x48, 0x73, 0x00, 0x00, 0x00, 0x89, 0x48,
- 0x73, 0x00, 0x00, 0x00, 0xef, 0xf0, 0xbf, 0xff,
- 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x00, 0x00, 0x01,
- 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00
+ 0x17, 0x05, 0x00, 0x00, 0x13, 0x05, 0x45, 0x02,
+ 0x97, 0x05, 0x00, 0x00, 0x93, 0x85, 0x35, 0x02,
+ 0x93, 0x08, 0x70, 0x00, 0x73, 0x00, 0x00, 0x00,
+ 0x93, 0x08, 0x20, 0x00, 0x73, 0x00, 0x00, 0x00,
+ 0xef, 0xf0, 0x9f, 0xff, 0x2f, 0x69, 0x6e, 0x69,
+ 0x74, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00
};
// Set up first user process.
diff --git a/kernel/ramdisk.c b/kernel/ramdisk.c
index 9901294..eb60ee7 100644
--- a/kernel/ramdisk.c
+++ b/kernel/ramdisk.c
@@ -1,5 +1,5 @@
//
-// ramdisk that uses the disk image loaded by qemu -rdinit fs.img
+// ramdisk that uses the disk image loaded by qemu -initrd fs.img
//
#include "types.h"
diff --git a/kernel/virtio_disk.c b/kernel/virtio_disk.c
index 3cff024..06e0645 100644
--- a/kernel/virtio_disk.c
+++ b/kernel/virtio_disk.c
@@ -264,6 +264,7 @@ virtio_disk_intr()
disk.used_idx = (disk.used_idx + 1) % NUM;
}
+ *R(VIRTIO_MMIO_INTERRUPT_ACK) = *R(VIRTIO_MMIO_INTERRUPT_STATUS) & 0x3;
release(&disk.vdisk_lock);
}
diff --git a/kernel/vm.c b/kernel/vm.c
index d45210a..b48a022 100644
--- a/kernel/vm.c
+++ b/kernel/vm.c
@@ -65,9 +65,9 @@ kvminithart()
// A 64-bit virtual address is split into five fields:
// 39..63 -- must be zero.
// 30..38 -- 9 bits of level-2 index.
-// 21..39 -- 9 bits of level-1 index.
+// 21..29 -- 9 bits of level-1 index.
// 12..20 -- 9 bits of level-0 index.
-// 0..12 -- 12 bits of byte offset within the page.
+// 0..11 -- 12 bits of byte offset within the page.
pte_t *
walk(pagetable_t pagetable, uint64 va, int alloc)
{