mirror of
https://github.com/drasko/codezero.git
synced 2026-02-05 22:43:15 +01:00
Changed the virt-to-phys debug breakpoint name to break_virtual
Changed l4id_t type to integer to recognise negative id values like L4_ANYTHREAD. Added an extremely simple script that cleans and builds everything in right order. Increased boot pmds by one: This is due to the fact that if the 1MB initial allocation area of the kernel is not 1MB-aligned, it is ought to be mapped from the middle of one MB to next, which requires 2 pmds. modified: .gdbinit modified: README new file: buildall.sh modified: include/l4/arch/arm/types.h modified: include/l4/generic/scheduler.h modified: loader/kernel.S modified: loader/main.c modified: loader/mylink.lds modified: loader/start.axf.S modified: src/glue/arm/init.c modified: src/glue/arm/memory.c modified: tasks/fs0/src/bdev.c modified: tasks/mm0/include/kdata.h modified: tasks/mm0/include/vm_area.h modified: tasks/mm0/src/init.c modified: tasks/mm0/src/task.c modified: tools/ksym_to_lds.py modified: tools/l4-qemu
This commit is contained in:
@@ -5,21 +5,21 @@
|
||||
.section .kernel
|
||||
|
||||
.incbin "start.axf"
|
||||
.align 4
|
||||
.section .mm0
|
||||
|
||||
.incbin "mm0.axf"
|
||||
.align 4
|
||||
.section .bootdesc
|
||||
|
||||
.incbin "bootdesc.axf"
|
||||
|
||||
.align 4
|
||||
.section .mm0
|
||||
.incbin "mm0.axf"
|
||||
|
||||
.align 4
|
||||
.section .fs0
|
||||
|
||||
.incbin "fs0.axf"
|
||||
.align 4
|
||||
|
||||
.align 4
|
||||
.section .test0
|
||||
|
||||
.incbin "test0.axf"
|
||||
|
||||
.align 4
|
||||
|
||||
@@ -106,7 +106,6 @@ extern char _start_test0[];
|
||||
extern char _end_test0[];
|
||||
extern char _start_bootdesc[];
|
||||
extern char _end_bootdesc[];
|
||||
|
||||
/* This is a kernel symbol exported to loader's linker script from kernel build */
|
||||
extern char bkpt_phys_to_virt[];
|
||||
|
||||
@@ -127,17 +126,22 @@ main(void)
|
||||
arch_init();
|
||||
|
||||
printf("elf-loader:\tStarted\n");
|
||||
|
||||
printf("Loading the kernel...\n");
|
||||
load_image(&kernel_entry, _start_kernel, _end_kernel);
|
||||
printf("Loading the inittask\n");
|
||||
load_image(&mm0_entry, _start_mm0, _end_mm0);
|
||||
printf("Loading the roottask\n");
|
||||
load_image(&fs0_entry, _start_fs0, _end_fs0);
|
||||
printf("Loading the testtask\n");
|
||||
load_image(&test0_entry, _start_test0, _end_test0);
|
||||
|
||||
printf("Loading the bootdesc\n");
|
||||
load_image(&bootdesc_entry, _start_bootdesc, _end_bootdesc);
|
||||
|
||||
printf("Loading mm0\n");
|
||||
load_image(&mm0_entry, _start_mm0, _end_mm0);
|
||||
|
||||
printf("Loading fs0\n");
|
||||
load_image(&fs0_entry, _start_fs0, _end_fs0);
|
||||
|
||||
printf("Loading test0\n");
|
||||
load_image(&test0_entry, _start_test0, _end_test0);
|
||||
|
||||
printf("elf-loader:\tkernel entry point is %p\n", kernel_entry);
|
||||
arch_start_kernel(kernel_entry);
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ ENTRY(_start)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
. = 0x8000;
|
||||
. = 0x2000000;
|
||||
.text : { *(.text) }
|
||||
.rodata : { *(.rodata) }
|
||||
.rodata1 : { *(.rodata1) }
|
||||
@@ -16,6 +16,9 @@ SECTIONS
|
||||
_start_kernel = .;
|
||||
*(.kernel)
|
||||
_end_kernel = .;
|
||||
_start_bootdesc = .;
|
||||
*(.bootdesc)
|
||||
_end_bootdesc = .;
|
||||
_start_mm0 = .;
|
||||
*(.mm0)
|
||||
_end_mm0 = .;
|
||||
@@ -25,9 +28,6 @@ SECTIONS
|
||||
_start_test0 = .;
|
||||
*(.test0)
|
||||
_end_test0 = .;
|
||||
_start_bootdesc = .;
|
||||
*(.bootdesc)
|
||||
_end_bootdesc = .;
|
||||
*(.data)
|
||||
}
|
||||
.got : { *(.got) *(.got.plt) }
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
.section .text
|
||||
.align 4
|
||||
.global bkpt_phys_to_virt;
|
||||
.type bkpt_phys_to_virt, function;
|
||||
.equ bkpt_phys_to_virt, 0x106f88
|
||||
.global break_virtual;
|
||||
.type break_virtual, function;
|
||||
.equ break_virtual, 0x106f9c
|
||||
|
||||
|
||||
Reference in New Issue
Block a user