From 691e0eff5df504aed2d0a33f6ed486070699b230 Mon Sep 17 00:00:00 2001 From: Ric Claus Date: Sat, 13 Jul 2013 13:58:27 -0700 Subject: bsp/xilinx-zynq: Provide BSP variants --- c/src/lib/libbsp/arm/xilinx-zynq/Makefile.am | 11 +++++---- c/src/lib/libbsp/arm/xilinx-zynq/configure.ac | 2 ++ .../arm/xilinx-zynq/make/custom/xilinx_zynq.inc | 7 ++++++ .../xilinx-zynq/make/custom/xilinx_zynq_zc702.cfg | 1 + .../make/custom/xilinx_zynq_zc702_smp.cfg | 1 + .../make/custom/xilinx_zynq_zedboard.cfg | 1 + .../make/custom/xilinx_zynq_zedboard_smp.cfg | 1 + c/src/lib/libbsp/arm/xilinx-zynq/preinstall.am | 28 ++++++++++++++++++++++ .../arm/xilinx-zynq/startup/linkcmds.xilinx_zynq | 26 ++++++++++++++++++++ .../xilinx-zynq/startup/linkcmds.xilinx_zynq_zc702 | 8 +++++++ .../startup/linkcmds.xilinx_zynq_zc702_smp | 3 +++ .../startup/linkcmds.xilinx_zynq_zedboard | 8 +++++++ .../startup/linkcmds.xilinx_zynq_zedboard_smp | 3 +++ 13 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq.inc create mode 100644 c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zc702.cfg create mode 100644 c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zc702_smp.cfg create mode 100644 c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zedboard.cfg create mode 100644 c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zedboard_smp.cfg create mode 100644 c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq create mode 100644 c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zc702 create mode 100644 c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zc702_smp create mode 100644 c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zedboard create mode 100644 c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zedboard_smp diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/Makefile.am b/c/src/lib/libbsp/arm/xilinx-zynq/Makefile.am index 90b089b4a1..39f85432af 100644 --- a/c/src/lib/libbsp/arm/xilinx-zynq/Makefile.am +++ b/c/src/lib/libbsp/arm/xilinx-zynq/Makefile.am @@ -58,10 +58,13 @@ libbspstart_a_SOURCES = ../shared/start/start.S project_lib_DATA = start.$(OBJEXT) project_lib_DATA += startup/linkcmds - -EXTRA_DIST = -EXTRA_DIST += startup/linkcmds.xilinx_zynq_a9_qemu -EXTRA_DIST += startup/linkcmds.xilinx_zynq_a9_qemu_smp +project_lib_DATA += startup/linkcmds.xilinx_zynq +project_lib_DATA += startup/linkcmds.xilinx_zynq_a9_qemu +project_lib_DATA += startup/linkcmds.xilinx_zynq_a9_qemu_smp +project_lib_DATA += startup/linkcmds.xilinx_zynq_zc702 +project_lib_DATA += startup/linkcmds.xilinx_zynq_zc702_smp +project_lib_DATA += startup/linkcmds.xilinx_zynq_zedboard +project_lib_DATA += startup/linkcmds.xilinx_zynq_zedboard_smp ############################################################################### # LibBSP # diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/configure.ac b/c/src/lib/libbsp/arm/xilinx-zynq/configure.ac index c23658c717..66b8333c8b 100644 --- a/c/src/lib/libbsp/arm/xilinx-zynq/configure.ac +++ b/c/src/lib/libbsp/arm/xilinx-zynq/configure.ac @@ -24,6 +24,8 @@ AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes") RTEMS_BSPOPTS_SET([BSP_START_RESET_VECTOR],[*],[]) RTEMS_BSPOPTS_HELP([BSP_START_RESET_VECTOR],[reset vector address for BSP start]) +RTEMS_BSPOPTS_SET([BSP_ARM_A9MPCORE_PERIPHCLK],[xilinx_zynq_zc702*],[666666667U]) +RTEMS_BSPOPTS_SET([BSP_ARM_A9MPCORE_PERIPHCLK],[xilinx_zynq_zedboard*],[666666667U]) RTEMS_BSPOPTS_SET([BSP_ARM_A9MPCORE_PERIPHCLK],[*],[100000000U]) RTEMS_BSPOPTS_HELP([BSP_ARM_A9MPCORE_PERIPHCLK],[ARM Cortex-A9 MPCore PERIPHCLK clock frequency in Hz]) diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq.inc b/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq.inc new file mode 100644 index 0000000000..1cbe747ff2 --- /dev/null +++ b/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq.inc @@ -0,0 +1,7 @@ +include $(RTEMS_ROOT)/make/custom/default.cfg + +RTEMS_CPU = arm + +CPU_CFLAGS = -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9 + +CFLAGS_OPTIMIZE_V ?= -O2 -g diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zc702.cfg b/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zc702.cfg new file mode 100644 index 0000000000..2de871d46e --- /dev/null +++ b/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zc702.cfg @@ -0,0 +1 @@ +include $(RTEMS_ROOT)/make/custom/xilinx_zynq.inc diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zc702_smp.cfg b/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zc702_smp.cfg new file mode 100644 index 0000000000..2de871d46e --- /dev/null +++ b/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zc702_smp.cfg @@ -0,0 +1 @@ +include $(RTEMS_ROOT)/make/custom/xilinx_zynq.inc diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zedboard.cfg b/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zedboard.cfg new file mode 100644 index 0000000000..2de871d46e --- /dev/null +++ b/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zedboard.cfg @@ -0,0 +1 @@ +include $(RTEMS_ROOT)/make/custom/xilinx_zynq.inc diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zedboard_smp.cfg b/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zedboard_smp.cfg new file mode 100644 index 0000000000..2de871d46e --- /dev/null +++ b/c/src/lib/libbsp/arm/xilinx-zynq/make/custom/xilinx_zynq_zedboard_smp.cfg @@ -0,0 +1 @@ +include $(RTEMS_ROOT)/make/custom/xilinx_zynq.inc diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/preinstall.am b/c/src/lib/libbsp/arm/xilinx-zynq/preinstall.am index 5b94e3183f..d479169ee7 100644 --- a/c/src/lib/libbsp/arm/xilinx-zynq/preinstall.am +++ b/c/src/lib/libbsp/arm/xilinx-zynq/preinstall.am @@ -142,3 +142,31 @@ $(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds +$(PROJECT_LIB)/linkcmds.xilinx_zynq: startup/linkcmds.xilinx_zynq $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.xilinx_zynq +TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.xilinx_zynq + +$(PROJECT_LIB)/linkcmds.xilinx_zynq_a9_qemu: startup/linkcmds.xilinx_zynq_a9_qemu $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.xilinx_zynq_a9_qemu +TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.xilinx_zynq_a9_qemu + +$(PROJECT_LIB)/linkcmds.xilinx_zynq_a9_qemu_smp: startup/linkcmds.xilinx_zynq_a9_qemu_smp $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.xilinx_zynq_a9_qemu_smp +TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.xilinx_zynq_a9_qemu_smp + +$(PROJECT_LIB)/linkcmds.xilinx_zynq_zc702: startup/linkcmds.xilinx_zynq_zc702 $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.xilinx_zynq_zc702 +TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.xilinx_zynq_zc702 + +$(PROJECT_LIB)/linkcmds.xilinx_zynq_zc702_smp: startup/linkcmds.xilinx_zynq_zc702_smp $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.xilinx_zynq_zc702_smp +TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.xilinx_zynq_zc702_smp + +$(PROJECT_LIB)/linkcmds.xilinx_zynq_zedboard: startup/linkcmds.xilinx_zynq_zedboard $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.xilinx_zynq_zedboard +TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.xilinx_zynq_zedboard + +$(PROJECT_LIB)/linkcmds.xilinx_zynq_zedboard_smp: startup/linkcmds.xilinx_zynq_zedboard_smp $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.xilinx_zynq_zedboard_smp +TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.xilinx_zynq_zedboard_smp + diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq b/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq new file mode 100644 index 0000000000..da4275ff63 --- /dev/null +++ b/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq @@ -0,0 +1,26 @@ +REGION_ALIAS ("REGION_START", RAM); +REGION_ALIAS ("REGION_VECTOR", RAM); +REGION_ALIAS ("REGION_TEXT", RAM); +REGION_ALIAS ("REGION_TEXT_LOAD", RAM); +REGION_ALIAS ("REGION_RODATA", RAM); +REGION_ALIAS ("REGION_RODATA_LOAD", RAM); +REGION_ALIAS ("REGION_DATA", RAM); +REGION_ALIAS ("REGION_DATA_LOAD", RAM); +REGION_ALIAS ("REGION_FAST_TEXT", RAM); +REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM); +REGION_ALIAS ("REGION_FAST_DATA", RAM); +REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM); +REGION_ALIAS ("REGION_BSS", RAM); +REGION_ALIAS ("REGION_WORK", RAM); +REGION_ALIAS ("REGION_STACK", RAM); + +bsp_stack_irq_size = DEFINED (bsp_stack_irq_size) ? bsp_stack_irq_size : 4096; +bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 1024; + +bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1M; + +bsp_vector_table_in_start_section = 1; + +bsp_translation_table_base = ORIGIN (RAM_MMU); + +INCLUDE linkcmds.armv4 diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zc702 b/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zc702 new file mode 100644 index 0000000000..2978aff2f7 --- /dev/null +++ b/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zc702 @@ -0,0 +1,8 @@ +MEMORY { + RAM_INT_0 : ORIGIN = 0x00000000, LENGTH = 64k + 64k + 64k + RAM_INT_1 : ORIGIN = 0xFFFF0000, LENGTH = 64k - 512 + RAM_MMU : ORIGIN = 0x00100000, LENGTH = 16k + RAM : ORIGIN = 0x00104000, LENGTH = 1024M - 1M - 16k +} + +INCLUDE linkcmds.xilinx_zynq diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zc702_smp b/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zc702_smp new file mode 100644 index 0000000000..86ff4b14ac --- /dev/null +++ b/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zc702_smp @@ -0,0 +1,3 @@ +bsp_processor_count = DEFINED (bsp_processor_count) ? bsp_processor_count : 2; + +INCLUDE linkcmds.xilinx_zynq_zc702 diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zedboard b/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zedboard new file mode 100644 index 0000000000..5c016768fd --- /dev/null +++ b/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zedboard @@ -0,0 +1,8 @@ +MEMORY { + RAM_INT_0 : ORIGIN = 0x00000000, LENGTH = 64k + 64k + 64k + RAM_INT_1 : ORIGIN = 0xFFFF0000, LENGTH = 64k - 512 + RAM_MMU : ORIGIN = 0x00100000, LENGTH = 16k + RAM : ORIGIN = 0x00104000, LENGTH = 512M - 1M - 16k +} + +INCLUDE linkcmds.xilinx_zynq diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zedboard_smp b/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zedboard_smp new file mode 100644 index 0000000000..f01e278cc4 --- /dev/null +++ b/c/src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds.xilinx_zynq_zedboard_smp @@ -0,0 +1,3 @@ +bsp_processor_count = DEFINED (bsp_processor_count) ? bsp_processor_count : 2; + +INCLUDE linkcmds.xilinx_zynq_zedboard -- cgit v1.2.3