Ejemplo n.º 1
0
void platform_init(void)
{
    uart_init();

    platform_init_keyboard();
#ifndef ARCH_X86_64
    pci_init();
#endif

    /* MMU init for x86_64 done after the heap is setup */
#ifdef ARCH_X86_64
    arch_mmu_init();
    platform_init_mmu_mappings();
#endif

}
Ejemplo n.º 2
0
Archivo: arch.c Proyecto: dankex/lk
void arch_early_init(void)
{
	x86_mmu_init();

	platform_init_mmu_mappings();

	/* enable caches here for now */
	clear_in_cr0(X86_CR0_NW | X86_CR0_CD);

	memset(&system_tss, 0, sizeof(tss_t));

	system_tss.esp0 = 0;
	system_tss.ss0 = DATA_SELECTOR;
	system_tss.ss1 = 0;
	system_tss.ss2 = 0;
	system_tss.eflags = 0x00003002;
	system_tss.bitmap = offsetof(tss_t, tss_bitmap);
	system_tss.trace = 1; // trap on hardware task switch

	set_global_desc(TSS_SELECTOR, &system_tss, sizeof(tss_t), 1, 0, 0, SEG_TYPE_TSS, 0, 0);

	x86_ltr(TSS_SELECTOR);
}
Ejemplo n.º 3
0
Archivo: arch.c Proyecto: cpizano/lk
void arch_early_init(void)
{
    arm64_cpu_early_init();
    platform_init_mmu_mappings();
}