diff --git a/configure.py b/configure.py index 4e20557..faac57f 100755 --- a/configure.py +++ b/configure.py @@ -96,8 +96,8 @@ def build_parse_options(): parser.error("options -f and -r are mutually exclusive") exit() - # -f implies -c - if options.cml_file: + # -f or -r or -n or -a implies -c + if options.cml_file or options.ncont or options.arch or options.reset_config: options.config = 1 return options, args diff --git a/loader/SConscript b/loader/SConscript index 1ad6ec5..44d6576 100644 --- a/loader/SConscript +++ b/loader/SConscript @@ -19,7 +19,7 @@ from scripts.loader.generate_loader_asm import * from config.lib import * # Function to determine the LMA for 'final.elf' -def find_lma_codezero(target, source, env): +def find_loader_load_address(target, source, env): # Start/end addresses of various physical memory regions defined array_start = [] array_end = [] @@ -52,7 +52,7 @@ def find_lma_codezero(target, source, env): # Create target file with open(source[1].path, 'r') as input: buffer = input.read() - print 'LMA FOR FINAL.ELF IS : ' + str(conv_hex(loadaddr)) + #print 'Load address for final.elf: ' + str(conv_hex(loadaddr)) with open(target[0].path, 'w+') as output: output.write(buffer % str(conv_hex(loadaddr))) @@ -67,7 +67,7 @@ loader_image_S = Command(join(PROJROOT, 'loader/images.S'), [join(BUILDDIR, 'ker gen_loader_images_S) lma_lds = Command(join(BUILDDIR, 'loader/linker.lds'), \ [join(BUILDDIR, 'kernel.elf'), \ - join(PROJROOT, 'loader/linker.lds.in')], find_lma_codezero) + join(PROJROOT, 'loader/linker.lds.in')], find_loader_load_address) src = Glob('*.[cS]') objs = env.Object(src) diff --git a/loader/linker.lds.in b/loader/linker.lds.in index a07e50e..49d21f2 100644 --- a/loader/linker.lds.in +++ b/loader/linker.lds.in @@ -4,12 +4,12 @@ * Copyright (C) 2008-2009 B Labs Ltd. */ -lma_codezero = %s; +load_address = %s; ENTRY(_start) SECTIONS { - . = lma_codezero; + . = load_address; .text : { *(.text.head) *(.text) } .rodata : { *(.rodata) } .rodata1 : { *(.rodata1) } diff --git a/scripts/kernel/generate_kernel_cinfo.py b/scripts/kernel/generate_kernel_cinfo.py index 231ec43..bb0df3b 100755 --- a/scripts/kernel/generate_kernel_cinfo.py +++ b/scripts/kernel/generate_kernel_cinfo.py @@ -60,7 +60,7 @@ cinfo_end = \ pager_start = \ ''' \t\t[0] = { -\t\t\t.start_address = (CONFIG_CONT%d_INIT_PROG_COUNTER), +\t\t\t.start_address = (CONFIG_CONT%d_START_PC_ADDR), \t\t\t.pager_lma = __pfn(CONFIG_CONT%d_PAGER_LMA), \t\t\t.pager_vma = __pfn(CONFIG_CONT%d_PAGER_VMA), \t\t\t.pager_size = __pfn(CONFIG_CONT%d_PAGER_SIZE), @@ -171,14 +171,14 @@ pager_ifdefs_todotext = \ pager_ifdefs = \ ''' #if defined(CONFIG_CONT%(cn)d_TYPE_LINUX) - #define CONFIG_CONT%(cn)d_INIT_PROG_COUNTER \ - (CONFIG_CONT%(cn)d_LINUX_ZRELADDR - CONFIG_CONT%(cn)d_LINUX_PHYS_OFFSET + \ + #define CONFIG_CONT%(cn)d_START_PC_ADDR \\ + (CONFIG_CONT%(cn)d_LINUX_ZRELADDR - CONFIG_CONT%(cn)d_LINUX_PHYS_OFFSET + \\ CONFIG_CONT%(cn)d_LINUX_PAGE_OFFSET) #define CONFIG_CONT%(cn)d_PAGER_LMA (CONFIG_CONT%(cn)d_LINUX_PHYS_OFFSET) #define CONFIG_CONT%(cn)d_PAGER_VMA (CONFIG_CONT%(cn)d_LINUX_PAGE_OFFSET) #define CONFIG_CONT%(cn)d_PAGER_SIZE CONFIG_CONT%(cn)d_LINUX_MAPSIZE #else - #define CONFIG_CONT%(cn)d_INIT_PROG_COUNTER (CONFIG_CONT%(cn)d_PAGER_VMA) + #define CONFIG_CONT%(cn)d_START_PC_ADDR (CONFIG_CONT%(cn)d_PAGER_VMA) #endif ''' def generate_pager_memory_ifdefs(containers):