From a23debf5e322b8ada057ef7bcc85283f89f55e05 Mon Sep 17 00:00:00 2001 From: James Walmsley Date: Sun, 2 Dec 2018 00:21:13 +0000 Subject: [PATCH 1/7] [MACH] zynq - Move config property into Kconfig. --- arch/arm/mach/zynq/Kconfig | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/mach/zynq/Kconfig b/arch/arm/mach/zynq/Kconfig index 0e1ad0c9..956a3b61 100644 --- a/arch/arm/mach/zynq/Kconfig +++ b/arch/arm/mach/zynq/Kconfig @@ -28,6 +28,10 @@ config CPU_CORES int default 2 +config ARCH_ARM_GIC_TOTAL_IRQS + int + default 95 + source arch/arm/mach/zynq/boards/Kconfig comment "Zynq Platform Options" From 492a7848f643d884531dad38251f134a4cc1ecca Mon Sep 17 00:00:00 2001 From: James Walmsley Date: Sun, 2 Dec 2018 00:22:46 +0000 Subject: [PATCH 2/7] [MESON] Added initial build files to generate a Zynq kernel. --- arch/arm/meson.build | 12 ++++++++++++ kernel/FreeRTOS/meson.build | 14 ++++++++++++++ kernel/meson.build | 3 +++ lib/meson.build | 3 +++ meson.build | 26 ++++++++++++++++++++++++++ meson/cross-files/arm.cross | 15 +++++++++++++++ os/meson.build | 14 ++++++++++++++ os/src/devman/meson.build | 4 ++++ os/src/fs/meson.build | 4 ++++ os/src/interfaces/meson.build | 4 ++++ os/src/interrupts/meson.build | 3 +++ os/src/lib/meson.build | 7 +++++++ os/src/mm/meson.build | 4 ++++ os/src/module/meson.build | 3 +++ os/src/process/meson.build | 5 +++++ os/src/syslog/meson.build | 3 +++ os/src/timers/meson.build | 3 +++ 17 files changed, 127 insertions(+) create mode 100644 arch/arm/meson.build create mode 100644 kernel/FreeRTOS/meson.build create mode 100644 kernel/meson.build create mode 100644 lib/meson.build create mode 100644 meson.build create mode 100644 meson/cross-files/arm.cross create mode 100644 os/meson.build create mode 100644 os/src/devman/meson.build create mode 100644 os/src/fs/meson.build create mode 100644 os/src/interfaces/meson.build create mode 100644 os/src/interrupts/meson.build create mode 100644 os/src/lib/meson.build create mode 100644 os/src/mm/meson.build create mode 100644 os/src/module/meson.build create mode 100644 os/src/process/meson.build create mode 100644 os/src/syslog/meson.build create mode 100644 os/src/timers/meson.build diff --git a/arch/arm/meson.build b/arch/arm/meson.build new file mode 100644 index 00000000..15641629 --- /dev/null +++ b/arch/arm/meson.build @@ -0,0 +1,12 @@ +vm_includes += 'arch/arm/include' +vm_includes += 'arch/arm/include/arch/common' + + +vm_sources += 'arch/arm/boot/head.S' +vm_sources += 'arch/arm/common/arm11cpu.c' +vm_sources += 'arch/arm/common/arm-cache.c' +vm_sources += 'arch/arm/common/crtinit.s' +vm_sources += 'arch/arm/common/cpuinit.S' +vm_sources += 'arch/arm/common/gic.c' +vm_sources += 'arch/arm/common/freertos-ca9.c' +vm_sources += 'arch/arm/common/freertos-ca9-asm.S' diff --git a/kernel/FreeRTOS/meson.build b/kernel/FreeRTOS/meson.build new file mode 100644 index 00000000..7f8a9745 --- /dev/null +++ b/kernel/FreeRTOS/meson.build @@ -0,0 +1,14 @@ +# +# FreeRTOS build module. +# + +# +# Adding to the default source list. +# +vm_includes += 'kernel/FreeRTOS/Source/include' +vm_sources += 'kernel/FreeRTOS/Source/tasks.c' +vm_sources += 'kernel/FreeRTOS/Source/list.c' +vm_sources += 'kernel/FreeRTOS/Source/queue.c' +vm_sources += 'kernel/FreeRTOS/Source/event_groups.c' + + diff --git a/kernel/meson.build b/kernel/meson.build new file mode 100644 index 00000000..e4ae93b7 --- /dev/null +++ b/kernel/meson.build @@ -0,0 +1,3 @@ +subdir('FreeRTOS') + +vm_sources += 'kernel/bt_freertos_if.c' \ No newline at end of file diff --git a/lib/meson.build b/lib/meson.build new file mode 100644 index 00000000..51a5acd0 --- /dev/null +++ b/lib/meson.build @@ -0,0 +1,3 @@ +vm_includes += 'lib/include' + +vm_sources += 'lib/src/handles/bt_handles.c' \ No newline at end of file diff --git a/meson.build b/meson.build new file mode 100644 index 00000000..665a512b --- /dev/null +++ b/meson.build @@ -0,0 +1,26 @@ +project('bitthunder', 'c', + version : '1.0', + default_options : ['warning_level=3']) + + +vm_sources = [] +vm_includes = [] + +subdir('lib') +subdir('os') +subdir('arch/arm') +subdir('kernel') + +inc = include_directories(vm_includes) + + +#@0@/@1@'.format(meson.current_source_dir(), mapfile) +linker_script = '@0@/build/arch/arm/bitthunder.lds'.format(meson.current_source_dir()) + + +link_args = ['-T', linker_script, '-nostartfiles'] + meson.get_cross_property('link_args') + +executable('vmthunder', vm_sources, include_directories: inc, link_args: link_args) + + + diff --git a/meson/cross-files/arm.cross b/meson/cross-files/arm.cross new file mode 100644 index 00000000..f7984eb7 --- /dev/null +++ b/meson/cross-files/arm.cross @@ -0,0 +1,15 @@ +[binaries] +c = 'arm-none-eabi-gcc' +cpp = 'arm-none-eabi-g++' +ar = 'arm-none-eabi-ar' +strip = 'arm-none-eabi-strip' + +[host_machine] +system = 'none' +cpu_family = 'arm' +cpu = 'cortex-a9' +endian = 'little' + +[properties] +c_args = ['-march=armv7-a', '-mfloat-abi=soft', '-mfpu=neon'] +link_args = ['-march=armv7-a', '-mfloat-abi=soft', '-mfpu=neon'] \ No newline at end of file diff --git a/os/meson.build b/os/meson.build new file mode 100644 index 00000000..b50271d4 --- /dev/null +++ b/os/meson.build @@ -0,0 +1,14 @@ +vm_includes += 'os/include' + +vm_sources += 'os/src/bt_main.c' + +subdir('src/devman') +subdir('src/fs') +subdir('src/interfaces') +subdir('src/interrupts') +subdir('src/lib') +subdir('src/module') +subdir('src/mm') +subdir('src/process') +subdir('src/syslog') +subdir('src/timers') \ No newline at end of file diff --git a/os/src/devman/meson.build b/os/src/devman/meson.build new file mode 100644 index 00000000..bde4fe8a --- /dev/null +++ b/os/src/devman/meson.build @@ -0,0 +1,4 @@ +pwd = meson.current_source_dir() + '/' + +vm_sources += pwd + 'bt_devman.c' +vm_sources += pwd + 'bt_resources.c' \ No newline at end of file diff --git a/os/src/fs/meson.build b/os/src/fs/meson.build new file mode 100644 index 00000000..2f8d285e --- /dev/null +++ b/os/src/fs/meson.build @@ -0,0 +1,4 @@ +pwd = meson.current_source_dir() + '/' + + +vm_sources += pwd + 'bt_file.c' diff --git a/os/src/interfaces/meson.build b/os/src/interfaces/meson.build new file mode 100644 index 00000000..1d9b2cb0 --- /dev/null +++ b/os/src/interfaces/meson.build @@ -0,0 +1,4 @@ +pwd = meson.current_source_dir() + '/' + +vm_sources += pwd + 'bt_if_power.c' +vm_sources += pwd + 'bt_dev_if_uart.c' \ No newline at end of file diff --git a/os/src/interrupts/meson.build b/os/src/interrupts/meson.build new file mode 100644 index 00000000..82b2a191 --- /dev/null +++ b/os/src/interrupts/meson.build @@ -0,0 +1,3 @@ +pwd = meson.current_source_dir() + '/' + +vm_sources += pwd + 'bt_interrupts.c' \ No newline at end of file diff --git a/os/src/lib/meson.build b/os/src/lib/meson.build new file mode 100644 index 00000000..53249170 --- /dev/null +++ b/os/src/lib/meson.build @@ -0,0 +1,7 @@ +pwd = meson.current_source_dir() + '/' + + +vm_sources += pwd + 'ctype.c' +vm_sources += pwd + 'string.c' +vm_sources += pwd + 'printf.c' +vm_sources += pwd + 'putc.c' diff --git a/os/src/mm/meson.build b/os/src/mm/meson.build new file mode 100644 index 00000000..ca117699 --- /dev/null +++ b/os/src/mm/meson.build @@ -0,0 +1,4 @@ +vm_sources += 'os/src/mm/bt_mm.c' +vm_sources += 'os/src/mm/bt_heap.c' + +#vm_sources += 'os/src/mm/bt_vm.c' \ No newline at end of file diff --git a/os/src/module/meson.build b/os/src/module/meson.build new file mode 100644 index 00000000..3bef093e --- /dev/null +++ b/os/src/module/meson.build @@ -0,0 +1,3 @@ +pwd = meson.current_source_dir() + '/' + +vm_sources += pwd + 'bt_module_init.c' \ No newline at end of file diff --git a/os/src/process/meson.build b/os/src/process/meson.build new file mode 100644 index 00000000..d0e632db --- /dev/null +++ b/os/src/process/meson.build @@ -0,0 +1,5 @@ +pwd = meson.current_source_dir() + '/' + + +vm_sources += pwd + 'bt_threads.c' +vm_sources += pwd + 'bt_process.c' diff --git a/os/src/syslog/meson.build b/os/src/syslog/meson.build new file mode 100644 index 00000000..9ef6b63a --- /dev/null +++ b/os/src/syslog/meson.build @@ -0,0 +1,3 @@ +pwd = meson.current_source_dir() + '/' + +vm_sources += pwd + 'bt_printk.c' \ No newline at end of file diff --git a/os/src/timers/meson.build b/os/src/timers/meson.build new file mode 100644 index 00000000..5fb40d24 --- /dev/null +++ b/os/src/timers/meson.build @@ -0,0 +1,3 @@ +pwd = meson.current_source_dir() + '/' + +vm_sources += pwd + 'bt_timers.c' \ No newline at end of file From ddddb28f6d24b6ed47d3dd0b7b06a30cdc97973e Mon Sep 17 00:00:00 2001 From: James Walmsley Date: Sun, 2 Dec 2018 02:00:54 +0000 Subject: [PATCH 3/7] [MESON] Added meson as a submodule. --- .gitmodules | 3 +++ meson/meson | 1 + 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 meson/meson diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..59462282 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "meson/meson"] + path = meson/meson + url = https://github.com/mesonbuild/meson.git diff --git a/meson/meson b/meson/meson new file mode 160000 index 00000000..d272f23d --- /dev/null +++ b/meson/meson @@ -0,0 +1 @@ +Subproject commit d272f23dba57fa6d4f0bcd56ebb77e3889a3e81c From 377007c00174daeddd2bbc72de399d0080756b0d Mon Sep 17 00:00:00 2001 From: James Walmsley Date: Sun, 2 Dec 2018 02:03:00 +0000 Subject: [PATCH 4/7] [MESON] Updated to build more zynq and demo conditional compile. --- Makefile | 4 ++++ arch/arm/mach/meson.build | 1 + arch/arm/mach/zynq/meson.build | 15 +++++++++++++++ arch/arm/meson.build | 3 +++ meson.build | 7 ++++++- os/meson.build | 1 + os/src/helpers/meson.build | 3 +++ 7 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 arch/arm/mach/meson.build create mode 100644 arch/arm/mach/zynq/meson.build create mode 100644 os/src/helpers/meson.build diff --git a/Makefile b/Makefile index 6dc66828..f377c748 100644 --- a/Makefile +++ b/Makefile @@ -145,4 +145,8 @@ clean_images: | dbuild_splash $(Q)rm -rf $(CONFIG_HEADER_PATH)/$(CONFIG_HEADER_NAME) $(PRM_PIPE) $(Q)rm -rf $(PROJECT_DIR)/linktree +.PHONY: meson +meson: + CC=gcc $(BASE)/meson/meson/meson.py --cross-file $(BASE)/meson/cross-files/arm.cross builddir + $(CONFIG_HEADER_PATH)/$(CONFIG_HEADER_NAME): MODULE_NAME:=$(MODULE_NAME) diff --git a/arch/arm/mach/meson.build b/arch/arm/mach/meson.build new file mode 100644 index 00000000..00ba21c4 --- /dev/null +++ b/arch/arm/mach/meson.build @@ -0,0 +1 @@ +subdir('zynq') \ No newline at end of file diff --git a/arch/arm/mach/zynq/meson.build b/arch/arm/mach/zynq/meson.build new file mode 100644 index 00000000..34ac27b0 --- /dev/null +++ b/arch/arm/mach/zynq/meson.build @@ -0,0 +1,15 @@ +# +# +# + +pwd = meson.current_source_dir() + '/' + +vm_sources += pwd + 'zynq.c' +vm_sources += pwd + 'slcr.c' +vm_sources += pwd + 'headsmp.S' +vm_sources += pwd + 'early_console.c' + + +if bt_config.has('BT_CONFIG_MACH_ZYNQ_DEVCFG=y') == 1 +vm_sources += pwd + 'devcfg.c' +endif diff --git a/arch/arm/meson.build b/arch/arm/meson.build index 15641629..c0cc56df 100644 --- a/arch/arm/meson.build +++ b/arch/arm/meson.build @@ -10,3 +10,6 @@ vm_sources += 'arch/arm/common/cpuinit.S' vm_sources += 'arch/arm/common/gic.c' vm_sources += 'arch/arm/common/freertos-ca9.c' vm_sources += 'arch/arm/common/freertos-ca9-asm.S' + + +subdir('mach') \ No newline at end of file diff --git a/meson.build b/meson.build index 665a512b..2ec2962c 100644 --- a/meson.build +++ b/meson.build @@ -1,10 +1,15 @@ project('bitthunder', 'c', version : '1.0', - default_options : ['warning_level=3']) + default_options : ['warning_level=1']) vm_sources = [] vm_includes = [] +bt_config = configuration_data() +cfg = run_command('cat', '.config').stdout().strip().split('\n') +foreach item : cfg + bt_config.set(item, 1) +endforeach subdir('lib') subdir('os') diff --git a/os/meson.build b/os/meson.build index b50271d4..8ae4fa23 100644 --- a/os/meson.build +++ b/os/meson.build @@ -4,6 +4,7 @@ vm_sources += 'os/src/bt_main.c' subdir('src/devman') subdir('src/fs') +subdir('src/helpers') subdir('src/interfaces') subdir('src/interrupts') subdir('src/lib') diff --git a/os/src/helpers/meson.build b/os/src/helpers/meson.build new file mode 100644 index 00000000..624a8ef9 --- /dev/null +++ b/os/src/helpers/meson.build @@ -0,0 +1,3 @@ +pwd = meson.current_source_dir() + '/' + +vm_sources += pwd + 'bt_clkdiv.c' \ No newline at end of file From e3c5e3e2a3ccce42eacddbd20f5198f5372a058b Mon Sep 17 00:00:00 2001 From: James Walmsley Date: Thu, 6 Dec 2018 21:34:08 +0000 Subject: [PATCH 5/7] [MESON] Added ability for modular build with custom flags. --- arch/arm/mach/zynq/meson.build | 60 +++++++++++++++++++++++--- meson.build | 78 +++++++++++++++++++++++++++++----- 2 files changed, 121 insertions(+), 17 deletions(-) diff --git a/arch/arm/mach/zynq/meson.build b/arch/arm/mach/zynq/meson.build index 34ac27b0..bcb69aa5 100644 --- a/arch/arm/mach/zynq/meson.build +++ b/arch/arm/mach/zynq/meson.build @@ -1,15 +1,61 @@ # +# vmthunder.mach.zynq +# Build recipe for Zynq Machine. # + +# +# Empty sources list. +# +zynq_sources = [] + + +# +# Add all mandatory sources. # +zynq_sources += 'zynq.c' +zynq_sources += 'slcr.c' +zynq_sources += 'headsmp.S' +zynq_sources += 'early_console.c' + +# +# Add all optional sources. +# +if config.has('BT_CONFIG_MACH_ZYNQ_DEVCFG') +zynq_sources += 'devcfg.c' +endif + +if config.has('BT_CONFIG_MACH_ZYNQ_GEM') +zynq_sources += 'gem.c' +endif -pwd = meson.current_source_dir() + '/' +if config.has('BT_CONFIG_MACH_ZYNQ_GPIO') +zynq_sources += 'gpio.c' +endif + +if config.has('BT_CONFIG_MACH_ZYNQ_I2C') +zynq_sources += 'i2c.c' +endif -vm_sources += pwd + 'zynq.c' -vm_sources += pwd + 'slcr.c' -vm_sources += pwd + 'headsmp.S' -vm_sources += pwd + 'early_console.c' +if config.has('BT_CONFIG_MACH_ZYNQ_SDIO') +zynq_sources += 'sdio.c' +endif +if config.has('BT_CONFIG_MACH_ZYNQ_TIMER') +zynq_sources += 'timer.c' +endif -if bt_config.has('BT_CONFIG_MACH_ZYNQ_DEVCFG=y') == 1 -vm_sources += pwd + 'devcfg.c' +if config.has('BT_CONFIG_MACH_ZYNQ_UART') +zynq_sources += 'uart.c' endif + + +# +# Add any extra includes. +# +zynq_includes = [] +zynq_includes += 'arch/arm/mach/zynq' + +# +# Hook this into the build. +# +vm_libs += { 'name': 'vmthunder.mach.zynq', 'path': meson.current_source_dir(), 'sources': zynq_sources, 'includes': zynq_includes } diff --git a/meson.build b/meson.build index 2ec2962c..d21ef104 100644 --- a/meson.build +++ b/meson.build @@ -1,31 +1,89 @@ +# +# Meson Build file for BitThunder +# project('bitthunder', 'c', version : '1.0', - default_options : ['warning_level=1']) + default_options : ['warning_level=3']) -vm_sources = [] -vm_includes = [] -bt_config = configuration_data() +find_program('git') + +# +# Import the Kconfig data. +# +config = configuration_data() cfg = run_command('cat', '.config').stdout().strip().split('\n') foreach item : cfg - bt_config.set(item, 1) + if not item.startswith('#') + splits = item.split('=') + if splits.length() == 2 + config.set(splits[0], splits[1].strip('"')) + endif + endif endforeach +# +# Top-Level Build variables +# +ARCH=config.get('BT_CONFIG_ARCH') +SUBARCH=config.get('BT_CONFIG_SUBARCH') + +# +# Subdirs can simply add to vm_sources and vm_includes. +# Or to isolate components of the build, they can create static libs in vm_libs. +# +vm_sources = [] +vm_includes = [] +vm_libs = [] + +# +# Generate config headers +# + +#bsp_config = custom_target( +# 'bt_bsp_config.h', +# output : 'bt_bsp_config.h', +# input : '.config', +# command : [prog_python, '@INPUT@', '--header', '@OUTPUT@'], +#] + +# +# Include the base-subdirs. +# subdir('lib') subdir('os') -subdir('arch/arm') +subdir('arch/' + ARCH) subdir('kernel') +subdir('drivers') inc = include_directories(vm_includes) +vmthunder_core = static_library('vmthunder.core', vm_sources, include_directories: inc) -#@0@/@1@'.format(meson.current_source_dir(), mapfile) -linker_script = '@0@/build/arch/arm/bitthunder.lds'.format(meson.current_source_dir()) +extra_libs = [] +foreach lib : vm_libs + name = lib['name'] + sources = lib['sources'] + lib_includes = [] + lib_sources = [] -link_args = ['-T', linker_script, '-nostartfiles'] + meson.get_cross_property('link_args') + foreach source : sources + lib_sources += lib['path'] + '/' + source + endforeach -executable('vmthunder', vm_sources, include_directories: inc, link_args: link_args) + if 'includes' in lib + lib_includes = include_directories(lib['includes']) + endif + extra_libs += static_library(name, lib_sources, include_directories: [inc, lib_includes]) +endforeach + +linker_script = '@0@/build/arch/arm/bitthunder.lds'.format(meson.current_source_dir()) +link_args = ['-T', linker_script, '-nostartfiles']# + meson.get_cross_property('link_args') +# +# Main vmthunder kernel executable. +# +executable('vmthunder', vm_sources, include_directories: inc, link_args: link_args, link_with: [vmthunder_core, extra_libs]) From f51d8fbb30c068bd411b3c603dc6c6a8c78c7769 Mon Sep 17 00:00:00 2001 From: James Walmsley Date: Thu, 6 Dec 2018 21:36:46 +0000 Subject: [PATCH 6/7] [MESON] Updated latest meson.build files. --- arch/arm/mach/meson.build | 6 +++++- arch/arm/meson.build | 7 +++++++ drivers/meson.build | 1 + lib/meson.build | 3 ++- os/meson.build | 1 + os/src/devman/meson.build | 4 +++- os/src/gpio/meson.build | 3 +++ os/src/interrupts/meson.build | 11 ++++++++++- os/src/mm/meson.build | 18 +++++++++++++++++- os/src/process/meson.build | 2 ++ 10 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 drivers/meson.build create mode 100644 os/src/gpio/meson.build diff --git a/arch/arm/mach/meson.build b/arch/arm/mach/meson.build index 00ba21c4..b1b1ee09 100644 --- a/arch/arm/mach/meson.build +++ b/arch/arm/mach/meson.build @@ -1 +1,5 @@ -subdir('zynq') \ No newline at end of file +# +# Include the correct machine build file. +# + +subdir(SUBARCH) diff --git a/arch/arm/meson.build b/arch/arm/meson.build index c0cc56df..eb076b7f 100644 --- a/arch/arm/meson.build +++ b/arch/arm/meson.build @@ -2,6 +2,9 @@ vm_includes += 'arch/arm/include' vm_includes += 'arch/arm/include/arch/common' +# +# Common ARM build files. +# vm_sources += 'arch/arm/boot/head.S' vm_sources += 'arch/arm/common/arm11cpu.c' vm_sources += 'arch/arm/common/arm-cache.c' @@ -11,5 +14,9 @@ vm_sources += 'arch/arm/common/gic.c' vm_sources += 'arch/arm/common/freertos-ca9.c' vm_sources += 'arch/arm/common/freertos-ca9-asm.S' +if config.has('BT_CONFIG_HAS_MMU') +vm_sources += 'arch/arm/mm/v7-mmu.c' +vm_sources += 'arch/arm/mm/v7-mmu-asm.S' +endif subdir('mach') \ No newline at end of file diff --git a/drivers/meson.build b/drivers/meson.build new file mode 100644 index 00000000..8d650f59 --- /dev/null +++ b/drivers/meson.build @@ -0,0 +1 @@ +vm_includes += 'drivers' diff --git a/lib/meson.build b/lib/meson.build index 51a5acd0..a94eba40 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -1,3 +1,4 @@ vm_includes += 'lib/include' -vm_sources += 'lib/src/handles/bt_handles.c' \ No newline at end of file +vm_sources += 'lib/src/collections/bt_fifo.c' +vm_sources += 'lib/src/handles/bt_handles.c' diff --git a/os/meson.build b/os/meson.build index 8ae4fa23..721eb0a9 100644 --- a/os/meson.build +++ b/os/meson.build @@ -3,6 +3,7 @@ vm_includes += 'os/include' vm_sources += 'os/src/bt_main.c' subdir('src/devman') +subdir('src/gpio') subdir('src/fs') subdir('src/helpers') subdir('src/interfaces') diff --git a/os/src/devman/meson.build b/os/src/devman/meson.build index bde4fe8a..a4a7acc7 100644 --- a/os/src/devman/meson.build +++ b/os/src/devman/meson.build @@ -1,4 +1,6 @@ pwd = meson.current_source_dir() + '/' vm_sources += pwd + 'bt_devman.c' -vm_sources += pwd + 'bt_resources.c' \ No newline at end of file +vm_sources += pwd + 'bt_device.c' +vm_sources += pwd + 'bt_resources.c' +vm_sources += pwd + 'bt_i2c.c' diff --git a/os/src/gpio/meson.build b/os/src/gpio/meson.build new file mode 100644 index 00000000..fd73d215 --- /dev/null +++ b/os/src/gpio/meson.build @@ -0,0 +1,3 @@ +pwd = meson.current_source_dir() + '/' + +vm_sources += pwd + 'bt_gpio.c' diff --git a/os/src/interrupts/meson.build b/os/src/interrupts/meson.build index 82b2a191..cc7fba59 100644 --- a/os/src/interrupts/meson.build +++ b/os/src/interrupts/meson.build @@ -1,3 +1,12 @@ pwd = meson.current_source_dir() + '/' -vm_sources += pwd + 'bt_interrupts.c' \ No newline at end of file +vm_sources += pwd + 'bt_interrupts.c' + +if config.has('BT_CONFIG_INTERRUPTS_SOFTIRQ') +vm_sources += pwd + 'bt_softirq.c' +endif + +if config.has('BT_CONFIG_TASKLETS') +vm_sources += pwd + 'bt_tasklets.c' +endif + diff --git a/os/src/mm/meson.build b/os/src/mm/meson.build index ca117699..880c47ed 100644 --- a/os/src/mm/meson.build +++ b/os/src/mm/meson.build @@ -1,4 +1,20 @@ +if config.has('BT_CONFIG_OS') vm_sources += 'os/src/mm/bt_mm.c' +endif + +if config.has('BT_CONFIG_MEM_PAGE_ALLOCATOR') +vm_sources += 'os/src/mm/bt_page.c' +endif + +if config.has('BT_CONFIG_MEM_KHEAP') vm_sources += 'os/src/mm/bt_heap.c' +endif + +if config.has('BT_CONFIG_USE_VIRTUAL_ADDRESSING') +vm_sources += 'os/src/mm/bt_vm.c' +vm_sources += 'os/src/mm/bt_map.c' +endif -#vm_sources += 'os/src/mm/bt_vm.c' \ No newline at end of file +if config.has('BT_CONFIG_MEM_SLAB_ALLOCATOR') +vm_sources += 'os/src/mm/slab.c' +endif diff --git a/os/src/process/meson.build b/os/src/process/meson.build index d0e632db..a8ae5995 100644 --- a/os/src/process/meson.build +++ b/os/src/process/meson.build @@ -3,3 +3,5 @@ pwd = meson.current_source_dir() + '/' vm_sources += pwd + 'bt_threads.c' vm_sources += pwd + 'bt_process.c' +vm_sources += pwd + 'bt_queue.c' + From e2efe97dc65fbdf73dfced8d147dce5192aec1a3 Mon Sep 17 00:00:00 2001 From: James Walmsley Date: Thu, 6 Dec 2018 21:38:33 +0000 Subject: [PATCH 7/7] [CONFIG] I2C subsystem selects its dependencies. --- os/Kconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/os/Kconfig b/os/Kconfig index afa1e930..84eb4ff8 100755 --- a/os/Kconfig +++ b/os/Kconfig @@ -95,6 +95,8 @@ config DIR config I2C bool "I2C subsystem" + select SOFTIRQ + select TASKLETS default n config ADC