From 128890f8a8ce0ff73045af519b007525c76397dc Mon Sep 17 00:00:00 2001 From: Venkatesh Srinivas Date: Mon, 18 Nov 2019 06:51:09 +0000 Subject: [PATCH] [platform][tms570-launchpad] Skeleton of port to TI LaunchXL2-TMS57012 * Adds target tms570-launchpad, for TI TMS570 Launchpad Dev Kit (https://www.ti.com/store/ti/en/p/product/?p=LAUNCHXL2-TMS57012) * Adds CPU definitions for Cortex R4F (BE) CPU, implementing ARMv7-R ISA. Does not yet add definitions for ARMv7 arch entry functions. * Board does not yet build - platform.c/uart.c are empty, no GIC entry points provided. --- arch/arm/include/arch/defines.h | 2 ++ arch/arm/rules.mk | 9 +++++++++ arch/arm/toolchain.mk | 7 +++++++ platform/tms570/platform.c | 0 platform/tms570/rules.mk | 29 +++++++++++++++++++++++++++++ platform/tms570/uart.c | 0 project/tms570-launchpad.mk | 12 ++++++++++++ target/tms570/rules.mk | 9 +++++++++ 8 files changed, 68 insertions(+) create mode 100644 platform/tms570/platform.c create mode 100644 platform/tms570/rules.mk create mode 100644 platform/tms570/uart.c create mode 100644 project/tms570-launchpad.mk create mode 100644 target/tms570/rules.mk diff --git a/arch/arm/include/arch/defines.h b/arch/arm/include/arch/defines.h index 04f686c1..2b0bb45d 100644 --- a/arch/arm/include/arch/defines.h +++ b/arch/arm/include/arch/defines.h @@ -33,6 +33,8 @@ #define CACHE_LINE 32 #elif ARM_CPU_CORTEX_A15 #define CACHE_LINE 64 +#elif ARM_CPU_CORTEX_R4F +#define CACHE_LINE 64 #else #error unknown cpu #endif diff --git a/arch/arm/rules.mk b/arch/arm/rules.mk index 7827f8fd..ba8993fb 100644 --- a/arch/arm/rules.mk +++ b/arch/arm/rules.mk @@ -183,6 +183,15 @@ GLOBAL_DEFINES += \ ARM_CPU_ARM1136=1 HANDLED_CORE := true endif +ifeq ($(ARM_CPU),cortex-r4f) +GLOBAL_DEFINES += \ + ARM_CPU_CORTEX_R4F=1 \ + ARM_ISA_ARMv7=1 \ + ARM_WITH_VFP=1 \ + ARM_WITH_THUMB=1 + ENABLE_THUMB := true + HANDLED_CORE := true +endif ifeq ($(ARM_CPU),armemu) # flavor of emulated cpu by the armemu project GLOBAL_DEFINES += \ diff --git a/arch/arm/toolchain.mk b/arch/arm/toolchain.mk index 35b36276..b42e9c92 100644 --- a/arch/arm/toolchain.mk +++ b/arch/arm/toolchain.mk @@ -105,6 +105,13 @@ endif ifeq ($(ARM_CPU),arm1176jzf-s) ARCH_arm_COMPILEFLAGS += -mcpu=$(ARM_CPU) endif +ifeq ($(ARM_CPU),cortex-r4f) +ARCH_arm_COMPILEFLAGS += -march=armv7-r +ARCH_arm_COMPILEFLAGS += -mcpu=$(ARM_CPU) +ARCH_arm_COMPILEFLAGS += -mbig-endian +ARCH_arm_COMPILEFLAGS += -mfpu=vfpv3-d16 -mfloat-abi=hard +GLOBAL_MODULE_LDFLAGS += -EB +endif ifeq ($(ARM_CPU),armemu) ARCH_arm_COMPILEFLAGS += -march=armv7-a endif diff --git a/platform/tms570/platform.c b/platform/tms570/platform.c new file mode 100644 index 00000000..e69de29b diff --git a/platform/tms570/rules.mk b/platform/tms570/rules.mk new file mode 100644 index 00000000..ddbceda5 --- /dev/null +++ b/platform/tms570/rules.mk @@ -0,0 +1,29 @@ +LOCAL_DIR := $(GET_LOCAL_DIR) + +MODULE := $(LOCAL_DIR) + +MODULE_DEPS += \ + lib/cbuf \ + lib/fdt \ + dev/interrupt/arm_gic \ + dev/timer/arm_generic \ + +MODULE_SRCS += \ + $(LOCAL_DIR)/platform.c \ + $(LOCAL_DIR)/uart.c \ + +ARCH := arm +ARM_CPU := cortex-r4f +MEMBASE := 0 +MEMSIZE := 0x80000000 # 2GB +KERNEL_LOAD_OFFSET := 0x01080000 +LINKER_SCRIPT += \ + $(BUILDDIR)/system-onesegment.ld + +MODULE := $(LOCAL_DIR) + +MODULE_DEPS += \ + app/shell \ + + +include make/module.mk diff --git a/platform/tms570/uart.c b/platform/tms570/uart.c new file mode 100644 index 00000000..e69de29b diff --git a/project/tms570-launchpad.mk b/project/tms570-launchpad.mk new file mode 100644 index 00000000..04918d07 --- /dev/null +++ b/project/tms570-launchpad.mk @@ -0,0 +1,12 @@ +# main project for TI Hercules TMS570LS12x LaunchPad +LOCAL_DIR := $(GET_LOCAL_DIR) + +TARGET := tms570 + +MODULES += \ + app/shell \ + app/stringtests \ + app/tests \ + lib/cksum \ + lib/debugcommands \ + diff --git a/target/tms570/rules.mk b/target/tms570/rules.mk new file mode 100644 index 00000000..2c3ca840 --- /dev/null +++ b/target/tms570/rules.mk @@ -0,0 +1,9 @@ +LOCAL_DIR := $(GET_LOCAL_DIR) + +GLOBAL_INCLUDES += \ + $(LOCAL_DIR)/include + +PLATFORM := tms570 + +#include make/module.mk +