From e2682df71cee33602b6829d735fbad0d5f5dbe5e Mon Sep 17 00:00:00 2001 From: Amit Mahajan Date: Fri, 20 Nov 2009 10:35:36 +0530 Subject: [PATCH 1/2] Bahadir's comments added --- config/cml/container_ruleset.template | 22 +++++++++++----------- config/configuration.py | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/cml/container_ruleset.template b/config/cml/container_ruleset.template index 6ade069..1f109ee 100644 --- a/config/cml/container_ruleset.template +++ b/config/cml/container_ruleset.template @@ -1,6 +1,6 @@ symbols CONT%(cn)d_TYPE_LINUX 'Linux Container' -CONT%(cn)d_TYPE_BAREMETAL 'Barebones Container' +CONT%(cn)d_TYPE_BAREMETAL 'Baremetal Container' CONT%(cn)d_TYPE_POSIX 'POSIX Container' CONT%(cn)d_OPT_NAME 'Container Name' @@ -156,18 +156,18 @@ cont%(cn)d_linux_pager_params 'Container %(cn)d Linux Pager Parameters' cont%(cn)d_default_pager_params 'Container %(cn)d Default Pager Parameters' cont%(cn)d_posix_pager_params 'Container %(cn)d POSIX Pager Parameters' -cont%(cn)d_baremetal_params 'Baremetal Applications List' -CONT%(cn)d_BAREMETAL_APP0 'Empty Application' -CONT%(cn)d_BAREMETAL_APP1 'Hello World' -CONT%(cn)d_BAREMETAL_APP2 'Thread Library Demo' -CONT%(cn)d_BAREMETAL_APP3 'Test Application' +cont%(cn)d_baremetal_params 'Baremetal Project' +CONT%(cn)d_BAREMETAL_PROJ0 'Empty Project' +CONT%(cn)d_BAREMETAL_PROJ1 'Hello World' +CONT%(cn)d_BAREMETAL_PROJ2 'Thread Library Demo' +CONT%(cn)d_BAREMETAL_PROJ3 'Test Project' choices cont%(cn)d_baremetal_params - CONT%(cn)d_BAREMETAL_APP0 - CONT%(cn)d_BAREMETAL_APP1 - CONT%(cn)d_BAREMETAL_APP2 - CONT%(cn)d_BAREMETAL_APP3 - default CONT%(cn)d_BAREMETAL_APP0 + CONT%(cn)d_BAREMETAL_PROJ0 + CONT%(cn)d_BAREMETAL_PROJ1 + CONT%(cn)d_BAREMETAL_PROJ2 + CONT%(cn)d_BAREMETAL_PROJ3 + default CONT%(cn)d_BAREMETAL_PROJ0 menu cont%(cn)d_default_pager_params CONT%(cn)d_PAGER_LMA@ diff --git a/config/configuration.py b/config/configuration.py index f8c2fdc..66dd477 100644 --- a/config/configuration.py +++ b/config/configuration.py @@ -173,7 +173,7 @@ class configuration: dirname = val[1:-1].lower() self.containers[id].dirname = dirname self.containers[id].name = dirname - elif param[:len("BAREMETAL_APP")] == "BAREMETAL_APP": + elif param[:len("BAREMETAL_PROJ")] == "BAREMETAL_PROJ": param1 = param.split("_", 1) self.containers[id].baremetal_id = param1[1][-1:] elif param[:len("CAP_")] == "CAP_": From aa0e5cb2552b8bd0b780b27005523bb0d11baceb Mon Sep 17 00:00:00 2001 From: Amit Mahajan Date: Fri, 20 Nov 2009 12:53:39 +0530 Subject: [PATCH 2/2] Adding missing config flags for toolchain, libdev, cputype in baremetal examples. --- conts/baremetal/baremetal0/SConstruct | 17 ++++++++-------- conts/baremetal/baremetal1/SConstruct | 11 ++++++----- conts/baremetal/baremetal2/SConstruct | 28 ++++++++++++++++----------- conts/baremetal/baremetal3/SConstruct | 10 ++++++---- 4 files changed, 38 insertions(+), 28 deletions(-) diff --git a/conts/baremetal/baremetal0/SConstruct b/conts/baremetal/baremetal0/SConstruct index d546ae1..25a11c7 100644 --- a/conts/baremetal/baremetal0/SConstruct +++ b/conts/baremetal/baremetal0/SConstruct @@ -14,10 +14,10 @@ sys.path.append(PROJRELROOT) from config.projpaths import * from config.configuration import * - config = configuration_retrieve() - +platform = config.platform arch = config.arch +gcc_cpu_flag = config.gcc_cpu_flag LIBL4_RELDIR = 'conts/libl4' KERNEL_INCLUDE = join(PROJROOT, 'include') @@ -36,13 +36,14 @@ LIBDEV_RELDIR = 'conts/libdev' LIBDEV_DIR = join(PROJROOT, LIBDEV_RELDIR) LIBDEV_LIBPATH = join(join(BUILDDIR, LIBDEV_RELDIR), 'sys-userspace') LIBDEV_INCLUDE = [join(LIBDEV_DIR, 'uart/include')] +LIBDEV_CCFLAGS = '-DPLATFORM_' + platform.upper() -env = Environment(CC = 'arm-none-linux-gnueabi-gcc', - # We don't use -nostdinc because sometimes we need standard headers, - # such as stdarg.h e.g. for variable args, as in printk(). - CCFLAGS = ['-g', '-mcpu=arm926ej-s', '-nostdlib', '-ffreestanding', \ - '-std=gnu99', '-Wall', '-Werror'], \ - LINKFLAGS = ['-nostdlib', '-T' + "include/linker.lds", "-u_start"],\ +env = Environment(CC = config.user_toolchain + 'gcc', + # We don't use -nostdinc because sometimes we need standard headers, + # such as stdarg.h e.g. for variable args, as in printk(). + CCFLAGS = ['-g', '-nostdlib', '-ffreestanding', '-std=gnu99', '-Wall', \ + '-Werror', ('-mcpu=' + gcc_cpu_flag), LIBDEV_CCFLAGS], + LINKFLAGS = ['-nostdlib', '-T' + "include/linker.lds", "-u_start"], ASFLAGS = ['-D__ASSEMBLY__'], \ PROGSUFFIX = '.elf', # The suffix to use for final executable\ ENV = {'PATH' : os.environ['PATH']}, # Inherit shell path\ diff --git a/conts/baremetal/baremetal1/SConstruct b/conts/baremetal/baremetal1/SConstruct index 159ed3a..d2ad646 100644 --- a/conts/baremetal/baremetal1/SConstruct +++ b/conts/baremetal/baremetal1/SConstruct @@ -14,10 +14,10 @@ sys.path.append(PROJRELROOT) from config.projpaths import * from config.configuration import * - config = configuration_retrieve() - +platform = config.platform arch = config.arch +gcc_cpu_flag = config.gcc_cpu_flag LIBL4_RELDIR = 'conts/libl4' KERNEL_INCLUDE = join(PROJROOT, 'include') @@ -36,17 +36,18 @@ LIBDEV_RELDIR = 'conts/libdev' LIBDEV_DIR = join(PROJROOT, LIBDEV_RELDIR) LIBDEV_LIBPATH = join(join(BUILDDIR, LIBDEV_RELDIR), 'sys-userspace') LIBDEV_INCLUDE = [join(LIBDEV_DIR, 'uart/include')] +LIBDEV_CCFLAGS = '-DPLATFORM_' + platform.upper() LIBMEM_RELDIR = 'conts/libmem' LIBMEM_DIR = join(PROJROOT, LIBMEM_RELDIR) LIBMEM_LIBPATH = join(BUILDDIR, LIBMEM_RELDIR) LIBMEM_INCLUDE = LIBMEM_DIR -env = Environment(CC = 'arm-none-linux-gnueabi-gcc', +env = Environment(CC = config.user_toolchain + 'gcc', # We don't use -nostdinc because sometimes we need standard headers, # such as stdarg.h e.g. for variable args, as in printk(). - CCFLAGS = ['-g', '-mcpu=arm926ej-s', '-nostdlib', '-ffreestanding', \ - '-std=gnu99', '-Wall', '-Werror'], \ + CCFLAGS = ['-g', '-nostdlib', '-ffreestanding', '-std=gnu99', '-Wall', \ + '-Werror', ('-mcpu=' + gcc_cpu_flag), LIBDEV_CCFLAGS], LINKFLAGS = ['-nostdlib', '-T' + "include/linker.lds", "-u_start"],\ ASFLAGS = ['-D__ASSEMBLY__'], \ PROGSUFFIX = '.elf', # The suffix to use for final executable diff --git a/conts/baremetal/baremetal2/SConstruct b/conts/baremetal/baremetal2/SConstruct index 48674b4..7e5351c 100644 --- a/conts/baremetal/baremetal2/SConstruct +++ b/conts/baremetal/baremetal2/SConstruct @@ -14,10 +14,10 @@ sys.path.append(PROJRELROOT) from config.projpaths import * from config.configuration import * - config = configuration_retrieve() - +platform = config.platform arch = config.arch +gcc_cpu_flag = config.gcc_cpu_flag LIBL4_RELDIR = 'conts/libl4' KERNEL_INCLUDE = join(PROJROOT, 'include') @@ -32,6 +32,12 @@ LIBC_LIBPATH = join(BUILDDIR, LIBC_RELDIR) LIBC_INCLUDE = [join(LIBC_DIR, 'include'), \ join(LIBC_DIR, 'include/arch' + '/' + arch)] +LIBDEV_RELDIR = 'conts/libdev' +LIBDEV_DIR = join(PROJROOT, LIBDEV_RELDIR) +LIBDEV_LIBPATH = join(join(BUILDDIR, LIBDEV_RELDIR), 'sys-userspace') +LIBDEV_INCLUDE = [join(LIBDEV_DIR, 'uart/include')] +LIBDEV_CCFLAGS = '-DPLATFORM_' + platform.upper() + LIBL4THREAD_RELDIR = 'conts/libl4thread' LIBL4THREAD_DIR = join(PROJROOT, LIBL4THREAD_RELDIR) LIBL4THREAD_LIBPATH = join(BUILDDIR, LIBL4THREAD_RELDIR) @@ -42,21 +48,21 @@ LIBMEM_DIR = join(PROJROOT, LIBMEM_RELDIR) LIBMEM_LIBPATH = join(BUILDDIR, LIBMEM_RELDIR) LIBMEM_INCLUDE = LIBMEM_DIR -env = Environment(CC = 'arm-none-linux-gnueabi-gcc', +env = Environment(CC = config.user_toolchain + 'gcc', # We don't use -nostdinc because sometimes we need standard headers, # such as stdarg.h e.g. for variable args, as in printk(). - CCFLAGS = ['-g', '-mcpu=arm926ej-s', '-nostdlib', '-ffreestanding', \ - '-std=gnu99', '-Wall', '-Werror'], + CCFLAGS = ['-g', '-nostdlib', '-ffreestanding', '-std=gnu99', '-Wall', \ + '-Werror', ('-mcpu=' + gcc_cpu_flag), LIBDEV_CCFLAGS], LINKFLAGS = ['-nostdlib', '-T' + "include/linker.lds", "-u_start"], ASFLAGS = ['-D__ASSEMBLY__'], PROGSUFFIX = '.elf', # The suffix to use for final executable ENV = {'PATH' : os.environ['PATH']}, # Inherit shell path - LIBS = ['libl4thread', 'libl4', 'libmalloc', 'c-userspace', \ - 'gcc', 'c-userspace'], # libgcc.a - This is required for division routines. - CPPPATH = ["#include", KERNEL_INCLUDE, LIBL4_INCLUDE, LIBC_INCLUDE, \ - LIBL4THREAD_INCLUDE], - LIBPATH = [LIBL4_LIBPATH, LIBC_LIBPATH, LIBL4THREAD_LIBPATH, \ - LIBMEM_LIBPATH], + LIBS = ['libl4thread', 'libl4', 'libmalloc', 'libdev-userspace', \ + 'c-userspace', 'gcc', 'c-userspace'], # libgcc.a - This is required for division routines. + CPPPATH = ["#include", KERNEL_INCLUDE, LIBL4_INCLUDE, LIBDEV_INCLUDE, \ + LIBC_INCLUDE, LIBL4THREAD_INCLUDE], + LIBPATH = [LIBL4_LIBPATH, LIBDEV_LIBPATH, LIBC_LIBPATH, LIBL4THREAD_LIBPATH, \ + LIBMEM_LIBPATH], CPPFLAGS = '-include l4/config.h -include l4/macros.h -include l4/types.h') src = Glob('*.[cS]') diff --git a/conts/baremetal/baremetal3/SConstruct b/conts/baremetal/baremetal3/SConstruct index b695949..b103d6a 100644 --- a/conts/baremetal/baremetal3/SConstruct +++ b/conts/baremetal/baremetal3/SConstruct @@ -17,7 +17,8 @@ from config.lib import * config = configuration_retrieve() arch = config.arch - +platform = config.platform +gcc_cpu_flag = config.gcc_cpu_flag LIBL4_RELDIR = 'conts/libl4' KERNEL_INCLUDE = join(PROJROOT, 'include') @@ -36,12 +37,13 @@ LIBDEV_RELDIR = 'conts/libdev' LIBDEV_DIR = join(PROJROOT, LIBDEV_RELDIR) LIBDEV_LIBPATH = join(join(BUILDDIR, LIBDEV_RELDIR), 'sys-userspace') LIBDEV_INCLUDE = [join(LIBDEV_DIR, 'uart/include')] +LIBDEV_CCFLAGS = '-DPLATFORM_' + platform.upper() -env = Environment(CC = 'arm-none-linux-gnueabi-gcc', +env = Environment(CC = config.user_toolchain + 'gcc', # We don't use -nostdinc because sometimes we need standard headers, # such as stdarg.h e.g. for variable args, as in printk(). - CCFLAGS = ['-g', '-mcpu=arm926ej-s', '-nostdlib', '-ffreestanding', \ - '-std=gnu99', '-Wall', '-Werror'], \ + CCFLAGS = ['-g', '-nostdlib', '-ffreestanding', '-std=gnu99', '-Wall', \ + '-Werror', ('-mcpu=' + gcc_cpu_flag), LIBDEV_CCFLAGS], LINKFLAGS = ['-nostdlib', '-T' + "include/linker.lds", "-u_start"],\ ASFLAGS = ['-D__ASSEMBLY__'], \ PROGSUFFIX = '.elf', # The suffix to use for final executable\