diff --git a/config/cml/container_ruleset.template b/config/cml/container_ruleset.template index 20688e3..4c177da 100644 --- a/config/cml/container_ruleset.template +++ b/config/cml/container_ruleset.template @@ -29,8 +29,11 @@ CONT%(cn)d_VIRT4_END 'Container %(cn)d Virtual Region 4 End Address' CONT%(cn)d_VIRT5_START 'Container %(cn)d Virtual Region 5 Start Address' CONT%(cn)d_VIRT5_END 'Container %(cn)d Virtual Region 5 End Address' -CONT%(cn)d_PAGER_LMA 'Container %(cn)d Pager LMA' -CONT%(cn)d_PAGER_VMA 'Container %(cn)d Pager VMA' +# FIXME: We dont need to pass PAGER_LMA and PAGER_VMA to config.h now +# as we are using them just to derive other symbols, in this file only +CONT%(cn)d_PAGER_LMA 'Container %(cn)d Pager LMA' +CONT%(cn)d_PAGER_VMA 'Container %(cn)d Pager VMA' + CONT%(cn)d_PAGER_SHM_START 'Container %(cn)d Shared Mappings Region Start' CONT%(cn)d_PAGER_SHM_END 'Container %(cn)d Shared Mappings Region End' CONT%(cn)d_PAGER_TASK_START 'Container %(cn)d Task Address Space Region Start' @@ -132,6 +135,11 @@ when CONT%(cn)d_TYPE_BAREMETAL==y suppress cont%(cn)d_linux_pager_params cont%(c when CONT%(cn)d_TYPE_POSIX==y suppress cont%(cn)d_linux_pager_params unless CONT%(cn)d_TYPE_BAREMETAL==y suppress cont%(cn)d_baremetal_params +# derive symbols, for cinfo.c, depending on the type of container selected +derive CONT%(cn)d_PAGER_LOAD_ADDR from (CONT%(cn)d_TYPE_LINUX==y) ? CONT%(cn)d_LINUX_PHYS_OFFSET : CONT%(cn)d_PAGER_LMA +derive CONT%(cn)d_PAGER_VIRT_ADDR from (CONT%(cn)d_TYPE_LINUX==y) ? CONT%(cn)d_LINUX_PAGE_OFFSET : CONT%(cn)d_PAGER_VMA +derive CONT%(cn)d_START_PC_ADDR from (CONT%(cn)d_TYPE_LINUX != y) ? CONT%(cn)d_PAGER_VMA : (CONT%(cn)d_LINUX_PAGE_OFFSET + CONT%(cn)d_LINUX_ZRELADDR - CONT%(cn)d_LINUX_PHYS_OFFSET) + symbols cont%(cn)d_menu 'Container %(cn)d Parameters' cont%(cn)d_physmem_list 'Container %(cn)d Physical Memory Regions (Capabilities)' diff --git a/scripts/kernel/generate_kernel_cinfo.py b/scripts/kernel/generate_kernel_cinfo.py index aaced87..fb8429e 100755 --- a/scripts/kernel/generate_kernel_cinfo.py +++ b/scripts/kernel/generate_kernel_cinfo.py @@ -62,8 +62,8 @@ pager_start = \ ''' \t\t[0] = { \t\t\t.start_address = (CONFIG_CONT%(cn)d_START_PC_ADDR), -\t\t\t.pager_lma = __pfn(CONFIG_CONT%(cn)d_PAGER_LMA), -\t\t\t.pager_vma = __pfn(CONFIG_CONT%(cn)d_PAGER_VMA), +\t\t\t.pager_lma = __pfn(CONFIG_CONT%(cn)d_PAGER_LOAD_ADDR), +\t\t\t.pager_vma = __pfn(CONFIG_CONT%(cn)d_PAGER_VIRT_ADDR), \t\t\t.pager_size = __pfn(page_align_up(CONT%(cn)d_PAGER_MAPSIZE)), \t\t\t.ncaps = %(caps)d, \t\t\t.caps = { @@ -122,16 +122,10 @@ pager_mapsize = \ pager_ifdefs = \ ''' #if defined(CONFIG_CONT%(cn)d_TYPE_LINUX) - #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 CONT%(cn)d_PAGER_MAPSIZE \\ (CONT%(cn)d_PAGER_SIZE + CONFIG_CONT%(cn)d_LINUX_ZRELADDR - \\ CONFIG_CONT%(cn)d_LINUX_PHYS_OFFSET) #else - #define CONFIG_CONT%(cn)d_START_PC_ADDR (CONFIG_CONT%(cn)d_PAGER_VMA) #define CONT%(cn)d_PAGER_MAPSIZE (CONT%(cn)d_PAGER_SIZE) #endif '''