Fixed loader for kernel loading

Fix for the error that kernel start address wasn't passed
correctly and kernel wasn't started.
This commit is contained in:
Bahadir Balban
2009-09-26 21:18:19 +03:00
parent a1fa446ef2
commit b6676b9acd
2 changed files with 11 additions and 112 deletions

View File

@@ -98,12 +98,17 @@ int load_elf_image(unsigned long **entry, void *filebuf)
return 0;
}
void arch_start_kernel(void *entry)
{
printf("elf-loader:\tStarting kernel\n\r");
void (*func)(unsigned long) = (void (*)(unsigned long)) (*(unsigned long*)entry);
func(0);
}
int main(void)
{
unsigned long *kernel_entry;
arch_init();
printf("ELF Loader: Started.\n");
printf("Loading the kernel...\n");
@@ -114,9 +119,11 @@ int main(void)
(unsigned long)_end_containers);
printf("elf-loader:\tkernel entry point is %lx\n", *kernel_entry);
// arch_start_kernel(kernel_entry);
arch_start_kernel(kernel_entry);
// printf("elf-loader:\tKernel start failed!\n");
printf("elf-loader:\tKernel start failed!\n");
while (1)
printf("Endless loop.\n");
return -1;
}