summaryrefslogtreecommitdiff
path: root/kernel/kernel.c
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2014-08-07 18:40:11 +0200
committerMichal Idziorek <m.i@gmx.at>2014-08-07 18:40:11 +0200
commit5a83bd319a22d53eb82d43c738d471a5a8079b36 (patch)
tree6c29e99ab2db9e8297ad977616f202612f041b3e /kernel/kernel.c
parent0246dfba3efac4c20e73e83c229219d3c136ff40 (diff)
added some physical memory management
Diffstat (limited to 'kernel/kernel.c')
-rw-r--r--kernel/kernel.c92
1 files changed, 2 insertions, 90 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index 7c5f982..0e6b32e 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -36,96 +36,8 @@ void kernel_main()
timer_init();
scr_put_string_nl("Configured PIT Channel 0 : Mode 2 : 1/25 s.");
- /*
- //probe memory
- scr_put_string_nl("Probing core memory...");
- char *prober=0xf000;
-
- for(;prober<0xfffffff;prober+=0xf00)
- {
- *prober='x';
- if(*prober!='x')break;
-
- }
-
-
- //0xA5000
- scr_put_hex((uint32_t)prober>>16);
- scr_put_hex((uint32_t)prober&0xffff);
- scr_put_string_nl(" finished!");
- //
-
- */
-
- uint16_t *memmap=0x7c00+0x120;
- uint32_t avail_mem=0;
-
- //print memory map:
-
- while(1)
- {
- if(memmap[8]==0)break;
- if(memmap[8]==1)
- {
- avail_mem+=memmap[4]+(memmap[5]<<16);
- }
- //bytes: 8 8 4 4//
- //scr_put_hex(memmap[3]);
- //scr_put_string(" ");
- //scr_put_hex(memmap[2]);
- //scr_put_string(" ");
- scr_put_hex(memmap[1]);
- scr_put_string(" ");
- scr_put_hex(memmap[0]);
- scr_put_string(" ");
-// scr_put_hex(memmap[4]);
-// scr_put_string(" ");
-// scr_put_hex(memmap[5]);
-// scr_put_string(" ");
-// scr_put_hex(memmap[6]);
-// scr_put_string(" ");
-// scr_put_hex(memmap[7]);
-
-
- scr_put_string(" - ");
-// scr_put_hex(memmap[8]);
-// scr_put_string(" ");
-// scr_put_hex(memmap[9]);
-// scr_put_string(" ");
-// scr_put_hex(memmap[10]);
-// scr_put_string(" ");
-// scr_put_hex(memmap[11]);
-// scr_put_string(" ");
- //scr_put_hex(memmap[7]);
- //scr_put_string(" ");
- //scr_put_hex(memmap[6]);
- //scr_put_string(" ");
- scr_put_hex(memmap[5]);
- scr_put_string(" ");
- scr_put_hex(memmap[4]);
-
- scr_put_string(" : ");
- scr_put_hex(memmap[8]);
-// scr_put_string(" ");
-// scr_put_hex(memmap[9]);
-
-
- scr_put_string_nl("");
-
- memmap+=12;
- }
-
-
- scr_put_string("Total Available Mem: ");
- scr_put_hex(avail_mem>>16);
- scr_put_string(" ");
- scr_put_hex(avail_mem&0xffff);
- scr_put_string_nl(" byte");
- scr_put_string_nl("");
-
-
-
-
+ // we know that here the bootloader placed the mamory map!
+ mem_init(0x7c00+0x120);
// init and interrupt decriptor table
int_init(0x08);