From: Andreas Kölbl <andreas.koe...@st.oth-regensburg.de> --- c/src/lib/libbsp/arm/jetson-tk1/Makefile.am | 2 ++ c/src/lib/libbsp/arm/jetson-tk1/include/cmdline.h | 17 ++++++++++ c/src/lib/libbsp/arm/jetson-tk1/misc/cmdline.c | 38 ++++++++++++++++++++++ c/src/lib/libbsp/arm/jetson-tk1/start/start.S | 6 +++- .../lib/libbsp/arm/jetson-tk1/startup/linkcmds.in | 4 ++- 5 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 c/src/lib/libbsp/arm/jetson-tk1/include/cmdline.h create mode 100644 c/src/lib/libbsp/arm/jetson-tk1/misc/cmdline.c
diff --git a/c/src/lib/libbsp/arm/jetson-tk1/Makefile.am b/c/src/lib/libbsp/arm/jetson-tk1/Makefile.am index 9fc1695cba..37d2ca267e 100644 --- a/c/src/lib/libbsp/arm/jetson-tk1/Makefile.am +++ b/c/src/lib/libbsp/arm/jetson-tk1/Makefile.am @@ -40,6 +40,7 @@ include_bsp_HEADERS += ../shared/armv467ar-basic-cache/cache_.h include_bsp_HEADERS += include/car.h include_bsp_HEADERS += include/console.h +include_bsp_HEADERS += include/cmdline.h include_bsp_HEADERS += include/irq.h include_bsp_HEADERS += include/memory.h include_bsp_HEADERS += include/mmu.h @@ -123,6 +124,7 @@ libbsp_a_SOURCES += startup/mm_config_table.c libbsp_a_SOURCES += ../shared/mminit.c # misc +libbsp_a_SOURCES += misc/cmdline.c libbsp_a_SOURCES += misc/timer.c ############################################################################### diff --git a/c/src/lib/libbsp/arm/jetson-tk1/include/cmdline.h b/c/src/lib/libbsp/arm/jetson-tk1/include/cmdline.h new file mode 100644 index 0000000000..d50bfaaed0 --- /dev/null +++ b/c/src/lib/libbsp/arm/jetson-tk1/include/cmdline.h @@ -0,0 +1,17 @@ +/* + * Copyright (c) OTH Regensburg, 2017 + * Author: Andreas Kölbl + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#ifndef LIBBSP_ARM_JETSONTK1_CMDLINE_H +#define LIBBSP_ARM_JETSONTK1_CMDLINE_H + +#include <bspopts.h> + +#define BSP_CMDLINE_LOCATION (TEGRA_BASE + MEMORY_SIZE - 0x4000) + +#endif /* LIBBSP_ARM_JETSONTK1_CMDLINE_H */ diff --git a/c/src/lib/libbsp/arm/jetson-tk1/misc/cmdline.c b/c/src/lib/libbsp/arm/jetson-tk1/misc/cmdline.c new file mode 100644 index 0000000000..fae2769ef4 --- /dev/null +++ b/c/src/lib/libbsp/arm/jetson-tk1/misc/cmdline.c @@ -0,0 +1,38 @@ +/* + * Copyright (c) OTH Regensburg, 2017 + * Author: Andreas Kölbl + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#include <bsp.h> +#include <bsp/cmdline.h> +#include <rtems/bspcmdline.h> +#include <rtems/bspIo.h> + +#define ARM_MAX_CPU_COUNT 4 + +#define DEFAULT_BOOT_CPU (1 << 0) + +uint8_t bsp_get_boot_cpu( void ) { + char boot_cpu_str[32]; + char c; + + if ( rtems_bsp_cmdline_get_param_rhs("boot_cpu", boot_cpu_str, + sizeof(boot_cpu_str)) == NULL ) { + printk("No boot cpu argument provided %x\n", BSP_CMDLINE_LOCATION); + + return DEFAULT_BOOT_CPU; + } + + c = boot_cpu_str[0]; + if ( (c >= '0') && (c < '0' + ARM_MAX_CPU_COUNT) ) { + return c - '0'; + } + + printk("Warning: Invalid boot CPU '%c'\n", c == 0 ? '?' : c); + + return DEFAULT_BOOT_CPU; +} diff --git a/c/src/lib/libbsp/arm/jetson-tk1/start/start.S b/c/src/lib/libbsp/arm/jetson-tk1/start/start.S index bb984189ba..af9107188f 100644 --- a/c/src/lib/libbsp/arm/jetson-tk1/start/start.S +++ b/c/src/lib/libbsp/arm/jetson-tk1/start/start.S @@ -30,6 +30,7 @@ #include <bspopts.h> #include <bsp/irq.h> +#include <bsp/cmdline.h> #include <bsp/linker-symbols.h> /* External symbols */ @@ -363,7 +364,7 @@ bsp_vector_table_copy_done: bl bsp_start_hook_1 /* Branch to boot card */ - mov r0, #0 + ldr r0, bsp_cmdline_location bl boot_card twiddle: @@ -373,6 +374,9 @@ twiddle: b twiddle +bsp_cmdline_location: + .word BSP_CMDLINE_LOCATION + #elif defined(ARM_MULTILIB_ARCH_V7M) #include <rtems/score/armv7m.h> diff --git a/c/src/lib/libbsp/arm/jetson-tk1/startup/linkcmds.in b/c/src/lib/libbsp/arm/jetson-tk1/startup/linkcmds.in index f37a62faed..ddc19c5097 100644 --- a/c/src/lib/libbsp/arm/jetson-tk1/startup/linkcmds.in +++ b/c/src/lib/libbsp/arm/jetson-tk1/startup/linkcmds.in @@ -1,7 +1,9 @@ bsp_mmu_size = 16k; +bsp_cmdline_size = 16k; MEMORY { - RAM (AIW) : ORIGIN = @TEGRA_BASE@, LENGTH = @MEMORY_SIZE@ - bsp_mmu_size + RAM (AIW) : ORIGIN = @TEGRA_BASE@, LENGTH = @MEMORY_SIZE@ - bsp_mmu_size - bsp_cmdline_size + CMD (AR) : ORIGIN = @TEGRA_BASE@ + @MEMORY_SIZE@ - bsp_mmu_size - bsp_cmdline_size, LENGTH = bsp_cmdline_size RAM_MMU (AIW) : ORIGIN = @TEGRA_BASE@ + @MEMORY_SIZE@ - bsp_mmu_size, LENGTH = bsp_mmu_size } -- 2.13.3 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel