From bb61829700398dc18ab30cb77565980d49e14710 Mon Sep 17 00:00:00 2001 From: Amar Takhar Date: Mon, 9 Feb 2015 21:24:43 -0500 Subject: Add beagle BSPs * arm/beagleboardorig * arm/beagleboardxm * arm/beaglebonewhite * arm/beagleboneblack --- c/wscript_arm | 78 ++++++++++++++++++++++++++++++++++++++++++- cpukit/score/wscript | 7 ++-- rtems_waf/defaults/bsp/arm.py | 37 ++++++++++++++++++++ rtems_waf/defaults/options.py | 24 +++++++++++++ 4 files changed, 142 insertions(+), 4 deletions(-) diff --git a/c/wscript_arm b/c/wscript_arm index 6ab7175e72..ca794af041 100644 --- a/c/wscript_arm +++ b/c/wscript_arm @@ -1290,6 +1290,78 @@ def xilinx_zynq_zc706(ctx): + + + + +def beagle_shared(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/shared/start/start.S"]) + + source = [ + "src/lib/libbsp/arm/beagle/clock.c", + "src/lib/libbsp/arm/beagle/console/console-config.c", + "src/lib/libbsp/arm/beagle/irq.c", + "src/lib/libbsp/arm/beagle/misc/i2c.c", + "src/lib/libbsp/arm/beagle/startup/bspreset.c", + "src/lib/libbsp/arm/beagle/startup/bspstart.c", + "src/lib/libbsp/arm/beagle/startup/bspstarthooks.c", + "src/lib/libbsp/arm/beagle/startup/bspstartmmu.c", + "src/lib/libbsp/arm/shared/arm-cp15-set-exception-handler.c", + "src/lib/libbsp/arm/shared/start/start.S", + "src/lib/libbsp/arm/shared/startup/bsp-start-memcpy.S", + "src/lib/libbsp/shared/bootcard.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bspgetworkarea.c", + "src/lib/libbsp/shared/bsplibc.c", + "src/lib/libbsp/shared/bsppost.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/bsppretaskinghook.c", + "src/lib/libbsp/shared/cpucounterdiff.c", + "src/lib/libbsp/shared/cpucounterread.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/src/irq-default-handler.c", + "src/lib/libbsp/shared/src/irq-generic.c", + "src/lib/libbsp/shared/src/irq-info.c", + "src/lib/libbsp/shared/src/irq-legacy.c", + "src/lib/libbsp/shared/src/irq-server.c", + "src/lib/libbsp/shared/src/irq-shell.c", + "src/lib/libbsp/shared/src/stackalloc.c", + "src/lib/libbsp/shared/timerstub.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + source = [ + "src/lib/libcpu/shared/src/cache_manager.c" + ] + ctx.bsp.source( + source, + features="src_include", + includes = ["%s/c/src/lib/libcpu/arm/shared/include" % ctx.srcnode.abspath()] + ) + + source = [ + "src/lib/libbsp/shared/console.c", + "src/lib/libbsp/shared/console_control.c", + "src/lib/libbsp/shared/console_read.c", + "src/lib/libbsp/shared/console_select.c", + "src/lib/libbsp/shared/console_write.c", + ] + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + + + def build(ctx): source = [] @@ -1346,7 +1418,11 @@ def build(ctx): "smdk2410": smdk2410, "stm32f4": stm32f4, "xilinx_zynq_a9_qemu": xilinx_zynq_a9_qemu, - "xilinx_zynq_zc706": xilinx_zynq_zc706 + "xilinx_zynq_zc706": xilinx_zynq_zc706, + "beagleboardorig": beagle_shared, + "beagleboardxm": beagle_shared, + "beaglebonewhite": beagle_shared, + "beagleboneblack": beagle_shared } if not ctx.env.RTEMS_BSP in map: diff --git a/cpukit/score/wscript b/cpukit/score/wscript index 1473daf5c7..4916332504 100644 --- a/cpukit/score/wscript +++ b/cpukit/score/wscript @@ -272,11 +272,12 @@ def build(ctx): "cpu/arm/arm_exc_interrupt.S", "cpu/arm/cpu.c", "cpu/arm/cpu_asm.S", - "cpu/arm/arm-exception-default.c" + "cpu/arm/arm-exception-default.c", + "cpu/arm/arm-exception-frame-print.c" ] #XXX: There needs to be a different solution for this.. - if ctx.env.RTEMS_BSP in ["lm3s3749", "lm3s6965", "lm3s6965_qemu", "lpc17xx_ea_rom_int", "lpc17xx_plx800_ram", "lpc17xx_plx800_rom_int", "lpc17xx_ea_ram", "stm32f4", "xilinx_zynq_a9_qemu", "xilinx_zynq_zc706"]: + if ctx.env.RTEMS_BSP in ["lm3s3749", "lm3s6965", "lm3s6965_qemu", "lpc17xx_ea_rom_int", "lpc17xx_plx800_ram", "lpc17xx_plx800_rom_int", "lpc17xx_ea_ram", "stm32f4", "xilinx_zynq_a9_qemu", "xilinx_zynq_zc706", "beagleboardorig", "beagleboardxm", "beaglebonewhite", "beagleboneblack"]: source += [ "cpu/arm/armv7m-context-initialize.c", "cpu/arm/armv7m-context-restore.c", @@ -297,7 +298,7 @@ def build(ctx): "cpu/arm/armv7-thread-idle.c" ] - if ctx.env.RTEMS_BSP in ["lpc24xx_plx800_rom_int", "lpc24xx_plx800_ram", "lpc17xx_ea_rom_int", "lpc17xx_plx800_ram", "lpc17xx_plx800_rom_int", "lpc17xx_ea_ram", "raspberrypi", "realview_pbx_a9_qemu", "stm32f4", "xilinx_zynq_a9_qemu", "lpc2362", "lpc23xx_tli800", "lpc24xx_ea", "lpc24xx_ncs_ram", "lpc24xx_ncs_rom_ext", "lpc24xx_ncs_rom_int", "lpc32xx_mzx", "lpc32xx_mzx_stage_1", "lpc32xx_mzx_stage_2", "lpc32xx_phycore", "xilinx_zynq_zc706"]: + if ctx.env.RTEMS_BSP in ["lpc24xx_plx800_rom_int", "lpc24xx_plx800_ram", "lpc17xx_ea_rom_int", "lpc17xx_plx800_ram", "lpc17xx_plx800_rom_int", "lpc17xx_ea_ram", "raspberrypi", "realview_pbx_a9_qemu", "stm32f4", "xilinx_zynq_a9_qemu", "lpc2362", "lpc23xx_tli800", "lpc24xx_ea", "lpc24xx_ncs_ram", "lpc24xx_ncs_rom_ext", "lpc24xx_ncs_rom_int", "lpc32xx_mzx", "lpc32xx_mzx_stage_1", "lpc32xx_mzx_stage_2", "lpc32xx_phycore", "xilinx_zynq_zc706", "beagleboardorig", "beagleboardxm", "beaglebonewhite", "beagleboneblack"]: source += [ "cpu/arm/armv4-exception-default.S" ] diff --git a/rtems_waf/defaults/bsp/arm.py b/rtems_waf/defaults/bsp/arm.py index ffb7e3dc50..990050b842 100644 --- a/rtems_waf/defaults/bsp/arm.py +++ b/rtems_waf/defaults/bsp/arm.py @@ -672,3 +672,40 @@ class xilinx_zynq_zedboard(xilinx_zynq_shared): c.BSP_ARM_A9MPCORE_PERIPHCLK = "666666667U" c.ZYNQ_CLOCK_UART = "50000000UL" + +class beagle_shared(Base): + def build(self, c): + c.CFLAGS = ['-mcpu=cortex-a8'] + c.LINKCMDS = ['src/lib/libbsp/arm/beagle/startup/linkcmds.beagle', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.base'] + + def header(self, c): + c.CONSOLE_POLLED = Default + c.CONSOLE_BAUD = Default + +class beagleboardorig(beagle_shared): + name = "arm/beagleboardorig" + + def header(self, c): + c.IS_DM3730 = True + + +class beagleboardxm(beagle_shared): + name = "arm/beagleboardxm" + + def header(self, c): + c.IS_DM3730 = True + + +class beaglebonewhite(beagle_shared): + name = "arm/beaglebonewhite" + + def header(self, c): + c.IS_AM335X = True + + +class beagleboneblack(beagle_shared): + name = "arm/beagleboneblack" + + def header(self, c): + c.IS_AM335X = True + diff --git a/rtems_waf/defaults/options.py b/rtems_waf/defaults/options.py index 019d93139d..8ecc675ad9 100644 --- a/rtems_waf/defaults/options.py +++ b/rtems_waf/defaults/options.py @@ -2325,3 +2325,27 @@ class ZYNQ_CPUS(Integer): undef = True descr = "Number of active cores" + +class IS_DM3730(Boolean): + value = False + undef = True + descr = "true if SOC is DM3730" + + +class IS_AM335X(Boolean): + value = False + undef = True + descr = "true if SOC is AM335X" + + +class CONSOLE_POLLED(Boolean): + value = False + undef = True + descr = "Polled console i/o." + + +class CONSOLE_BAUD(Integer): + value = 115200 + undef = True + descr = "initial baud for console UART" + -- cgit v1.2.3