as every kernel will have every init, recently i'm noticing about some
microkernel init.
I've notice that this microkernel has less source code for init if i
compare to linux
l4k4 microkernel init the first 4 operations:
1. init kdebug
kernel_info_page.kdebug_init();
2. print the kernel version
printf(kernel_version);
3. doing basic architectural init
init_arch_1();
4. initialize kernel memory allocator
kmem_init();
this is the kmem_init:
============
void kmem_init()
{
/*
* From linker scripts.
*/
extern dword_t text_paddr[];
extern dword_t _end_text_p[];
#if defined(CONFIG_DEBUG_SANITY)
if (kmem_end < kmem_start)
printf("%s(%x,%x) is a silly config\n", __FUNCTION__, kmem_start,
kmem_end);
#endif
#if defined(CONFIG_DEBUG_TRACE_MISC)
printf("%s(%x,%x)\n", __FUNCTION__, kmem_start, kmem_end);
#endif
kmem_free((ptr_t) kmem_start, kmem_end-kmem_start);
kernel_info_page.reserved_mem0_low = (dword_t) text_paddr;
kernel_info_page.reserved_mem0_high = (dword_t) _end_text_p;
kernel_info_page.reserved_mem1_low = virt_to_phys((dword_t) kmem_start);
kernel_info_page.reserved_mem1_high = (virt_to_phys((dword_t) kmem_end) +
(PAGE_SIZE-1)) & PAGE_MASK;
}
=======================