x86_64: initialise vm subsystem
This commit is contained in:
@@ -38,7 +38,7 @@ static void early_vm_init(void)
|
||||
int ml_init(uintptr_t arg)
|
||||
{
|
||||
multiboot_info_t *mb = (multiboot_info_t *)arg;
|
||||
|
||||
|
||||
bootstrap_cpu_init();
|
||||
vgacon_init();
|
||||
|
||||
@@ -50,5 +50,19 @@ int ml_init(uintptr_t arg)
|
||||
|
||||
pmap_bootstrap();
|
||||
|
||||
vm_zone_descriptor_t vm_zones[] = {
|
||||
{ .zd_id = VM_ZONE_DMA, .zd_node = 0, .zd_name = "dma", .zd_base = 0x00, .zd_limit = 0xffffff },
|
||||
{ .zd_id = VM_ZONE_NORMAL, .zd_node = 0, .zd_name = "normal", .zd_base = 0x1000000, .zd_limit = UINTPTR_MAX },
|
||||
};
|
||||
|
||||
vm_bootstrap(vm_zones, sizeof vm_zones / sizeof vm_zones[0]);
|
||||
|
||||
/* test allocation */
|
||||
vm_page_t *p = vm_page_alloc(VM_PAGE_16K, 0);
|
||||
void *p_ptr = vm_page_get_vaddr(p);
|
||||
memset(p_ptr, 0x00, vm_page_order_to_bytes(VM_PAGE_16K));
|
||||
|
||||
printk("allocated 16K at %p", p_ptr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user