/kernel/trunk/generic/include/config.h |
---|
44,6 → 44,9 |
size_t memory_size; |
size_t kernel_size; |
__address init_addr; |
size_t init_size; |
count_t cpu_count; |
volatile count_t cpu_active; |
}; |
/kernel/trunk/generic/src/main/main.c |
---|
142,6 → 142,8 |
config.cpu_active = 1; |
config.base = hardcoded_load_address; |
config.memory_size = get_memory_size(); |
config.init_addr = init_addr; |
config.init_size = init_size; |
heap_size = CONFIG_HEAP_SIZE + (config.memory_size/FRAME_SIZE)*sizeof(frame_t); |
kernel_size = ALIGN_UP(hardcoded_ktext_size + hardcoded_kdata_size + heap_size, PAGE_SIZE); |
207,6 → 209,9 |
task_init(); |
thread_init(); |
if (config.init_size > 0) |
printf("config.init_addr=%X, config.init_size=%d\n", config.init_addr, config.init_size); |
/* |
* Create kernel vm mapping. |
*/ |
/kernel/trunk/arch/ia32/boot/boot.ld |
---|
File deleted |
/kernel/trunk/arch/ia32/boot/boot.S |
---|
File deleted |
/kernel/trunk/arch/ia32/boot/grub.img.gz |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/kernel/trunk/arch/ia32/boot/Makefile |
---|
1,17 → 1,8 |
.PHONY: build clean |
build: boot.bin |
dd if=boot.bin of=../../../image.bin bs=512 conv=sync |
-cat ../../../kernel.bin >> ../../../image.bin |
dd if=/dev/zero of=../../../image.bin bs=1 seek=1474559 count=1 |
build: grub.img.gz |
gunzip -c grub.img.gz > ../../../image.bin |
e2cp ../../../kernel.bin ../../../image.bin:/boot/kernel.bin |
boot.bin: boot.o |
$(LD) -T boot.ld -entry _start_0x7c00 --oformat binary boot.o -o $@ |
boot.o: boot.S |
$(CC) -E -DKERNEL_SIZE=$(KERNEL_SIZE) boot.S > boot.s |
$(AS) boot.s -o $@ |
rm boot.s |
clean: |
-rm -f boot.o boot.bin ../../../image.bin |
-rm -f ../../../image.bin |
/kernel/trunk/arch/ia32/src/boot/boot.S |
---|
164,10 → 164,18 |
jmp mods_invalid |
mods_valid: |
movl 20(%ebx), %ecx # mbi->mods_count |
cmpl $0, %ecx |
je mods_invalid |
movl 24(%ebx), %esi # mbi->mods_addr |
movl 0(%esi), %edx # mods->mod_start |
movl 4(%esi), %ecx # mods->mod_end |
subl %edx, %ecx |
mods_invalid: |
movl %ecx, init_addr |
movl %edx, init_size |
movl %ecx, init_size |
movl %edx, init_addr |
bt $6, %eax # mbi->flags[6] (mmap_length, mmap_addr valid) |
jc mmap_valid |