ref: 2de7940afebf1e4daba04a57b77d43f52f9915b8
parent: 1971857799205f6226d2b8fa354df153d035dae4
author: 9ferno <gophone2015@gmail.com>
date: Mon Aug 9 03:23:44 EDT 2021
cleaned up the boot messages
--- a/os/pc/bootargs.c
+++ b/os/pc/bootargs.c
@@ -198,7 +198,8 @@
{
int i;
+ print("Boot configuration\n");
for(i = 0; i < nconf; i++){
- print("%s=%s\n", confname[i], confval[i]);
+ print(" %s=%s\n", confname[i], confval[i]);
}
}
\ No newline at end of file
--- a/os/pc64/main.c
+++ b/os/pc64/main.c
@@ -27,7 +27,7 @@
static void
doc(char *m)
{
- int i;
+ /*int i;*/
print("%s...\n", m);
/*for(i = 0; i < 100*1024*1024; i++)
i++;*/
@@ -78,21 +78,26 @@
}
void
-ptedebug(uintptr pa)
+ptedebug(uintptr pa, char *desc)
{
uintptr *pml4e, *pdpe, *pde;
+ char pdestr[64] = "unmapped";
pml4e = mmuwalk((uintptr*)PML4ADDR, pa, 3, 0);
pdpe = mmuwalk((uintptr*)PML4ADDR, pa, 2, 0);
pde = mmuwalk((uintptr*)PML4ADDR, pa, 1, 0);
- print("pml4 @ 0x%p pa 0x%zux page is \n"
- "\tpml4 entry @ 0x%p i %zd\n"
- "\tpdp entry @ 0x%p i %zd\n"
- "\tpd entry @ 0x%p i %zd\n",
- m->pml4, pa,
- pml4e, (pml4e-m->pml4)/sizeof(intptr),
- pdpe, ((intptr)pdpe-(intptr)PDPADDR)/sizeof(intptr),
- pde, ((intptr)pde-(intptr)PD0ADDR)/sizeof(intptr));
+ if((intptr)pde > 0){
+ snprint(pdestr, 64, "at 0x%p i %zd",
+ pde, ((intptr)pde-(intptr)PD0ADDR)/sizeof(intptr));
+ }
+ print("\tpage of address 0x%zux (%s) with pml4 at 0x%p\n"
+ "\t\tpml4 entry at 0x%p i %zd\n"
+ "\t\tpdp entry at 0x%p i %zd\n"
+ "\t\tpd entry %s\n",
+ pa, desc, m->pml4,
+ pml4e, (pml4e-m->pml4)/sizeof(intptr),
+ pdpe, ((intptr)pdpe-(intptr)PDPADDR)/sizeof(intptr),
+ pdestr);
}
void
@@ -99,7 +104,8 @@
showconfig(void)
{
showconf();
- print("kdzero 0x%p confaddr 0x%p apbootstrap 0x%p idtaddr 0x%p\n"
+ print("Important Addresses\n"
+ "\tkdzero 0x%p confaddr 0x%p apbootstrap 0x%p idtaddr 0x%p\n"
"\tcpu0mach 0x%p cpu0sp 0x%p cpu0gdt 0x%p\n"
"\tcpu0pml4 0x%p cpu0pdp 0x%p cpu0pd 0x%p\n"
"\tcpu0end 0x%p\n",
@@ -106,10 +112,11 @@
(void*)KDZERO, CONFADDR,APBOOTSTRAP,
IDTADDR, CPU0MACH, CPU0SP, GDTADDR,
PML4ADDR, PDPADDR, PD0ADDR, CPU0END);
- ptedebug(1*MiB);
- ptedebug(2*MiB);
- ptedebug(1*GiB);
- ptedebug(4ull*GiB);
+ print("Some page table entries\n");
+ ptedebug(1*MiB,"1 MiB");
+ ptedebug(2*MiB,"2 MiB");
+ ptedebug(1*GiB,"1 GiB");
+ ptedebug(4ull*GiB,"4 GiB");
}
/* to check from acid on whether the data segment is being trashed */
--- a/os/pc64/mem.h
+++ b/os/pc64/mem.h
@@ -29,7 +29,7 @@
#define FPalign 64
#define MAXMACH 128 /* max # cpus system can run */
-#define KSTACK (32*KiB) /* Size of kernel stack */
+#define KSTACK (32*KiB) /* Size of kernel stack */
#define MACHSIZE (2*KSTACK)
/*
@@ -62,6 +62,7 @@
#define GDTADDR (KDZERO+0x11000ull) /* gdt */
#define CPU0MACH (KDZERO+0x12000ull) /* Mach for bootstrap processor */
#define CPU0END (KDZERO+0x22000ull) /* CPU0MACH + (MACHSIZE = 64 KiB = 0x10 000) */
+ /* MACHSIZE includes stack size */
#define CPU0SP (KDZERO+0x22000ull)
/* 1 PD table has 512 entries
* each entry maps to a 2MB page
--- a/os/pc64/memory.c
+++ b/os/pc64/memory.c
@@ -584,9 +584,11 @@
{
uintptr prevbase = 0, base, size = 0;
- print("MemMin 0x%llux end 0x%p KZERO 0x%x KDZERO 0x%x\n"
+ print("Memory Configuration\n"
+ "\tMemMin 0x%llux end 0x%p KZERO 0x%x KDZERO 0x%x\n"
"\tKTZERO 0x%x etext 0x%p\n\tCPU0END 0x%llux\n"
- "\tPADDR(PGROUND((uintptr)end)) 0x%zux MemMin-PADDR(PGROUND((uintptr)end)) 0x%zux\n",
+ "\tPADDR(PGROUND((uintptr)end)) 0x%zux\n"
+ "\tMemMin-PADDR(PGROUND((uintptr)end)) 0x%zux\n",
MemMin, end, KZERO, KDZERO, KTZERO, etext, (uintptr)CPU0END,
PADDR(PGROUND((uintptr)end)), MemMin-PADDR(PGROUND((uintptr)end)));
/*