diff options
author | Amar Takhar <amar@rtems.org> | 2014-12-28 17:24:12 -0500 |
---|---|---|
committer | Amar Takhar <amar@rtems.org> | 2015-12-11 15:13:45 -0500 |
commit | 162684666af4c15522052447afb7775a413f4d6a (patch) | |
tree | 7d256a52beb6458ac3b17c0ba73966a41e9dbdb6 | |
parent | b618d8cfc54f84d4ed03dc7b7fa510c872e6128a (diff) |
Add waf build system.
78 files changed, 16347 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore index 8fb71ad022..d1b6624bf1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -aclocal.m4 -autom4te.cache -configure -config.h.in -Makefile.in +/.lock-waf* +/build +/config.cfg +/rtems-config +/rtems_waf/*.pyc diff --git a/c/wscript b/c/wscript new file mode 100644 index 0000000000..03b456b230 --- /dev/null +++ b/c/wscript @@ -0,0 +1,195 @@ +from imp import new_module +from os.path import basename + +def host_arm_nds(ctx): + source = [ + "src/lib/libbsp/arm/nds/tools/ndstool/source/arm7_sha1_homebrew.c", + "src/lib/libbsp/arm/nds/tools/ndstool/source/arm7_sha1_nintendo.c", + "src/lib/libbsp/arm/nds/tools/ndstool/source/banner.cpp", + "src/lib/libbsp/arm/nds/tools/ndstool/source/bigint.cpp", + "src/lib/libbsp/arm/nds/tools/ndstool/source/compile_date.c", + "src/lib/libbsp/arm/nds/tools/ndstool/source/crc.cpp", + "src/lib/libbsp/arm/nds/tools/ndstool/source/default_icon.c", + "src/lib/libbsp/arm/nds/tools/ndstool/source/encryption.cpp", + "src/lib/libbsp/arm/nds/tools/ndstool/source/header.cpp", + "src/lib/libbsp/arm/nds/tools/ndstool/source/hook.cpp", + "src/lib/libbsp/arm/nds/tools/ndstool/source/loadme.c", + "src/lib/libbsp/arm/nds/tools/ndstool/source/logo.cpp", + "src/lib/libbsp/arm/nds/tools/ndstool/source/ndscodes.cpp", + "src/lib/libbsp/arm/nds/tools/ndstool/source/ndscreate.cpp", + "src/lib/libbsp/arm/nds/tools/ndstool/source/ndsextract.cpp", + "src/lib/libbsp/arm/nds/tools/ndstool/source/ndstree.cpp", + "src/lib/libbsp/arm/nds/tools/ndstool/source/passme.cpp", + "src/lib/libbsp/arm/nds/tools/ndstool/source/passme_sram.c", + "src/lib/libbsp/arm/nds/tools/ndstool/source/raster.cpp", + "src/lib/libbsp/arm/nds/tools/ndstool/source/sha1.cpp", + ] + includes = ["%s/c/src/lib/libbsp/arm/nds/tools/ndstool/include/" % ctx.srcnode.abspath()] + ctx.objects( + source=["src/lib/libbsp/arm/nds/tools/ndstool/source/ndstool.cpp"], + cxxflags=["-DVERSION=\"compiled for rtems\""], + includes=includes, + name="arm_nds_ndstool_obj", + ) + ctx.program( + target="ndstool", + source=source, + includes=includes, + use="arm_nds_ndstool_obj" + ) + + +def build(ctx): + source = [] + + # These host based programs live here for now as the sub wscripts + # are conditionally loaded for an arch/bsp to keep things fast. + if ctx.variant == "host" and "arm/nds" in ctx.env.CFG_BSP: + host_arm_nds(ctx) + + # Nothing below this will work on the host. + if ctx.variant == "host": + return + + # version.c + source_version = ["src/support/version.c"] + ctx.bsp.source( + source_version, + alias="version", + features="src_include", + cflags=[ + "-DRTEMS_VERSION=\"%s\"" % ctx.env.RTEMS_VERSION + ] + ) + + + source_networking = [ + "src/libchip/network/cs8900.c", + "src/libchip/network/dec21140.c", + "src/libchip/network/elnk.c", + "src/libchip/network/greth.c", + "src/libchip/network/i82586.c", + "src/libchip/network/if_dc.c", + "src/libchip/network/if_fxp.c", + "src/libchip/network/open_eth.c", + "src/libchip/network/smc91111.c", + "src/libchip/network/sonic.c" + ] + ctx.bsp.networking( + source_networking, + features="src_include src_include_networking src_include_libchip", + defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__", "_KERNEL", "__BSD_VISIBLE", "__RTEMS_HAVE_DECL_SIGALTSTACK__"] + ) + + + source_mp = [ + "src/libchip/shmdr/addlq.c", + "src/libchip/shmdr/cnvpkt.c", + "src/libchip/shmdr/getlq.c", + "src/libchip/shmdr/dump.c", + "src/libchip/shmdr/fatal.c", + "src/libchip/shmdr/getpkt.c", + "src/libchip/shmdr/init.c", + "src/libchip/shmdr/initlq.c", + "src/libchip/shmdr/intr.c", + "src/libchip/shmdr/mpisr.c", + "src/libchip/shmdr/poll.c", + "src/libchip/shmdr/receive.c", + "src/libchip/shmdr/retpkt.c", + "src/libchip/shmdr/send.c" + ] + ctx.bsp.mp( + source_mp, + features="src_include", + includes = ["%s/c/src/libchip/shmdr" % ctx.srcnode.abspath()] + ) + + + source_ata = [ + "src/libchip/ide/ata.c", + "src/libchip/ide/ata_util.c", + ] + ctx.bsp.source( + source_ata, + features="src_include src_include_libchip" + ) + + + source += [ + "src/libchip/display/disp_hcms29xx.c", + "src/libchip/display/font_hcms29xx.c", + "src/libchip/flash/am29lv160.c", + "src/libchip/i2c/i2c-2b-eeprom.c", + "src/libchip/i2c/i2c-ds1621.c", + "src/libchip/i2c/spi-flash-m25p40.c", + "src/libchip/i2c/spi-fram-fm25l256.c", + "src/libchip/i2c/spi-memdrv.c", + "src/libchip/i2c/spi-sd-card.c", + "src/libchip/ide/ide_controller.c", + "src/libchip/rtc/ds1375.c", + "src/libchip/rtc/icm7170.c", + "src/libchip/rtc/icm7170_reg.c", + "src/libchip/rtc/icm7170_reg2.c", + "src/libchip/rtc/icm7170_reg4.c", + "src/libchip/rtc/icm7170_reg8.c", + "src/libchip/rtc/m48t08.c", + "src/libchip/rtc/m48t08_reg.c", + "src/libchip/rtc/m48t08_reg2.c", + "src/libchip/rtc/m48t08_reg4.c", + "src/libchip/rtc/m48t08_reg8.c", + "src/libchip/rtc/mc146818a.c", + "src/libchip/rtc/mc146818a_ioreg.c", + "src/libchip/rtc/rtcprobe.c", + "src/libchip/serial/mc68681.c", + "src/libchip/serial/mc68681_baud.c", + "src/libchip/serial/mc68681_reg.c", + "src/libchip/serial/mc68681_reg2.c", + "src/libchip/serial/mc68681_reg4.c", + "src/libchip/serial/mc68681_reg8.c", + "src/libchip/serial/ns16550.c", + "src/libchip/serial/serprobe.c", + "src/libchip/serial/z85c30.c", + "src/libchip/serial/z85c30_reg.c" + ] + ctx.bsp.source( + source, + features="src_include", + includes = ["%s/include/libchip" % ctx.srcnode.abspath()] + ) + + + # Open the correct sub-wscript and execute build() as waf does not support + # loading arbitrary wscripts. + path = "%s/c/" % ctx.srcnode.abspath() + with open("%s/wscript_%s" % (path, ctx.env.RTEMS_ARCH), "r") as fp: + module = new_module("RTEMS_MODULE") + exec(compile(fp.read(), "%swscript_%s" % (path, ctx.env.RTEMS_ARCH), "exec"), module.__dict__) + module.build(ctx) + + ctx( + target = "rtemsbsp", + use = [ + "auto_libbsp_objects" + ], + includes = ["%s/include/libchip" % ctx.srcnode.abspath()], + features = "c cstlib", + install_path = ctx.env.LIBDIR + ) + + + # First file is always installed as "linkcmds" + # XXX: This needs to be removed eventually by fixing the filenames. + if ctx.env.LINKCMDS: + ctx.copy( + ctx.env.LINKCMDS[0], + "linkcmds", + "linkcmds_linkcmds" + ) + + for file in ctx.env.LINKCMDS[1:]: + base = basename(file) + ctx.copy( + file, + base, + "linkcmds_base" + ) diff --git a/c/wscript_arm b/c/wscript_arm new file mode 100644 index 0000000000..42ee374d64 --- /dev/null +++ b/c/wscript_arm @@ -0,0 +1,1340 @@ +# +# ARM Board Support Packages. +# + +# +# ARM libcpu support. See the PowerPC BSP file for details. +# + +def libcpu_shared_arm920(ctx): + source = [ + "src/lib/libcpu/arm/shared/arm920/mmu.c", + "src/lib/libbsp/shared/src/irq-default-handler.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_pxa255_clock(ctx): + source = [ + "src/lib/libcpu/arm/pxa255/clock/clock.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_pxa255_timer(ctx): + source = [ + "src/lib/libcpu/arm/pxa255/timer/timer.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_pxa255_ffuart(ctx): + source = [ + "src/lib/libcpu/arm/pxa255/ffuart/ffuart.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_pxa255_pmc(ctx): + source = [ + "src/lib/libcpu/arm/pxa255/pmc/pmc.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_pxa255_irq(ctx): + source = [ + "src/lib/libcpu/arm/pxa255/irq/irq.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_at91rm9200_clock(ctx): + source = [ + "src/lib/libcpu/arm/at91rm9200/clock/clock.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_at91rm9200_dbgu(ctx): + source = [ + "src/lib/libcpu/arm/at91rm9200/dbgu/dbgu.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_at91rm9200_usart(ctx): + source = [ + "src/lib/libcpu/arm/at91rm9200/usart/usart.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_at91rm9200_timer(ctx): + source = [ + "src/lib/libcpu/arm/at91rm9200/timer/timer.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_at91rm9200_pmc(ctx): + source = [ + "src/lib/libcpu/arm/at91rm9200/pmc/pmc.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_at91rm9200_irq(ctx): + source = [ + "src/lib/libcpu/arm/at91rm9200/irq/irq.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mc9328mxl_clock(ctx): + source = [ + "src/lib/libcpu/arm/mc9328mxl/clock/clockdrv.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mc9328mxl_timer(ctx): + source = [ + "src/lib/libcpu/arm/mc9328mxl/timer/timer.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mc9328mxl_irq(ctx): + source = [ + "src/lib/libcpu/arm/mc9328mxl/irq/irq.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_s3c24xx_clock(ctx): + source = [ + "src/lib/libcpu/arm/s3c24xx/clock/clockdrv.c", + "src/lib/libcpu/arm/s3c24xx/clock/support.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_s3c24xx_timer(ctx): + source = [ + "src/lib/libcpu/arm/s3c24xx/timer/timer.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_s3c24xx_irq(ctx): + source = [ + "src/lib/libcpu/arm/s3c24xx/irq/irq.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_lpc22xx_clock(ctx): + source = [ + "src/lib/libcpu/arm/lpc22xx/clock/clockdrv.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_lpc22xx_timer(ctx): + source = [ + "src/lib/libcpu/arm/lpc22xx/timer/timer.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_lpc22xx_irq(ctx): + source = [ + "src/lib/libcpu/arm/lpc22xx/irq/irq.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def csb336(ctx): + + libcpu_shared_arm920(ctx) + libcpu_mc9328mxl_clock(ctx) + libcpu_mc9328mxl_timer(ctx) + libcpu_mc9328mxl_irq(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/csb336/start/start.S"]) + + networking_source = [ + "src/lib/libbsp/arm/csb336/network/lan91c11x.c", + "src/lib/libbsp/arm/csb336/network/network.c", + ] + + networking_defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + + ctx.bsp.networking( + networking_source, + defines=networking_defines, + features="src_include" + ) + + source += [ + "src/lib/libbsp/arm/csb336/console/uart.c", + "src/lib/libbsp/arm/csb336/startup/bspstart.c", + "src/lib/libbsp/arm/csb336/startup/memmap.c", + "src/lib/libbsp/arm/shared/abort/abort.c", + "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/bspreset.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.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", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def csb337_shared(ctx): + + libcpu_shared_arm920(ctx) + libcpu_at91rm9200_clock(ctx) + libcpu_at91rm9200_dbgu(ctx) + libcpu_at91rm9200_usart(ctx) + libcpu_at91rm9200_timer(ctx) + libcpu_at91rm9200_irq(ctx) + libcpu_at91rm9200_pmc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/csb337/start/start.S"]) + + source += [ + "src/lib/libbsp/arm/csb337/startup/bspreset.c", + "src/lib/libbsp/arm/csb337/startup/bspstart.c", + "src/lib/libbsp/arm/csb337/startup/memmap.c", + "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/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/arm/csb337/console/uarts.c", + "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", + "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/arm/shared/abort/abort.c", + ] + + if ctx.env.ENABLE_LCD: + source += [ + "src/lib/libbsp/arm/csb337/console/fbcons.c", + "src/lib/libbsp/arm/csb337/console/sed1356.c", + ] + + if ctx.env.ENABLE_UMON: + source += [ + "src/lib/libbsp/arm/csb337/startup/umonsupp.c", + "src/lib/libbsp/shared/umon/monlib.c", + "src/lib/libbsp/shared/umon/tfsDriver.c", + "src/lib/libbsp/shared/umon/umonrtemsglue.c", + ] + + if ctx.env.ENABLE_UMON_CONSOLE: + source += [ + "src/lib/libbsp/shared/umon/umoncons.c", + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + + +def edb7312(ctx): + + # no libcpu parts + + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/edb7312/start/start.S"]) + + networking_source = [ + "src/lib/libbsp/arm/edb7312/network/network.c", + ] + + networking_defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + + ctx.bsp.networking( + networking_source, + defines=networking_defines, + features="src_include" + ) + + source += [ + "src/lib/libbsp/arm/edb7312/startup/bspreset.c", + "src/lib/libbsp/arm/edb7312/startup/bspstart.c", + "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/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/arm/edb7312/clock/clockdrv.c", + "src/lib/libbsp/arm/edb7312/console/uart.c", + "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", + "src/lib/libbsp/arm/shared/abort/abort.c", + "src/lib/libbsp/arm/edb7312/irq/bsp_irq_asm.S", + "src/lib/libbsp/arm/edb7312/irq/irq.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/arm/edb7312/timer/timer.c", + "src/lib/libbsp/shared/src/irq-default-handler.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + + +def gba(ctx): + + # no libcpu parts + + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/gba/start/start.S"]) + + source += [ + "src/lib/libbsp/arm/gba/clock/clockdrv.c", + "src/lib/libbsp/arm/gba/console/conio.c", + "src/lib/libbsp/arm/gba/console/console.c", + "src/lib/libbsp/arm/gba/irq/irq.c", + "src/lib/libbsp/arm/gba/startup/bspgetworkarea.c", + "src/lib/libbsp/arm/gba/startup/bspreset.c", + "src/lib/libbsp/arm/gba/startup/bspstart.c", + "src/lib/libbsp/arm/gba/timer/timer.c", + "src/lib/libbsp/shared/bootcard.c", + "src/lib/libbsp/shared/bspclean.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/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.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/irq-default-handler.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def gdbarmsim_shared(ctx): + + # no libcpu parts + + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/gdbarmsim/start/start.S"]) + + source += [ + "src/lib/libbsp/arm/gdbarmsim/console/console-io.c", + "src/lib/libbsp/arm/gdbarmsim/startup/bspreset.c", + "src/lib/libbsp/arm/gdbarmsim/startup/syscalls.c", + "src/lib/libbsp/arm/shared/abort/abort.c", + "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/bspstart.c", + "src/lib/libbsp/shared/clock_driver_simidle.c", + "src/lib/libbsp/shared/console-polled.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/timerstub.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def gp32(ctx): + + libcpu_shared_arm920(ctx) + libcpu_s3c24xx_clock(ctx) + libcpu_s3c24xx_timer(ctx) + libcpu_s3c24xx_irq(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/gp32/start/start.S"]) + + source += [ + "src/lib/libbsp/arm/gp32/console/uart.c", + "src/lib/libbsp/arm/gp32/smc/smc.c", + "src/lib/libbsp/arm/gp32/startup/bspreset.c", + "src/lib/libbsp/arm/gp32/startup/bspstart.c", + "src/lib/libbsp/arm/gp32/startup/memmap.c", + "src/lib/libbsp/arm/shared/abort/abort.c", + "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/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", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.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/arm/gp32/startup/bspidle.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + + +def gumstix(ctx): + + libcpu_shared_arm920(ctx) + libcpu_pxa255_clock(ctx) + libcpu_pxa255_timer(ctx) + libcpu_pxa255_ffuart(ctx) + libcpu_pxa255_irq(ctx) + libcpu_pxa255_pmc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/gumstix/start/start.S"]) + + networking_source = [ + "src/lib/libbsp/arm/gumstix/rtl8019/rtl8019.c", + ] + + networking_defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + + ctx.bsp.networking( + networking_source, + defines=networking_defines, + features="src_include" + ) + + source += [ + "src/lib/libbsp/arm/gumstix/startup/bspstart.c", + "src/lib/libbsp/arm/gumstix/startup/memmap.c", + "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/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/arm/gumstix/console/uarts.c", + "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", + "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/arm/shared/abort/abort.c", + ] + + if ctx.env.ON_SKYEYE: + source += [ + "src/lib/libbsp/arm/gumstix/fb/fb.c", + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + +def lm3s_shared(ctx): + ctx.bsp.start(["src/lib/libbsp/arm/shared/start/start.S"]) + + source = [ + "src/lib/libbsp/../libcpu/shared/src/cache_manager.c", + "src/lib/libbsp/arm/lm3s69xx/console/console-config.c", + "src/lib/libbsp/arm/lm3s69xx/console/uart.c", + "src/lib/libbsp/arm/lm3s69xx/ssi/ssi.c", + "src/lib/libbsp/arm/lm3s69xx/startup/bspreset.c", + "src/lib/libbsp/arm/lm3s69xx/startup/bspstart.c", + "src/lib/libbsp/arm/lm3s69xx/startup/bspstarthook.c", + "src/lib/libbsp/arm/lm3s69xx/startup/io.c", + "src/lib/libbsp/arm/lm3s69xx/startup/syscon.c", + "src/lib/libbsp/arm/shared/armv7m/clock/armv7m-clock-config.c", + "src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq-dispatch.c", + "src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq.c", + "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/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", + "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 src_include_bsp src_include_libcpu" + ) + + +def lpc24xx_shared(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/shared/start/start.S"]) + + networking_source = [ + "src/lib/libbsp/arm/shared/lpc/network/lpc-ethernet.c", + ] + + ctx.bsp.networking( + networking_source, + features="src_include" + ) + + libcpu_source = [ + "src/lib/libcpu/shared/src/cache_manager.c" + ] + + ctx.bsp.source( + libcpu_source, + features="src_include src_include_libcpu", + includes = ["%s/c/src/lib/libcpu/arm/shared/include" % ctx.srcnode.abspath()] + ) + + #XXX: This needs to be fixed as well as the cruft in the arm block of c/score/wscript. + if ctx.env.RTEMS_BSP in ["lpc17xx_ea_rom_int", "lpc17xx_plx800_ram", "lpc17xx_plx800_rom_int", "lpc17xx_ea_ram"]: + source += [ + "src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq.c", + "src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq-dispatch.c", + "src/lib/libbsp/arm/shared/armv7m/clock/armv7m-clock-config.c", + ] + else: + source += [ + "src/lib/libbsp/arm/shared/abort/simple_abort.c", + ] + + + source += [ + "src/lib/libbsp/arm/lpc24xx/console/console-config.c", + "src/lib/libbsp/arm/lpc24xx/i2c/i2c-config.c", + "src/lib/libbsp/arm/lpc24xx/i2c/i2c.c", + "src/lib/libbsp/arm/lpc24xx/irq/irq-dispatch.c", + "src/lib/libbsp/arm/lpc24xx/irq/irq.c", + "src/lib/libbsp/arm/lpc24xx/misc/bspidle.c", + "src/lib/libbsp/arm/lpc24xx/misc/dma-copy.c", + "src/lib/libbsp/arm/lpc24xx/misc/dma.c", + "src/lib/libbsp/arm/lpc24xx/misc/io.c", + "src/lib/libbsp/arm/lpc24xx/misc/lcd.c", + "src/lib/libbsp/arm/lpc24xx/misc/restart.c", + "src/lib/libbsp/arm/lpc24xx/misc/system-clocks.c", + "src/lib/libbsp/arm/lpc24xx/misc/timer.c", + "src/lib/libbsp/arm/lpc24xx/rtc/rtc-config.c", + "src/lib/libbsp/arm/lpc24xx/ssp/ssp.c", + "src/lib/libbsp/arm/lpc24xx/startup/bspreset.c", + "src/lib/libbsp/arm/lpc24xx/startup/bspstart.c", + "src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c", + "src/lib/libbsp/arm/shared/lpc/clock/lpc-clock-config.c", + "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/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", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.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/src/uart-output-char.c", + "src/lib/libbsp/shared/tod.c", + "src/lib/libbsp/arm/lpc24xx/console/uart-probe-1.c", + "src/lib/libbsp/arm/lpc24xx/console/uart-probe-2.c", + "src/lib/libbsp/arm/lpc24xx/console/uart-probe-3.c", + "src/lib/libbsp/arm/shared/startup/bsp-start-memcpy.S", + "src/lib/libbsp/arm/lpc24xx/startup/start-config-emc-dynamic.c", + "src/lib/libbsp/arm/lpc24xx/startup/start-config-emc-static.c", + "src/lib/libbsp/arm/lpc24xx/startup/start-config-mpu.c", + "src/lib/libbsp/arm/lpc24xx/startup/start-config-pinsel.c", + "src/lib/libbsp/shared/src/irq-default-handler.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp", + includes = ["%s/c/src/lib/libcpu/arm/shared/include" % ctx.srcnode.abspath()] + ) + + + +def lpc32xx_shared(ctx): + + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/shared/start/start.S"]) + + networking_source = [ + "src/lib/libbsp/arm/shared/lpc/network/lpc-ethernet.c", + ] + + ctx.bsp.networking( + networking_source, + features="src_include" + ) + + libcpu_source = [ + "src/lib/libcpu/shared/src/cache_manager.c" + ] + + ctx.bsp.source( + libcpu_source, + features="src_include src_include_libcpu", + includes = ["%s/c/src/lib/libcpu/arm/shared/include" % ctx.srcnode.abspath()] + ) + + source += [ + "src/lib/libbsp/arm/lpc32xx/console/console-config.c", + "src/lib/libbsp/arm/lpc32xx/console/hsu.c", + "src/lib/libbsp/arm/lpc32xx/irq/irq.c", + "src/lib/libbsp/arm/lpc32xx/rtc/rtc-config.c", + "src/lib/libbsp/arm/lpc32xx/startup/bspreset.c", + "src/lib/libbsp/arm/lpc32xx/startup/bspstart.c", + "src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c", + "src/lib/libbsp/arm/lpc32xx/misc/timer.c", + "src/lib/libbsp/arm/lpc32xx/misc/nand-mlc.c", + "src/lib/libbsp/arm/lpc32xx/misc/nand-mlc-read-blocks.c", + "src/lib/libbsp/arm/lpc32xx/misc/nand-mlc-write-blocks.c", + "src/lib/libbsp/arm/lpc32xx/misc/nand-mlc-erase-block-safe.c", + "src/lib/libbsp/arm/lpc32xx/misc/restart.c", + "src/lib/libbsp/arm/lpc32xx/misc/boot.c", + "src/lib/libbsp/arm/lpc32xx/misc/emc.c", + "src/lib/libbsp/arm/lpc32xx/misc/i2c.c", + "src/lib/libbsp/arm/shared/lpc/clock/lpc-clock-config.c", + "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/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/src/stackalloc.c", + "src/lib/libbsp/shared/src/uart-output-char.c", + "src/lib/libbsp/arm/shared/abort/simple_abort.c", + "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", + "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/tod.c", + "src/lib/libbsp/arm/shared/startup/bsp-start-memcpy.S", + "src/lib/libbsp/shared/src/irq-default-handler.c", + "src/lib/libbsp/arm/lpc32xx/misc/idle-thread.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + + +def nds(ctx): + source = [] + networking_source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/nds/start/start.S"]) + + networking_source += [ + "src/lib/libbsp/arm/nds/wifi/compat.c", + "src/lib/libbsp/arm/nds/wifi/wifi.c", + "src/lib/libbsp/arm/nds/dswifi/arm9/source/wifi_arm9.c", + "src/lib/libbsp/arm/nds/dswifi/common/source/spinlock.S", + ] + + source += [ + "src/lib/libbsp/arm/nds/block/block.c", + "src/lib/libbsp/arm/nds/clock/clock.c", + "src/lib/libbsp/arm/nds/console/console.c", + "src/lib/libbsp/arm/nds/fb/fb.c", + "src/lib/libbsp/arm/nds/irq/irq.c", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/disc.c", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_cf_common.c", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_dldi.S", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_efa2.c", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_fcsr.c", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_m3_common.c", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_m3cf.c", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_m3sd.c", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_mpcf.c", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_njsd.c", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_nmmc.c", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_sc_common.c", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_sccf.c", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_scsd.c", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_scsd_s.S", + "src/lib/libbsp/arm/nds/libfat/source/disc_io/io_sd_common.c", + "src/lib/libbsp/arm/nds/rtc/rtc.c", + "src/lib/libbsp/arm/nds/sound/sound.c", + "src/lib/libbsp/arm/nds/startup/bspreset.c", + "src/lib/libbsp/arm/nds/startup/bspstart.c", + "src/lib/libbsp/arm/nds/timer/timer.c", + "src/lib/libbsp/arm/nds/touchscreen/parser.c", + "src/lib/libbsp/arm/nds/touchscreen/reco.c", + "src/lib/libbsp/arm/nds/touchscreen/touchscreen.c", + "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/gnatinstallhandler.c", + "src/lib/libbsp/shared/tod.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/COS.S", + "src/lib/libbsp/arm/nds/libnds/source/arm9/SIN.S", + "src/lib/libbsp/arm/nds/libnds/source/arm9/TAN.S", + "src/lib/libbsp/arm/nds/libnds/source/arm9/boxtest.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/console.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/dcache.S", + "src/lib/libbsp/arm/nds/libnds/source/arm9/default_font.S", + "src/lib/libbsp/arm/nds/libnds/source/arm9/exceptionHandler.S", + "src/lib/libbsp/arm/nds/libnds/source/arm9/exceptions.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/gurumeditation.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/icache.S", + "src/lib/libbsp/arm/nds/libnds/source/arm9/image.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/initSystem.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/keys.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/ndsmotion.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/pcx.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/rumble.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/sound.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/system.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/touch.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/video.c", + "src/lib/libbsp/arm/nds/libnds/source/arm9/videoGL.c", + "src/lib/libbsp/arm/nds/libnds/source/common/biosCalls.S", + "src/lib/libbsp/arm/nds/libnds/source/common/card.c", + "src/lib/libbsp/arm/nds/libnds/source/common/gbfs.c", + "src/lib/libbsp/arm/nds/libnds/source/common/interruptDispatcher.S", + "src/lib/libbsp/arm/nds/libnds/source/common/interrupts.c", + ] + + # + # ARM7 coprocessor, disabled for now. + # + arm7_defines = ['ARM7'] + + arm7_source = [ + "src/lib/libbsp/arm/nds/libnds/source/arm7/audio.c", + "src/lib/libbsp/arm/nds/libnds/source/arm7/clock.c", + "src/lib/libbsp/arm/nds/libnds/source/arm7/microphone.c", + "src/lib/libbsp/arm/nds/libnds/source/arm7/spi.c", + "src/lib/libbsp/arm/nds/libnds/source/arm7/touch.c", + "src/lib/libbsp/arm/nds/libnds/source/arm7/userSettings.c", + "src/lib/libbsp/arm/nds/libnds/source/common/biosCalls.S", + "src/lib/libbsp/arm/nds/libnds/source/common/card.c", + "src/lib/libbsp/arm/nds/libnds/source/common/gbfs.c", + "src/lib/libbsp/arm/nds/libnds/source/common/interruptDispatcher.S", + "src/lib/libbsp/arm/nds/libnds/source/common/interrupts.c", + ] + + arm7_networking_source = [ + "src/lib/libbsp/arm/nds/dswifi/arm7/source/wifi_arm7.c", + "src/lib/libbsp/arm/nds/dswifi/common/source/spinlock.S", + ] + + includes = ["%s/include/libnds" % ctx.srcnode.abspath(), + "%s/include/nds" % ctx.srcnode.abspath(), + "%s/c/src/lib/libbsp/arm/nds/include" % ctx.srcnode.abspath(), + "%s/c/src/lib/libbsp/arm/nds/libnds/include" % ctx.srcnode.abspath(), + "%s/c/src/lib/libbsp/arm/nds/libfat/source/disc_io" % ctx.srcnode.abspath()] + + ctx.bsp.networking( + networking_source, + features="src_include_rtems src_include", + includes=includes + [ + "%s/c/src/lib/libbsp/arm/nds/dswifi/include" % ctx.srcnode.abspath(), + "%s/c/src/lib/libbsp/arm/nds/dswifi/common/source" % ctx.srcnode.abspath() + ], + defines=["ARM9", "__INSIDE_RTEMS_BSD_TCPIP_STACK__", "_KERNEL", "__BSD_VISIBLE"] + ) + + ctx.bsp.source( + source, + features="src_include", + includes=includes, + defines=['ARM9'] + ) + + +def raspberrypi(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/shared/start/start.S"]) + + source += [ + "src/lib/libcpu/shared/src/cache_manager.c", + "src/lib/libbsp/arm/raspberrypi/clock/clockdrv.c", + "src/lib/libbsp/arm/raspberrypi/console/console-config.c", + "src/lib/libbsp/arm/raspberrypi/console/usart.c", + "src/lib/libbsp/arm/raspberrypi/irq/irq.c", + "src/lib/libbsp/arm/raspberrypi/misc/timer.c", + "src/lib/libbsp/arm/raspberrypi/startup/bspreset.c", + "src/lib/libbsp/arm/raspberrypi/startup/bspstart.c", + "src/lib/libbsp/arm/raspberrypi/startup/bspstarthooks.c", + "src/lib/libbsp/arm/shared/abort/simple_abort.c", + "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/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", + "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", + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp src_include_libcpu" + ) + + +def realview_pbx_a9_qemu(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/shared/start/start.S"]) + + source += [ + "src/lib/libbsp/arm/realview-pbx-a9/console/console-config.c", + "src/lib/libbsp/arm/realview-pbx-a9/startup/bspreset.c", + "src/lib/libbsp/arm/realview-pbx-a9/startup/bspstart.c", + "src/lib/libbsp/arm/realview-pbx-a9/startup/bspstarthooks.c", + "src/lib/libbsp/arm/shared/abort/simple_abort.c", + "src/lib/libbsp/arm/shared/arm-a9mpcore-clock-config.c", + "src/lib/libbsp/arm/shared/arm-cp15-set-exception-handler.c", + "src/lib/libbsp/arm/shared/arm-cp15-set-ttb-entries.c", + "src/lib/libbsp/arm/shared/arm-gic-irq.c", + "src/lib/libbsp/arm/shared/arm-pl011.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/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 src_include_libcpu" + ) + + 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 rtl22xx_shared(ctx): + + libcpu_lpc22xx_clock(ctx) + libcpu_lpc22xx_timer(ctx) + libcpu_lpc22xx_irq(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/rtl22xx/start/start.S"]) + + networking_source = [ + "src/lib/libbsp/arm/rtl22xx/network/network.c", + ] + + networking_defines = ["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + + ctx.bsp.networking( + networking_source, + features="src_include", + defines=networking_defines + ) + + source += [ + "src/lib/libbsp/arm/rtl22xx/console/uart.c", + "src/lib/libbsp/arm/rtl22xx/startup/bspreset.c", + "src/lib/libbsp/arm/rtl22xx/startup/bspstart.c", + "src/lib/libbsp/arm/shared/abort/simple_abort.c", + "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/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", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.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/irq-default-handler.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + + +def smdk2410(ctx): + + libcpu_shared_arm920(ctx) + libcpu_s3c24xx_clock(ctx) + libcpu_s3c24xx_timer(ctx) + libcpu_s3c24xx_irq(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/gp32/start/start.S"]) + + source += [ + "src/lib/libbsp/arm/gp32/console/uart.c", + "src/lib/libbsp/arm/gp32/smc/smc.c", + "src/lib/libbsp/arm/gp32/startup/bspstart.c", + "src/lib/libbsp/arm/shared/abort/abort.c", + "src/lib/libbsp/arm/smdk2410/startup/bspreset.c", + "src/lib/libbsp/arm/smdk2410/startup/memmap.c", + "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/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", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.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/arm/gp32/startup/bspidle.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + +def stm32f4(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/shared/start/start.S"]) + + source += [ + "src/lib/libbsp/arm/shared/armv7m/clock/armv7m-clock-config.c", + "src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq-dispatch.c", + "src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq.c", + "src/lib/libbsp/arm/shared/startup/bsp-start-memcpy.S", + "src/lib/libbsp/arm/stm32f4/console/console-config.c", + "src/lib/libbsp/arm/stm32f4/console/usart.c", + "src/lib/libbsp/arm/stm32f4/startup/bspreset.c", + "src/lib/libbsp/arm/stm32f4/startup/bspstart.c", + "src/lib/libbsp/arm/stm32f4/startup/bspstarthook.c", + "src/lib/libbsp/arm/stm32f4/startup/io.c", + "src/lib/libbsp/arm/stm32f4/startup/rcc.c", + "src/lib/libbsp/arm/stm32f4/startup/start-config-io.c", + "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/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 src_include_libcpu" + ) + + 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 xilinx_zynq_a9_qemu(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/arm/shared/start/start.S"]) + + source = [ + "src/lib/libbsp/arm/shared/abort/simple_abort.c", + "src/lib/libbsp/arm/shared/arm-a9mpcore-clock-config.c", + "src/lib/libbsp/arm/shared/arm-cp15-set-exception-handler.c", + "src/lib/libbsp/arm/shared/arm-cp15-set-ttb-entries.c", + "src/lib/libbsp/arm/shared/arm-gic-irq.c", + "src/lib/libbsp/arm/shared/startup/bsp-start-memcpy.S", + "src/lib/libbsp/arm/xilinx-zynq/console/console-config.c", + "src/lib/libbsp/arm/xilinx-zynq/console/zynq-uart.c", + "src/lib/libbsp/arm/xilinx-zynq/startup/bspreset.c", + "src/lib/libbsp/arm/xilinx-zynq/startup/bspstart.c", + "src/lib/libbsp/arm/xilinx-zynq/startup/bspstarthooks.c", + "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/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 src_include_libcpu" + ) + + 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 = [] + + + source += [ +#XXX: insert shared files here. + ] + + + ctx.bsp.source( + source, + features="src_include" + ) + + + map = { + "csb336": csb336, + "csb337": csb337_shared, + "csb637": csb337_shared, + "kit637_v6": csb337_shared, + "edb7312": edb7312, + "gba": gba, + "arm1136jfs": gdbarmsim_shared, + "arm1136js": gdbarmsim_shared, + "arm7tdmi": gdbarmsim_shared, + "arm920": gdbarmsim_shared, + "armcortexa9": gdbarmsim_shared, + "gp32": gp32, + "gumstix": gumstix, + "lm3s3749": lm3s_shared, + "lm3s6965": lm3s_shared, + "lm3s6965_qemu": lm3s_shared, + "lpc17xx_ea_ram": lpc24xx_shared, + "lpc17xx_ea_rom_int": lpc24xx_shared, + "lpc17xx_plx800_ram": lpc24xx_shared, + "lpc17xx_plx800_rom_int": lpc24xx_shared, + "lpc2362": lpc24xx_shared, + "lpc23xx_tli800": lpc24xx_shared, + "lpc24xx_ea": lpc24xx_shared, + "lpc24xx_ncs_ram": lpc24xx_shared, + "lpc24xx_ncs_rom_ext": lpc24xx_shared, + "lpc24xx_ncs_rom_int": lpc24xx_shared, + "lpc24xx_plx800_ram": lpc24xx_shared, + "lpc24xx_plx800_rom_int": lpc24xx_shared, + "lpc32xx_mzx": lpc32xx_shared, + "lpc32xx_mzx_stage_1": lpc32xx_shared, + "lpc32xx_mzx_stage_2": lpc32xx_shared, + "lpc32xx_phycore": lpc32xx_shared, + "nds": nds, + "raspberrypi": raspberrypi, + "realview_pbx_a9_qemu": realview_pbx_a9_qemu, + "rtl22xx": rtl22xx_shared, + "rtl22xx_t": rtl22xx_shared, + "smdk2410": smdk2410, + "stm32f4": stm32f4, + "xilinx_zynq_a9_qemu": xilinx_zynq_a9_qemu, + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_arm(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_avr b/c/wscript_avr new file mode 100644 index 0000000000..83420bb148 --- /dev/null +++ b/c/wscript_avr @@ -0,0 +1,53 @@ +def avrtest(ctx): + source = [] + + ctx.bsp.start( + ["src/lib/libbsp/avr/avrtest/start/start.S"], + defines=["__AVR_AT94K__"] # XXX: hack, this needs to be defined in config.cfg + ) + + source += [ + "src/lib/libbsp/avr/avrtest/console/console-io.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def build(ctx): + source = [] + + source += [ + "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/bspstart.c", + "src/lib/libbsp/shared/clock_driver_simidle.c", + "src/lib/libbsp/shared/console-polled.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/timerstub.c" + ] + + + ctx.bsp.source( + source, + features="src_include" + ) + + + map = { + "avrtest": avrtest + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_avr(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_bfin b/c/wscript_bfin new file mode 100644 index 0000000000..9b9575319c --- /dev/null +++ b/c/wscript_bfin @@ -0,0 +1,246 @@ +# +# Blackfin Board Support Packages. +# + +# +# Blackfin libcpu support. See the PowerPC BSP file for details. +# + +def libcpu_cache(ctx): + source = [ + "src/lib/libcpu/bfin/cache/cache.c", + "src/lib/libcpu/shared/src/cache_aligned_malloc.c", + "src/lib/libcpu/shared/src/cache_manager.c" + ] + + ctx.bsp.source( + source, + includes=["%s/c/src/lib/libcpu/bfin/cache/" % ctx.srcnode.abspath()], + features="src_include" + ) + +def libcpu_mmu(ctx): + source = [ + "src/lib/libcpu/bfin/mmu/mmu.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_libcpu" + ) + +def libcpu_interrupt(ctx): + source = [ + "src/lib/libcpu/bfin/interrupt/interrupt.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_libcpu" + ) + +def libcpu_bf52x_interrupt(ctx): + source = [ + "src/lib/libcpu/bfin/bf52x/interrupt/interrupt.c" + ] + + ctx.bsp.source( + source, + features="src_include_bsp src_include" + ) + +def libcpu_clock(ctx): + source = [ + "src/lib/libcpu/bfin/clock/clock.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_rtc(ctx): + source = [ + "src/lib/libcpu/bfin/clock/rtc.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_uart(ctx): + source = [ + "src/lib/libcpu/bfin/serial/uart.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_libcpu" + ) + +def libcpu_sport(ctx): + source = [ + "src/lib/libcpu/bfin/serial/sport.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_spi(ctx): + source = [ + "src/lib/libcpu/bfin/serial/spi.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_twi(ctx): + source = [ + "src/lib/libcpu/bfin/serial/twi" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_timer(ctx): + source = [ + "src/lib/libcpu/bfin/timer/timer.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_ethernet(ctx): + source = [ + "src/lib/libcpu/bfin/network/ethernet.c" + ] + + ctx.bsp.networking( + source, + features="src_include", + defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + ) + + + +def bf537stamp(ctx): + + libcpu_mmu(ctx) + libcpu_interrupt(ctx) + libcpu_cache(ctx) + libcpu_uart(ctx) + libcpu_clock(ctx) + libcpu_rtc(ctx) + libcpu_timer(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/bfin/bf537Stamp/start/start.S"]) + + source += [ + "src/lib/libbsp/bfin/bf537Stamp/console/console.c", + "src/lib/libbsp/bfin/bf537Stamp/network/networkconfig.c", + "src/lib/libbsp/bfin/bf537Stamp/startup/bspstart.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + + +def ezkit533(ctx): + + libcpu_mmu(ctx) + libcpu_interrupt(ctx) + libcpu_cache(ctx) + libcpu_uart(ctx) + libcpu_clock(ctx) + libcpu_rtc(ctx) + libcpu_timer(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/bfin/shared/start/start.S"]) + + source += [ + "src/lib/libbsp/bfin/eZKit533/console/console-io.c", + "src/lib/libbsp/bfin/eZKit533/startup/bspstart.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def tll6527m(ctx): + + libcpu_mmu(ctx) + libcpu_bf52x_interrupt(ctx) + libcpu_cache(ctx) + libcpu_uart(ctx) + libcpu_clock(ctx) + libcpu_rtc(ctx) + libcpu_timer(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/bfin/shared/start/start.S"]) + + source += [ + "src/lib/libbsp/bfin/TLL6527M/console/console.c", + "src/lib/libbsp/bfin/TLL6527M/startup/bspstart.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def build(ctx): + source = [] + + + source += [ + "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/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/setvec.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + map = { + "bf537stamp": bf537stamp, + "ezkit533": ezkit533, + "tll6527m": tll6527m + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_bfin(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_h8300 b/c/wscript_h8300 new file mode 100644 index 0000000000..8a28134b93 --- /dev/null +++ b/c/wscript_h8300 @@ -0,0 +1,53 @@ +def h8sim_shared(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/h8300/h8sim/start/start.S"]) + + source += [ + "src/lib/libbsp/h8300/h8sim/console/console-io.c", + "src/lib/libbsp/h8300/h8sim/console/syscalls.S", + "src/lib/libbsp/h8300/h8sim/startup/__main.c", + "src/lib/libbsp/h8300/h8sim/startup/h8bdinstallirq.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def build(ctx): + source = [] + + source += [ + "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/bspstart.c", + "src/lib/libbsp/shared/clock_driver_simidle.c", + "src/lib/libbsp/shared/console-polled.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/timerstub.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + map = { + "h8sim": h8sim_shared, + "h8sxsim": h8sim_shared + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_h8300(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_i386 b/c/wscript_i386 new file mode 100644 index 0000000000..3f26a8149c --- /dev/null +++ b/c/wscript_i386 @@ -0,0 +1,168 @@ +# +# i386 Board Support Packages. +# + +# +# i386 libcpu support. See the PowerPC BSP file for details. +# + +def libcpu_cache(ctx): + source = [ + "src/lib/libcpu/i386/cache.c", + "src/lib/libcpu/shared/src/cache_aligned_malloc.c", + "src/lib/libcpu/shared/src/cache_manager.c" + ] + + ctx.bsp.source( + source, + includes=["%s/c/src/lib/libcpu/i386/" % ctx.srcnode.abspath()], + features="src_include" + ) + +def libcpu_score(ctx): + source = [ + "src/lib/libcpu/i386/displayCpu.c", + "src/lib/libcpu/i386/cpuModel.S", + "src/lib/libcpu/i386/idtr.S" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_page(ctx): + source = [ + "src/lib/libcpu/i386/page.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def pc386_shared(ctx): + libcpu_cache(ctx) + libcpu_page(ctx) + libcpu_score(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/i386/pc386/start/start.S"]) + + source += [ + "src/lib/libbsp/i386/pc386/clock/ckinit.c", + "src/lib/libbsp/i386/pc386/clock/todcfg.c", + "src/lib/libbsp/shared/console.c", + "src/lib/libbsp/shared/console_read.c", + "src/lib/libbsp/shared/console_select.c", + "src/lib/libbsp/shared/console_write.c", + "src/lib/libbsp/shared/console_control.c", + "/src/lib/libbsp/i386/pc386/console/conscfg.c", + "src/lib/libbsp/i386/pc386/console/defkeymap.c", + "src/lib/libbsp/i386/pc386/console/fb_vga.c", + "src/lib/libbsp/i386/pc386/console/inch.c", + "src/lib/libbsp/i386/pc386/console/kbd_parser.c", + "src/lib/libbsp/i386/pc386/console/keyboard.c", + "src/lib/libbsp/i386/pc386/console/outch.c", + "src/lib/libbsp/i386/pc386/console/pc_keyb.c", + "src/lib/libbsp/i386/pc386/console/ps2_mouse.c", + "src/lib/libbsp/i386/pc386/console/serial_mouse_config.c", + "src/lib/libbsp/i386/pc386/console/vgainit.c", + "src/lib/libbsp/i386/pc386/console/videoAsm.S", + "src/lib/libbsp/i386/pc386/console/vt.c", + "src/lib/libbsp/i386/pc386/ide/ide.c", + "src/lib/libbsp/i386/pc386/ide/idecfg.c", + "src/lib/libbsp/i386/pc386/startup/bspcmdline.c", + "src/lib/libbsp/i386/pc386/startup/bspgetworkarea.c", + "src/lib/libbsp/i386/pc386/startup/bspreset.c", + "src/lib/libbsp/i386/pc386/startup/bspstart.c", + "src/lib/libbsp/i386/pc386/startup/ldsegs.S", + "src/lib/libbsp/i386/pc386/timer/timer.c", + "src/lib/libbsp/i386/pc386/timer/timerisr.S", + ] + ctx.bsp.source( + source, + features="src_include src_include_bsp src_include_rtems" + ) + + source_networking = [ + "src/lib/libbsp/i386/pc386/ne2000/ne2000.c", + "src/lib/libbsp/i386/pc386/wd8003/wd8003.c", + "src/lib/libbsp/i386/pc386/3c509/3c509.c", + "src/lib/libbsp/i386/pc386/3c509/elink.c" + ] + ctx.bsp.networking( + source_networking, + features="src_include", + defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + ) + + + + # XXX: appstart needs to be ported see c/src/lib/libbsp/i386/pc386/Makefile.am + + +def build(ctx): + source = [] + + source += [ + "src/lib/libbsp/i386/shared/comm/gdb_glue.c", + "src/lib/libbsp/i386/shared/comm/i386-stub-glue.c", + "src/lib/libbsp/i386/shared/comm/i386-stub.c", + "src/lib/libbsp/i386/shared/comm/tty_drv.c", + "src/lib/libbsp/i386/shared/comm/uart.c", + "src/lib/libbsp/i386/shared/irq/idt.c", + "src/lib/libbsp/i386/shared/irq/irq.c", + "src/lib/libbsp/i386/shared/irq/irq_asm.S", + "src/lib/libbsp/i386/shared/irq/irq_init.c", + "src/lib/libbsp/i386/shared/pci/pcibios.c", + "src/lib/libbsp/shared/bootcard.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bspinit.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/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.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/irq-generic.c", + "src/lib/libbsp/shared/tod.c", + "src/lib/libbsp/shared/src/irq-default-handler.c", + "src/lib/libbsp/i386/pc386/console/printk_support.c", + "src/lib/libbsp/i386/pc386/console/vgacons.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + + source_smp = [ + "src/lib/libbsp/i386/shared/smp/getcpuid.c", + "src/lib/libbsp/i386/shared/smp/smp-imps.c" + ] + ctx.bsp.smp( + source, + features="src_include" + ) + + + map = { + "pc386": pc386_shared, + "pc486": pc386_shared, + "pc586": pc386_shared, + "pc586-sse": pc386_shared, + "pc686": pc386_shared, + "pcp4": pc386_shared + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_i386(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_lm32 b/c/wscript_lm32 new file mode 100644 index 0000000000..55f6dbf60d --- /dev/null +++ b/c/wscript_lm32 @@ -0,0 +1,103 @@ +def lm32_evr(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/lm32/shared/start/start.S"]) + + source_networking = [ + "src/lib/libbsp/lm32/shared/tsmac/tsmac.c", + ] + ctx.bsp.networking( + source_networking, + features="src_include", + defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + ) + + source += [ + "src/lib/libbsp/lm32/shared/clock/ckinit.c", + "src/lib/libbsp/lm32/shared/console/console.c", + "src/lib/libbsp/lm32/shared/console/uart.c", + "src/lib/libbsp/lm32/shared/startup/bspstart.c", + "src/lib/libbsp/lm32/shared/timer/timer.c", + "src/lib/libbsp/shared/setvec.c", + "src/lib/libbsp/shared/bspreset.c", + "src/lib/libbsp/shared/bspclean.c", + ] + ctx.bsp.source( + source, + features="src_include" + ) + + + +def milkymist(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/lm32/shared/start/start.S"]) + + source_networking = [ + "src/lib/libbsp/lm32/shared/milkymist_networking/network.c", + ] + ctx.bsp.networking( + source_networking, + features="src_include", + defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + ) + + source += [ + "src/lib/libbsp/lm32/milkymist/startup/bspclean.c", + "src/lib/libbsp/lm32/shared/irq/irq.c", + "src/lib/libbsp/lm32/shared/milkymist_ac97/ac97.c", + "src/lib/libbsp/lm32/shared/milkymist_buttons/buttons.c", + "src/lib/libbsp/lm32/shared/milkymist_dmx/dmx.c", + "src/lib/libbsp/lm32/shared/milkymist_flash/flash.c", + "src/lib/libbsp/lm32/shared/milkymist_gpio/gpio.c", + "src/lib/libbsp/lm32/shared/milkymist_ir/ir.c", + "src/lib/libbsp/lm32/shared/milkymist_clock/ckinit.c", + "src/lib/libbsp/lm32/shared/milkymist_console/console.c", + "src/lib/libbsp/lm32/shared/milkymist_console/uart.c", + "src/lib/libbsp/lm32/shared/milkymist_framebuffer/framebuffer.c", + "src/lib/libbsp/lm32/shared/milkymist_memcard/memcard.c", + "src/lib/libbsp/lm32/shared/milkymist_midi/midi.c", + "src/lib/libbsp/lm32/shared/milkymist_pfpu/pfpu.c", + "src/lib/libbsp/lm32/shared/milkymist_timer/timer.c", + "src/lib/libbsp/lm32/shared/milkymist_tmu/tmu.c", + "src/lib/libbsp/lm32/shared/milkymist_usbinput/usbinput.c", + "src/lib/libbsp/lm32/shared/milkymist_versions/versions.c", + "src/lib/libbsp/lm32/shared/milkymist_video/video.c", + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + + +def build(ctx): + source = [] + + source += [ + "src/lib/libbsp/lm32/shared/startup/bspstart.c", + "src/lib/libbsp/shared/bootcard.c", + "src/lib/libbsp/shared/bspgetworkarea.c", + "src/lib/libbsp/shared/bsplibc.c", + "src/lib/libbsp/shared/bsppost.c", + "src/lib/libbsp/shared/bsppretaskinghook.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + map = { + "lm32_evr": lm32_evr, + "milkymist": milkymist + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_lm32(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_m32c b/c/wscript_m32c new file mode 100644 index 0000000000..a5fd48e232 --- /dev/null +++ b/c/wscript_m32c @@ -0,0 +1,50 @@ +def m32cbsp(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/m32c/m32cbsp/start/start.S"]) + + source += [ + "src/lib/libbsp/m32c/m32cbsp/console/console-io.c", + "src/lib/libbsp/m32c/m32cbsp/console/syscalls.S", + "src/lib/libbsp/m32c/m32cbsp/startup/bspstart.c", + "src/lib/libbsp/m32c/m32cbsp/startup/crtn.S", + "src/lib/libbsp/m32c/m32cbsp/timer/timer.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def build(ctx): + source = [] + + source += [ + "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/clock_driver_simidle.c", + "src/lib/libbsp/shared/console-polled.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + map = { + "m32csim": m32cbsp + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_m32c(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_m32r b/c/wscript_m32r new file mode 100644 index 0000000000..6155972137 --- /dev/null +++ b/c/wscript_m32r @@ -0,0 +1,50 @@ +def m32rsim(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/m32r/m32rsim/start/start.S"]) + + source += [ + "src/lib/libbsp/m32r/m32rsim/console/console-io.c", + "src/lib/libbsp/m32r/m32rsim/console/trap0.S", + "src/lib/libbsp/m32r/m32rsim/startup/bspreset.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def build(ctx): + source = [] + + source += [ + "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/bspstart.c", + "src/lib/libbsp/shared/clock_driver_simidle.c", + "src/lib/libbsp/shared/console-polled.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/timerstub.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + map = { + "m32rsim": m32rsim + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_m32r(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_m68k b/c/wscript_m68k new file mode 100644 index 0000000000..75c5d86f0a --- /dev/null +++ b/c/wscript_m68k @@ -0,0 +1,1126 @@ +# +# M68K libcpu support. See the PowerPC BSP file for details. +# +def libcpu_cache(ctx): + source = [ + "src/lib/libcpu/m68k/shared/cache/cache.c", + "src/lib/libcpu/shared/src/cache_aligned_malloc.c", + "src/lib/libcpu/shared/src/cache_manager.c" + ] + + ctx.bsp.source( + source, + includes=["%s/c/src/lib/libcpu/m68k/shared/cache" % ctx.srcnode.abspath()], + features="src_include src_include_libcpu" + ) + +def libcpu_misc(ctx): + source = [ + "src/lib/libcpu/m68k/shared/misc/m68kidle.c", + "src/lib/libcpu/m68k/shared/misc/memProbe.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_m68040_fpsp(ctx): + # need logic to control this based on the bsp option. + source = [ + "src/lib/libcpu/m68k/m68040/fpsp/rtems_fpsp.c", + "src/lib/libcpu/m68k/m68040/fpsp/bindec.S", + "src/lib/libcpu/m68k/m68040/fpsp/binstr.S", + "src/lib/libcpu/m68k/m68040/fpsp/bugfix.S", + "src/lib/libcpu/m68k/m68040/fpsp/decbin.S", + "src/lib/libcpu/m68k/m68040/fpsp/do_func.S", + "src/lib/libcpu/m68k/m68040/fpsp/gen_except.S", + "src/lib/libcpu/m68k/m68040/fpsp/get_op.S", + "src/lib/libcpu/m68k/m68040/fpsp/kernel_ex.S", + "src/lib/libcpu/m68k/m68040/fpsp/res_func.S", + "src/lib/libcpu/m68k/m68040/fpsp/round.S", + "src/lib/libcpu/m68k/m68040/fpsp/rtems_skel.S", + "src/lib/libcpu/m68k/m68040/fpsp/sacos.S", + "src/lib/libcpu/m68k/m68040/fpsp/sasin.S", + "src/lib/libcpu/m68k/m68040/fpsp/satan.S", + "src/lib/libcpu/m68k/m68040/fpsp/satanh.S", + "src/lib/libcpu/m68k/m68040/fpsp/scale.S", + "src/lib/libcpu/m68k/m68040/fpsp/scosh.S", + "src/lib/libcpu/m68k/m68040/fpsp/setox.S", + "src/lib/libcpu/m68k/m68040/fpsp/sgetem.S", + "src/lib/libcpu/m68k/m68040/fpsp/sint.S", + "src/lib/libcpu/m68k/m68040/fpsp/slog2.S", + "src/lib/libcpu/m68k/m68040/fpsp/slogn.S", + "src/lib/libcpu/m68k/m68040/fpsp/smovecr.S", + "src/lib/libcpu/m68k/m68040/fpsp/srem_mod.S", + "src/lib/libcpu/m68k/m68040/fpsp/ssin.S", + "src/lib/libcpu/m68k/m68040/fpsp/ssinh.S", + "src/lib/libcpu/m68k/m68040/fpsp/stan.S", + "src/lib/libcpu/m68k/m68040/fpsp/stanh.S", + "src/lib/libcpu/m68k/m68040/fpsp/sto_res.S", + "src/lib/libcpu/m68k/m68040/fpsp/stwotox.S", + "src/lib/libcpu/m68k/m68040/fpsp/tbldo.S", + "src/lib/libcpu/m68k/m68040/fpsp/util.S", + "src/lib/libcpu/m68k/m68040/fpsp/x_bsun.S", + "src/lib/libcpu/m68k/m68040/fpsp/x_fline.S", + "src/lib/libcpu/m68k/m68040/fpsp/x_operr.S", + "src/lib/libcpu/m68k/m68040/fpsp/x_ovfl.S", + "src/lib/libcpu/m68k/m68040/fpsp/x_snan.S", + "src/lib/libcpu/m68k/m68040/fpsp/x_store.S", + "src/lib/libcpu/m68k/m68040/fpsp/x_unfl.S", + "src/lib/libcpu/m68k/m68040/fpsp/x_unimp.S", + "src/lib/libcpu/m68k/m68040/fpsp/x_unsupp.S" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mcf5206_clock(ctx): + source = [ + "src/lib/libcpu/m68k/mcf5206/clock/ckinit.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mcf5206_mcfuart(ctx): + source = [ + "src/lib/libcpu/m68k/mcf5206/console/mcfuart.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mcf5206_mbus(ctx): + source = [ + "src/lib/libcpu/m68k/mcf5206/mbus/mcfmbus.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mcf5206_timer(ctx): + source = [ + "src/lib/libcpu/m68k/mcf5206/timer/timer.c", + "src/lib/libcpu/m68k/mcf5206/timer/timerisr.S" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mcf5223x_cachepd(ctx): + source = [ + "src/lib/libcpu/m68k/mcf5223x/cache/cachepd.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mcf5235_cachepd(ctx): + source = [ + "src/lib/libcpu/m68k/mcf5235/cache/cachepd.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mcf532x_cachepd(ctx): + source = [ + "src/lib/libcpu/m68k/mcf532x/cache/cachepd.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mcf5272_clock(ctx): + source = [ + "src/lib/libcpu/m68k/mcf5272/clock/ckinit.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mcf5272_timer(ctx): + source = [ + "src/lib/libcpu/m68k/mcf5272/timer/timer.c", + "src/lib/libcpu/m68k/mcf5272/timer/timerisr.S" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mcf548x_mcdma(ctx): + source = [ + "src/lib/libcpu/m68k/mcf548x/mcdma/MCD_dmaApi.c", + "src/lib/libcpu/m68k/mcf548x/mcdma/MCD_tasksInit.c", + "src/lib/libcpu/m68k/mcf548x/mcdma/MCD_tasks.c", + "src/lib/libcpu/m68k/mcf548x/mcdma/mcdma_glue.c" + ] + + ctx.bsp.source( + source, + includes=["%s/include/mcf548x" % ctx.srcnode.abspath()], + features="src_include" + ) + +def av5282(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/av5282/start/start.S"]) + + networking_source = [ + "src/lib/libbsp/m68k/av5282/network/network.c", + ] + + networking_defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + + ctx.bsp.networking( + networking_source, + defines=networking_defines, + features="src_include" + ) + + source += [ + "src/lib/libbsp/m68k/av5282/clock/clock.c", + "src/lib/libbsp/m68k/av5282/console/console.c", + "src/lib/libbsp/m68k/av5282/startup/bspstart.c", + "src/lib/libbsp/m68k/av5282/startup/init5282.c", + "src/lib/libbsp/m68k/av5282/timer/timer.c", + "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/bspreset_loop.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def csb360(ctx): + + libcpu_misc(ctx) + libcpu_mcf5272_clock(ctx) + libcpu_mcf5272_timer(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/csb360/start/start.S"]) + + source += [ + "src/lib/libbsp/m68k/csb360/console/console-io.c", + "src/lib/libbsp/m68k/csb360/startup/init5272.c", + "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/bspstart.c", + "src/lib/libbsp/shared/console-polled.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def gen68302(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/gen68302/start/start.S"]) + + networking_source = [ + "src/lib/libbsp/m68k/gen68302/network/network.c", + ] + + networking_defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + + ctx.bsp.networking( + networking_source, + defines=networking_defines, + features="src_include" + ) + + source += [ + "src/lib/libbsp/m68k/gen68302/clock/ckinit.c", + "src/lib/libbsp/m68k/gen68302/console/console.c", + "src/lib/libbsp/m68k/gen68302/timer/timer.c", + "src/lib/libbsp/m68k/gen68302/timer/timerisr.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/bspstart.c", + "src/lib/libbsp/shared/dummy_printk_support.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def gen68340(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/gen68340/start/start.S"]) + + source += [ + "src/lib/libbsp/m68k/gen68340/clock/ckinit.c", + "src/lib/libbsp/m68k/gen68340/console/console.c", + "src/lib/libbsp/m68k/gen68340/console/m340uart.c", + "src/lib/libbsp/m68k/gen68340/startup/dumpanic.c", + "src/lib/libbsp/m68k/gen68340/startup/init68340.c", + "src/lib/libbsp/m68k/gen68340/timer/timer.c", + "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/bspstart.c", + "src/lib/libbsp/shared/dummy_printk_support.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def gen68360_shared(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/gen68360/start/start.S"]) + + networking_source = [ + "src/lib/libbsp/m68k/gen68360/network/network.c", + ] + + networking_defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + + ctx.bsp.networking( + networking_source, + defines=networking_defines, + features="src_include" + ) + + source += [ + "src/lib/libbsp/m68k/gen68360/clock/clock.c", + "src/lib/libbsp/m68k/gen68360/console/console.c", + "src/lib/libbsp/m68k/gen68360/startup/alloc360.c", + "src/lib/libbsp/m68k/gen68360/startup/init68360.c", + "src/lib/libbsp/m68k/gen68360/timer/timer.c", + "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/bspstart.c", + "src/lib/libbsp/shared/dummy_printk_support.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def genmcf548x_shared(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + libcpu_mcf548x_mcdma(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/genmcf548x/start/start.S"]) + + networking_source = [ + "src/lib/libbsp/m68k/genmcf548x/network/network.c", + ] + + networking_defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + + ctx.bsp.networking( + networking_source, + defines=networking_defines, + features="src_include" + ) + + source += [ + "src/lib/libbsp/m68k/genmcf548x/clock/clock.c", + "src/lib/libbsp/m68k/genmcf548x/console/console.c", + "src/lib/libbsp/m68k/genmcf548x/startup/bspstart.c", + "src/lib/libbsp/m68k/genmcf548x/startup/init548x.c", + "src/lib/libbsp/m68k/genmcf548x/timer/timer.c", + "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/bspreset_loop.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def idp(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/shared/start.S"]) + + source += [ + "src/lib/libbsp/m68k/idp/clock/ckinit.c", + "src/lib/libbsp/m68k/idp/console/console.c", + "src/lib/libbsp/m68k/idp/console/duart.c", + "src/lib/libbsp/m68k/idp/console/leds.c", + "src/lib/libbsp/m68k/idp/console/mc68ec.c", + "src/lib/libbsp/m68k/idp/startup/bspstart.c", + "src/lib/libbsp/m68k/idp/timer/timer.c", + "src/lib/libbsp/m68k/idp/timer/timerisr.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/dummy_printk_support.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def mcf5206elite(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + libcpu_mcf5206_clock(ctx) + libcpu_mcf5206_mcfuart(ctx) + libcpu_mcf5206_timer(ctx) + libcpu_mcf5206_mbus(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/mcf5206elite/start/start.S"]) + + source += [ + "src/lib/libbsp/m68k/mcf5206elite/console/console.c", + "src/lib/libbsp/m68k/mcf5206elite/i2c/i2c.c", + "src/lib/libbsp/m68k/mcf5206elite/i2c/i2cdrv.c", + "src/lib/libbsp/m68k/mcf5206elite/nvram/nvram.c", + "src/lib/libbsp/m68k/mcf5206elite/startup/init5206e.c", + "src/lib/libbsp/m68k/mcf5206elite/tod/ds1307.c", + "src/lib/libbsp/m68k/mcf5206elite/tod/todcfg.c", + "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/bspstart.c", + "src/lib/libbsp/shared/dummy_printk_support.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/tod.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def mcf52235(ctx): + + libcpu_cache(ctx) + libcpu_mcf5223x_cachepd(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/mcf52235/start/start.S"]) + + source += [ + "src/lib/libbsp/m68k/mcf52235/clock/clock.c", + "src/lib/libbsp/m68k/mcf52235/console/console.c", + "src/lib/libbsp/m68k/mcf52235/console/debugio.c", + "src/lib/libbsp/m68k/mcf52235/startup/bspgetcpuclockspeed.c", + "src/lib/libbsp/m68k/mcf52235/startup/cfinit.c", + "src/lib/libbsp/m68k/mcf52235/startup/init52235.c", + "src/lib/libbsp/m68k/mcf52235/timer/timer.c", + "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/bspreset_loop.c", + "src/lib/libbsp/shared/bspstart.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def mcf5225x(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/mcf5225x/start/start.S"]) + + source += [ + "src/lib/libbsp/m68k/mcf5225x/clock/clock.c", + "src/lib/libbsp/m68k/mcf5225x/console/console.c", + "src/lib/libbsp/m68k/mcf5225x/console/debugio.c", + "src/lib/libbsp/m68k/mcf5225x/startup/bspstart.c", + "src/lib/libbsp/m68k/mcf5225x/startup/init5225x.c", + "src/lib/libbsp/m68k/mcf5225x/timer/timer.c", + "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/bspreset_loop.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def mcf5235(ctx): + + libcpu_cache(ctx) + libcpu_mcf5235_cachepd(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/mcf5235/start/start.S"]) + + networking_source = [ + "src/lib/libbsp/m68k/mcf5235/network/network.c", + ] + + networking_defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + + ctx.bsp.networking( + networking_source, + defines=networking_defines, + features="src_include" + ) + + source += [ + "src/lib/libbsp/m68k/mcf5235/clock/clock.c", + "src/lib/libbsp/m68k/mcf5235/console/console.c", + "src/lib/libbsp/m68k/mcf5235/startup/bspgetcpuclockspeed.c", + "src/lib/libbsp/m68k/mcf5235/startup/bspstart.c", + "src/lib/libbsp/m68k/mcf5235/startup/init5235.c", + "src/lib/libbsp/m68k/mcf5235/timer/timer.c", + "src/lib/libbsp/shared/bootcard.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bspgetworkarea.c", + "src/lib/libbsp/shared/bspinit.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/bspreset_loop.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libcpu/m68k/shared/misc/m68kidle.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def mcf5329(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + libcpu_mcf532x_cachepd(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/mcf5329/start/start.S"]) + + networking_source = [ + "src/lib/libbsp/m68k/mcf5329/network/network.c", + ] + + networking_defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + + ctx.bsp.networking( + networking_source, + defines=networking_defines, + features="src_include" + ) + + source += [ + "src/lib/libbsp/m68k/mcf5329/clock/clock.c", + "src/lib/libbsp/m68k/mcf5329/console/console.c", + "src/lib/libbsp/m68k/mcf5329/startup/bspstart.c", + "src/lib/libbsp/m68k/mcf5329/startup/cfinit.c", + "src/lib/libbsp/m68k/mcf5329/startup/init5329.c", + "src/lib/libbsp/m68k/mcf5329/timer/timer.c", + "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/bspreset_loop.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def mrm332(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/mrm332/start/start.S"]) + + source += [ + "src/lib/libbsp/m68k/mrm332/clock/ckinit.c", + "src/lib/libbsp/m68k/mrm332/console/console.c", + "src/lib/libbsp/m68k/mrm332/console/sci.c", + "src/lib/libbsp/m68k/mrm332/spurious/spinit.c", + "src/lib/libbsp/m68k/mrm332/startup/bsppredriverhook.c", + "src/lib/libbsp/m68k/mrm332/startup/except_vect_332_ROM.S", + "src/lib/libbsp/m68k/mrm332/startup/start_c.c", + "src/lib/libbsp/m68k/mrm332/timer/timer.c", + "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/bsppretaskinghook.c", + "src/lib/libbsp/shared/bspstart.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def mvme136(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/shared/start.S"]) + + mp_source = [ + "src/lib/libbsp/m68k/mvme136/shmsupp/addrconv.c", + "src/lib/libbsp/m68k/mvme136/shmsupp/getcfg.c", + "src/lib/libbsp/m68k/mvme136/shmsupp/lock.c", + "src/lib/libbsp/m68k/mvme136/shmsupp/mpisr.c" + ] + + ctx.bsp.mp( + mp_source, + features="src_include", + includes = ["%s/c/src/libchip/shmdr" % ctx.srcnode.abspath()] + ) + + source += [ + "src/lib/libbsp/m68k/mvme136/clock/ckinit.c", + "src/lib/libbsp/m68k/mvme136/console/console.c", + "src/lib/libbsp/m68k/mvme136/startup/bspclean.c", + "src/lib/libbsp/m68k/mvme136/startup/bspstart.c", + "src/lib/libbsp/m68k/mvme136/timer/timer.c", + "src/lib/libbsp/m68k/mvme136/timer/timerisr.S", + "src/lib/libbsp/shared/bootcard.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/dummy_printk_support.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def mvme147(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/shared/start.S"]) + + source += [ + "src/lib/libbsp/m68k/mvme147/clock/ckinit.c", + "src/lib/libbsp/m68k/mvme147/console/console.c", + "src/lib/libbsp/m68k/mvme147/startup/bspclean.c", + "src/lib/libbsp/m68k/mvme147/startup/bspstart.c", + "src/lib/libbsp/m68k/mvme147/timer/timer.c", + "src/lib/libbsp/m68k/mvme147/timer/timerisr.S", + "src/lib/libbsp/shared/bootcard.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/dummy_printk_support.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def mvme147s(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/shared/start.S"]) + + mp_source = [ + "src/lib/libbsp/m68k/mvme147s/shmsupp/addrconv.c", + "src/lib/libbsp/m68k/mvme147s/shmsupp/getcfg.c", + "src/lib/libbsp/m68k/mvme147s/shmsupp/lock.c", + "src/lib/libbsp/m68k/mvme147s/shmsupp/mpisr.c" + ] + + ctx.bsp.mp( + mp_source, + features="src_include", + includes = ["%s/c/src/libchip/shmdr" % ctx.srcnode.abspath()] + ) + + source += [ + "src/lib/libbsp/m68k/mvme147/clock/ckinit.c", + "src/lib/libbsp/m68k/mvme147/console/console.c", + "src/lib/libbsp/m68k/mvme147/timer/timer.c", + "src/lib/libbsp/m68k/mvme147/timer/timerisr.S", + "src/lib/libbsp/m68k/mvme147s/startup/bspstart.c", + "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/dummy_printk_support.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def mvme162_shared(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + libcpu_m68040_fpsp(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/shared/start.S"]) + + networking_source = [ + "src/lib/libbsp/m68k/mvme167/network/network.c", + ] + + networking_defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + + ctx.bsp.networking( + networking_source, + defines=networking_defines, + features="src_include" + ) + + source += [ + "src/lib/libbsp/m68k/mvme162/clock/ckinit.c", + "src/lib/libbsp/m68k/mvme162/console/console.c", + "src/lib/libbsp/m68k/mvme162/startup/bspclean.c", + "src/lib/libbsp/m68k/mvme162/startup/bspstart.c", + "src/lib/libbsp/m68k/mvme162/startup/page_table.c", + "src/lib/libbsp/m68k/mvme162/timer/timer.c", + "src/lib/libbsp/m68k/mvme162/timer/timerisr.S", + "src/lib/libbsp/m68k/mvme162/tod/tod.c", + "src/lib/libbsp/shared/bootcard.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/dummy_printk_support.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + + +def mvme167(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + libcpu_m68040_fpsp(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/shared/start.S"]) + + networking_source = [ + "src/lib/libbsp/m68k/mvme167/network/network.c", + ] + + networking_defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + + ctx.bsp.networking( + networking_source, + defines=networking_defines, + features="src_include" + ) + + source += [ + "src/lib/libbsp/m68k/mvme167/clock/ckinit.c", + "src/lib/libbsp/m68k/mvme167/console/console.c", + "src/lib/libbsp/m68k/mvme167/startup/bspclean.c", + "src/lib/libbsp/m68k/mvme167/startup/bspstart.c", + "src/lib/libbsp/m68k/mvme167/startup/page_table.c", + "src/lib/libbsp/m68k/mvme167/timer/timer.c", + "src/lib/libbsp/m68k/mvme167/timer/timerisr.S", + "src/lib/libbsp/shared/bootcard.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/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def ods68302(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/ods68302/start/reset.S"]) + + source += [ + "src/lib/libbsp/m68k/ods68302/clock/ckinit.c", + "src/lib/libbsp/m68k/ods68302/console/console.c", + "src/lib/libbsp/m68k/ods68302/startup/cpuboot.c", + "src/lib/libbsp/m68k/ods68302/startup/crc.c", + "src/lib/libbsp/m68k/ods68302/startup/debugport.c", + "src/lib/libbsp/m68k/ods68302/startup/gdb-hooks.c", + "src/lib/libbsp/m68k/ods68302/startup/m68302scc.c", + "src/lib/libbsp/m68k/ods68302/startup/m68k-stub.c", + "src/lib/libbsp/m68k/ods68302/startup/memcheck.c", + "src/lib/libbsp/m68k/ods68302/startup/trace.c", + "src/lib/libbsp/m68k/ods68302/timer/timer.c", + "src/lib/libbsp/m68k/ods68302/timer/timerisr.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/bspstart.c", + "src/lib/libbsp/shared/dummy_printk_support.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def sim68000_shared(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/sim68000/start/start.S"]) + + source += [ + "src/lib/libbsp/m68k/shared/bspspuriousinit.c", + "src/lib/libbsp/m68k/shared/m68000spurious.c", + "src/lib/libbsp/m68k/sim68000/clock/clockdrv.c", + "src/lib/libbsp/m68k/sim68000/console/conscfg.c", + "src/lib/libbsp/m68k/sim68000/console/debugio.c", + "src/lib/libbsp/m68k/sim68000/startup/bsppredriverhook.c", + "src/lib/libbsp/m68k/sim68000/startup/spurious_assistant.c", + "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/bsppretaskinghook.c", + "src/lib/libbsp/shared/bspstart.c", + "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", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/timerstub.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + + +def uc5282(ctx): + + libcpu_cache(ctx) + libcpu_misc(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/m68k/uC5282/start/start.S"]) + + networking_source = [ + "src/lib/libbsp/m68k/uC5282/network/network.c", + ] + + networking_defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + + ctx.bsp.networking( + networking_source, + defines=networking_defines, + features="src_include" + ) + source += [ + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bsplibc.c", + "src/lib/libbsp/m68k/uC5282/startup/bspreset.c", + "src/lib/libbsp/shared/bsppost.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/bsppretaskinghook.c", + "src/lib/libbsp/shared/bspgetworkarea.c", + "src/lib/libbsp/m68k/uC5282/startup/init5282.c", + "src/lib/libbsp/m68k/uC5282/startup/bspstart.c", + "src/lib/libbsp/shared/bootcard.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/m68k/uC5282/clock/clock.c", + "src/lib/libbsp/m68k/uC5282/console/console.c", + "src/lib/libbsp/m68k/uC5282/timer/timer.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def build(ctx): + source = [] + + + source += [ + "src/lib/libbsp/shared/setvec.c" + ] + + + ctx.bsp.source( + source, + features="src_include" + ) + + + map = { + "av5282": av5282, + "csb360": csb360, + "gen68302": gen68302, + "gen68340": gen68340, + "gen68360": gen68360_shared, + "gen68360_040": gen68360_shared, + "pgh360": gen68360_shared, + "cobra5475": genmcf548x_shared, + "m5484fireengine": genmcf548x_shared, + "idp": idp, + "mcf5206elite": mcf5206elite, + "mcf52235": mcf52235, + "mcf5225x": mcf5225x, + "mcf5235": mcf5235, + "mcf5329": mcf5329, + "mrm332": mrm332, + "mvme136": mvme136, + "mvme147": mvme147, + "mvme147s": mvme147s, + "mvme162": mvme162_shared, + "mvme162lx": mvme162_shared, + "mvme167": mvme167, + "ods68302": ods68302, + "sim68000": sim68000_shared, + "simcpu32": sim68000_shared, + "uc5282": uc5282 + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_m68k(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_mips b/c/wscript_mips new file mode 100644 index 0000000000..1570254960 --- /dev/null +++ b/c/wscript_mips @@ -0,0 +1,347 @@ +# +# MIP Board Support Packages. +# + +# +# MIPS libcpu support. See the PowerPC BSP file for details. +# + +def libcpu_cache(ctx): + source = [ + "src/lib/libcpu/mips/shared/cache/cache.c", + "src/lib/libcpu/shared/src/cache_aligned_malloc.c", + "src/lib/libcpu/shared/src/cache_manager.c" + ] + + ctx.bsp.source( + source, + includes=["%s/c/src/lib/libcpu/mips/shared/cache/" % ctx.srcnode.abspath()], + features="src_include" + ) + +def libcpu_timer(ctx): + source = [ + "src/lib/libcpu/mips/timer/timer.c", + "src/lib/libcpu/mips/timer/gettime.S" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_clock(ctx): + source = [ + "src/lib/libcpu/mips/clock/ckinit.c", + "src/lib/libcpu/mips/clock/clock.S" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_interrupts(ctx, name = None): + source = [ + "src/lib/libcpu/mips/shared/interrupts/installisrentries.c", + "src/lib/libbsp/mips/shared/irq/vectorexceptions.c", + "src/lib/libcpu/mips/shared/interrupts/interruptmask.c", + "src/lib/libcpu/mips/shared/interrupts/isr_entries.S" + ] + + ctx.bsp.source( + source, + defines=[name], + features="src_include" + ) + +def libcpu_rm52xx_interrupts(ctx): + libcpu_interrupts(ctx, 'RM52XX') + +def libcpu_tx39_interrupts(ctx): + libcpu_interrupts(ctx, 'TX39') + +def libcpu_tx49_interrupts(ctx): + libcpu_interrupts(ctx, 'TX49') + +def libcpu_mongoosev_interrupts(ctx): + libcpu_interrupts(ctx, 'MONGOOSEV') + +def libcpu_mongoosev_duart(ctx): + source = [ + "src/lib/libcpu/mips/mongoosev/duart/mg5uart.c", + "src/lib/libcpu/mips/mongoosev/duart/mg5uart_reg.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + +def csb350(ctx): + + libcpu_cache(ctx) + libcpu_interrupts(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/mips/csb350/start/start.S"]) + + source_networking = [ + "src/lib/libbsp/mips/csb350/network/network.c" + ] + ctx.bsp.networking( + source_networking, + features="src_include", + cflags=["-D__INSIDE_RTEMS_BSD_TCPIP_STACK__"], + ) + + source += [ + "src/lib/libbsp/mips/csb350/clock/clockdrv.c", + "src/lib/libbsp/mips/csb350/console/console-io.c", + "src/lib/libbsp/mips/csb350/startup/bspreset.c", + "src/lib/libbsp/mips/csb350/startup/bspstart.c", + "src/lib/libbsp/mips/csb350/timer/timer.c", + "src/lib/libbsp/shared/console-polled.c", + "src/lib/libbsp/mips/csb350/irq/vectorisrs.c" + ] + ctx.bsp.source( + source, + features="src_include", + ) + + +def genmongoosev(ctx): + + libcpu_cache(ctx) + libcpu_mongoosev_interrupts(ctx) + libcpu_mongoosev_duart(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/mips/genmongoosev/start/start.S"]) + + source_gdb = [ + "src/lib/libbsp/mips/genmongoosev/startup/gdb-support.c", + "src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c" + ] + ctx.cpu.source( + source_gdb, + features="src_include", + includes=["%s/c/src/lib/libbsp/mips/shared/gdbstub/" % ctx.srcnode.abspath()] + ) + + + source += [ + "src/lib/libbsp/mips/genmongoosev/clock/clockdrv.c", + "src/lib/libbsp/mips/genmongoosev/console/conscfg.c", + "src/lib/libbsp/mips/genmongoosev/startup/bspstart.c", + "src/lib/libbsp/mips/genmongoosev/timer/timer.c", + "src/lib/libbsp/mips/shared/gdbstub/mips-stub.c", + "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", + "src/lib/libbsp/mips/genmongoosev/irq/vectorisrs.c" + ] + + ctx.cpu.source( + source, + features="src_include src_include_bsp" + ) + + +def hurricane(ctx): + + libcpu_cache(ctx) + libcpu_rm52xx_interrupts(ctx) + libcpu_timer(ctx) + + + source = [] + + ctx.bsp.start(["src/lib/libbsp/mips/hurricane/start/start.S"]) + + source += [ + "src/lib/libbsp/mips/hurricane/clock/ckinit.c", + "src/lib/libbsp/mips/hurricane/console/console.c", + "src/lib/libbsp/mips/hurricane/startup/bspstart.c", + "src/lib/libbsp/mips/hurricane/startup/inittlb.c", + "src/lib/libbsp/mips/shared/irq/exception.S", + "src/lib/libbsp/mips/shared/liblnk/lnklib.S", + "src/lib/libbsp/mips/shared/liblnk/pmon.S", + "src/lib/libbsp/mips/shared/startup/idtmem.S", + "src/lib/libbsp/mips/shared/startup/idttlb.S", + "src/lib/libbsp/mips/hurricane/irq/vectorisrs.c", + "src/lib/libbsp/mips/hurricane/startup/usc.S" + ] + ctx.bsp.source( + source, + features="src_include", + ) + + +def jmr3904(ctx): + + libcpu_cache(ctx) + libcpu_tx39_interrupts(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/mips/jmr3904/start/start.S"]) + + source += [ + "src/lib/libbsp/mips/jmr3904/clock/clockdrv.c", + "src/lib/libbsp/mips/jmr3904/console/console-io.c", + "src/lib/libbsp/mips/jmr3904/startup/bspstart.c", + "src/lib/libbsp/mips/jmr3904/timer/timer.c", + "src/lib/libbsp/shared/console-polled.c", + "src/lib/libbsp/mips/jmr3904/irq/vectorisrs.c" + ] + ctx.bsp.source( + source, + features="src_include", + ) + + +def malta(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/mips/malta/start/start.S"]) + + source += [ + "src/lib/libbsp/mips/malta/console/conscfg.c", + "src/lib/libbsp/mips/malta/console/printk_support.c", + "src/lib/libbsp/mips/malta/irq/interruptmask.c", + "src/lib/libbsp/mips/malta/irq/maxvectors.c", + "src/lib/libbsp/mips/malta/irq/vectorisrs.c", + "src/lib/libbsp/mips/malta/pci/pci.c", + "src/lib/libbsp/mips/malta/pci/pcifinddevice.c", + "src/lib/libbsp/mips/malta/pci/pcilistdevices.c", + "src/lib/libbsp/mips/malta/startup/bspreset.c", + "src/lib/libbsp/mips/malta/startup/bspstart.c", + "src/lib/libbsp/mips/malta/startup/inittlb.c", + "src/lib/libbsp/mips/malta/startup/simple_access.c", + "src/lib/libbsp/mips/shared/irq/vectorexceptions.c", + "src/lib/libbsp/mips/shared/startup/idttlb.S", + "src/lib/libbsp/shared/timerstub.c", + "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", + "src/lib/libbsp/mips/shared/irq/i8259.c", + "src/lib/libcpu/mips/shared/interrupts/installisrentries.c", + "src/lib/libcpu/mips/shared/interrupts/isr_entries.S", + "src/lib/libcpu/shared/src/cache_manager.c", + "src/lib/libbsp/mips/shared/clock/clockdrv.c", + "src/lib/libbsp/mips/shared/clock/mips_timer.S", + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp src_include_libcpu", + ) + + +def rbtx4925(ctx): + + libcpu_cache(ctx) + libcpu_tx49_interrupts(ctx) + libcpu_timer(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/mips/rbtx4925/start/start.S"]) + + source += [ + "src/lib/libbsp/mips/rbtx4925/clock/clockdrv.c", + "src/lib/libbsp/mips/rbtx4925/console/console-io.c", + "src/lib/libbsp/mips/rbtx4925/startup/bspstart.c", + "src/lib/libbsp/mips/rbtx4925/startup/inittlb.c", + "src/lib/libbsp/mips/shared/irq/exception.S", + "src/lib/libbsp/mips/shared/liblnk/lnklib.S", + "src/lib/libbsp/mips/shared/liblnk/pmon.S", + "src/lib/libbsp/mips/shared/startup/idtmem.S", + "src/lib/libbsp/mips/shared/startup/idttlb.S", + "src/lib/libbsp/mips/rbtx4925/irq/vectorisrs.c" + ] + ctx.bsp.source( + source, + features="src_include", + ) + + +def rbtx4938(ctx): + + libcpu_cache(ctx) + libcpu_tx49_interrupts(ctx) + libcpu_timer(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/mips/rbtx4938/start/start.S"]) + + source += [ + "src/lib/libbsp/mips/rbtx4938/clock/clockdrv.c", + "src/lib/libbsp/mips/rbtx4938/console/console-io.c", + "src/lib/libbsp/mips/rbtx4938/startup/bspstart.c", + "src/lib/libbsp/mips/rbtx4938/startup/inittlb.c", + "src/lib/libbsp/mips/shared/irq/exception.S", + "src/lib/libbsp/mips/shared/liblnk/lnklib.S", + "src/lib/libbsp/mips/shared/liblnk/pmon.S", + "src/lib/libbsp/mips/shared/startup/idtmem.S", + "src/lib/libbsp/mips/shared/startup/idttlb.S", + "src/lib/libbsp/mips/rbtx4938/irq/vectorisrs.c" + ] + ctx.bsp.source( + source, + features="src_include", + ) + + +def build(ctx): + source = [] + + source += [ + "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/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/setvec.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/irq-generic.c", + "src/lib/libbsp/mips/shared/irq/interruptmask.c", + "src/lib/libbsp/mips/shared/irq/irq.c", + "src/lib/libbsp/mips/shared/irq/maxvectors.c" + ] + ctx.cpu.source( + source, + features="src_include" + ) + + + map = { + "csb350": csb350, + "genmongoosev": genmongoosev, + "hurricane": hurricane, + "jmr3904": jmr3904, + "malta": malta, + "rbtx4925": rbtx4925, + "rbtx4938": rbtx4938 + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_mips(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_moxie b/c/wscript_moxie new file mode 100644 index 0000000000..e1a5e6b334 --- /dev/null +++ b/c/wscript_moxie @@ -0,0 +1,52 @@ +# +# Moxie +# + +def moxiesim(ctx): + source = [ + "src/lib/libbsp/moxie/moxiesim/console/console-io.c", + "src/lib/libbsp/moxie/moxiesim/console/syscalls.S", + "src/lib/libbsp/moxie/moxiesim/start/start.S", + "src/lib/libbsp/moxie/moxiesim/startup/__main.c", + "src/lib/libbsp/moxie/moxiesim/startup/moxiebdinstallirq.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def build(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/moxie/moxiesim/start/start.S"]) + + source += [ + "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/bspstart.c", + "src/lib/libbsp/shared/clock_driver_simidle.c", + "src/lib/libbsp/shared/console-polled.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/timerstub.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + map = { + "moxiesim": moxiesim, + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_moxie(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_nios2 b/c/wscript_nios2 new file mode 100644 index 0000000000..ad14d96e63 --- /dev/null +++ b/c/wscript_nios2 @@ -0,0 +1,51 @@ +# +# nios2 +# + +def nios2_iss(ctx): + ctx.bsp.start(["src/lib/libbsp/nios2/nios2_iss/start/start.S", "src/lib/libbsp/nios2/nios2_iss/start/crtnn.s"]) + + source = [ + "src/lib/libbsp/nios2/nios2_iss/clock/clock.c", + "src/lib/libbsp/nios2/nios2_iss/console/console.c", + "src/lib/libbsp/nios2/nios2_iss/startup/bspstart.c", + "src/lib/libbsp/nios2/nios2_iss/startup/setvec.c", + "src/lib/libbsp/nios2/nios2_iss/timer/timer.c", + "src/lib/libcpu/nios2/shared/misc/memcpy.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def build(ctx): + source = [] + + source += [ + "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/bspreset_loop.c", + "src/lib/libbsp/shared/console-polled.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + map = { + "nios2_iss": nios2_iss, + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_nios2(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_powerpc b/c/wscript_powerpc new file mode 100644 index 0000000000..51a2305b04 --- /dev/null +++ b/c/wscript_powerpc @@ -0,0 +1,1830 @@ + +# PowerPC libcpu support. This is done this way to make it easy to see which +# parts of libcpu are used in a BSP. This whole part of the PowerPC is a mess +# and this is not an attempt to clean that up rather an attempt to make sure +# we match the autoconf build system. Once we have confirmed the BSPs are +# working this can be moved to a better structure. +# +# The groups match the noinst_PROGRAMS files created. The BSPs match the +# list referenced at the end of each BSP Makefile.am. +# + +def libcpu_rtems_cpu(ctx): + source = [ + "src/lib/libcpu/powerpc/new-exceptions/cpu.c", + "src/lib/libcpu/powerpc/new-exceptions/cpu_asm.S" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_exc_bspsupport(ctx): + source = [ + "src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc-code-copy.c", + "src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc.S", + "src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_async_normal.S", + "src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_naked.S", + "src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_hdl.c", + "src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_initialize.c", + "src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_global_handler.c", + "src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_categories.c", + "src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_address.c", + "src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_alignment.c", + "src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_prologue.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + +def libcpu_irq_bspsupport(ctx): + source = [ + "src/lib/libcpu/powerpc/new-exceptions/bspsupport/irq.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + +def libcpu_cpu_ident(ctx): + source = [ + "src/lib/libcpu/powerpc/shared/include/cpuIdent.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_libcpu" + ) + +def libcpu_cache(ctx): + source = [ + "src/lib/libcpu/shared/src/cache_aligned_malloc.c", + "src/lib/libcpu/shared/src/cache_manager.c" + ] + + ctx.bsp.source( + source, + includes=["%s/c/src/lib/libcpu/powerpc/shared/src/" % ctx.srcnode.abspath()], + features="src_include src_include_libcpu" + ) + +def libcpu_stack(ctx): + source = [ + "src/lib/libcpu/powerpc/shared/src/stack.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_libcpu" + ) + +def libcpu_ppc403_clock(ctx): + source = [ + "src/lib/libcpu/powerpc/ppc403/clock/clock.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_ppc403_console(ctx): + source = [ + "src/lib/libcpu/powerpc/ppc403/console/console.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_ppc403_timer(ctx): + source = [ + "src/lib/libcpu/powerpc/ppc403/timer/timer.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_pcc405_console(ctx): + source = [ + "src/lib/libcpu/powerpc/ppc403/console/console405.c", + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_ppc403_tty_drv(ctx): + source = [ + "src/lib/libcpu/powerpc/ppc403/tty_drv/tty_drv.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc5xx_clock(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc5xx/clock/clock.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc5xx_clock(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc5xx/clock/clock.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc5xx_console(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc5xx/console-generic/console-generic.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc5xx_exceptions(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc5xx/exceptions/raw_exception.c", + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc5xx_irq(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc5xx/irq/irq.c", + "src/lib/libcpu/powerpc/mpc5xx/irq/irq_init.c", + "src/lib/libcpu/powerpc/mpc5xx/irq/irq_asm.S" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc5xx_timer(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc5xx/timer/timer.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc5xx_vectors(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc5xx/vectors/vectors_init.c", + "src/lib/libcpu/powerpc/mpc5xx/vectors/vectors.S" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc505_ictrl(ctx): + source += [ + "src/lib/libcpu/powerpc/mpc505/ictrl/ictrl.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc505_timer(ctx): + source += [ + "src/lib/libcpu/powerpc/mpc505/timer/timer.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc505_vector(ctx): + source += [ + "src/lib/libcpu/powerpc/mpc505/vectors/vectors.S" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc6xx_mmu(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc6xx/mmu/bat.c", + "src/lib/libcpu/powerpc/mpc6xx/mmu/pte121.c", + "src/lib/libcpu/powerpc/mpc6xx/mmu/mmuAsm.S" + ] + ctx.bsp.source( + source, + features="src_include src_include_libcpu" + ) + +def libcpu_mpc6xx_clock(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c", + ] + ctx.bsp.source( + source, + features="src_include src_include_libcpu" + ) + +def libcpu_mpc6xx_timer(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc6xx/timer/timer.c" + ] + ctx.bsp.source( + source, + features="src_include src_include_libcpu" + ) + +def libcpu_mpc6xx_altivec(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc6xx/altivec/vec_sup.c", + "src/lib/libcpu/powerpc/mpc6xx/altivec/vec_sup_asm.S" + ] + ctx.bsp.source( + source, + features="src_include src_include_libcpu" + ) + +def libcpu_e500_clock(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_e500_timer(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc6xx/timer/timer.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_e500_mmu(ctx): + source = [ + "src/lib/libcpu/powerpc/e500/mmu/mmu.c" + ] + ctx.bsp.source( + source, + features="src_include src_include_libcpu" + ) + +def libcpu_mpc8xx_clock(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc8xx/clock/clock.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc8xx_console(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc8xx/console-generic/console-generic.c", + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc8xx_cpm(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc8xx/cpm/cp.c", + "src/lib/libcpu/powerpc/mpc8xx/cpm/dpram.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc8xx_mmu(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc8xx/mmu/mmu.c", + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc8xx_timer(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc8xx/timer/timer.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc8260_console(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc8260/console-generic/console-generic.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc8260_cpm(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc8260/cpm/cp.c", + "src/lib/libcpu/powerpc/mpc8260/cpm/dpram.c", + "src/lib/libcpu/powerpc/mpc8260/cpm/brg.c", + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc8260_mmu(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc8260/mmu/mmu.c", + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc8260_timer(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc8260/timer/timer.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc83xx_tsec(ctx): + source_network = [ + "src/lib/libcpu/powerpc/mpc83xx/network/tsec.c" + ] + + ctx.bsp.networking( + source_network, + features="src_include", + defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__", "__BSD_VISIBLE"] + ) + +def libcpu_mpc83xx_i2c(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc83xx/i2c/mpc83xx_i2cdrv.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc83xx_spi(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc83xx/spi/mpc83xx_spidrv.c", + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_mpc83xx_gtm(ctx): + source = [ + "src/lib/libcpu/powerpc/mpc83xx/gtm/gtm.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_qoriq(ctx): + source_network = [ + "src/lib/libcpu/powerpc/mpc83xx/network/tsec.c" + ] + ctx.bsp.networking( + source_network, + cflags=["-D__INSIDE_RTEMS_BSD_TCPIP_STACK__", + "-D__BSD_VISIBLE"] + ) + +def beatnik(ctx): + + libcpu_cpu_ident(ctx) + libcpu_cache(ctx) + libcpu_stack(ctx) + libcpu_rtems_cpu(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_irq_bspsupport(ctx) + libcpu_mpc6xx_clock(ctx) + libcpu_mpc6xx_mmu(ctx) + libcpu_mpc6xx_timer(ctx) + libcpu_mpc6xx_altivec(ctx) + + source = [] + + ctx.bsp.start([ + "src/lib/libbsp/powerpc/shared/start/rtems_crti.S", + "src/lib/libbsp/powerpc/shared/start/preload.S", + "src/lib/libbsp/powerpc/shared/start/vectors_entry.S", + "src/lib/libbsp/powerpc/shared/start/start.S" + ]) + + # + # Split up the drivers because each driver has the same header files in + # different directories. + # + + source_network = [ + "src/lib/libbsp/powerpc/beatnik/network/if_em/if_em.c", + "src/lib/libbsp/powerpc/beatnik/network/if_em/if_em_hw.c", + "src/lib/libbsp/powerpc/beatnik/network/if_em/if_em_rtems.c", + ] + ctx.bsp.networking( + source_network, + features="src_include src_include_networking", + includes=["%s/c/src/lib/libbsp/powerpc/beatnik/network/porting" % ctx.srcnode.abspath(), + "%s/c/src/lib/libbsp/powerpc/beatnik/network/if_em" % ctx.srcnode.abspath()] + ) + + source_network = [ + "src/lib/libbsp/powerpc/beatnik/network/if_gfe/if_gfe.c", + "src/lib/libbsp/powerpc/beatnik/network/if_gfe/if_gfe_rtems.c", + ] + ctx.bsp.networking( + source_network, + features="src_include src_include_networking", + includes=["%s/c/src/lib/libbsp/powerpc/beatnik/network/porting" % ctx.srcnode.abspath(), + "%s/c/src/lib/libbsp/powerpc/beatnik/network/if_gfe" % ctx.srcnode.abspath()] + ) + + source_network = [ + "src/lib/libbsp/powerpc/beatnik/network/if_mve/mv643xx_eth.c", + "src/lib/libbsp/powerpc/beatnik/network/support/bsp_attach.c", + "src/lib/libbsp/powerpc/beatnik/network/support/early_link_status.c", + ] + ctx.bsp.networking( + source_network, + features="src_include", + includes=["%s/c/src/lib/libbsp/powerpc/beatnik/network/porting" % ctx.srcnode.abspath()] + ) + + source += [ + "src/lib/libbsp/powerpc/beatnik/flash/flashcfg.c", + "src/lib/libbsp/powerpc/beatnik/irq/discovery_pic.c", + "src/lib/libbsp/powerpc/beatnik/irq/irq_init.c", + "src/lib/libbsp/powerpc/beatnik/marvell/discovery.c", + "src/lib/libbsp/powerpc/beatnik/marvell/gti2c.c", + "src/lib/libbsp/powerpc/beatnik/pci/gt_pci_init.c", + "src/lib/libbsp/powerpc/beatnik/pci/motload_fixup.c", + "src/lib/libbsp/powerpc/beatnik/pci/pci_io_remap.c", + "src/lib/libbsp/powerpc/beatnik/startup/bspclean.c", + "src/lib/libbsp/powerpc/beatnik/startup/bspstart.c", + "src/lib/libbsp/powerpc/beatnik/startup/i2c_init.c", + "src/lib/libbsp/powerpc/beatnik/startup/reboot.c", + "src/lib/libbsp/powerpc/beatnik/tod/todcfg.c", + "src/lib/libbsp/powerpc/shared/clock/p_clock.c", + "src/lib/libbsp/powerpc/shared/console/console.c", + "src/lib/libbsp/powerpc/shared/console/uart.c", + "src/lib/libbsp/powerpc/shared/flash/flash.c", + "src/lib/libbsp/powerpc/shared/flash/intelFlash.c", + "src/lib/libbsp/powerpc/shared/pci/pci.c", + "src/lib/libbsp/powerpc/shared/pci/pcifinddevice.c", + "src/lib/libbsp/powerpc/shared/startup/bspgetworkarea.c", + "src/lib/libbsp/powerpc/shared/startup/panic.c", + "src/lib/libbsp/powerpc/shared/startup/pgtbl_activate.c", + "src/lib/libbsp/powerpc/shared/startup/pgtbl_setup.c", + "src/lib/libbsp/powerpc/shared/startup/pretaskinghook.c", + "src/lib/libbsp/powerpc/shared/startup/probeMemEnd.c", + "src/lib/libbsp/powerpc/shared/startup/sbrk.c", + "src/lib/libbsp/powerpc/shared/startup/zerobss.c", + "src/lib/libbsp/powerpc/shared/vme/vme_universe.c", + "src/lib/libbsp/powerpc/shared/vme/vmeconfig.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/tod.c", + "src/lib/libbsp/shared/vmeUniverse/bspVmeDmaList.c", + ] + ctx.bsp.source( + source, + features="src_include" + ) + + source = [ + "src/lib/libbsp/powerpc/beatnik/marvell/gt_timer.c", + "src/lib/libbsp/powerpc/shared/motorola/vpd.c", + "src/lib/libbsp/shared/vmeUniverse/vmeTsi148.c", + "src/lib/libbsp/shared/vmeUniverse/vmeUniverse.c", + ] + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + + + +def ep1a(ctx): + + libcpu_cache(ctx) + libcpu_cpu_ident(ctx) + libcpu_stack(ctx) + libcpu_rtems_cpu(ctx) + libcpu_mpc6xx_clock(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_irq_bspsupport(ctx) + libcpu_mpc6xx_mmu(ctx) + libcpu_mpc6xx_timer(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/shared/start/rtems_crti.S", "src/lib/libbsp/powerpc/ep1a/start/start.S"]) + + source += [ + "src/lib/libbsp/powerpc/ep1a/console/ns16550cfg.c", + "src/lib/libbsp/powerpc/ep1a/console/printk_support.c", + "src/lib/libbsp/powerpc/ep1a/irq/irq_init.c", + "src/lib/libbsp/powerpc/ep1a/irq/openpic_xxx_irq.c", + "src/lib/libbsp/powerpc/ep1a/pci/no_host_bridge.c", + "src/lib/libbsp/powerpc/ep1a/startup/bspstart.c", + "src/lib/libbsp/powerpc/shared/irq/i8259.c", + "src/lib/libbsp/powerpc/shared/openpic/openpic.c", + "src/lib/libbsp/powerpc/shared/pci/pci.c", + "src/lib/libbsp/powerpc/shared/pci/pcifinddevice.c", + "src/lib/libbsp/powerpc/shared/showbats.c", + "src/lib/libbsp/powerpc/shared/start/rtems_crti.S", + "src/lib/libbsp/powerpc/shared/startup/bspgetworkarea.c", + "src/lib/libbsp/powerpc/shared/startup/pgtbl_activate.c", + "src/lib/libbsp/powerpc/shared/startup/pgtbl_setup.c", + "src/lib/libbsp/powerpc/shared/startup/sbrk.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "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", + "src/lib/libbsp/shared/gnatinstallhandler.c", + ] + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + + source = [ + "src/lib/libbsp/powerpc/ep1a/console/rsPMCQ1.c", + "src/lib/libbsp/powerpc/shared/clock/p_clock.c", + "src/lib/libbsp/shared/vmeUniverse/bspVmeDmaList.c", + "src/lib/libbsp/shared/vmeUniverse/vmeUniverse.c", + "src/lib/libbsp/powerpc/shared/vme/vme_universe.c", + "src/lib/libbsp/powerpc/shared/vme/vmeconfig.c", + "src/lib/libbsp/powerpc/ep1a/console/mc68360_scc.c", + "src/lib/libbsp/powerpc/ep1a/console/init68360.c", + "src/lib/libbsp/powerpc/ep1a/console/config.c", + "src/lib/libbsp/powerpc/ep1a/console/alloc360.c", + ] + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + + +def gen5200_shared(ctx): + + libcpu_cpu_ident(ctx) + libcpu_cache(ctx) + libcpu_stack(ctx) + libcpu_rtems_cpu(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_mpc6xx_mmu(ctx) + libcpu_mpc6xx_timer(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/shared/start/rtems_crti.S", "src/lib/libbsp/powerpc/gen5200/start/start.S"]) + + + source_network = [ + "src/lib/libbsp/powerpc/gen5200/network_5200/network.c", + ] + ctx.bsp.networking( + source_network, + features="src_include src_include_bsp" + ) + + source += [ + "src/lib/libbsp/powerpc/gen5200/i2c/i2c.c", #XXX: i2cdrv.h + "src/lib/libbsp/powerpc/gen5200/irq/irq.c", + "src/lib/libbsp/powerpc/gen5200/mscan/mscan-base.c", + "src/lib/libbsp/powerpc/gen5200/startup/bspreset.c", + "src/lib/libbsp/powerpc/gen5200/startup/bspstart.c", + "src/lib/libbsp/powerpc/gen5200/startup/cpuinit.c", + "src/lib/libbsp/powerpc/gen5200/startup/uboot_support.c", + "src/lib/libbsp/powerpc/gen5200/tod/pcf8563.c", + "src/lib/libbsp/powerpc/gen5200/tod/todcfg.c", + "src/lib/libbsp/powerpc/shared/clock/clock.c", + "src/lib/libbsp/powerpc/shared/showbats.c", + "src/lib/libbsp/powerpc/shared/src/memcpy.c", + "src/lib/libbsp/powerpc/shared/start/rtems_crti.S", + "src/lib/libbsp/powerpc/shared/startup/bspidle.c", + "src/lib/libbsp/powerpc/shared/uboot_dump_bdinfo.c", + "src/lib/libbsp/powerpc/shared/uboot_getenv.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bspgetworkarea.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/bsppretaskinghook.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/src/bsp-uboot-board-info.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/tod.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + source = [ + "src/lib/libbsp/powerpc/gen5200/ide/idecfg.c", + "src/lib/libbsp/powerpc/gen5200/ide/pcmcia_ide.c", + "src/lib/libbsp/powerpc/gen5200/mscan/mscan.c", + "src/lib/libbsp/powerpc/gen5200/nvram/nvram.c", + "src/lib/libbsp/powerpc/gen5200/slicetimer/slicetimer.c", + "src/lib/libbsp/powerpc/gen5200/console/console.c", + "src/lib/libbsp/powerpc/gen5200/i2c/mpc5200mbus.c", +# "src/lib/libbsp/powerpc/gen5200/i2c/i2cdrv.c", XXX: is this needed? + "src/lib/libbsp/powerpc/gen5200/bestcomm/bestcomm_glue.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/bestcomm_api.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/dma_image.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/dma_image.reloc.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/load_task.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_ata.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_bdtable.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_crc16_dp_0.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_crc16_dp_1.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_fec_rx_bd.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_fec_tx_bd.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_gen_dp_0.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_gen_dp_1.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_gen_dp_2.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_gen_dp_3.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_gen_dp_bd_0.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_gen_dp_bd_1.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_gen_rx_bd.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_gen_tx_bd.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_lpc.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_pci_rx.c", + "src/lib/libbsp/powerpc/gen5200/bestcomm/tasksetup_pci_tx.c", + ] + ctx.bsp.source( + source, + features="src_include src_include_bsp", + includes=[ + "%s/include/bsp/bestcomm/" % ctx.srcnode.abspath(), + "%s/c/src/lib/libbsp/powerpc/gen5200" % ctx.srcnode.abspath() + ] + ) + + +def gen83xx_shared(ctx): + + libcpu_cpu_ident(ctx) + libcpu_cache(ctx) + libcpu_rtems_cpu(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_mpc6xx_mmu(ctx) + libcpu_mpc6xx_timer(ctx) + libcpu_mpc83xx_i2c(ctx) + libcpu_mpc83xx_spi(ctx) + libcpu_mpc83xx_gtm(ctx) + libcpu_mpc83xx_tsec(ctx) + + source = [] + + ctx.bsp.start([ + "src/lib/libbsp/powerpc/shared/start/rtems_crti.S", + "src/lib/libbsp/powerpc/gen83xx/start/start.S" + ]) + + source_networking = [ + "src/lib/libbsp/powerpc/gen83xx/network/network.c" + ] + ctx.bsp.networking( + source_networking, + features="src_include src_include_bsp" + ) + + source += [ + "src/lib/libbsp/powerpc/gen83xx/console/console-config.c", + "src/lib/libbsp/powerpc/gen83xx/i2c/i2c_init.c", + "src/lib/libbsp/powerpc/gen83xx/irq/irq.c", + "src/lib/libbsp/powerpc/gen83xx/spi/spi_init.c", + "src/lib/libbsp/powerpc/gen83xx/startup/bspreset.c", + "src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c", + "src/lib/libbsp/powerpc/gen83xx/startup/cpuinit.c", + "src/lib/libbsp/powerpc/shared/clock/clock.c", + "src/lib/libbsp/powerpc/shared/src/tictac.c", + "src/lib/libbsp/powerpc/shared/start/rtems_crti.S", + "src/lib/libbsp/powerpc/shared/startup/bspidle.c", + "src/lib/libbsp/powerpc/shared/uboot_getenv.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bspgetworkarea.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/bsppretaskinghook.c", + "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", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/src/bsp-uboot-board-info.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/irq-default-handler.c" + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + + +def haleakala(ctx): + + libcpu_rtems_cpu(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_irq_bspsupport(ctx) + libcpu_cache(ctx) + libcpu_cpu_ident(ctx) + libcpu_ppc403_clock(ctx) + libcpu_ppc403_timer(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/shared/start/rtems_crti.S"]) + + source += [ + "src/lib/libbsp/powerpc/haleakala/dlentry/dlentry.S", + "src/lib/libbsp/powerpc/haleakala/irq/irq.c", + "src/lib/libbsp/powerpc/haleakala/irq/irq_init.c", + "src/lib/libbsp/powerpc/haleakala/startup/bspstart.c", + "src/lib/libbsp/powerpc/shared/console/console.c", + "src/lib/libbsp/powerpc/shared/console/uart.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bspgetworkarea.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/bsppretaskinghook.c", + "src/lib/libbsp/shared/bspreset_fatal.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + ] + ctx.bsp.source( + source, + features="src_include" + ) + + + +def mbx8xx_shared(ctx): + + libcpu_cpu_ident(ctx) + libcpu_cache(ctx) + libcpu_rtems_cpu(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_mpc8xx_clock(ctx) + libcpu_mpc8xx_console(ctx) + libcpu_mpc8xx_cpm(ctx) + libcpu_mpc8xx_mmu(ctx) + libcpu_mpc8xx_timer(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/mbx8xx/startup/start.S"]) + + source_networking = [ + "src/lib/libbsp/powerpc/mbx8xx/network/network.c", + ] + ctx.bsp.networking( + source_networking, + features="src_include", + defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + ) + + source += [ + "src/lib/libbsp/powerpc/mbx8xx/clock/p_clock.c", + "src/lib/libbsp/powerpc/mbx8xx/console/console.c", + "src/lib/libbsp/powerpc/mbx8xx/ide/idecfg.c", + "src/lib/libbsp/powerpc/mbx8xx/ide/pcmcia_ide.c", + "src/lib/libbsp/powerpc/mbx8xx/irq/irq.c", + "src/lib/libbsp/powerpc/mbx8xx/startup/bspstart.c", + "src/lib/libbsp/powerpc/mbx8xx/startup/imbx8xx.c", + "src/lib/libbsp/powerpc/mbx8xx/startup/mmutlbtab.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bspgetworkarea.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/bsppretaskinghook.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.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/irq-default-handler.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def motorola_powerpc_shared(ctx): + libcpu_cache(ctx) + libcpu_cpu_ident(ctx) + libcpu_stack(ctx) + libcpu_rtems_cpu(ctx) + libcpu_mpc6xx_clock(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_irq_bspsupport(ctx) + libcpu_mpc6xx_mmu(ctx) + libcpu_mpc6xx_timer(ctx) + libcpu_mpc6xx_altivec(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/shared/start/rtems_crti.S", "src/lib/libbsp/powerpc/shared/start/start.S", "src/lib/libbsp/powerpc/shared/start/vectors_entry.S"]) + + source_networking = [ + "src/lib/libbsp/i386/pc386/ne2000/ne2000.c", + ] + ctx.bsp.networking( + source_networking, + features="src_include", + defines=["bsp_cmdline_arg=rtems_bsp_cmdline_get_param_raw", "__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + ) + + source += [ + "src/lib/libbsp/powerpc/shared/clock/p_clock.c", + "src/lib/libbsp/powerpc/shared/console/bspreset.c", + "src/lib/libbsp/powerpc/shared/console/console.c", + "src/lib/libbsp/powerpc/shared/console/inch.c", + "src/lib/libbsp/powerpc/shared/console/polled_io.c", + "src/lib/libbsp/powerpc/shared/console/uart.c", + "src/lib/libbsp/powerpc/shared/irq/i8259.c", + "src/lib/libbsp/powerpc/shared/irq/irq_init.c", + "src/lib/libbsp/powerpc/shared/irq/openpic_i8259_irq.c", + "src/lib/libbsp/powerpc/shared/motorola/motorola.c", + "src/lib/libbsp/powerpc/shared/openpic/openpic.c", + "src/lib/libbsp/powerpc/shared/pci/detect_raven_bridge.c", + "src/lib/libbsp/powerpc/shared/pci/generic_clear_hberrs.c", + "src/lib/libbsp/powerpc/shared/pci/pci.c", + "src/lib/libbsp/powerpc/shared/pci/pcifinddevice.c", + "src/lib/libbsp/powerpc/shared/residual/residual.c", + "src/lib/libbsp/powerpc/shared/showbats.c", + "src/lib/libbsp/powerpc/shared/start/rtems_crti.S", + "src/lib/libbsp/powerpc/shared/start/vectors_entry.S", + "src/lib/libbsp/powerpc/shared/startup/bspgetworkarea.c", + "src/lib/libbsp/powerpc/shared/startup/bspstart.c", + "src/lib/libbsp/powerpc/shared/startup/pgtbl_activate.c", + "src/lib/libbsp/powerpc/shared/startup/pgtbl_setup.c", + "src/lib/libbsp/powerpc/shared/startup/ppc_idle.c", + "src/lib/libbsp/powerpc/shared/startup/pretaskinghook.c", + "src/lib/libbsp/powerpc/shared/startup/sbrk.c", + "src/lib/libbsp/powerpc/shared/startup/zerobss.c", + "src/lib/libbsp/powerpc/shared/tod/todcfg.c", + "src/lib/libbsp/powerpc/shared/vme/vme_universe.c", + "src/lib/libbsp/powerpc/shared/vme/vmeconfig.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/tod.c", + "src/lib/libbsp/shared/vmeUniverse/bspVmeDmaList.c", + ] + + ctx.bsp.source( + source, + defines=["STATIC_LOG_ALLOC=1"], + features="src_include" + ) + + source = [ + "src/lib/libbsp/shared/vmeUniverse/vmeUniverse.c", + ] + ctx.bsp.source( + source, + features="src_include", + includes=["%s/include/bsp/" % ctx.srcnode.abspath()] + ) + + +def mpc55xxevb_shared(ctx): + source = [] + libcpu_exc_bspsupport(ctx) + libcpu_cache(ctx) + libcpu_cpu_ident(ctx) + libcpu_stack(ctx) + libcpu_rtems_cpu(ctx) + libcpu_irq_bspsupport(ctx) +# libcpu_mpc5xx_timer(ctx) +# libcpu_mpc5xx_irq(ctx) + + + ctx.bsp.start(["src/lib/libbsp/powerpc/shared/start/rtems_crti.S", "src/lib/libbsp/powerpc/mpc55xxevb/startup/start.S"]) + + source_networking = [ + "src/lib/libbsp/powerpc/mpc55xxevb/network/smsc9218i.c", + "src/lib/libbsp/powerpc/mpc55xxevb/network/if_smc.c" + ] + ctx.bsp.networking( + source_networking, + features="src_include" + ) + + + source += [ + "src/lib/libcpu/powerpc/mpc83xx/i2c/mpc83xx_i2cdrv.c", + "src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c", + "src/lib/libbsp/powerpc/mpc55xxevb/console/console-config.c", + "src/lib/libbsp/powerpc/mpc55xxevb/console/console-esci.c", + "src/lib/libbsp/powerpc/mpc55xxevb/console/console-generic.c", + "src/lib/libbsp/powerpc/mpc55xxevb/console/console-linflex.c", + "src/lib/libbsp/powerpc/mpc55xxevb/i2c/i2c_init.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/bspworkareainit.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/exc-vector-base.S", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/get-system-clock.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/idle-thread.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/reset.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/restart.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/sd-card-init.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/start-cache.S", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/start-clock.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-clock.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-ebi-cs-cal.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-ebi-cs.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-ebi.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-mmu-early.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-mmu.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-siu-pcr.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/start-early.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/start-flash.S", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/start-prologue.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/start-watchdog.c", + "src/lib/libbsp/powerpc/mpc55xxevb/startup/start.S", + "src/lib/libbsp/powerpc/shared/src/bsp-start-zero.S", + "src/lib/libbsp/powerpc/shared/src/memcpy.c", + "src/lib/libbsp/powerpc/shared/src/ppc-exc-handler-table.c", + "src/lib/libbsp/powerpc/shared/src/tictac.c", + "src/lib/libbsp/powerpc/shared/start/rtems_crti.S", + "src/lib/libbsp/shared/bootcard.c", + "src/lib/libbsp/shared/bspclean.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/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/libcpu/powerpc/mpc55xx/irq/irq.c", +# beer + "src/lib/libcpu/powerpc/mpc55xx/edma/edma.c", + "src/lib/libcpu/powerpc/mpc55xx/emios/emios.c", + "src/lib/libcpu/powerpc/mpc6xx/timer/timer.c", + "src/lib/libcpu/powerpc/mpc55xx/fec/fec.c", + "src/lib/libcpu/powerpc/mpc55xx/siu/siu.c", + "src/lib/libcpu/powerpc/mpc55xx/dspi/dspi.c", + "src/lib/libcpu/powerpc/mpc55xx/misc/copy.S", + "src/lib/libcpu/powerpc/mpc55xx/misc/flash_support.c", + ] + + + ctx.bsp.source( + source, + features="src_include" + ) + + +def mpc8260ads(ctx): + + libcpu_cpu_ident(ctx) + libcpu_cache(ctx) + libcpu_rtems_cpu(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_mpc8260_console(ctx) + libcpu_mpc8260_cpm(ctx) + libcpu_mpc8260_mmu(ctx) + libcpu_mpc8260_timer(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/mpc8260ads/start/start.S"]) + + source_networking = [ + "src/lib/libbsp/powerpc/mpc8260ads/network/if_hdlcsubr.c", + "src/lib/libbsp/powerpc/mpc8260ads/network/network.c", + ] + ctx.bsp.networking( + source_networking, + features="src_include", + defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__", "__BSD_VISIBLE"] + ) + + + source += [ + "src/lib/libbsp/powerpc/mpc8260ads/console/console.c", + "src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c", + "src/lib/libbsp/powerpc/mpc8260ads/startup/bspstart.c", + "src/lib/libbsp/powerpc/mpc8260ads/startup/cpuinit.c", + "src/lib/libbsp/powerpc/shared/clock/clock.c", + "src/lib/libbsp/powerpc/shared/startup/bspidle.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bspgetworkarea.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/bsppretaskinghook.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.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/irq-default-handler.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def mvme3100(ctx): + + libcpu_cpu_ident(ctx) + libcpu_cache(ctx) + libcpu_stack(ctx) + libcpu_e500_clock(ctx) + libcpu_e500_timer(ctx) + libcpu_e500_mmu(ctx) + libcpu_rtems_cpu(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_irq_bspsupport(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/shared/start/preload.S", "src/lib/libbsp/powerpc/shared/start/vectors_entry.S", "src/lib/libbsp/powerpc/mvme3100/start/start.S", "src/lib/libbsp/powerpc/shared/start/rtems_crti.S"]) + + source_networking = [ + "src/lib/libbsp/powerpc/mvme3100/network/tsec.c", + ] + ctx.bsp.networking( + source_networking, + features="src_include src_include_bsp" + ) + + source += [ + "src/lib/libbsp/powerpc/mvme3100/flash/flashcfg.c", + "src/lib/libbsp/powerpc/mvme3100/i2c/i2c_init.c", + "src/lib/libbsp/powerpc/mvme3100/irq/irq_init.c", + "src/lib/libbsp/powerpc/mvme3100/pci/detect_host_bridge.c", + "src/lib/libbsp/powerpc/mvme3100/startup/bspstart.c", + "src/lib/libbsp/powerpc/mvme3100/startup/misc.c", + "src/lib/libbsp/powerpc/mvme3100/tod/todcfg.c", + "src/lib/libbsp/powerpc/shared/clock/p_clock.c", + "src/lib/libbsp/powerpc/shared/console/console.c", + "src/lib/libbsp/powerpc/shared/console/uart.c", + "src/lib/libbsp/powerpc/shared/flash/flash.c", + "src/lib/libbsp/powerpc/shared/flash/spansionFlash.c", + "src/lib/libbsp/powerpc/shared/irq/openpic_i8259_irq.c", + "src/lib/libbsp/powerpc/shared/openpic/openpic.c", + "src/lib/libbsp/powerpc/shared/pci/generic_clear_hberrs.c", + "src/lib/libbsp/powerpc/shared/pci/pci.c", + "src/lib/libbsp/powerpc/shared/pci/pcifinddevice.c", + "src/lib/libbsp/powerpc/shared/startup/bspgetworkarea.c", + "src/lib/libbsp/powerpc/shared/startup/pretaskinghook.c", + "src/lib/libbsp/powerpc/shared/startup/sbrk.c", + "src/lib/libbsp/powerpc/shared/startup/zerobss.c", + "src/lib/libbsp/powerpc/shared/vme/vme_universe.c", + "src/lib/libbsp/powerpc/shared/vme/vmeconfig.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/tod.c", + "src/lib/libbsp/shared/vmeUniverse/bspVmeDmaList.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + source = [ + "src/lib/libbsp/powerpc/mvme3100/i2c/mpc8540_i2c.c", + "src/lib/libbsp/powerpc/shared/motorola/vpd.c", + "src/lib/libbsp/shared/vmeUniverse/vmeTsi148.c", + ] + ctx.bsp.source( + source, + features="src_include", + includes=["%s/include/bsp/" % ctx.srcnode.abspath()] + ) + + +def mvme5500(ctx): + + libcpu_cpu_ident(ctx) + libcpu_stack(ctx) + libcpu_cache(ctx) + libcpu_rtems_cpu(ctx) + libcpu_mpc6xx_clock(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_irq_bspsupport(ctx) + libcpu_mpc6xx_mmu(ctx) + libcpu_mpc6xx_timer(ctx) + libcpu_mpc6xx_altivec(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/shared/start/rtems_crti.S", "src/lib/libbsp/powerpc/shared/start/preload.S", "src/lib/libbsp/powerpc/shared/start/start.S"]) + + source_networking = [ + "src/lib/libbsp/powerpc/mvme5500/network/if_100MHz/GT64260eth.c", + "src/lib/libbsp/powerpc/mvme5500/network/if_1GHz/if_wm.c", + "src/lib/libbsp/powerpc/mvme5500/network/if_1GHz/pci_map.c", + ] + ctx.bsp.networking( + source_networking, + features="src_include src_include_bsp src_include_networking", + defines=["_KERNEL", "__BSD_VISIBLE"] + ) + + source += [ + "src/lib/libbsp/powerpc/mvme5500/GT64260/GT64260TWSI.c", + "src/lib/libbsp/powerpc/mvme5500/GT64260/MVME5500I2C.c", + "src/lib/libbsp/powerpc/mvme5500/irq/BSP_irq.c", + "src/lib/libbsp/powerpc/mvme5500/irq/irq_init.c", + "src/lib/libbsp/powerpc/mvme5500/pci/detect_host_bridge.c", + "src/lib/libbsp/powerpc/mvme5500/pci/pci.c", + "src/lib/libbsp/powerpc/mvme5500/pci/pci_interface.c", + "src/lib/libbsp/powerpc/mvme5500/pci/pcifinddevice.c", + "src/lib/libbsp/powerpc/mvme5500/startup/bspclean.c", + "src/lib/libbsp/powerpc/mvme5500/startup/bspreset.c", + "src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c", + "src/lib/libbsp/powerpc/mvme5500/startup/pgtbl_activate.c", + "src/lib/libbsp/powerpc/mvme5500/tod/todcfg.c", + "src/lib/libbsp/powerpc/mvme5500/vectors/exceptionhandler.c", + "src/lib/libbsp/powerpc/shared/clock/p_clock.c", + "src/lib/libbsp/powerpc/shared/console/console.c", + "src/lib/libbsp/powerpc/shared/console/uart.c", + "src/lib/libbsp/powerpc/shared/start/preload.S", + "src/lib/libbsp/powerpc/shared/start/vectors_entry.S", + "src/lib/libbsp/powerpc/shared/startup/bspgetworkarea.c", + "src/lib/libbsp/powerpc/shared/startup/pgtbl_setup.c", + "src/lib/libbsp/powerpc/shared/startup/pretaskinghook.c", + "src/lib/libbsp/powerpc/shared/startup/probeMemEnd.c", + "src/lib/libbsp/powerpc/shared/startup/sbrk.c", + "src/lib/libbsp/powerpc/shared/startup/zerobss.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/tod.c", + "src/lib/libbsp/shared/vmeUniverse/bspVmeDmaList.c", + "src/lib/libbsp/powerpc/shared/vme/vme_universe.c", + "src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_print.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + source = [ + "src/lib/libbsp/shared/vmeUniverse/vmeUniverse.c", + "src/lib/libbsp/powerpc/shared/vme/vmeconfig.c", + ] + ctx.bsp.source( + source, + features="src_include", + includes=["%s/include/bsp/" % ctx.srcnode.abspath()] + ) + + + +def psim(ctx): + + libcpu_cpu_ident(ctx) + libcpu_cache(ctx) + libcpu_stack(ctx) + libcpu_rtems_cpu(ctx) + libcpu_mpc6xx_clock(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_irq_bspsupport(ctx) + libcpu_mpc6xx_mmu(ctx) + libcpu_mpc6xx_timer(ctx) + libcpu_mpc6xx_altivec(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/shared/start/rtems_crti.S", "src/lib/libbsp/powerpc/psim/start/start.S"]) + + source_networking = [ + "src/lib/libbsp/powerpc/psim/network/if_sim.c", + ] + ctx.bsp.networking( + source_networking, + features="src_include" + ) + + source_mp = [ + "src/lib/libbsp/powerpc/psim/shmsupp/addrconv.c", + "src/lib/libbsp/powerpc/psim/shmsupp/getcfg.c", + "src/lib/libbsp/powerpc/psim/shmsupp/lock.c", + "src/lib/libbsp/powerpc/psim/shmsupp/mpisr.c", + ] + ctx.bsp.mp( + source_mp, + features="src_include" + ) + + source += [ + "src/lib/libbsp/powerpc/psim/console/console-io.c", + "src/lib/libbsp/powerpc/psim/console/consupp.S", + "src/lib/libbsp/powerpc/psim/irq/irq_init.c", + "src/lib/libbsp/powerpc/psim/network/if_sim.c", + "src/lib/libbsp/powerpc/psim/startup/bspstart.c", + "src/lib/libbsp/powerpc/psim/startup/psim_registers.c", + "src/lib/libbsp/powerpc/psim/vectors/align_h.S", + "src/lib/libbsp/powerpc/shared/clock/p_clock.c", + "src/lib/libbsp/powerpc/shared/irq/openpic_i8259_irq.c", + "src/lib/libbsp/powerpc/shared/openpic/openpic.c", + "src/lib/libbsp/powerpc/shared/start/rtems_crti.S", + "src/lib/libbsp/shared/bspgetworkarea.c", + "src/lib/libbsp/powerpc/shared/startup/sbrk.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/bsppretaskinghook.c", + "src/lib/libbsp/shared/console-polled.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def qemuppc(ctx): + + libcpu_cpu_ident(ctx) + libcpu_cache(ctx) + libcpu_stack(ctx) + libcpu_rtems_cpu(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_mpc6xx_mmu(ctx) + libcpu_mpc6xx_timer(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/shared/start/rtems_crti.S", "src/lib/libbsp/powerpc/qemuppc/start/start.S"]) + + source += [ + "src/lib/libbsp/powerpc/qemuppc/console/console-io.c", + "src/lib/libbsp/powerpc/qemuppc/irq/irq_init.c", + "src/lib/libbsp/powerpc/qemuppc/startup/bsppanic.c", + "src/lib/libbsp/powerpc/qemuppc/startup/bspstart.c", + "src/lib/libbsp/powerpc/qemuppc/startup/cmain.c", + "src/lib/libbsp/powerpc/shared/clock/clock.c", + "src/lib/libbsp/powerpc/shared/start/rtems_crti.S", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bspgetworkarea.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/bsppretaskinghook.c", + "src/lib/libbsp/shared/clock_driver_simidle.c", + "src/lib/libbsp/shared/clock_driver_simidle.c", + "src/lib/libbsp/shared/console-polled.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/src/irq-generic.c", + "src/lib/libbsp/shared/src/irq-legacy.c", + "src/lib/libbsp/shared/src/irq-default-handler.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def score603e(ctx): + + libcpu_cache(ctx) + libcpu_cpu_ident(ctx) + libcpu_stack(ctx) + libcpu_rtems_cpu(ctx) + libcpu_mpc6xx_clock(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_irq_bspsupport(ctx) + libcpu_mpc6xx_mmu(ctx) + libcpu_mpc6xx_timer(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/score603e/start/start.S"]) + + source += [ + "src/lib/libbsp/powerpc/score603e/PCI_bus/PCI.c", + "src/lib/libbsp/powerpc/score603e/console/85c30.c", + "src/lib/libbsp/powerpc/score603e/console/console.c", + "src/lib/libbsp/powerpc/score603e/console/tbl85c30.c", + "src/lib/libbsp/powerpc/score603e/irq/FPGA.c", + "src/lib/libbsp/powerpc/score603e/irq/irq_init.c", + "src/lib/libbsp/powerpc/score603e/irq/no_pic.c", + "src/lib/libbsp/powerpc/score603e/startup/Hwr_init.c", + "src/lib/libbsp/powerpc/score603e/startup/bspstart.c", + "src/lib/libbsp/powerpc/shared/clock/p_clock.c", + "src/lib/libbsp/powerpc/shared/pci/pci.c", + "src/lib/libbsp/powerpc/shared/pci/pcifinddevice.c", + "src/lib/libbsp/powerpc/shared/showbats.c", + "src/lib/libbsp/powerpc/shared/startup/bspgetworkarea.c", + "src/lib/libbsp/powerpc/shared/startup/sbrk.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bsppretaskinghook.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + source = [ + "src/lib/libbsp/powerpc/score603e/PCI_bus/flash.c", + "src/lib/libbsp/powerpc/score603e/PCI_bus/universe.c", + ] + ctx.bsp.source( + source, + features="src_include", + includes=["%s/include/bsp/" % ctx.srcnode.abspath()] + ) + + + +def ss555(ctx): + + libcpu_cpu_ident(ctx) + libcpu_rtems_cpu(ctx) + libcpu_mpc5xx_clock(ctx) + libcpu_mpc5xx_console(ctx) + libcpu_mpc5xx_exceptions(ctx) + libcpu_mpc5xx_irq(ctx) + libcpu_mpc5xx_timer(ctx) + libcpu_mpc5xx_vectors(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/ss555/startup/start.S"]) + + source += [ + "src/lib/libbsp/powerpc/ss555/clock/p_clock.c", + "src/lib/libbsp/powerpc/ss555/console/console.c", + "src/lib/libbsp/powerpc/ss555/startup/bspstart.c", + "src/lib/libbsp/powerpc/ss555/startup/iss555.c", + "src/lib/libbsp/powerpc/ss555/startup/tm27supp.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bspgetworkarea.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/bsppretaskinghook.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + +def t32mppc(ctx): + source = [] + libcpu_exc_bspsupport(ctx) + libcpu_cache(ctx) + libcpu_cpu_ident(ctx) + libcpu_stack(ctx) + libcpu_rtems_cpu(ctx) + libcpu_irq_bspsupport(ctx) + + ctx.bsp.start(["src/lib/libbsp/powerpc/t32mppc/start/start.S", "src/lib/libbsp/powerpc/shared/start/rtems_crti.S"]) + + source += [ + "src/lib/libbsp/powerpc/shared/clock/clock.c", + "src/lib/libbsp/powerpc/shared/src/bsp-start-zero.S", + "src/lib/libbsp/powerpc/shared/src/tictac.c", + "src/lib/libbsp/powerpc/shared/start/rtems_crti.S", + "src/lib/libbsp/powerpc/t32mppc/irq/irq.c", + "src/lib/libbsp/powerpc/t32mppc/startup/bspreset.c", + "src/lib/libbsp/powerpc/t32mppc/startup/bspstart.c", + "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/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/timerstub.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + source = [ + "src/lib/libbsp/powerpc/t32mppc/console/console-config.c", + "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 tqm8xx_shared(ctx): + + libcpu_cpu_ident(ctx) + libcpu_cache(ctx) + libcpu_rtems_cpu(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_mpc8xx_console(ctx) + libcpu_mpc8xx_cpm(ctx) + libcpu_mpc8xx_mmu(ctx) + libcpu_mpc8xx_timer(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/shared/start/rtems_crti.S", "src/lib/libbsp/powerpc/tqm8xx/startup/start.S"]) + + source_networking = [ + "src/lib/libbsp/powerpc/tqm8xx/network/network_fec.c", + "src/lib/libbsp/powerpc/tqm8xx/network/network_scc.c", + ] + ctx.bsp.networking( + source_networking, + features="src_include", + defines=["bsp_cmdline_arg=rtems_bsp_cmdline_get_param_raw", "__INSIDE_RTEMS_BSD_TCPIP_STACK__"] + ) + + source += [ + "src/lib/libbsp/powerpc/shared/clock/clock.c", + "src/lib/libbsp/powerpc/shared/start/rtems_crti.S", + "src/lib/libbsp/powerpc/shared/startup/bspidle.c", + "src/lib/libbsp/powerpc/tqm8xx/console/console.c", + "src/lib/libbsp/powerpc/tqm8xx/irq/irq.c", + "src/lib/libbsp/powerpc/tqm8xx/spi/spi.c", + "src/lib/libbsp/powerpc/tqm8xx/startup/bspgetworkarea.c", + "src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c", + "src/lib/libbsp/powerpc/tqm8xx/startup/cpuinit.c", + "src/lib/libbsp/powerpc/tqm8xx/startup/mmutlbtab.c", + "src/lib/libbsp/powerpc/tqm8xx/timer/timer.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/bsppretaskinghook.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/src/irq-generic.c", + "src/lib/libbsp/shared/src/irq-legacy.c", + "src/lib/libbsp/shared/src/irq-default-handler.c", + "src/lib/libbsp/powerpc/tqm8xx/clock/p_clock.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + +def qoriq_shared(ctx): + source = [] + + libcpu_exc_bspsupport(ctx) + libcpu_cache(ctx) + libcpu_cpu_ident(ctx) + libcpu_stack(ctx) + libcpu_rtems_cpu(ctx) + libcpu_irq_bspsupport(ctx) + + ctx.bsp.start(["src/lib/libbsp/powerpc/qoriq/start/start.S", "src/lib/libbsp/powerpc/shared/start/rtems_crti.S"]) + + source += [ + "src/lib/libbsp/powerpc/qoriq/clock/clock-config.c", + "src/lib/libbsp/powerpc/qoriq/console/uart-bridge-master.c", + "src/lib/libbsp/powerpc/qoriq/console/uart-bridge-slave.c", + "src/lib/libbsp/powerpc/qoriq/irq/irq.c", + "src/lib/libbsp/powerpc/qoriq/network/if_intercom.c", + "src/lib/libbsp/powerpc/qoriq/network/network.c", + "src/lib/libbsp/powerpc/qoriq/rtc/rtc-config.c", + "src/lib/libbsp/powerpc/qoriq/shmsupp/intercom-mpci.c", + "src/lib/libbsp/powerpc/qoriq/shmsupp/intercom.c", + "src/lib/libbsp/powerpc/qoriq/shmsupp/lock.S", + "src/lib/libbsp/powerpc/qoriq/startup/bsppredriverhook.c", + "src/lib/libbsp/powerpc/qoriq/startup/bspreset.c", + "src/lib/libbsp/powerpc/qoriq/startup/bspstart.c", + "src/lib/libbsp/powerpc/qoriq/startup/mmu-config.c", + "src/lib/libbsp/powerpc/qoriq/startup/mmu-tlb1.S", + "src/lib/libbsp/powerpc/qoriq/startup/mmu.c", + "src/lib/libbsp/powerpc/qoriq/timer/timer.c", + "src/lib/libbsp/powerpc/shared/src/bsp-start-zero.S", + "src/lib/libbsp/powerpc/shared/src/ppc-exc-handler-table.c", + "src/lib/libbsp/powerpc/shared/src/tictac.c", + "src/lib/libbsp/powerpc/shared/start/rtems_crti.S", + "src/lib/libbsp/powerpc/shared/startup/bspidle.c", + "src/lib/libbsp/powerpc/shared/uboot_dump_bdinfo.c", + "src/lib/libbsp/powerpc/shared/uboot_getenv.c", + "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/bsppretaskinghook.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/src/bsp-uboot-board-info.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/tod.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + source = [ + "src/lib/libbsp/powerpc/qoriq/console/console-config.c", + "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" + ) + +# source = [ +# "src/lib/libcpu/shared/src/cache_manager.c" +# ] +# ctx.bsp.source( +# source, +# features="src_include src_include_libcpu" +# ) + + + + +def virtex(ctx): + libcpu_rtems_cpu(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_cache(ctx) + libcpu_cpu_ident(ctx) + libcpu_ppc403_clock(ctx) + libcpu_ppc403_timer(ctx) + libcpu_ppc403_tty_drv(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/shared/start/rtems_crti.S"]) + + source_networking = [ + "src/lib/libbsp/powerpc/virtex/network/xiltemac.c", + ] + ctx.bsp.networking( + source_networking, + features="src_include", + defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__", "__BSD_VISIBLE"] + ) + + source += [ + "src/lib/libbsp/powerpc/shared/start/rtems_crti.S", + "src/lib/libbsp/powerpc/virtex/console/consolelite.c", + "src/lib/libbsp/powerpc/virtex/dlentry/dlentry.S", + "src/lib/libbsp/powerpc/virtex/irq/irq_init.c", + "src/lib/libbsp/powerpc/virtex/opbintctrl/opbintctrl.c", + "src/lib/libbsp/powerpc/virtex/startup/bspstart.c", + "src/lib/libbsp/shared/bspclean.c", + "src/lib/libbsp/shared/bspgetworkarea.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/bsppretaskinghook.c", + "src/lib/libbsp/shared/bspreset_fatal.c", + "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", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + ] + + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + +def virtex4(ctx): + libcpu_rtems_cpu(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_cache(ctx) + libcpu_cpu_ident(ctx) + libcpu_ppc403_clock(ctx) + libcpu_ppc403_timer(ctx) + libcpu_ppc403_tty_drv(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/powerpc/shared/start/rtems_crti.S"]) + + source = [ +"src/lib/libbsp/powerpc/shared/src/memcpy.c", +"src/lib/libbsp/powerpc/shared/start/rtems_crti.S", +"src/lib/libbsp/powerpc/shared/startup/zerobss.c", +"src/lib/libbsp/powerpc/virtex4/irq/irq_init.c", +"src/lib/libbsp/powerpc/virtex4/mmu/mmu.c", +"src/lib/libbsp/powerpc/virtex4/startup/bspclean.c", +"src/lib/libbsp/powerpc/virtex4/startup/bspstart.c", +"src/lib/libbsp/powerpc/virtex4/startup/dummy_console.c", +"src/lib/libbsp/powerpc/virtex4/startup/start.S", +"src/lib/libbsp/shared/bootcard.c", +"src/lib/libbsp/shared/bspgetworkarea.c", +"src/lib/libbsp/shared/bsplibc.c", +"src/lib/libbsp/shared/bsppost.c", +"src/lib/libbsp/shared/dummy_printk_support.c", +"src/lib/libbsp/shared/gnatinstallhandler.c", +"src/lib/libbsp/shared/sbrk.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + +def virtex5(ctx): + libcpu_rtems_cpu(ctx) + libcpu_exc_bspsupport(ctx) + libcpu_cache(ctx) + libcpu_cpu_ident(ctx) + libcpu_ppc403_clock(ctx) + libcpu_ppc403_timer(ctx) +# libcpu_ppc403_tty_drv(ctx) + + ctx.bsp.start(["src/lib/libbsp/powerpc/shared/start/rtems_crti.S"]) + + source = [ +"src/lib/libbsp/powerpc/shared/clock/p_clock.c", +"src/lib/libbsp/powerpc/shared/src/memcpy.c", +"src/lib/libbsp/powerpc/shared/start/rtems_crti.S", +"src/lib/libbsp/powerpc/shared/startup/zerobss.c", +"src/lib/libbsp/powerpc/virtex5/irq/irq_init.c", +"src/lib/libbsp/powerpc/virtex5/mmu/mmu.c", +"src/lib/libbsp/powerpc/virtex5/startup/bspclean.c", +"src/lib/libbsp/powerpc/virtex5/startup/bspstart.c", +"src/lib/libbsp/powerpc/virtex5/startup/dummy_console.c", +"src/lib/libbsp/powerpc/virtex5/startup/start.S", +"src/lib/libbsp/shared/bootcard.c", +"src/lib/libbsp/shared/bspgetworkarea.c", +"src/lib/libbsp/shared/bsplibc.c", +"src/lib/libbsp/shared/bsppost.c", +"src/lib/libbsp/shared/dummy_printk_support.c", +"src/lib/libbsp/shared/gnatinstallhandler.c", +"src/lib/libbsp/shared/sbrk.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + +def build(ctx): + source = [] + + + source += [ + "src/lib/libbsp/shared/bootcard.c", + "src/lib/libbsp/shared/bsplibc.c", + "src/lib/libbsp/shared/bsppost.c", + ] + + + ctx.bsp.source( + source, + features="src_include" + ) + + + map = { + "beatnik": beatnik, + "ep1a": ep1a, + "br_uid": gen83xx_shared, + "brs5l": gen5200_shared, + "brs6l": gen5200_shared, + "dp2": gen5200_shared, + "icecube": gen5200_shared, + "pm520_cr825": gen5200_shared, + "pm520_ze30": gen5200_shared, + "hsc_cm01": gen83xx_shared, + "mpc8309som": gen83xx_shared, + "mpc8313erdb": gen83xx_shared, + "mpc8349eamds": gen83xx_shared, + "haleakala": haleakala, + "mbx821_001": mbx8xx_shared, + "mbx821_002": mbx8xx_shared, + "mbx821_002b": mbx8xx_shared, + "mbx860_001b": mbx8xx_shared, + "mbx860_002": mbx8xx_shared, + "mbx860_005b": mbx8xx_shared, + "mbx860_1b": mbx8xx_shared, + "mcp750": motorola_powerpc_shared, + "mtx603e": motorola_powerpc_shared, + "mvme2100": motorola_powerpc_shared, + "mvme2307": motorola_powerpc_shared, + "qemuprep": motorola_powerpc_shared, + "qemuprep-altivec": motorola_powerpc_shared, + "gwlcfm": mpc55xxevb_shared, + "mpc5566evb": mpc55xxevb_shared, + "mpc5566evb_spe": mpc55xxevb_shared, + "mpc5643l_dpu": mpc55xxevb_shared, + "mpc5643l_evb": mpc55xxevb_shared, + "mpc5674f_ecu508_app": mpc55xxevb_shared, + "mpc5674f_ecu508_boot": mpc55xxevb_shared, + "mpc5674f_rsm6": mpc55xxevb_shared, + "mpc5674fevb": mpc55xxevb_shared, + "mpc5674fevb_spe": mpc55xxevb_shared, + "phycore_mpc5554": mpc55xxevb_shared, + "mpc8260ads": mpc8260ads, + "mvme3100": mvme3100, + "mvme5500": mvme5500, + "psim": psim, + "qemuppc": qemuppc, + "score603e": score603e, + "ss555": ss555, + "t32mppc": t32mppc, + "pghplus": tqm8xx_shared, + "qoriq_core_0": qoriq_shared, + "qoriq_core_1": qoriq_shared, + "qoriq_p1020rdb": qoriq_shared, + "tqm8xx_stk8xx": tqm8xx_shared, + "virtex": virtex, + "virtex4": virtex4, + "virtex5": virtex5, + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_powerpc(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_sh b/c/wscript_sh new file mode 100644 index 0000000000..f60dd82998 --- /dev/null +++ b/c/wscript_sh @@ -0,0 +1,284 @@ +# +# SH libcpu support. See the PowerPC BSP file for details. +# + +def libcpu_sh7032_clock(ctx): + source = [ + "src/lib/libcpu/sh/sh7032/clock/ckinit.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_sh7032_delay(ctx): + source = [ + "src/lib/libcpu/sh/sh7032/delay/delay.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_sh7032_sci(ctx): + source = [ + "src/lib/libcpu/sh/sh7032/sci/sci.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_sh7032_score(ctx): + source = [ + "src/lib/libcpu/sh/sh7032/score/cpu_asm.c", + "src/lib/libcpu/sh/sh7032/score/ispsh7032.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_sh7032_timer(ctx): + source = [ + "src/lib/libcpu/sh/sh7032/timer/timer.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_sh7045_clock(ctx): + source = [ + "src/lib/libcpu/sh/sh7045/clock/ckinit.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_sh7045_sci(ctx): + source = [ + "src/lib/libcpu/sh/sh7045/sci/sci.c", + "src/lib/libcpu/sh/sh7045/sci/sci_termios.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_sh7045_score(ctx): + source = [ + "src/lib/libcpu/sh/sh7045/score/cpu_asm.c", + "src/lib/libcpu/sh/sh7045/score/ispsh7045.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_sh7045_timer(ctx): + source = [ + "src/lib/libcpu/sh/sh7045/timer/timer.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_sh7750_clock(ctx): + source = [ + "src/lib/libcpu/sh/sh7750/clock/ckinit.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_sh7750_sci(ctx): + source = [ + "src/lib/libcpu/sh/sh7750/sci/sh4uart.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_sh7750_score(ctx): + source = [ + "src/lib/libcpu/sh/sh7750/score/cpu_asm.c", + "src/lib/libcpu/sh/sh7750/score/ispsh7750.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + +def libcpu_sh7750_timer(ctx): + source = [ + "src/lib/libcpu/sh/sh7750/timer/timer.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + +def libcpu_shgdb_score(ctx): + source = [ + "src/lib/libcpu/sh/shgdb/score/cpu_asm.c", + "src/lib/libcpu/sh/shgdb/score/ispshgdb.c" + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + +def gensh1(ctx): + + libcpu_sh7032_clock(ctx) + libcpu_sh7032_timer(ctx) + libcpu_sh7032_sci(ctx) + libcpu_sh7032_delay(ctx) + libcpu_sh7032_score(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/sh/gensh1/start/start.S"]) + + source += [ +# "src/lib/libbsp/sh/gensh1/scitab.c", + "src/lib/libbsp/sh/shared/console.c", + "src/lib/libbsp/shared/bspreset_fatal.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def gensh2(ctx): + + libcpu_sh7045_clock(ctx) + libcpu_sh7045_timer(ctx) + libcpu_sh7045_sci(ctx) + libcpu_sh7045_score(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/sh/gensh2/start/start.S"]) + + source += [ + "src/lib/libbsp/sh/gensh2/console/config.c", +# "src/lib/libbsp/sh/gensh2/scitab.c", + "src/lib/libbsp/sh/gensh2/startup/hw_init.c", + "src/lib/libbsp/sh/shared/console.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def gensh4(ctx): + + libcpu_sh7750_clock(ctx) + libcpu_sh7750_timer(ctx) + libcpu_sh7750_sci(ctx) + libcpu_sh7750_score(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/sh/gensh4/start/start.S"]) + + source += [ + "src/lib/libbsp/sh/gensh4/console/console.c", + "src/lib/libbsp/sh/gensh4/hw_init/hw_init.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def shsim_shared(ctx): + + libcpu_shgdb_score(ctx) + + source = [] + + ctx.bsp.start(["src/lib/libbsp/sh/shsim/start/start.S"]) + + source += [ + "src/lib/libbsp/sh/shsim/trap34/console-io.c", + "src/lib/libbsp/sh/shsim/trap34/console-support.S", + "src/lib/libbsp/shared/clock_driver_simidle.c", + "src/lib/libbsp/shared/console-polled.c", + "src/lib/libbsp/shared/timerstub.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + + +def build(ctx): + source = [] + + source += [ + "src/lib/libbsp/sh/shared/bsphwinit.c", + "src/lib/libbsp/sh/shared/bspstart.c", + "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/dummy_printk_support.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + map = { + "gensh1": gensh1, + "gensh2": gensh2, + "gensh4": gensh4, + "simsh1": shsim_shared, + "simsh2": shsim_shared, + "simsh2e": shsim_shared, + "simsh4": shsim_shared + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_sh(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_sparc b/c/wscript_sparc new file mode 100644 index 0000000000..f3999cd668 --- /dev/null +++ b/c/wscript_sparc @@ -0,0 +1,234 @@ +def erc32_shared(ctx): + source = [] + + source_networking = [ + "src/lib/libbsp/sparc/erc32/erc32sonic/erc32sonic.c" + ] + ctx.bsp.networking( + source_networking, + features="src_include" + ) + + source_smp = [ + "src/lib/libbsp/shared/smp/getcpuid.c", + "src/lib/libbsp/shared/smp/smp_stub.c", + "src/lib/libbsp/shared/smp/bspsmp_wait_for.c" + ] + ctx.bsp.smp( + source_smp, + features="src_include" + ) + + source += [ + "src/lib/libbsp/sparc/erc32/clock/ckinit.c", + "src/lib/libbsp/sparc/erc32/console/debugputs.c", + "src/lib/libbsp/sparc/erc32/console/erc32_console.c", + "src/lib/libbsp/sparc/erc32/gnatsupp/gnatsupp.c", + "src/lib/libbsp/sparc/erc32/startup/boardinit.S", + "src/lib/libbsp/sparc/erc32/startup/bspdelay.c", + "src/lib/libbsp/sparc/erc32/startup/bspidle.c", + "src/lib/libbsp/sparc/erc32/startup/erc32mec.c", + "src/lib/libbsp/sparc/erc32/startup/setvec.c", + "src/lib/libbsp/sparc/erc32/startup/spurious.c", + "src/lib/libbsp/sparc/erc32/timer/timer.c", + "src/lib/libbsp/shared/bspstart.c", + "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", + "src/lib/libbsp/sparc/shared/gnatcommon.c", + "src/lib/libbsp/sparc/shared/startup/bsp_fatal_halt.c", + "src/lib/libbsp/sparc/shared/cpu.c" + ] + ctx.bsp.source( + source, + features="src_include src_include_bsp" + ) + + +def leon2(ctx): + source = [] + + source_networking = [ + "src/lib/libbsp/sparc/leon2/leon_smc91111/leon_smc91111.c", + "src/lib/libbsp/sparc/leon2/leon_open_eth/leon_open_eth.c" + ] + ctx.bsp.networking( + source_networking, + features="src_include" + ) + + source_smp = [ + "src/lib/libbsp/shared/smp/bspsmp_wait_for.c", + "src/lib/libbsp/shared/smp/getcpuid.c", + "src/lib/libbsp/shared/smp/smp_stub.c" + ] + ctx.bsp.smp( + source_smp, + features="src_include" + ) + + + source += [ + "src/lib/libbsp/sparc/leon2/cchip/cchip.c", + "src/lib/libbsp/sparc/leon2/clock/ckinit.c", + "src/lib/libbsp/sparc/leon2/console/console.c", + "src/lib/libbsp/sparc/leon2/console/debugputs.c", + "src/lib/libbsp/sparc/leon2/gnatsupp/gnatsupp.c", + "src/lib/libbsp/sparc/leon2/pci/pci.c", + "src/lib/libbsp/sparc/leon2/rasta/rasta.c", + "src/lib/libbsp/sparc/leon2/startup/bspdelay.c", + "src/lib/libbsp/sparc/leon2/startup/bspidle.c", + "src/lib/libbsp/sparc/leon2/startup/bspstart.c", + "src/lib/libbsp/sparc/leon2/startup/setvec.c", + "src/lib/libbsp/sparc/leon2/startup/spurious.c", + "src/lib/libbsp/sparc/leon2/timer/timer.c", + "src/lib/libbsp/sparc/shared/1553/b1553brm.c", + "src/lib/libbsp/sparc/shared/1553/b1553brm_pci.c", + "src/lib/libbsp/sparc/shared/1553/b1553brm_rasta.c", + "src/lib/libbsp/sparc/shared/amba/ambapp.c", + "src/lib/libbsp/sparc/shared/can/grcan.c", + "src/lib/libbsp/sparc/shared/can/grcan_rasta.c", + "src/lib/libbsp/sparc/shared/can/occan.c", + "src/lib/libbsp/sparc/shared/can/occan_pci.c", + "src/lib/libbsp/sparc/shared/gnatcommon.c", + "src/lib/libbsp/sparc/shared/i2c/i2cmst.c", + "src/lib/libbsp/sparc/shared/pci/pcifinddevice.c", + "src/lib/libbsp/sparc/shared/spw/grspw.c", + "src/lib/libbsp/sparc/shared/spw/grspw_pci.c", + "src/lib/libbsp/sparc/shared/spw/grspw_rasta.c", + "src/lib/libbsp/sparc/shared/uart/apbuart.c", + "src/lib/libbsp/sparc/shared/uart/apbuart_pci.c", + "src/lib/libbsp/sparc/shared/uart/apbuart_rasta.c", + ] + ctx.bsp.source( + source, + # src_include_rtems is required for ringbuf.h + features="src_include src_include_rtems" + ) + + +def leon3(ctx): + source = [] + + source_smp = [ + "src/lib/libbsp/sparc/leon3/smp/getcpuid.c", + "src/lib/libbsp/sparc/leon3/smp/smp_leon3.c", + ] + ctx.bsp.smp( + source_smp, + features="src_include" + ) + + source_networking = [ + "src/lib/libbsp/sparc/leon3/leon_smc91111/leon_smc91111.c", + "src/lib/libbsp/sparc/leon3/leon_open_eth/leon_open_eth.c", + "src/lib/libbsp/sparc/leon3/leon_greth/leon_greth.c", + ] + ctx.bsp.networking( + source_networking, + features="src_include" + ) + + source_mp = [ + "src/lib/libbsp/sparc/leon3/shmsupp/addrconv.c", + "src/lib/libbsp/sparc/leon3/shmsupp/getcfg.c", + "src/lib/libbsp/sparc/leon3/shmsupp/lock.c", + "src/lib/libbsp/sparc/leon3/shmsupp/mpisr.c", + ] + ctx.bsp.mp( + source_mp, + features="src_include", + includes="%s/c/src/libchip/shmdr/" % ctx.srcnode.abspath() + ) + + source += [ + "src/lib/libbsp/sparc/leon3/amba/amba.c", + "src/lib/libbsp/sparc/shared/amba/ambapp_find_by_idx.c", + "src/lib/libbsp/sparc/leon3/console/printk_support.c", + "src/lib/libbsp/sparc/shared/amba/ambapp_freq.c", + "src/lib/libbsp/sparc/leon3/startup/eirq.c", + "src/lib/libbsp/sparc/shared/startup/early_malloc.c", + "src/lib/libbsp/sparc/leon3/clock/ckinit.c", + "src/lib/libbsp/sparc/leon3/console/console.c", + "src/lib/libbsp/sparc/leon3/gnatsupp/gnatsupp.c", + "src/lib/libbsp/sparc/leon3/pci/pci.c", + "src/lib/libbsp/sparc/leon3/startup/bspdelay.c", + "src/lib/libbsp/sparc/leon3/startup/bspidle.S", + "src/lib/libbsp/sparc/leon3/startup/bspstart.c", + "src/lib/libbsp/sparc/leon3/startup/setvec.c", + "src/lib/libbsp/sparc/leon3/startup/spurious.c", + "src/lib/libbsp/sparc/leon3/timer/timer.c", + "src/lib/libbsp/sparc/shared/1553/b1553brm.c", + "src/lib/libbsp/sparc/shared/1553/b1553brm_pci.c", + "src/lib/libbsp/sparc/shared/amba/ambapp.c", + "src/lib/libbsp/sparc/shared/can/grcan.c", + "src/lib/libbsp/sparc/shared/can/occan.c", + "src/lib/libbsp/sparc/shared/can/occan_pci.c", + "src/lib/libbsp/sparc/shared/gnatcommon.c", + "src/lib/libbsp/sparc/shared/i2c/i2cmst.c", + "src/lib/libbsp/sparc/shared/pci/pcifinddevice.c", + "src/lib/libbsp/sparc/shared/spw/grspw.c", + "src/lib/libbsp/sparc/shared/spw/grspw_pci.c", + "src/lib/libbsp/sparc/shared/uart/apbuart.c", + "src/lib/libbsp/sparc/shared/uart/apbuart_pci.c" + ] + ctx.bsp.source( + source, + features="src_include" + ) + + +def build(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/sparc/shared/start/start.S"]) + + #if has_instruction_cache + #cache_rel_CPPFLAGS += -DHAS_INSTRUCTION_CACHE + source_cache = [ +# "src/lib/libcpu/shared/src/cache_aligned_malloc.c", + "src/lib/libcpu/shared/src/cache_manager.c" + ] + + ctx.bsp.source( + source_cache, + features="src_include", + includes=["%s/c/src/lib/libcpu/sparc/cache" % ctx.srcnode.abspath()] + ) + + # Shared between all BSPs + # There are more shared between two bsps above. + source += [ + "src/lib/libbsp/shared/bootcard.c", + "src/lib/libbsp/shared/bspclean.c", +# "src/lib/libbsp/shared/bspinit.c", + "src/lib/libbsp/shared/bsplibc.c", + "src/lib/libbsp/shared/bsppost.c", + "src/lib/libbsp/shared/bsppredriverhook.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/sparc/shared/startup/bspgetworkarea.c", + "src/lib/libbsp/sparc/shared/bsppretaskinghook.c", + "src/lib/libbsp/sparc/shared/irq_asm.S", + "src/lib/libcpu/sparc/cache/cache.c", + "src/lib/libcpu/sparc/syscall/syscall.S", + "src/lib/libcpu/sparc/reg_win/window.S" + ] + ctx.bsp.source( + source, + features="src_include", + ) + + + map = { + "erc32": erc32_shared, # XXX: This requires something to be disabled in start.S that is needed for sis. + "sis": erc32_shared, + "leon2": leon2, + "leon3": leon3 + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_sparc(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_sparc64 b/c/wscript_sparc64 new file mode 100644 index 0000000000..acc51a504f --- /dev/null +++ b/c/wscript_sparc64 @@ -0,0 +1,93 @@ +def niagara(ctx): + source = [] + + + source += [ + "src/lib/libbsp/sparc64/niagara/start/bspinit.S" + ] + ctx.bsp.source( + source, + features="src_include", +# cflags=["-DNDS"], +# includes=["%s/c/src/lib/libbsp/arm/nds/libnds/include/" % ctx.srcnode.abspath()] + ) + + +def usiii(ctx): + source = [] + + source += [ + "src/lib/libbsp/sparc64/shared/helenos/kernel/sparc64/src/cache.S", + "src/lib/libbsp/sparc64/shared/helenos/kernel/sparc64/src/sun4u/takemmu.S", + "src/lib/libbsp/sparc64/shared/start/trap_table.S", + "src/lib/libbsp/sparc64/usiii/start/bspinit.S" + ] + + ctx.bsp.source( + source, + features="src_include", + ) + + +def build(ctx): + source = [] + + ctx.bsp.start(["src/lib/libbsp/sparc64/shared/start/start.S"]) + + source += [ +# FXIME: The cache_.h header is a local to the source + "src/lib/libcpu/shared/src/cache_aligned_malloc.c", + "src/lib/libcpu/shared/src/cache_manager.c", + "src/lib/libcpu/sparc64/shared/cache/cache.c", + "src/lib/libcpu/sparc64/shared/interrupts/installisrentries.c", + "src/lib/libcpu/sparc64/shared/score/cpu.c", + "src/lib/libcpu/sparc64/shared/score/interrupt.S", + "src/lib/libcpu/sparc64/shared/syscall/sparc64-syscall.S" + ] + + source += [ + "src/lib/libbsp/shared/bootcard.c", + "src/lib/libbsp/shared/bspclean.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/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", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/timerstub.c", + "src/lib/libbsp/sparc64/shared/asm/asm.S", + "src/lib/libbsp/sparc64/shared/clock/ckinit.c", + "src/lib/libbsp/sparc64/shared/console/conscfg.c", + "src/lib/libbsp/sparc64/shared/helenos/boot/genarch/balloc.c", + "src/lib/libbsp/sparc64/shared/helenos/boot/genarch/ofw.c", + "src/lib/libbsp/sparc64/shared/helenos/boot/genarch/ofw_tree.c", + # "src/lib/libbsp/sparc64/shared/helenos/boot/generic/string.c", # use libc and not this + "src/lib/libbsp/sparc64/shared/helenos/boot/sparc64/loader/main.c", + "src/lib/libbsp/sparc64/shared/helenos/boot/sparc64/loader/ofwarch.c", + "src/lib/libbsp/sparc64/shared/helenos/boot/sparc64/loader/ofwasm.S", + "src/lib/libbsp/sparc64/shared/startup/bspstart.c", + "src/lib/libbsp/sparc64/shared/startup/setvec.c", + "src/lib/libbsp/shared/bspgetworkarea.c" + ] + + ctx.bsp.source( + source, + includes="%s/c/src/lib/libcpu/sparc64/shared/cache" % ctx.srcnode.abspath(), + features="src_include src_include_bsp" + ) + + + map = { + "niagara": niagara, + "usiii": usiii + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_sparc64(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/c/wscript_v850 b/c/wscript_v850 new file mode 100644 index 0000000000..c7922f8e7f --- /dev/null +++ b/c/wscript_v850 @@ -0,0 +1,57 @@ +# +# v850 +# + +def v850_shared(ctx): + ctx.bsp.start(["src/lib/libbsp/v850/gdbv850sim/start/start.S"]) + + source = [ + "src/lib/libbsp/v850/gdbv850sim/console/console-io.c", + "src/lib/libbsp/v850/gdbv850sim/startup/bspreset.c", + "src/lib/libbsp/v850/gdbv850sim/startup/trap.S", + "src/lib/libbsp/v850/shared/crt1.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + +def build(ctx): + source = [] + + source += [ + "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/bspstart.c", + "src/lib/libbsp/shared/clock_driver_simidle.c", + "src/lib/libbsp/shared/console-polled.c", + "src/lib/libbsp/shared/gnatinstallhandler.c", + "src/lib/libbsp/shared/sbrk.c", + "src/lib/libbsp/shared/timerstub.c", + ] + + ctx.bsp.source( + source, + features="src_include" + ) + + map = { + "v850e1sim": v850_shared, + "v850e2sim": v850_shared, + "v850e2v3sim": v850_shared, + "v850esim": v850_shared, + "v850essim": v850_shared, + "v850sim": v850_shared, + } + + if not ctx.env.RTEMS_BSP in map: + ctx.fatal("wscript_v850(): Internal Error: Unknown BSP: %s" % ctx.env.RTEMS_BSP) + + map[ctx.env.RTEMS_BSP](ctx) diff --git a/cpukit/libcsupport/wscript b/cpukit/libcsupport/wscript new file mode 100644 index 0000000000..09031c07ed --- /dev/null +++ b/cpukit/libcsupport/wscript @@ -0,0 +1,254 @@ +def build(ctx): + source = [] + +# source_sockets = [ +# "src/libio_sockets.c" +# ] +# ctx.cpu.networking(source_sockets, +# features="src_include src_include_rtems") + + + source_newlib= [ + "src/readv.c", + "src/writev.c" + ] + ctx.cpu.newlib( + source_newlib, + features="src_include" + ) + + # ERROR_C_FILES + source += [ + "src/error.c", + "src/__assert.c" + ] + + # ASSOCIATION_C_FILES + source += [ + "src/assoclocalbyname.c", + "src/assoclocalbyremotebitfield.c", + "src/assoclocalbyremote.c", + "src/assocnamebad.c", + "src/assocnamebylocalbitfield.c", + "src/assocnamebylocal.c", + "src/assocnamebyremotebitfield.c", + "src/assocnamebyremote.c", + "src/assocptrbylocal.c", + "src/assocptrbyname.c", + "src/assocptrbyremote.c", + "src/assocremotebylocalbitfield.c", + "src/assocremotebylocal.c", + "src/assocremotebyname.c" + ] + + # BASE_FS_C_FILES + source += [ + "src/base_fs.c", + "src/mount.c", + "src/unmount.c", + "src/libio.c", + "src/mount-mgr.c", + "src/mount-mktgt.c", + "src/libio_init.c", + "src/privateenv.c", + "src/open_dev_console.c", + "src/__usrenv.c", + "src/rtems_mkdir.c" + ] + + + # TERMIOS_C_FILES + source += [ + "src/cfgetispeed.c", + "src/cfgetospeed.c", + "src/cfsetispeed.c", + "src/cfsetospeed.c", + "src/tcgetattr.c", + "src/tcsetattr.c", + "src/tcdrain.c", + "src/tcflow.c", + "src/tcflush.c", + "src/tcgetpgrp.c", + "src/tcsendbreak.c", + "src/tcsetpgrp.c", + "src/termios.c", + "src/termiosinitialize.c", + "src/termios_baud2index.c", + "src/termios_baud2num.c", + "src/termios_num2baud.c", + "src/termios_setinitialbaud.c", + "src/termios_baudtable.c" + ] + + # SYSTEM_CALL_C_FILES + source += [ + "src/open.c", + "src/close.c", + "src/read.c", + "src/write.c", + "src/write_r.c", + "src/lseek.c", + "src/ioctl.c", + "src/mkdir.c", + "src/mknod.c", + "src/mkfifo.c", + "src/rmdir.c", + "src/chdir.c", + "src/chmod.c", + "src/fchdir.c", + "src/fchmod.c", + "src/fchown.c", + "src/chown.c", + "src/link.c", + "src/unlink.c", + "src/umask.c", + "src/ftruncate.c", + "src/utime.c", + "src/fstat.c", + "src/fcntl.c", + "src/fpathconf.c", + "src/getdents.c", + "src/fsync.c", + "src/fdatasync.c", + "src/pipe.c", + "src/dup.c", + "src/dup2.c", + "src/symlink.c", + "src/readlink.c", + "src/chroot.c", + "src/sync.c", + "src/_rename_r.c", + "src/statvfs.c", + "src/utimes.c", + "src/lchown.c" + ] + + # ID_C_FILES + source += [ + "src/getegid.c", + "src/geteuid.c", + "src/getgid.c", + "src/getgroups.c", + "src/getlogin.c", + "src/getpgrp.c", + "src/getpid.c", + "src/getppid.c", + "src/getuid.c", + "src/setgid.c", + "src/setuid.c", + "src/seteuid.c", + "src/setpgid.c", + "src/setsid.c", + "src/setegid.c" + ] + + # MALLOC_C_FILES + source += [ + "src/_calloc_r.c", + "src/_free_r.c", + "src/_malloc_r.c", + "src/_realloc_r.c", + "src/calloc.c", + "src/free.c", + "src/malloc.c", + "src/malloc_deferred.c", + "src/malloc_dirtier.c", + "src/malloc_initialize.c", + "src/malloc_walk.c", + "src/mallocfreespace.c", + "src/mallocgetheapptr.c", + "src/mallocinfo.c", + "src/mallocsetheapptr.c", + "src/posix_memalign.c", + "src/realloc.c", + "src/rtems_heap_extend.c", + "src/rtems_malloc.c", + "src/rtems_memalign.c", + ] + + + # TERMINAL_IDENTIFICATION_C_FILES + source += [ + "src/isatty.c", + "src/isatty_r.c" + ] + + # LIBC_GLUE_C_FILES + source += [ + "src/__getpid.c", + "src/__gettod.c", + "src/__times.c", + "src/truncate.c", + "src/access.c", + "src/stat.c", + "src/lstat.c", + "src/pathconf.c", + "src/newlibc_reent.c", + "src/newlibc_init.c", + "src/newlibc_exit.c", + "src/kill_noposix.c", + "src/utsname.c" + ] + + # BSD_LIBC_C_FILES + source += [ + "src/strlcpy.c", + "src/strlcat.c", + "src/issetugid.c" + ] + + source += [ + "src/gxx_wrappers.c", + "src/getchark.c", + "src/printk.c", + "src/printk_plugin.c", + "src/putk.c", + "src/vprintk.c", + ] + + source += [ + "src/envlock.c", + "src/getpagesize.c", + "src/getrusage.c", + "src/flockfile.c", + "src/funlockfile.c", + "src/ftrylockfile.c" + ] + + source += [ + "src/getpwent.c", + "src/clonenode.c", + "src/ctermid.c", + "src/ttyname.c", + "src/readdir_r.c", + "src/rtems_putc.c", + "src/getcwd.c", + "src/libio_exit.c", + "src/rtems_heap_null_extend.c", + "src/sup_fs_check_permissions.c", +# "src/sup_fs_deviceerrno.c", + "src/sup_fs_deviceio.c", + "src/sup_fs_eval_path.c", + "src/sup_fs_eval_path_generic.c", + "src/sup_fs_exist_in_same_instance.c", + "src/sup_fs_location.c", + "src/sup_fs_mount_iterate.c", + "src/sup_fs_next_token.c", + "src/sup_fs_node_type.c", + "src/rtems_heap_extend_via_sbrk.c", + "src/resource_snapshot.c", + "src/rtems_heap_greedy.c", + "src/printf_plugin.c", + "src/freenode.c", + "src/cachealignedalloc.c", + "src/pwdgrp.c", + "src/getgrent.c", + "src/getgrnam.c" + ] + + + ctx.cpu.source( + source, + alias="csupport", + features="src_include" + ) diff --git a/cpukit/libfs/wscript b/cpukit/libfs/wscript new file mode 100644 index 0000000000..51c12f1f72 --- /dev/null +++ b/cpukit/libfs/wscript @@ -0,0 +1,200 @@ +def build(ctx): + source = [] + + source_devfs = [ + "src/devfs/devfs_init.c", + "src/devfs/devfs_eval.c", + "src/devfs/devfs_mknod.c", + "src/devfs/devfs_show.c", + "src/devfs/devfs_node_type.c", + "src/devfs/devopen.c", + "src/devfs/devread.c", + "src/devfs/devwrite.c", + "src/devfs/devclose.c", + "src/devfs/devioctl.c", + "src/devfs/devstat.c" + ] + + ctx.cpu.source( + source_devfs, + alias="libfs_devfs", + features="src_include src_include_rtems" + ) + + source_dosfs = [ + "src/dosfs/fat.c", + "src/dosfs/fat_fat_operations.c", + "src/dosfs/fat_file.c", + "src/dosfs/msdos_create.c", + "src/dosfs/msdos_dir.c", + "src/dosfs/msdos_eval.c", + "src/dosfs/msdos_file.c", + "src/dosfs/msdos_free.c", + "src/dosfs/msdos_fsunmount.c", + "src/dosfs/msdos_handlers_dir.c", + "src/dosfs/msdos_handlers_file.c", + "src/dosfs/msdos_init.c", + "src/dosfs/msdos_initsupp.c", + "src/dosfs/msdos_misc.c", + "src/dosfs/msdos_mknod.c", + "src/dosfs/msdos_node_type.c", + "src/dosfs/msdos_conv.c", + "src/dosfs/msdos_format.c", + "src/dosfs/msdos_rename.c", + "src/dosfs/msdos_rmnod.c", + "src/dosfs/msdos_conv_default.c", + "src/dosfs/msdos_statvfs.c" + ] + + ctx.cpu.source( + source_dosfs, + alias="libfs_dosfs", + features="src_include src_include_rtems" + ) + + source_imfs = [ + "src/imfs/deviceio.c", + "src/imfs/fifoimfs_init.c", + "src/imfs/imfs_chown.c", + "src/imfs/imfs_config.c", + "src/imfs/imfs_creat.c", + "src/imfs/imfs_debug.c", + "src/imfs/imfs_directory.c", + "src/imfs/imfs_eval.c", + "src/imfs/imfs_fchmod.c", + "src/imfs/imfs_fifo.c", + "src/imfs/imfs_fsunmount.c", + "src/imfs/imfs_handlers_device.c", + "src/imfs/imfs_handlers_directory.c", + "src/imfs/imfs_handlers_link.c", + "src/imfs/imfs_handlers_memfile.c", + "src/imfs/imfs_init.c", + "src/imfs/imfs_initsupp.c", + "src/imfs/imfs_link.c", + "src/imfs/imfs_load_tar.c", + "src/imfs/imfs_mknod.c", + "src/imfs/imfs_mount.c", + "src/imfs/imfs_ntype.c", + "src/imfs/imfs_readlink.c", + "src/imfs/imfs_rename.c", + "src/imfs/imfs_rmnod.c", + "src/imfs/imfs_stat.c", + "src/imfs/imfs_symlink.c", + "src/imfs/imfs_unmount.c", + "src/imfs/imfs_utime.c", + "src/imfs/ioman.c", + "src/imfs/memfile.c", + "src/imfs/miniimfs_init.c" + ] + + ctx.cpu.source( + source_imfs, + alias="libfs_imfs", + features="src_include src_include_rtems" + ) + + source_nfsclient = [ + "src/nfsclient/src/nfs.c", + "src/nfsclient/proto/nfs_prot_xdr.c", + "src/nfsclient/proto/mount_prot_xdr.c", + "src/nfsclient/src/rpcio.c", + "src/nfsclient/src/sock_mbuf.c", + "src/nfsclient/src/xdr_mbuf.c", + "src/nfsclient/src/dirutils.c" + ] + + ctx.cpu.source( + source_nfsclient, + alias="libfs_nfsclient", + includes="%s/cpukit/libfs/src/nfsclient/proto" % ctx.srcnode.abspath(), + features="src_include" + ) + + source_pipe = [ + "src/pipe/fifo.c", + "src/pipe/pipe.c" + ] + + ctx.cpu.source( + source_pipe, + alias="libfs_pipe", + features="src_include src_include_rtems" + ) + + source_rfs = [ + "src/rfs/rtems-rfs-bitmaps.c", + "src/rfs/rtems-rfs-block.c", + "src/rfs/rtems-rfs-buffer-bdbuf.c", + "src/rfs/rtems-rfs-buffer.c", + "src/rfs/rtems-rfs-dir-hash.c", + "src/rfs/rtems-rfs-file.c", + "src/rfs/rtems-rfs-group.c", + "src/rfs/rtems-rfs-inode.c", + "src/rfs/rtems-rfs-rtems-dev.c", + "src/rfs/rtems-rfs-rtems-utils.c", + "src/rfs/rtems-rfs-rtems.c", + "src/rfs/rtems-rfs-shell.c", + "src/rfs/rtems-rfs-dir.c", + "src/rfs/rtems-rfs-file-system.c", + "src/rfs/rtems-rfs-format.c", + "src/rfs/rtems-rfs-link.c", + "src/rfs/rtems-rfs-mutex.c", + "src/rfs/rtems-rfs-rtems-dir.c", + "src/rfs/rtems-rfs-rtems-file.c", + "src/rfs/rtems-rfs-trace.c", + ] + + ctx.cpu.source( + source_rfs, + alias="libfs_rfs", + features="src_include src_include_rtems" + ) + + source += [ + "src/defaults/default_fchmod.c", + "src/defaults/default_freenode.c", + "src/defaults/default_fsync.c", + "src/defaults/default_link.c", + "src/defaults/default_read.c", + "src/defaults/default_rmnod.c", + "src/defaults/default_chown.c", + "src/defaults/default_fcntl.c", + "src/defaults/default_fsmount.c", + "src/defaults/default_ftruncate.c", + "src/defaults/default_lock_and_unlock.c", + "src/defaults/default_lseek.c", + "src/defaults/default_readlink.c", + "src/defaults/default_statvfs.c", + "src/defaults/default_utime.c", + "src/defaults/default_fstat.c", + "src/defaults/default_ioctl.c", + "src/defaults/default_mount.c", + "src/defaults/default_rename.c", + "src/defaults/default_symlink.c", + "src/defaults/default_write.c", + "src/defaults/default_unmount.c", + "src/defaults/default_open.c", + "src/defaults/default_close.c", + "src/defaults/default_fsunmount.c", + "src/defaults/default_mknod.c", + "src/defaults/default_node_type.c", + "src/defaults/default_handlers.c", + "src/defaults/default_ops.c", + "src/defaults/default_eval_path.c", + "src/defaults/default_are_nodes_equal.c", + "src/defaults/default_clone.c", + "src/defaults/default_lseek_file.c", + "src/defaults/default_fsync_success.c", + "src/defaults/default_lseek_directory.c", + "src/defaults/default_ftruncate_directory.c", + "src/defaults/default_poll.c", + "src/defaults/default_kqfilter.c", + "src/defaults/default_readv.c", + "src/defaults/default_writev.c" + ] + + ctx.cpu.source( + source, + alias="libfs", + features="src_include" + ) diff --git a/cpukit/libmisc/wscript b/cpukit/libmisc/wscript new file mode 100644 index 0000000000..2e6a4705f9 --- /dev/null +++ b/cpukit/libmisc/wscript @@ -0,0 +1,221 @@ +def build(ctx): + source = [] + + # shell + source_shell = [ + "shell/cat_file.c", + "shell/cmds.c", + "shell/cmp-ls.c", + "shell/dd-args.c", + "shell/dd-conv.c", + "shell/dd-conv_tab.c", + "shell/dd-misc.c", + "shell/dd-position.c", + "shell/err.c", + "shell/errx.c", + "shell/fdisk.c", + "shell/filemode.c", + "shell/fts.c", + "shell/hexdump-conv.c", + "shell/hexdump-display.c", + "shell/hexdump-odsyntax.c", + "shell/hexdump-parse.c", + "shell/hexsyntax.c", + "shell/login_check.c", + "shell/login_prompt.c", + "shell/main_alias.c", + "shell/main_blksync.c", + "shell/main_cat.c", + "shell/main_cd.c", + "shell/main_chdir.c", + "shell/main_chmod.c", + "shell/main_chroot.c", + "shell/main_cp.c", + "shell/main_cpuuse.c", + "shell/main_date.c", + "shell/main_dd.c", + "shell/main_debugrfs.c", + "shell/main_dir.c", + "shell/main_echo.c", + "shell/main_exit.c", + "shell/main_getenv.c", + "shell/main_halt.c", + "shell/main_help.c", + "shell/main_hexdump.c", + "shell/main_id.c", + "shell/main_ln.c", + "shell/main_logoff.c", + "shell/main_ls.c", + "shell/main_mallocinfo.c", + "shell/main_mdump.c", + "shell/main_medit.c", + "shell/main_mfill.c", + "shell/main_mkdir.c", + "shell/main_mknod.c", + "shell/main_mkrfs.c", + "shell/main_mmove.c", + "shell/main_mount.c", + "shell/main_msdosfmt.c", + "shell/main_mv.c", + "shell/main_perioduse.c", + "shell/main_pwd.c", + "shell/main_rm.c", + "shell/main_rmdir.c", + "shell/main_rtc.c", + "shell/main_setenv.c", + "shell/main_sleep.c", + "shell/main_stackuse.c", + "shell/main_time.c", + "shell/main_tty.c", + "shell/main_umask.c", + "shell/main_unmount.c", + "shell/main_unsetenv.c", + "shell/main_whoami.c", + "shell/main_wkspaceinfo.c", + "shell/print-ls.c", + "shell/print_heapinfo.c", + "shell/pwcache.c", + "shell/shell.c", + "shell/shell_cmdset.c", + "shell/shell_getchar.c", + "shell/shell_getprompt.c", + "shell/shell_makeargs.c", + "shell/shell_script.c", + "shell/shellconfig.c", + "shell/utils-cp.c", + "shell/utils-ls.c", + "shell/verr.c", + "shell/verrx.c", + "shell/vis.c", + "shell/vwarn.c", + "shell/vwarnx.c", + "shell/warn.c", + "shell/warnx.c", + "shell/write_file.c" + ] + ctx.cpu.shell( + source_shell, + includes="%s/shell" % ctx.path.abspath(), + features="src_include src_include_rtems") + + + source_shell_networking = [ + "shell/main_ifconfig.c", + "shell/main_netstats.c", + "shell/main_route.c" + ] + ctx.cpu.shell( + source_shell_networking, + test=ctx.env.ENABLE_NETWORKING, # extra test + alias="libmisc_shell", + includes="%s/shell" % ctx.path.abspath(), + features="src_include src_include_rtems") + + + source_serdbg = [ + "serdbg/serdbg.c", + "serdbg/serdbgio.c", + "serdbg/termios_printk.c" + ] + ctx.cpu.serdbg(source_serdbg) + + + source_networking = ["monitor/mon-network.c"] + ctx.cpu.networking(source_networking, + features="src_include src_include_rtems") + + + source_mp= ["monitor/mon-mpci.c"] + ctx.cpu.mp( + source_mp, + features="src_include" + ) + + + source_uuid = [ + "uuid/clear.c", + "uuid/compare.c", + "uuid/copy.c", + "uuid/gen_uuid.c", + "uuid/isnull.c", + "uuid/pack.c", + "uuid/parse.c", + "uuid/unpack.c", + "uuid/unparse.c", + "uuid/uuid_time.c" + ] + ctx.cpu.source( + source_uuid, + alias="libmisc_uuid", + features="src_include", + cflags=["-DHAVE_INTTYPES_H"] + ) + + + source_monitor = [ + "monitor/mon-command.c", + "monitor/mon-config.c", + "monitor/mon-driver.c", + "monitor/mon-editor.c", + "monitor/mon-extension.c", + "monitor/mon-itask.c", + "monitor/mon-manager.c", + "monitor/mon-monitor.c", + "monitor/mon-object.c", + "monitor/mon-part.c", + "monitor/mon-prmisc.c", + "monitor/mon-queue.c", + "monitor/mon-region.c", + "monitor/mon-sema.c", + "monitor/mon-server.c", + "monitor/mon-symbols.c", + "monitor/mon-task.c" + ] + ctx.cpu.source( + source_monitor, + alias="libmisc_monitor", + features="src_include src_include_rtems", + cflags=["-DHAVE_INTTYPES_H"] + ) + + + source += [ + "bspcmdline/bspcmdline_get.c", + "bspcmdline/bspcmdline_getparam.c", + "bspcmdline/bspcmdline_getparamraw.c", + "bspcmdline/bspcmdline_getparamrhs.c", + "capture/capture-cli.c", + "capture/capture.c", + "cpuuse/cpuusagedata.c", + "cpuuse/cpuusagereport.c", + "cpuuse/cpuusagereset.c", + "devnull/devnull.c", + "devnull/devzero.c", + "dummy/dummy-networking.c", +# "dummy/dummy.c", + "dumpbuf/dumpbuf.c", + "fb/mw_print.c", + "fb/mw_uid.c", + "fsmount/fsmount.c", + "mouse/mouse_parser.c", + "mouse/serial_mouse.c", + "stackchk/check.c", + "stringto/stringtodouble.c", + "stringto/stringtofloat.c", + "stringto/stringtoint.c", + "stringto/stringtolong.c", + "stringto/stringtolongdouble.c", + "stringto/stringtolonglong.c", + "stringto/stringtopointer.c", + "stringto/stringtounsignedchar.c", + "stringto/stringtounsignedint.c", + "stringto/stringtounsignedlong.c", + "stringto/stringtounsignedlonglong.c", + "untar/untar.c" + ] + ctx.cpu.source( + source, + alias="libmisc", + features="src_include src_include_rtems" + ) + diff --git a/cpukit/libnetworking/wscript b/cpukit/libnetworking/wscript new file mode 100644 index 0000000000..655cd2ef85 --- /dev/null +++ b/cpukit/libnetworking/wscript @@ -0,0 +1,145 @@ + +def build(ctx): + kernel_source = [] + source = [] + + # unused files? + # ["libc/ether_addr.c", "libc/gethostname.c", "libc/inet_neta.c", "libc/inet_net_ntop.c", "libc/inet_net_pton.c", "libc/ns_addr.c", "libc/ns_ntoa.c"] + + source += [ + "lib/ftpfs.c", + "lib/getprotoby.c", + "lib/rtems_bsdnet_ntp.c", + "lib/syslog.c", + "lib/tftpDriver.c", + "libc/base64.c", + "libc/gethostbydns.c", + "libc/gethostbyht.c", + "libc/gethostbynis.c", + "libc/gethostnamadr.c", + "libc/getifaddrs.c", + "libc/getnetbydns.c", + "libc/getnetbyht.c", + "libc/getnetbynis.c", + "libc/getnetnamadr.c", + "libc/getproto.c", + "libc/getprotoent.c", + "libc/getprotoname.c", + "libc/getservbyname.c", + "libc/getservbyport.c", + "libc/getservent.c", + "libc/herror.c", + "libc/if_indextoname.c", + "libc/if_nameindex.c", + "libc/inet_addr.c", + "libc/inet_lnaof.c", + "libc/inet_makeaddr.c", + "libc/inet_netof.c", + "libc/inet_network.c", + "libc/inet_ntoa.c", + "libc/inet_ntop.c", + "libc/inet_pton.c", + "libc/linkaddr.c", + "libc/map_v4v6.c", + "libc/ns_name.c", + "libc/ns_netint.c", + "libc/ns_parse.c", + "libc/ns_print.c", + "libc/ns_ttl.c", + "libc/nsap_addr.c", + "libc/rcmd.c", + "libc/recv.c", + "libc/res_comp.c", + "libc/res_data.c", + "libc/res_debug.c", + "libc/res_init.c", + "libc/res_mkquery.c", + "libc/res_mkupdate.c", + "libc/res_query.c", + "libc/res_send.c", + "libc/res_stubs.c", + "libc/res_update.c", + "libc/send.c", + "libc/strsep.c", + "rtems/mkrootfs.c", + "rtems/rtems_bootp.c", + "rtems/rtems_bsdnet_malloc_starvation.c", + "rtems/rtems_dhcp.c", + "rtems/rtems_dhcp_failsafe.c", + "rtems/rtems_malloc_mbuf.c", + "rtems/rtems_mii_ioctl.c", + "rtems/rtems_mii_ioctl_kern.c", + "rtems/rtems_select.c", + ] + + kernel_source += [ + "kern/kern_mib.c", + "kern/kern_subr.c", + "kern/kern_sysctl.c", + "kern/uipc_domain.c", + "kern/uipc_mbuf.c", + "kern/uipc_socket.c", + "kern/uipc_socket2.c", + "net/if.c", + "net/if_ethersubr.c", + "net/if_loop.c", + "net/if_ppp.c", + "net/ppp_tty.c", + "net/radix.c", + "net/raw_cb.c", + "net/raw_usrreq.c", + "net/route.c", + "net/rtsock.c", + "net/slcompress.c", + "netinet/if_ether.c", + "netinet/igmp.c", + "netinet/in.c", + "netinet/in_cksum.c", + "netinet/in_pcb.c", + "netinet/in_proto.c", + "netinet/in_rmx.c", + "netinet/ip_divert.c", + "netinet/ip_fw.c", + "netinet/ip_icmp.c", + "netinet/ip_input.c", + "netinet/ip_mroute.c", + "netinet/ip_output.c", + "netinet/raw_ip.c", + "netinet/tcp_debug.c", + "netinet/tcp_input.c", + "netinet/tcp_output.c", + "netinet/tcp_subr.c", + "netinet/tcp_timer.c", + "netinet/tcp_usrreq.c", + "netinet/udp_usrreq.c", + "nfs/bootp_subr.c", + "rtems/rtems_glue.c", + "rtems/rtems_showicmpstat.c", + "rtems/rtems_showifstat.c", + "rtems/rtems_showipstat.c", + "rtems/rtems_showmbuf.c", + "rtems/rtems_showroute.c", + "rtems/rtems_showtcpstat.c", + "rtems/rtems_showudpstat.c", + "rtems/rtems_socketpair.c", + "rtems/rtems_syscall.c", + "rtems/sghostname.c" + ] + + libnetworking_defines=["__BSD_VISIBLE", "INET", + "NOPOLL", "NOSELECT", + "BOOTP_COMPAT", "NFS", "DIAGNOSTIC", "__RTEMS_HAVE_DECL_SIGALTSTACK__"] + + ctx.cpu.networking( + kernel_source, + alias="libnetworking", + defines=libnetworking_defines + ["_KERNEL"], + includes=["%s/cpukit/libnetworking" % ctx.srcnode.abspath()], + features="src_include src_include_rtems") + + ctx.cpu.networking( + source, + alias="libnetworking", + defines=libnetworking_defines, + includes=["%s/cpukit/libnetworking" % ctx.srcnode.abspath()], + features="src_include src_include_rtems") diff --git a/cpukit/librpc/wscript b/cpukit/librpc/wscript new file mode 100644 index 0000000000..c79aed7ac5 --- /dev/null +++ b/cpukit/librpc/wscript @@ -0,0 +1,55 @@ +def build(ctx): + source = [] + + source += [ + "src/rpc/auth_none.c", + "src/rpc/auth_unix.c", + "src/rpc/authunix_prot.c", + "src/rpc/bindresvport.c", + "src/rpc/clnt_generic.c", + "src/rpc/clnt_perror.c", + "src/rpc/clnt_raw.c", + "src/rpc/clnt_simple.c", + "src/rpc/clnt_tcp.c", + "src/rpc/clnt_udp.c", + "src/rpc/get_myaddress.c", + "src/rpc/getrpcent.c", + "src/rpc/getrpcport.c", + "src/rpc/netname.c", + "src/rpc/netnamer.c", + "src/rpc/pmap_clnt.c", + "src/rpc/pmap_getmaps.c", + "src/rpc/pmap_getport.c", + "src/rpc/pmap_prot.c", + "src/rpc/pmap_prot2.c", + "src/rpc/pmap_rmt.c", + "src/rpc/rpc_callmsg.c", + "src/rpc/rpc_commondata.c", + "src/rpc/rpc_dtablesize.c", + "src/rpc/rpc_prot.c", + "src/rpc/rpcdname.c", + "src/rpc/rtems_portmapper.c", + "src/rpc/rtems_rpc.c", + "src/rpc/rtime.c", + "src/rpc/svc.c", + "src/rpc/svc_auth.c", + "src/rpc/svc_auth_unix.c", + "src/rpc/svc_raw.c", + "src/rpc/svc_run.c", + "src/rpc/svc_simple.c", + "src/rpc/svc_tcp.c", + "src/rpc/svc_udp.c", + "src/xdr/xdr.c", + "src/xdr/xdr_array.c", + "src/xdr/xdr_float.c", + "src/xdr/xdr_mem.c", + "src/xdr/xdr_rec.c", + "src/xdr/xdr_reference.c", + "src/xdr/xdr_sizeof.c", + "src/xdr/xdr_stdio.c" + ] + ctx.cpu.rpc( + source, + alias="librpc", + cflags=["-D_RPC_read=read.c", "-D_RPC_write=write.c", "-D_RPC_close=close.c", "-D_RTEMS_RPC_INTERNAL_"] + ) diff --git a/cpukit/posix/wscript b/cpukit/posix/wscript new file mode 100644 index 0000000000..3c95d60dba --- /dev/null +++ b/cpukit/posix/wscript @@ -0,0 +1,249 @@ +def build(ctx): + source = [] + + source_pthreads = [ + "src/_execve.c", + "src/adjtime.c", + "src/aio_cancel.c", + "src/aio_error.c", + "src/aio_fsync.c", + "src/aio_misc.c", + "src/aio_read.c", + "src/aio_return.c", + "src/aio_suspend.c", + "src/aio_write.c", + "src/alarm.c", + "src/barrierattrdestroy.c", + "src/barrierattrgetpshared.c", + "src/barrierattrinit.c", + "src/barrierattrsetpshared.c", + "src/cancel.c", + "src/canceleval.c", + "src/cancelrun.c", + "src/clockgetcpuclockid.c", + "src/clockgetenableattr.c", + "src/clocksetenableattr.c", + "src/cond.c", + "src/condattrdestroy.c", + "src/condattrgetpshared.c", + "src/condattrinit.c", + "src/condattrsetpshared.c", + "src/condbroadcast.c", + "src/conddefaultattributes.c", + "src/conddestroy.c", + "src/condget.c", + "src/condinit.c", + "src/condsignal.c", + "src/condsignalsupp.c", + "src/condtimedwait.c", + "src/condwait.c", + "src/condwaitsupp.c", + "src/execl.c", + "src/execle.c", + "src/execlp.c", + "src/execv.c", + "src/execve.c", + "src/execvp.c", + "src/getitimer.c", + "src/key.c", + "src/keycreate.c", + "src/keydelete.c", + "src/keyfreememory.c", + "src/keygetspecific.c", + "src/keyrundestructors.c", + "src/keysetspecific.c", + "src/kill.c", + "src/kill_r.c", + "src/killinfo.c", + "src/lio_listio.c", + "src/mprotect.c", + "src/mqueue.c", + "src/mqueueclose.c", + "src/mqueuecreatesupp.c", + "src/mqueuedeletesupp.c", + "src/mqueuegetattr.c", + "src/mqueuenotify.c", + "src/mqueueopen.c", + "src/mqueuereceive.c", + "src/mqueuerecvsupp.c", + "src/mqueuesend.c", + "src/mqueuesendsupp.c", + "src/mqueuesetattr.c", + "src/mqueuetimedreceive.c", + "src/mqueuetimedsend.c", + "src/mqueuetranslatereturncode.c", + "src/mqueueunlink.c", + "src/mutex.c", + "src/mutexattrdestroy.c", + "src/mutexattrgetprioceiling.c", + "src/mutexattrgetprotocol.c", + "src/mutexattrgetpshared.c", + "src/mutexattrgettype.c", + "src/mutexattrinit.c", + "src/mutexattrsetprioceiling.c", + "src/mutexattrsetprotocol.c", + "src/mutexattrsetpshared.c", + "src/mutexattrsettype.c", + "src/mutexdestroy.c", + "src/mutexget.c", + "src/mutexgetprioceiling.c", + "src/mutexinit.c", + "src/mutexlock.c", + "src/mutexlocksupp.c", + "src/mutexsetprioceiling.c", + "src/mutextimedlock.c", + "src/mutextranslatereturncode.c", + "src/mutextrylock.c", + "src/mutexunlock.c", + "src/pause.c", + "src/pbarrier.c", + "src/pbarrierdestroy.c", + "src/pbarrierinit.c", + "src/pbarriertranslatereturncode.c", + "src/pbarrierwait.c", + "src/posixtimespecabsolutetimeout.c", + "src/prwlock.c", + "src/prwlockdestroy.c", + "src/prwlockinit.c", + "src/prwlockrdlock.c", + "src/prwlocktimedrdlock.c", + "src/prwlocktimedwrlock.c", + "src/prwlocktranslatereturncode.c", + "src/prwlocktryrdlock.c", + "src/prwlocktrywrlock.c", + "src/prwlockunlock.c", + "src/prwlockwrlock.c", + "src/psignal.c", + "src/psignalchecksignal.c", + "src/psignalclearprocesssignals.c", + "src/psignalclearsignals.c", + "src/psignalsetprocesssignals.c", + "src/psignalunblockthread.c", + "src/pspin.c", + "src/pspindestroy.c", + "src/pspininit.c", + "src/pspinlock.c", + "src/pspinlocktranslatereturncode.c", + "src/pspintrylock.c", + "src/pspinunlock.c", + "src/psxpriorityisvalid.c", + "src/psxtransschedparam.c", + "src/pthread.c", + "src/pthreadattrdestroy.c", + "src/pthreadattrgetdetachstate.c", + "src/pthreadattrgetguardsize.c", + "src/pthreadattrgetinheritsched.c", + "src/pthreadattrgetschedparam.c", + "src/pthreadattrgetschedpolicy.c", + "src/pthreadattrgetscope.c", + "src/pthreadattrgetstack.c", + "src/pthreadattrgetstackaddr.c", + "src/pthreadattrgetstacksize.c", + "src/pthreadattrinit.c", + "src/pthreadattrsetdetachstate.c", + "src/pthreadattrsetguardsize.c", + "src/pthreadattrsetinheritsched.c", + "src/pthreadattrsetschedparam.c", + "src/pthreadattrsetschedpolicy.c", + "src/pthreadattrsetscope.c", + "src/pthreadattrsetstack.c", + "src/pthreadattrsetstackaddr.c", + "src/pthreadattrsetstacksize.c", + "src/pthreadcreate.c", + "src/pthreaddetach.c", + "src/pthreadequal.c", + "src/pthreadexit.c", + "src/pthreadgetcpuclockid.c", + "src/pthreadgetschedparam.c", + "src/pthreadinitthreads.c", + "src/pthreadjoin.c", + "src/pthreadkill.c", + "src/pthreadonce.c", + "src/pthreadself.c", + "src/pthreadsetschedparam.c", + "src/pthreadsigmask.c", + "src/ptimer.c", + "src/rwlockattrdestroy.c", + "src/rwlockattrgetpshared.c", + "src/rwlockattrinit.c", + "src/rwlockattrsetpshared.c", + "src/sched_getparam.c", + "src/sched_getprioritymax.c", + "src/sched_getprioritymin.c", + "src/sched_getscheduler.c", + "src/sched_rr_get_interval.c", + "src/sched_setparam.c", + "src/sched_setscheduler.c", + "src/sched_yield.c", + "src/semaphore.c", + "src/semaphorecreatesupp.c", + "src/semaphoredeletesupp.c", + "src/semaphoretranslatereturncode.c", + "src/semaphorewaitsupp.c", + "src/semclose.c", + "src/semdestroy.c", + "src/semgetvalue.c", + "src/seminit.c", + "src/semopen.c", + "src/sempost.c", + "src/semtimedwait.c", + "src/semtrywait.c", + "src/semunlink.c", + "src/semwait.c", + "src/setcancelstate.c", + "src/setcanceltype.c", + "src/setitimer.c", + "src/sigaction.c", + "src/signal_2.c", + "src/sigpending.c", + "src/sigqueue.c", + "src/sigsuspend.c", + "src/sigtimedwait.c", + "src/sigwait.c", + "src/sigwaitinfo.c", + "src/testcancel.c", + "src/timercreate.c", + "src/timerdelete.c", + "src/timergetoverrun.c", + "src/timergettime.c", + "src/timerinserthelper.c", + "src/timersettime.c", + "src/timertsr.c", + "src/ualarm.c", + "src/cleanuppush.c", + "src/cleanuppop.c" + ] + ctx.cpu.pthreads( + source_pthreads, + alias="posix_pthreads", + features="src_include" + ) + + + + source += [ + "src/clockgetres.c", + "src/clockgettime.c", + "src/clocksettime.c", + "src/fork.c", + "src/nanosleep.c", + "src/pthreadatfork.c", + "src/sigaddset.c", + "src/sigdelset.c", + "src/sigemptyset.c", + "src/sigfillset.c", + "src/sigismember.c", + "src/sigprocmask.c", + "src/sysconf.c", + "src/vfork.c", + "src/wait.c", + "src/waitpid.c", + "src/psxnametoid.c", + ] + ctx.cpu.source( + source, + alias="posix", + features="src_include" + ) + + diff --git a/cpukit/rtems/wscript b/cpukit/rtems/wscript new file mode 100644 index 0000000000..a5f8b04a36 --- /dev/null +++ b/cpukit/rtems/wscript @@ -0,0 +1,183 @@ +def build(ctx): + source = [] + + source_mp = [ + "src/eventmp.c", + "src/mp.c", + "src/msgmp.c", + "src/partmp.c", + "src/regionmp.c", + "src/semmp.c", + "src/signalmp.c", + "src/taskmp.c" + ] + ctx.cpu.mp( + source_mp, + features="src_include" + ) + + + source += [ + "src/barrier.c", + "src/barriercreate.c", + "src/barrierdata.c", + "src/barrierdelete.c", + "src/barrierident.c", + "src/barrierrelease.c", + "src/barriertranslatereturncode.c", + "src/barrierwait.c", + "src/clockget.c", + "src/clockgetsecondssinceepoch.c", + "src/clockgettickspersecond.c", +# "src/clockgettickssinceboot.c", + "src/clockgettod.c", + "src/clockgettodtimeval.c", + "src/clockgetuptime.c", + "src/clockset.c", + "src/clocksetnsecshandler.c", + "src/clocktick.c", + "src/clocktodtoseconds.c", + "src/clocktodvalidate.c", + "src/dpmem.c", + "src/dpmemcreate.c", + "src/dpmemdata.c", + "src/dpmemdelete.c", + "src/dpmemexternal2internal.c", + "src/dpmemident.c", + "src/dpmeminternal2external.c", + "src/event.c", + "src/eventdata.c", + "src/eventreceive.c", + "src/eventseize.c", + "src/eventsend.c", + "src/eventsurrender.c", + "src/eventtimeout.c", + "src/intrbody.c", + "src/intrcatch.c", + "src/msg.c", + "src/msgdata.c", +# "src/msgqallocate.c", + "src/msgqbroadcast.c", + "src/msgqcreate.c", + "src/msgqdelete.c", + "src/msgqflush.c", + "src/msgqgetnumberpending.c", + "src/msgqident.c", + "src/msgqreceive.c", + "src/msgqsend.c", + "src/msgqtranslatereturncode.c", + "src/msgqurgent.c", + "src/part.c", + "src/partcreate.c", + "src/partdata.c", + "src/partdelete.c", + "src/partgetbuffer.c", + "src/partident.c", + "src/partreturnbuffer.c", + "src/ratemon.c", + "src/ratemoncancel.c", + "src/ratemoncreate.c", + "src/ratemondata.c", + "src/ratemondelete.c", + "src/ratemongetstatistics.c", + "src/ratemongetstatus.c", + "src/ratemonident.c", + "src/ratemonperiod.c", + "src/ratemonreportstatistics.c", + "src/ratemonresetall.c", + "src/ratemonresetstatistics.c", + "src/ratemontimeout.c", + "src/region.c", + "src/regioncreate.c", + "src/regiondata.c", + "src/regiondelete.c", + "src/regionextend.c", + "src/regiongetfreeinfo.c", + "src/regiongetinfo.c", + "src/regiongetsegment.c", + "src/regiongetsegmentsize.c", + "src/regionident.c", + "src/regionprocessqueue.c", + "src/regionresizesegment.c", + "src/regionreturnsegment.c", + "src/rtemsbuildid.c", + "src/rtemsbuildname.c", + "src/rtemsobjectapimaximumclass.c", + "src/rtemsobjectapiminimumclass.c", + "src/rtemsobjectgetapiclassname.c", + "src/rtemsobjectgetapiname.c", + "src/rtemsobjectgetclassicname.c", + "src/rtemsobjectgetclassinfo.c", + "src/rtemsobjectgetname.c", + "src/rtemsobjectidapimaximum.c", + "src/rtemsobjectidapiminimum.c", + "src/rtemsobjectidgetapi.c", + "src/rtemsobjectidgetclass.c", + "src/rtemsobjectidgetindex.c", + "src/rtemsobjectidgetnode.c", + "src/rtemsobjectsetname.c", + "src/rtemstimer.c", + "src/rtemstimerdata.c", + "src/sem.c", + "src/semcreate.c", + "src/semdata.c", + "src/semdelete.c", + "src/semflush.c", + "src/semident.c", + "src/semobtain.c", + "src/semrelease.c", + "src/semtranslatereturncode.c", + "src/systemeventsend.c", + "src/signal.c", + "src/signalcatch.c", + "src/signalsend.c", + "src/taskcreate.c", + "src/taskdata.c", + "src/taskdelete.c", + "src/taskgetnote.c", + "src/taskident.c", + "src/taskinitusers.c", + "src/taskissuspended.c", + "src/taskmode.c", + "src/taskrestart.c", + "src/taskresume.c", + "src/tasks.c", + "src/taskself.c", + "src/tasksetnote.c", + "src/tasksetpriority.c", + "src/taskstart.c", + "src/tasksuspend.c", + "src/taskvariableadd.c", + "src/taskvariabledelete.c", + "src/taskvariableget.c", + "src/taskvariable_invoke_dtor.c", + "src/taskwakeafter.c", + "src/taskwakewhen.c", + "src/timercancel.c", + "src/timercreate.c", + "src/timerdelete.c", + "src/timerfireafter.c", + "src/timerfirewhen.c", + "src/timergetinfo.c", + "src/timerident.c", + "src/timerreset.c", + "src/timerserver.c", + "src/timerserverfireafter.c", + "src/timerserverfirewhen.c", + "src/workspace.c", + "src/status.c", + "src/systemeventreceive.c", + "src/workspacegreedy.c", + "src/clockgetuptimetimeval.c", + "src/clockgetuptimeseconds.c", + "src/modes.c", + "src/statustext.c", + "src/clockgetuptimenanoseconds.c", + "src/getprocessorcount.c" + ] + + ctx.cpu.source( + source, + alias="rtems", + features="src_include" + ) diff --git a/cpukit/score/wscript b/cpukit/score/wscript new file mode 100644 index 0000000000..4035e930e2 --- /dev/null +++ b/cpukit/score/wscript @@ -0,0 +1,428 @@ +def build(ctx): + source = [] + + source_mp = [ + "src/mpci.c", + "src/objectmp.c", + "src/threadmp.c", + ] + ctx.cpu.mp( + source_mp, + alias="score_mp", + features="src_include", + includes=["%s/cpukit/score/include" % ctx.srcnode.abspath()] + ) + + source_smp = [ + "src/isrsmp.c", + "src/smp.c", + "src/smplock.c", + "src/schedulersimplesmpblock.c", + "src/schedulersimplesmpschedule.c", + "src/schedulersimplesmpunblock.c", + "src/schedulersimplesmptick.c", + "src/threaddispatchdisablelevel.c" + ] + ctx.cpu.smp( + source_smp, + alias="score_smp", + features="src_include", + includes=["%s/cpukit/score/include" % ctx.srcnode.abspath()] + ) + + source_pthreads = [ + "src/corerwlock.c", + "src/corerwlockobtainread.c", + "src/corerwlockobtainwrite.c", + "src/corerwlockrelease.c", + "src/corerwlocktimeout.c", + "src/corespinlock.c", + "src/corespinlockrelease.c", + "src/corespinlockwait.c" + ] + ctx.cpu.pthreads( + source_pthreads, + alias="score", + features="src_include", + includes=["%s/cpukit/score/include" % ctx.srcnode.abspath()] + ) + + source += [ + "src/apiext.c", + "src/apimutex.c", +# "src/apimutexallocate.c", + "src/apimutexlock.c", + "src/apimutexunlock.c", + "src/chain.c", + "src/chainappend.c", + "src/chainappendempty.c", + "src/chainextract.c", + "src/chainget.c", + "src/chaingetempty.c", + "src/chaininsert.c", + "src/chainprependempty.c", + "src/corebarrier.c", + "src/corebarrierrelease.c", + "src/corebarrierwait.c", + "src/coremsg.c", + "src/coremsgbroadcast.c", + "src/coremsgclose.c", + "src/coremsgflush.c", + "src/coremsgflushsupp.c", + "src/coremsgflushwait.c", + "src/coremsginsert.c", + "src/coremsgseize.c", + "src/coremsgsubmit.c", + "src/coremutex.c", + "src/coremutexflush.c", + "src/coremutexseize.c", + "src/coremutexseizeintr.c", + "src/coremutexsurrender.c", + "src/coresem.c", + "src/coresemflush.c", + "src/coresemseize.c", + "src/coresemsurrender.c", + "src/coretod.c", + "src/coretodget.c", + "src/coretodgetuptimetimespec.c", +# "src/coretodmsecstoticks.c", + "src/coretodset.c", + "src/coretodtickle.c", + "src/coretodtickspersec.c", +# "src/coretodusectoticks.c", + "src/heap.c", + "src/heapallocate.c", + "src/heapextend.c", + "src/heapfree.c", + "src/heapgetfreeinfo.c", + "src/heapgetinfo.c", + "src/heapresizeblock.c", + "src/heapsizeofuserarea.c", + "src/heapwalk.c", + "src/interr.c", + "src/isr.c", + "src/iterateoverthreads.c", + "src/objectallocate.c", + "src/objectapimaximumclass.c", + "src/objectclose.c", + "src/objectextendinformation.c", + "src/objectfree.c", + "src/objectget.c", + "src/objectgetinfo.c", + "src/objectgetinfoid.c", + "src/objectgetisr.c", + "src/objectgetnameasstring.c", + "src/objectgetnext.c", + "src/objectgetnoprotection.c", + "src/objectidtoname.c", + "src/objectinitializeinformation.c", + "src/objectnamespaceremove.c", + "src/objectnametoid.c", + "src/objectnametoidstring.c", + "src/objectsetname.c", + "src/objectshrinkinformation.c", + "src/percpu.c", + "src/pheapallocate.c", + "src/pheapextend.c", + "src/pheapfree.c", + "src/pheapgetblocksize.c", + "src/pheapgetfreeinfo.c", + "src/pheapgetinfo.c", + "src/pheapgetsize.c", + "src/pheapinit.c", + "src/pheapresizeblock.c", + "src/pheapwalk.c", + "src/rbtree.c", + "src/rbtreeextract.c", + "src/rbtreefind.c", +# "src/rbtreefindheader.c", +# "src/rbtreeget.c", + "src/rbtreeinsert.c", + "src/scheduler.c", + "src/schedulerpriority.c", +# "src/schedulerpriorityallocate.c", + "src/schedulerpriorityblock.c", +# "src/schedulerpriorityenqueue.c", +# "src/schedulerpriorityenqueuefirst.c", +# "src/schedulerpriorityextract.c", +# "src/schedulerpriorityfree.c", + "src/schedulerpriorityprioritycompare.c", +# "src/schedulerpriorityreleasejob.c", + "src/schedulerpriorityschedule.c", +# "src/schedulerprioritytick.c", + "src/schedulerpriorityunblock.c", + "src/schedulerpriorityupdate.c", + "src/schedulerpriorityyield.c", + "src/schedulersimple.c", + "src/schedulersimpleblock.c", +# "src/schedulersimpleenqueue.c", +# "src/schedulersimpleenqueuefirst.c", +# "src/schedulersimpleextract.c", +# "src/schedulersimplereadyqueueenqueue.c", +# "src/schedulersimplereadyqueueenqueuefirst.c", + "src/schedulersimpleschedule.c", + "src/schedulersimpleunblock.c", + "src/schedulersimpleyield.c", + "src/thread.c", + "src/threadblockingoperationcancel.c", + "src/threadchangepriority.c", + "src/threadclearstate.c", +# "src/threadclose.c", + "src/threadcreateidle.c", + "src/threaddelayended.c", + "src/threaddisabledispatch.c", + "src/threaddispatch.c", + "src/threadenabledispatch.c", + "src/threadget.c", + "src/threadhandler.c", + "src/threadinitialize.c", + "src/threadloadenv.c", + "src/threadq.c", + "src/threadqdequeue.c", +# "src/threadqdequeuefifo.c", +# "src/threadqdequeuepriority.c", + "src/threadqenqueue.c", +# "src/threadqenqueuefifo.c", +# "src/threadqenqueuepriority.c", + "src/threadqextract.c", +# "src/threadqextractfifo.c", +# "src/threadqextractpriority.c", + "src/threadqextractwithproxy.c", + "src/threadqfirst.c", +# "src/threadqfirstfifo.c", +# "src/threadqfirstpriority.c", + "src/threadqflush.c", + "src/threadqprocesstimeout.c", + "src/threadqrequeue.c", + "src/threadqtimeout.c", + "src/threadready.c", +# "src/threadreset.c", + "src/threadrestart.c", + "src/threadsetpriority.c", + "src/threadsetstate.c", +# "src/threadsettransient.c", + "src/threadstackallocate.c", + "src/threadstackfree.c", + "src/threadstart.c", + "src/threadstartmultitasking.c", + "src/timespecaddto.c", + "src/timespecdivide.c", + "src/timespecdividebyinteger.c", + "src/timespecfromticks.c", + "src/timespecisvalid.c", + "src/timespeclessthan.c", + "src/timespecsubtract.c", + "src/timespectoticks.c", + "src/ts64addto.c", + "src/ts64divide.c", + "src/ts64dividebyinteger.c", + "src/ts64equalto.c", + "src/ts64getnanoseconds.c", + "src/ts64getseconds.c", + "src/ts64lessthan.c", + "src/ts64set.c", + "src/ts64settozero.c", + "src/ts64subtract.c", + "src/ts64toticks.c", + "src/ts64totimespec.c", + "src/userext.c", + "src/userextaddset.c", + "src/userextiterate.c", + "src/userextremoveset.c", + "src/watchdog.c", + "src/watchdogadjust.c", + "src/watchdogadjusttochain.c", + "src/watchdoginsert.c", +# "src/watchdognanoseconds.c", + "src/watchdogremove.c", +# "src/watchdogreport.c", +# "src/watchdogreportchain.c", + "src/watchdogtickle.c", + "src/wkspace.c", + "src/objectactivecount.c", + "src/heapgreedy.c", + "src/heapiterate.c", + "src/chainnodecount.c", + "src/wkstringduplicate.c", + "src/rbtreenext.c", + "src/log2table.c", + "src/schedulerprioritychangepriority.c", + "src/schedulerdefaultnodeinit.c", + "src/schedulerdefaultnodedestroy.c", + "src/schedulerdefaultreleasejob.c", + "src/schedulerdefaulttick.c", + "src/schedulerdefaultstartidle.c", + "src/threadyield.c", + "src/threadglobalconstruction.c", + "src/freechain.c", + "src/rbtreeiterate.c", + "src/once.c", + "src/coretodsecondssinceepoch.c", + "src/coretodadjust.c", + "src/schedulersimplechangepriority.c", + "src/schedulerdefaultupdate.c" + ] + + if ctx.env.RTEMS_ARCH == "arm": + source += [ + "cpu/arm/arm_exc_abort.S", + "cpu/arm/arm_exc_handler_high.c", + "cpu/arm/arm_exc_handler_low.S", + "cpu/arm/arm_exc_interrupt.S", + "cpu/arm/cpu.c", + "cpu/arm/cpu_asm.S", + "cpu/arm/arm-exception-default.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"]: + source += [ + "cpu/arm/armv7m-context-initialize.c", + "cpu/arm/armv7m-context-restore.c", + "cpu/arm/armv7m-context-switch.c", + "cpu/arm/armv7m-exception-default.c", + "cpu/arm/armv7m-exception-handler-get.c", + "cpu/arm/armv7m-exception-handler-set.c", + "cpu/arm/armv7m-exception-priority-get.c", + "cpu/arm/armv7m-exception-priority-handler.c", + "cpu/arm/armv7m-exception-priority-set.c", + "cpu/arm/armv7m-initialize.c", + "cpu/arm/armv7m-isr-dispatch.c", + "cpu/arm/armv7m-isr-enter-leave.c", + "cpu/arm/armv7m-isr-level-get.c", + "cpu/arm/armv7m-isr-level-set.c", + "cpu/arm/armv7m-isr-vector-install.c", + "cpu/arm/armv7m-multitasking-start-stop.c", + "cpu/arm/armv7m-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"]: + source += [ + "cpu/arm/armv4-exception-default.S" + ] + + + + elif ctx.env.RTEMS_ARCH == "avr": + source += [ + "cpu/avr/cpu.c", + "cpu/avr/cpu_asm.S" + ] + elif ctx.env.RTEMS_ARCH == "bfin": + source += [ + "cpu/bfin/cpu.c", + "cpu/bfin/cpu_asm.S" + ] + elif ctx.env.RTEMS_ARCH == "h8300": + source += [ + "cpu/h8300/cpu.c", + "cpu/h8300/cpu_asm.S" + ] + elif ctx.env.RTEMS_ARCH == "i386": + source += [ + "cpu/i386/cpu.c", + "cpu/i386/cpu_asm.S", +# "cpu/i386/sse_test.c" + ] + elif ctx.env.RTEMS_ARCH == "lm32": + source += [ + "cpu/lm32/cpu.c", + "cpu/lm32/cpu_asm.S", + "cpu/lm32/irq.c" + ] + elif ctx.env.RTEMS_ARCH == "m32c": + source += [ + "cpu/m32c/context_init.c", + "cpu/m32c/context_switch.S", + "cpu/m32c/cpu.c", + "cpu/m32c/cpu_asm.c", + "cpu/m32c/varvects.S" + ] + elif ctx.env.RTEMS_ARCH == "m32r": + source += [ + "cpu/m32r/context_init.c", + "cpu/m32r/context_switch.S", + "cpu/m32r/cpu.c", + "cpu/m32r/cpu_asm.c" + ] + elif ctx.env.RTEMS_ARCH == "m68k": + source += [ + "cpu/m68k/cpu.c", + "cpu/m68k/cpu_asm.S" + ] + elif ctx.env.RTEMS_ARCH == "mips": + source += [ + "cpu/mips/cpu.c", + "cpu/mips/cpu_asm.S" + ] + elif ctx.env.RTEMS_ARCH == "moxie": + source += [ + "cpu/moxie/cpu.c", + "cpu/moxie/cpu_asm.S", + "cpu/moxie/moxie-exception-frame-print.c", + ] + elif ctx.env.RTEMS_ARCH == "nios2": + source += [ + "cpu/nios2/nios2-context-initialize.c", + "cpu/nios2/nios2-context-switch.S", + "cpu/nios2/nios2-context-validate.S", + "cpu/nios2/nios2-context-volatile-clobber.S", + "cpu/nios2/nios2-eic-il-low-level.S", + "cpu/nios2/nios2-eic-rsie-low-level.S", + "cpu/nios2/nios2-exception-frame-print.c", + "cpu/nios2/nios2-fatal-halt.c", + "cpu/nios2/nios2-iic-irq.c", + "cpu/nios2/nios2-iic-low-level.S", + "cpu/nios2/nios2-initialize-vectors.c", + "cpu/nios2/nios2-initialize.c", + "cpu/nios2/nios2-isr-get-level.c", + "cpu/nios2/nios2-isr-install-raw-handler.c", + "cpu/nios2/nios2-isr-install-vector.c", + "cpu/nios2/nios2-isr-is-in-progress.c", + "cpu/nios2/nios2-isr-set-level.c", + "cpu/nios2/nios2-mpu-add-region.c", + "cpu/nios2/nios2-mpu-configuration.c", + "cpu/nios2/nios2-mpu-descriptor.c", + "cpu/nios2/nios2-mpu-disable-protected.c", + "cpu/nios2/nios2-mpu-reset.c", + "cpu/nios2/nios2-thread-dispatch-disabled.c" + ] + elif ctx.env.RTEMS_ARCH == "powerpc": + source += [ + "cpu/powerpc/cpu.c" + ] + elif ctx.env.RTEMS_ARCH == "sh": + source += [ + "cpu/sh/context.c", + "cpu/sh/cpu.c" + ] + elif ctx.env.RTEMS_ARCH == "sparc": + source += [ + "cpu/sparc/cpu.c", + "cpu/sparc/cpu_asm.S", + "cpu/sparc/sparc-counter.c" + ] + elif ctx.env.RTEMS_ARCH == "sparc64": + source += [ + "cpu/sparc64/context.S", + "cpu/sparc64/cpu.c" + ] + elif ctx.env.RTEMS_ARCH == "v850": + source += [ + "cpu/v850/cpu.c", + "cpu/v850/cpu_asm.S", + "cpu/v850/v850-exception-frame-print.c", + ] + elif ctx.cmd != "build" and ctx.cmd != "%s/%s" % (ctx.env.RTEMS_ARCH, ctx.env.RTEMS_BSP): + # Hack to let other commands such as 'waf list' work + pass + else: + ctx.fatal("cpukit/score/wscript: unknown arch: %s" % ctx.env.RTEMS_ARCH) + + + ctx.cpu.source( + source, + alias="score", + features="src_include", + includes=["%s/cpukit/score/include" % ctx.srcnode.abspath()] + ) diff --git a/cpukit/wscript b/cpukit/wscript new file mode 100644 index 0000000000..0bc2b75ba5 --- /dev/null +++ b/cpukit/wscript @@ -0,0 +1,179 @@ +def build(ctx): + source = [] + + # ftpd/ + source_ftpd = ["ftpd/ftpd.c"] + ctx.cpu.networking( + source_ftpd, + alias="ftpd", + features="src_include src_include_rtems" + ) + + # telnetd/ + source_telnetd = [ + "telnetd/check_passwd.c", + "telnetd/des.c", + "telnetd/pty.c", + "telnetd/telnetd.c" + ] + + ctx.cpu.networking( + source_telnetd, + alias="telnetd", + features="src_include src_include_rtems" + ) + + # pppd/ + source_pppd = [ + "pppd/auth.c", + "pppd/ccp.c", + "pppd/chap.c", + "pppd/chap_ms.c", + "pppd/chat.c", + "pppd/demand.c", + "pppd/fsm.c", + "pppd/ipcp.c", + "pppd/lcp.c", + "pppd/magic.c", + "pppd/options.c", + "pppd/upap.c", + "pppd/utils.c", +# "pppd/sys-rtems.c", + "pppd/rtemsmain.c", + "pppd/rtemspppd.c" + ] + ctx.cpu.networking( + source_pppd, + alias="pppd", + features="src_include src_include_rtems" + ) + + # mghttpd/ + source_mghttpd = ["mghttpd/mongoose.c"] + ctx.cpu.networking( + source_mghttpd, + alias="mghttpd", + features="src_include", + includes=["%s/include/mghttpd" % ctx.srcnode.abspath()], + cflags=["-DNO_SSI", "-DNO_SSL", "-DNO_CGI"] + ) + + # libblock/ + source_libblock = [ + "libblock/src/bdbuf.c", + "libblock/src/blkdev.c", + "libblock/src/blkdev-ops.c", + "libblock/src/diskdevs.c", + "libblock/src/flashdisk.c", + "libblock/src/ramdisk-driver.c", + "libblock/src/ramdisk-init.c", + "libblock/src/ramdisk-config.c", + "libblock/src/ide_part_table.c", + "libblock/src/nvdisk.c", + "libblock/src/nvdisk-sram.c", + "libblock/src/bdpart-create.c", + "libblock/src/bdpart-dump.c", + "libblock/src/bdpart-mount.c", + "libblock/src/bdpart-read.c", + "libblock/src/bdpart-register.c", + "libblock/src/bdpart-sort.c", + "libblock/src/bdpart-write.c", + "libblock/src/media-path.c", + "libblock/src/media.c", + "libblock/src/media-server.c", + "libblock/src/media-desc.c", + "libblock/src/media-dev-ident.c", + "libblock/src/diskdevs-init.c", + "libblock/src/ramdisk-register.c", + "libblock/src/blkdev-ioctl.c", + ] + ctx.cpu.source( + source_libblock, + alias="libblock", + features="src_include" + ) + + # sapi/ + source_sapi = [ + "sapi/src/chainappendnotify.c", + "sapi/src/chaingetnotify.c", + "sapi/src/chaingetwait.c", + "sapi/src/chainprependnotify.c", + "sapi/src/debug.c", + "sapi/src/exinit.c", + "sapi/src/exshutdown.c", + "sapi/src/extension.c", + "sapi/src/extensioncreate.c", + "sapi/src/extensiondata.c", + "sapi/src/extensiondelete.c", + "sapi/src/extensionident.c", + "sapi/src/fatal.c", + "sapi/src/fatal2.c", + "sapi/src/getversionstring.c", + "sapi/src/io.c", + "sapi/src/ioclose.c", + "sapi/src/iocontrol.c", + "sapi/src/iodata.c", + "sapi/src/ioinitialize.c", + "sapi/src/ioopen.c", + "sapi/src/ioread.c", + "sapi/src/ioregisterdriver.c", + "sapi/src/iounregisterdriver.c", + "sapi/src/iowrite.c", + "sapi/src/posixapi.c", + "sapi/src/rtemsapi.c", +# "sapi/src/interrdesc.c", +# "sapi/src/fatalsrcdesc.c", + "sapi/src/testbeginend.c", + "sapi/src/testextension.c", + "sapi/src/cpucounterconverter.c", + "sapi/src/fatalsrctext.c", + "sapi/src/interrtext.c" + ] + ctx.cpu.source( + source_sapi, + alias="sapi", + features="src_include" + ) + + + source += [ + "libgnat/ada_intrsupp.c", +# "libgnat/adasupp.c", + "libi2c/libi2c.c", + "libmd/md5.c", + "libmd/md4.c" + ] + ctx.cpu.source( + source, + alias="misc", + features="src_include" + ) + + ctx( + target = "rtemscpu", + use = [ + "auto_libcpu_objects" +# alias="ftpd", +# alias="libblock", +# alias="libcsupport", +# alias="libfs", +# alias="libmisc", +# alias="libmisc_monitor", +# alias="libmisc_shell", +# alias="libmisc_uuid", +# alias="libnetworking", +# alias="librpc", +# alias="libz", +# alias="mghttpd", +# alias="misc", +# alias="nfs", +# alias="posix", +# alias="rtems", +# alias="sapi", +# alias="score", +# alias="telnetd" + ], + features = "c cstlib", + install_path = ctx.env.LIBDIR + ) diff --git a/cpukit/zlib/wscript b/cpukit/zlib/wscript new file mode 100644 index 0000000000..346cef5011 --- /dev/null +++ b/cpukit/zlib/wscript @@ -0,0 +1,35 @@ +def build(ctx): + ctx( + features = "subst", + source = "zconf.h.in", + target = "zconf.h", + name = "libcpu_libz_zconf_h", + before = ("c",) + ) + + source = [ + "adler32.c", + "compress.c", + "crc32.c", + "deflate.c", + "gzclose.c", + "gzlib.c", + "gzread.c", + "gzwrite.c", + "infback.c", + "inffast.c", + "inflate.c", + "inftrees.c", + "trees.c", + "uncompr.c", + "zutil.c" + ] + + ctx.cpu.source( + source, + alias = "libz", + cflags = ["-DZ_PREFIX", "-DZ_HAVE_UNISTD_H"], + includes = ctx.bldnode.bldpath(), + features = "src_include", + use = "libcpu_libz_zconf_h" + ) diff --git a/rtems_waf/.gitignore b/rtems_waf/.gitignore new file mode 100644 index 0000000000..0d20b6487c --- /dev/null +++ b/rtems_waf/.gitignore @@ -0,0 +1 @@ +*.pyc diff --git a/rtems_waf/TODO b/rtems_waf/TODO new file mode 100644 index 0000000000..21af700ae6 --- /dev/null +++ b/rtems_waf/TODO @@ -0,0 +1,70 @@ +Before Release +~~~~~~~~~~~~~~ + * Add a c.MCFLAGS which seperates machine flags -mXXX and -fXXX into + MCFLAGS and the rest into CFLAGS so machine code can be built + (eg, bootloader). RTEMS build would merge both, rtems-config will offer + them seperately if requested. + + +Configure +~~~~~~~~~ + * SIZEOF_MODE_T, SIZEOF_VOID_P, BLKSIZE_T... need to be dynamically + calculated in rtems_waf/configure.py + + + +General +~~~~~ + * Documentation + * Install mode (It can be used in-place w/out installing using rtems-config) + * Distribution (creating a tarball) + * Test runner + * Create a system to force options on/off/unavailable/make them required in a bsp-specific way + * Board targets so you can do waf config --board <name> and have it setup everything + + + +Optimisations +~~~~~~~~~~~~~ + * Usage of ctx.srcnode.abspath() and others should result in one call, eg. + srcnode = ctx.srcnode.abspath() at the top then "%s" % srcnode. + * No BSP should take longer than 30s to build with maximum tests enabled. + * Profile waf when the build is running + + + +Options +~~~~~~~ + * LDFLAGS is LINKERFLAGS, make sure this is changed everywhere. + CCJ - not sure which direction to make the change so made it + LINKFLAGS -> LDFLAGS. + * LIBS may be the wrong variable name to use it is not waf-eqsue. + * Changed the default for the i386/pc586 bsp adding BSP_PRESS_KEY_FOR_RESET. + Did the config, configure, build and build tests and the setting + was not picked up. Changed the default networking setting and waf + rebuilt lots of files and then the bsp reset worked. + * Classes allow duplicate options -- this needs to throw an error to avoid + typos in the case two similar options, eg INTERFACE_TX, INTERFACE_RX. + +Future +~~~~~~ + * Support for building multiple branches at once + - Make previous branches use versioned build directories build-5.1, build-5.2 + + +Includes +~~~~~~~~ + * cache_.h + * Look at c/wscript_arm -> arm/realview_pbx_a9_qemu. + Other BSPs need to be fixed for cache_manager.c and console*, other bsps have been + hacked to include src_include_libcpu and src_include_bsp for all files this is wrong. + + +Enhancements +~~~~~~~~~~~~ + * Seperate logic to convert from string to internal python values in config/options.py + + +Config +~~~~~~ + * --path-tools= cannot be relative otherwise GCC cannot find its header files it must be absolute. diff --git a/rtems_waf/__init__.py b/rtems_waf/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/rtems_waf/__init__.py diff --git a/rtems_waf/bsp.py b/rtems_waf/bsp.py new file mode 100644 index 0000000000..5b5e21ac1e --- /dev/null +++ b/rtems_waf/bsp.py @@ -0,0 +1,290 @@ +list_bsp = { + "arm": [ + "arm1136jfs", + "arm1136js", + "arm7tdmi", + "arm920", + "armcortexa9", + "csb336", + "csb337", + "csb637", + "edb7312", + "gba", + "gp32", + "gumstix", + "kit637_v6", + "lm3s3749", + "lm3s6965", + "lm3s6965_qemu", + "lpc17xx_ea_ram", + "lpc17xx_ea_rom_int", + "lpc17xx_plx800_ram", + "lpc17xx_plx800_rom_int", + "lpc2362", + "lpc23xx_tli800", + "lpc24xx_ea", + "lpc24xx_ncs_ram", + "lpc24xx_ncs_rom_ext", + "lpc24xx_ncs_rom_int", + "lpc24xx_plx800_ram", + "lpc24xx_plx800_rom_int", + "lpc32xx_mzx", + "lpc32xx_mzx_stage_1", + "lpc32xx_mzx_stage_2", + "lpc32xx_phycore", + "nds", + "raspberrypi", + "realview_pbx_a9_qemu", + "rtl22xx", + "rtl22xx_t", + "smdk2410", + "stm32f4", + "xilinx_zynq_a9_qemu", + ], + + "avr": [ + "avrtest", + ], + + "bfin": [ + "bf537stamp", + "ezkit533", + "tll6527m", + ], + + "h8300": [ + "h8sim", + "h8sxsim", + ], + + "i386": [ + "pc386", + "pc486", + "pc586", + "pc586-sse", + "pc686", + "pcp4", + ], + + "lm32": [ + "lm32_evr", + "milkymist", + ], + + "m32c": [ + "m32csim", + ], + + "m32r": [ + "m32rsim", + ], + + "m68k": [ + "av5282", + "cobra5475", + "csb360", + "gen68302", + "gen68340", + "gen68360", + "gen68360_040", + "idp", + "m5484fireengine", + "mcf5206elite", + "mcf52235", + "mcf5225x", + "mcf5235", + "mcf5329", + "mrm332", + "mvme136", + "mvme147", + "mvme147s", + "mvme162", + "mvme162lx", + "mvme167", + "ods68302", + "pgh360", + "sim68000", + "simcpu32", + "uc5282", + ], + + "mips": [ + "csb350", + "genmongoosev", + "hurricane", + "jmr3904", + "malta", + "rbtx4925", + "rbtx4938", + ], + + "moxie": [ + "moxiesim", + ], + + "nios2": [ + "nios2_iss", + ], + + "powerpc": [ + "beatnik", + "br_uid", + "brs5l", + "brs6l", + "dp2", + "ep1a", + "gwlcfm", + "haleakala", + "hsc_cm01", + "icecube", + "mbx821_001", + "mbx821_002", + "mbx821_002b", + "mbx860_001b", + "mbx860_002", + "mbx860_005b", + "mbx860_1b", + "mcp750", + "mpc5566evb", + "mpc5566evb_spe", + "mpc5643l_dpu", + "mpc5643l_evb", + "mpc5674f_ecu508_app", + "mpc5674f_ecu508_boot", + "mpc5674f_rsm6", + "mpc5674fevb", + "mpc5674fevb_spe", + "mpc8260ads", + "mpc8309som", + "mpc8313erdb", + "mpc8349eamds", + "mtx603e", + "mvme2100", + "mvme2307", + "mvme3100", + "mvme5500", + "pghplus", + "phycore_mpc5554", + "pm520_cr825", + "pm520_ze30", + "psim", + "qemuppc", + "qemuprep", + "qemuprep-altivec", + "qoriq_core_0", + "qoriq_core_1", + "qoriq_p1020rdb", + "score603e", + "ss555", + "t32mppc", + "tqm8xx_stk8xx", + "virtex", + "virtex4", + "virtex5", + ], + + "sh": [ + "gensh1", + "gensh2", + "gensh4", + "simsh1", + "simsh2", + "simsh2e", + "simsh4", + ], + + "sparc": [ + "erc32", + "leon2", + "leon3", + "sis", + ], + + "sparc64": [ + "niagara", + "usiii", + ], + + "v850": [ + "v850e1sim", + "v850e2sim", + "v850e2v3sim", + "v850esim", + "v850essim", + "v850sim", + ] +} + + + +""" +list_bsp = { + "arm": [ + "lm3s3749", + "lm3s6965", + "lm3s6965_qemu", + "lpc17xx_ea_ram", + "lpc17xx_ea_rom_int", + "lpc17xx_plx800_ram", + "lpc17xx_plx800_rom_int", + "lpc24xx_plx800_ram", + "lpc24xx_plx800_rom_int", + "raspberrypi", + "realview_pbx_a9_qemu", + "stm32f4", + "xilinx_zynq_a9_qemu", + ], + + "i386": [ + "pcp4", + ], + + "mips": [ + "malta", + ], + + "moxie": [ + "moxiesim", + ], + + "nios2": [ + "nios2_iss", + ], + + "powerpc": [ + "br_uid", + "brs6l", + "mpc5566evb_spe", + "mpc5643l_dpu", + "mpc5643l_evb", + "mpc5674f_ecu508_app", + "mpc5674f_ecu508_boot", + "mpc5674f_rsm6", + "mpc5674fevb", + "mpc5674fevb_spe", + "mpc8309som", + "phycore_mpc5554", + "qemuprep", + "qemuprep-altivec", + "qoriq_core_0", + "qoriq_core_1", + "qoriq_p1020rdb", + "t32mppc", + "virtex4", + "virtex5", + ], + + "v850": [ + "v850e1sim", + "v850e2sim", + "v850e2v3sim", + "v850esim", + "v850essim", + "v850sim", + ] +} +""" + +#for arch in sorted(list_bsp): +# for bsp in sorted(list_bsp[arch]): +# print "%s/%s" % (arch, bsp) diff --git a/rtems_waf/builder.py b/rtems_waf/builder.py new file mode 100644 index 0000000000..0b9b68ed19 --- /dev/null +++ b/rtems_waf/builder.py @@ -0,0 +1,120 @@ +class rtems_base(object): + name = None + + def __init__(self, ctx): + self.ctx = ctx + + if ctx.env.ENABLE_PTHREADS and not ctx.env.ENABLE_POSIX: + raise ValueError("ENABLE_POSIX required for ENABLE_PTHREADS") + + self.ctx( + name = "auto_%s_objects" % self.name, + use = [] + ) + + + def _get_id(self, name): + name_id = "auto_%s" % name + + if name_id not in self.ctx.counter: + self.ctx.counter[name_id] = 0 + return "%s_0" % name_id + else: + self.ctx.counter[name_id] += 1 + return "%s_%d" % (name_id, self.ctx.counter[name_id]) + + + def _obj_add(self, name, source, **kwarg): + + if "test" in kwarg: + if not kwarg["test"]: + return + + if "alias" in kwarg: + name = "%s_%s" % (name, kwarg["alias"]) + + id = self._get_id(name) + + self.ctx.rtems_obj( + id, + source, + **kwarg + ) + + #XXX: Is this OK? + for g in self.ctx.groups[0]: + if g.get_name() == "auto_%s_objects" % self.name: + g.use.append(id) + + def start(self, source, defines=[]): + from os.path import splitext, basename + + for s in source: + file = splitext(basename(s))[0] + self.ctx( + rule = '${CC} -DASM ${CFLAGS} ${CPPFLAGS} ${DEFINES_ST:DEFINES} ${CPPPATH_ST:INCPATHS} -c -o ${TGT} ${SRC}', + source = s, + target = "%s.o" % file, + name = "start_%s_o" % file, + features = "c casm bld_include src_include", + defines = defines, + ) + + def source(self, source, **kwarg): + self._obj_add(self.name, source, **kwarg) + + def debug(self, source, **kwarg): + if self.ctx.env.ENABLE_DEBUG: + self._obj_add("%s_debug" % self.name, source, **kwarg) + + def mp(self, source, **kwarg): + if self.ctx.env.ENABLE_MP: + self._obj_add("%s_mp" % self.name, source, **kwarg) + + def multilib(self, source, **kwarg): + if self.ctx.env.ENABLE_MULTILIB: + self._obj_add("%s_multilib" % self.name, source, **kwarg) + + def networking(self, source, **kwarg): + if self.ctx.env.ENABLE_NETWORKING: + self._obj_add("%s_networking" % self.name, source, **kwarg) + + def newlib(self, source, **kwarg): + if self.ctx.env.ENABLE_NEWLIB: + self._obj_add("%s_newlib" % self.name, source, **kwarg) + + def posix(self, source, **kwarg): + if self.ctx.env.ENABLE_POSIX: + self._obj_add("%s_posix" % self.name, source, **kwarg) + + def pthreads(self, source, **kwarg): + # pthreads requires POSIX + if self.ctx.env.ENABLE_PTHREADS and self.ctx.env.ENABLE_POSIX: + self._obj_add("%s_pthreads" % self.name, source, **kwarg) + + def rpc(self, source, **kwarg): + if self.ctx.env.ENABLE_RPC: + self._obj_add("%s_rpc" % self.name, source, **kwarg) + + def serdbg(self, source, **kwarg): + if self.ctx.env.ENABLE_SERDBG: + self._obj_add("%s_serdbg" % self.name, source, **kwarg) + + def shell(self, source, **kwarg): + if self.ctx.env.ENABLE_SHELL: + self._obj_add("%s_shell" % self.name, source, **kwarg) + + def smp(self, source, **kwarg): + if self.ctx.env.ENABLE_SMP: + self._obj_add("%s_smp" % self.name, source, **kwarg) + + +class libcpu(rtems_base): + name = "libcpu" + +class libbsp(rtems_base): + name = "libbsp" + + def fpsp(self, source, **kwarg): + if self.ctx.env.ENABLE_FPSP: + self._obj_add("%s_fpsp" % self.name, source, **kwarg) diff --git a/rtems_waf/compat.py b/rtems_waf/compat.py new file mode 100644 index 0000000000..5c58f9b9bb --- /dev/null +++ b/rtems_waf/compat.py @@ -0,0 +1,20 @@ +# Compat code for python 2<->3. + + +# Borrowed from the Six package: https://pypi.python.org/pypi/six +# Copyright (c) 2010-2015 Benjamin Peterson +def add_metaclass(metaclass): + """Class decorator for creating a class with a metaclass.""" + def wrapper(cls): + orig_vars = cls.__dict__.copy() + slots = orig_vars.get('__slots__') + if slots is not None: + if isinstance(slots, str): + slots = [slots] + for slots_var in slots: + orig_vars.pop(slots_var) + orig_vars.pop('__dict__', None) + orig_vars.pop('__weakref__', None) + return metaclass(cls.__name__, cls.__bases__, orig_vars) + return wrapper + diff --git a/rtems_waf/config/__init__.py b/rtems_waf/config/__init__.py new file mode 100644 index 0000000000..c8c17ede02 --- /dev/null +++ b/rtems_waf/config/__init__.py @@ -0,0 +1,11 @@ +from .base import BuildConfig, Config, Default, Feature, Disable +from .feature import * +from .options import * + +from rtems_waf import defaults + +#XXX: Fix +# Test to make sure options are sane. +#for option in options_map: +# a = options_map[option]() + diff --git a/rtems_waf/config/base.py b/rtems_waf/config/base.py new file mode 100644 index 0000000000..d7996c2c89 --- /dev/null +++ b/rtems_waf/config/base.py @@ -0,0 +1,385 @@ +try: + from configparser import ConfigParser, NoOptionError +except: + from ConfigParser import ConfigParser, NoOptionError + +from os.path import exists +#from __init__ import options_map, Default, features_list, config_list +from rtems_waf.compat import add_metaclass #2to3 +from sys import version_info + +Default = None # Default value. +Disable = "-DISABLED-" # Disable this option +options_map = {} # Global options map. +features_list = [] # Global features list. +config_list = [] # Global config list. + + +def fatal(str): + print("FATAL: %s" % str) + exit(1) + + +class Value(object): + """Holds an option value internally. This acts in a similar fashion to a dictionary.""" + + def __init__(self): + self.__dict__["options"] = {} + + def __setattr__(self, key, value): + """Set a value, this either fetches the option or sets it if it already exists.""" + self._set_or_get(key, value) + + def __getitem__(self, key): + """Get an option from the internal table.""" + return self.options[key] + + def __getattr__(self, key): + """Allow an option to be fetched as an attribute.""" + return self.options[key] + + def _set_or_get(self, option, value): + """ + Set or get an option. + + :param option: Option name (string) + :param value: Value to set option + """ + + # Disabling an option removes it from the header completely irrespective of its type. + if type(value) == str and value == "-DISABLED-": + del self.options[option] + return + + if option not in self.options: + if option not in options_map: + fatal("Missing default option: %s" % option) + opt = options_map[option] # Get option class + i = opt(value) # Create option with value + self.options[i.name] = i # Set in dictionary + else: + i = self.options[option] + i.set(value) # Set value + + def __str__(self): + """String representation of a value object.""" + return "Value object at %s: %s" % (hex(id(self)), self.value) + + def __iter__(self): + """Allow iteration.""" + return iter(self.options) + + + +# Self register configs. +class ConfigMeta(type): + """Automatically register configs classes.""" + def __new__(cls, name, bases, dct): + new = type.__new__(cls, name, bases, dct) + if hasattr(new, "is_feature") and new.is_feature is True: # XXX: Find a better way to differentiate. + features_list.append(new) + elif hasattr(new, "name"): + config_list.append(new) + return new + +@add_metaclass(ConfigMeta) +class Config(object): + feature = () #: Feature list (XXX: Why is this required?) + feature_default = ("gcc", "debug") #: Default features. + + def __init__(self): + self.base = False #: Whether this is a base config or not. + self.option_header = Value() #: Internal header options + self.option_build = Value() #: Internal build options + + # Iterate over base classes in reverse order so the 'latest' + # defined option is taken. + for i in type(self).__mro__[::-1]: + if hasattr(i, "header"): + i.header(self, self.option_header) + if hasattr(i, "build"): + i.build(self, self.option_build) + + # Make sure features don't conflict with each other. + processed = [] + feature_obj = [x for x in features_list if x.name in self.feature] + for feature in feature_obj: + conflicts = set(processed) & set(feature.conflicts) + processed.append(feature.name) + if conflicts: + raise Exception("Feature %s conflicts with %s" % (feature.name, ", ".join(conflicts))) + feature(self) + + self.feature += self.feature_default # Features in this config + + + def header(self, c): + """ + Header config options. + + :param c: `self.option_header` + """ + pass + + + def build(self, c): + """ + Build config options. + + :param c: `self.build_header` + """ + pass + + # XXX: needs to merge both dictionaries and sort them. + def config_get(self): + """Get the config.cfg (.ini) format for this config.""" + str = "[%s]\n" % self.name + def add(d, str): + for o in sorted(d): + opt = d[o] + str += "%s" % opt.config_get() + str += "\n\n" + return str + + str = add(self.option_header, str) + str = add(self.option_build, str) + return str + + + + +class Feature(Config): + """Build feature base class""" + name = None #: Name of feature + description = None #: Description + exclude = None #: BSPs to exclude + include = None #: BSPs to include + conflicts = None #: Other features this one conflicts with + is_feature = True #: Whether this is a feature or not + + def __init__(self, parent): + self.build(parent.option_build) + self.header(parent.option_header) + + def __str__(self): + return "%s (%s)" % (self, self.name) + + + +class cfg_general(Config): + """[general] block for `config.cfg.`""" + name = "general" + def build(self, c): + c.BSP = Default + c.PREFIX = Default + c.PATH_TOOLS = Default + c.ENABLE_DEBUG = Default + c.CFLAGS = Default + c.LIBS = Default + c.LDFLAGS = Default + + +class cfg_host(Config): + """[host] block for `config.cfg.`""" + name = "host" + def build(self, c): + c.CFLAGS = Default + c.LIBS = Default + c.LDFLAGS = Default + + +class cfg_bsp(Config): + """[bsp] block for `config.cfg` to hold BSP-specific settings""" + name = "bsp" + def build(self, c): + c.ENABLE_DEBUG = Default + c.ENABLE_MP = Default + c.ENABLE_MULTILIB = Default + c.ENABLE_NETWORKING = Default + c.ENABLE_NEWLIB = Default + c.ENABLE_POSIX = Default + c.ENABLE_PTHREADS = Default + c.ENABLE_SERDBG = Default + c.ENABLE_SHELL = Default + c.ENABLE_SMP = Default + c.LINK_START = Default + c.LINK_END = Default + c.LINK_LINK = Default + + + + + +class BuildConfig(object): + """ + This class handles creating and loading `config.cfg`. + """ + file_config = "config.cfg" #: Default config file name. + + def __init__(self, list_bsp=[]): + self.cfg_default = [cfg_general(), cfg_host(), cfg_bsp()] #: Default BSP configuration. + self.cfg = list(self.cfg_default) #: BSP config. + + if list_bsp: + self.list_bsp = sorted(list_bsp) + elif not exists(self.file_config): + fatal("Missing config.cfg") + else: + # Load on-disk config. + self._cfg_user_load() + + # Parse BSPs + self._parse_bsp(self.list_bsp) + + # Make sure BSP= is always set. + self.option_set("general", "BSP", " " .join(self.list_bsp)) + + + + def _parse_bsp(self, list_bsp): + """ + Parse BSP config. + + :param: list_bsp: List of BSPs in this config. + """ + + # Make this simplier + bsp_map = {} + for b in self.list_bsp: + bsp = [x for x in config_list if x.name == b][0] + bsp_arch = [x for x in config_list if x.name == bsp.arch][0] + bsp_map.setdefault((bsp_arch.name, bsp_arch), []).append(bsp) + + # Save for usage in config_set + self.bsp_map = bsp_map + + for bsp_name, bsp_arch in sorted(bsp_map): + self.cfg.append(bsp_arch()) + for bsp in bsp_map[(bsp_name, bsp_arch)]: + self.cfg.append(bsp()) + + + def save(self): + """Save config to disk.""" + with open(self.file_config, "w") as fp: + fp.write(self._cfg_get()) + fp.write("\n\n") # Handy. + + + def config_set(self, ctx, cfg_name, arch_name=None): + """ + Apply config internally to waf. + + :param ctx: waf Context. + :param cfg_name: BSP config name (arch/bsp format). + :param arch_name: Architecture name. + """ + cfg = None + if arch_name: +# self.config_set(ctx, arch_name) + cfg_name = "%s/%s" % (arch_name, cfg_name) + + for c in self.cfg: + if c.name == cfg_name: + cfg = c + break + + if not cfg: + fatal("BuildConfig:config_set(): Invalid config: %s" % cfg_name) + + for option in cfg.option_build: + opt = cfg.option_build[option] + opt.set_config_build(ctx) + + for option in cfg.option_header: + opt = cfg.option_header[option] + opt.set_config_header(ctx) + + + def bsp_get_detail(self, arch, bsp): + cfg = None + + for c in config_list: + if c.name == "%s/%s" % (arch, bsp): + cfg = c + break + + if cfg is None: + return "MISSING" # XXX: Throw an exception if this is missing? + + return "." + + + def option_set(self, cfg, option, value): + """ + Set an option within a config + + :param cfg: Config to set. + :param option: Option name. + :param value: Value to set. + """ + for config in self.cfg_default: + if config.name == cfg: + # Only allow build options to be set for now. + for o in config.option_build: + opt = config.option_build[o] + if opt.name == option: + opt.set(value) + + def _cfg_get(self): + """Get config text.""" + cfg = "" + for bsp in self.cfg: + cfg += "\n\n" + cfg += bsp.config_get() + return cfg.strip() + + + #XXX: unused + def _cfg_add(self, str): + self.cfg += "\n" + self.cfg += str + + + def _cfg_user_load(self): + """Load user config from disk.""" + cfg = ConfigParser() + cfg.read(self.file_config) + + for cfg_bsp in self.cfg: + section = cfg_bsp.name + + if not cfg.has_section(section): + fatal("Missing section: [%s]" % section) + + for option in cfg_bsp.option_build: + opt = cfg_bsp.option_build[option] + + o = cfg.get(section, opt.name) + + # configpaser does not convert values anymore. + if o in ["True", "False"]: + o = cfg.getboolean(section, opt.name) + + # We do not support unicode internally + if version_info < (3,) and type(o) is unicode: #2to3 + o = str(o) + + opt.set(o) + + # Set the list of bsps from the config. + if option == "BSP" and section == "general": + self.list_bsp = sorted(opt.value) + + for option in cfg_bsp.option_header: + opt = cfg_bsp.option_header[option] + o = cfg.get(section, opt.name) + opt.set(o) + + + + +# This needs to be here to avoid recursive deps, it's more convenient to +# have the features in a seperate file. +#import feature +#import rtems_waf.defaults.bsp diff --git a/rtems_waf/config/feature.py b/rtems_waf/config/feature.py new file mode 100644 index 0000000000..58f19dea17 --- /dev/null +++ b/rtems_waf/config/feature.py @@ -0,0 +1,30 @@ +from .__init__ import Feature + +class FeatureGCC(Feature): + """GCC Compiler.""" + name = "gcc" + description = "GCC Compiler" + conflicts = ("clang",) + + def build(self, c): + c.USE_GCC = True + + +class FeatureClang(Feature): + """Clang Compiler.""" + name = "clang" + description = "Clang Compiler" + conflicts = ("gcc",) + + def build(self, c): + c.USE_CLANG = True + + +class FeatureDebug(Feature): + """Debug Options""" + name = "debug" + description = "Enable debug options" + + def build(self, c): + c.ENABLE_DEBUG = True + diff --git a/rtems_waf/config/options.py b/rtems_waf/config/options.py new file mode 100644 index 0000000000..c5e6c82957 --- /dev/null +++ b/rtems_waf/config/options.py @@ -0,0 +1,274 @@ +from textwrap import TextWrapper +from .base import options_map +from rtems_waf.compat import add_metaclass # 2to3 + +wrapper = TextWrapper() +wrapper.width = 75 +wrapper.initial_indent = "# " +wrapper.subsequent_indent = "# " + + + +class OptionMeta(type): + """Self register options.""" + skip = ("Option", "Boolean", "String", "StringList", "Integer") + def __new__(cls, name, bases, dct): + new = type.__new__(cls, name, bases, dct) + if name not in cls.skip: + if name in options_map: + raise Exception("Duplicate option: %s" % name) + options_map[name] = new + return new + +@add_metaclass(OptionMeta) +class Option(object): + """ + Base class for all Options + + .. py:attribute:: undef=True + + Whether to undefine the option in the header file when "disabled". + + .. py:attribute:: limit=None + + List or min,max to restrict the option to. Depends on option type. + + .. py:attribute:: quote=False + + Whether to quote the value in the header. + """ + + def __init__(self, value=None): + self.name = self.__class__.__name__ + + + # Do not set a default if no_default set. + if not hasattr(self, "no_default"): + self.no_default = True + + # Whether to quote the value + if not hasattr(self, "quote"): + self.quote = False + + # Value limit + if not hasattr(self, "limit"): + self.limit = None + + if value is not None: + self.validate(value) + self.value = value + elif self.no_default and not hasattr(self, "value"): + raise Exception("no_default is set you must supply a value in bsp config") + else: + self.validate(self.value) + + def __add__(self, value): + """ + Hack around only a _set. Need a _convert and _set in each type of option. + + :rtype: Depends on subclass + :return: Two options added together + """ + current = self.value + self._set(value) + optsum = self.value + self.value = current + return current + optsum + + + def validate(self, value): + """Validate option.""" + self._fatal("Must be set in subclass.") + + + def set(self, value): + """Set option value""" + if value is None: +# self.value = self.default #XXX: why is this here, a artifact? + return + + self._set(value) + + + def _fatal(self, str): + """Fatal error""" + print("Fatal->%s.%s: %s" % (self.__class__.__bases__[0].__name__, self.__class__.__name__, str)) + exit(1) + + + def config_get(self): + """ + Get string suitable for config.cfg + + :rtype: string + :return: Pre-formatted Windows `.ini` block. + """ + + opt = [] + opt += wrapper.wrap(self.descr.strip()) + opt += ["%s = %s" % (self.__class__.__name__, self._str_value())] + return "\n".join(opt) + + + def _str_value(self): + """ + Get option as a string. + + :rtype: string + :return: Option value as a string. + """ + raise Exception("Needs to be implmented in subclass.") + + + def set_config_header(self, ctx): + """ + 1. If value is an integer always define it beacuse it could be 0. + 2. If value is empty "" or boolean=False undefine it + 3. if self.undef == True (undefine if false) undefine it. + + :param ctx: waf context + """ + if type(self.value) is not int and not self.value and self.undef: + ctx.undefine(self.name) + return + self._set_config_header(ctx) + + + def set_config_build(self, ctx): + """ + Set option inside waf as part of the build. + + :param ctx: waf context + """ + if type(self.value) is list: + ctx.env.append_value(self.name, self.value) + else: + setattr(ctx.env, self.name, self.value) + + + +class Boolean(Option): + """Boolean option value.""" + + def validate(self, value): + """Validate as one of: 1, 0, true, false""" + + if type(value) is not bool: + self._fatal("Not a boolean value (True|False): %s" % type(value)) + + def _str_value(self): + return str(self.value) + + # XXX: This is wrong (works for now!) + def _set(self, value): + + if type(value) is str: + if value.lower() == "true": + value = True + elif value.lower() == "false": + value = False + else: + self._fatal("Internal error in Boolean._set()") + + self.validate(value) + self.value = value + + def _set_config_header(self, ctx): + """Set value in config header.""" + + if self.undef: + ctx.define_cond(self.name, 1 if self.value else 0) + else: + ctx.define(self.name, 0) + + + + +class String(Option): + def validate(self, value): + """Verify value is a string and is in `limit` if defined.""" + if type(value) is not str: + self._fatal("Not a string: %s (%s)" % (value, type(value))) + + if self.limit: + if type(limit) is not list: + self._fatal("Only lists are supported as a limiter for strings.") + + if value not in limit: + self._fatal("%s not in list of accepted values: %s" % (value, limit)) + + def _str_value(self): + return self.value + + def _set(self, value): + """Set string, strips bounding whitespace.""" + self.validate(value) + self.value = value.strip() + + def _set_config_header(self, ctx): + """Define in header.""" + ctx.define(self.name, self.value, quote=self.quote) + + +class StringList(Option): + def validate(self, value): + """Validate list of strings""" + if type(value) is not list: + self._fatal("Not a list: %s (%s)" % (value, type(value))) + + for v in value: + if type(v) is not str: + self._fatal("Value %s is not a String." % v) + +#XXX: Needs to be fixed. +# if self.limit: +# if type(limit) is not list: +# self._fatal("Only lists are supported as a limiter for strings.") + +# if value not in limit: +# self._fatal("%s not in list of accepted values: %s" % (value, limit)) + + def _str_value(self): + return " ".join(self.value) + + def _set(self, value): + """Make sure value is a list otherwise split into one delimited by whitespace.""" + + if type(value) is not list: + value = value.split(" ") + value = [x for x in value if x] + + self.validate(value) + self.value = value + + def _set_config_header(self, ctx): + ctx.define(self.name, self.value, quote=self.quote) + + + +class Integer(Option): + def validate(self, value): + """Verify value is an int and in limit if defined.""" + if type(value) is not int: + self._fatal("Not an integer: %s (%s)" % (value, type(value))) + + if self.limit: + if type(limit) is list: + if value not in limit: + self._fatal("%s not in list of accepted values: %s" % (value, limit)) + + if type(limit) is tuple: + min, max = limit + if value < min or value > max: + self._fatal("%s is outside min/max: %s/%s" % (value, min, max)) + + def _str_value(self): + return str(self.value) + + def _set(self, value): + self.validate(value) + v = int(value) #XXX: Is this even needed? an artifact? + self.value = v + + def _set_config_header(self, ctx): + ctx.define(self.name, self.value, quote=self.quote) diff --git a/rtems_waf/configure.py b/rtems_waf/configure.py new file mode 100644 index 0000000000..b6f6e30c29 --- /dev/null +++ b/rtems_waf/configure.py @@ -0,0 +1,428 @@ +from waflib.Logs import pprint +pprint.__doc__ = None # Make sure waf doesn't see this as a command. +from waflib.Utils import subprocess + +# TODO +# __attribute__((weak) will not work on a cross compile. +# __RTEMS_SIZEOF_VOID_P__ + + +# BSP hacks that need to be addressed / resolved. +def bsp_hack(ctx, bsp): + if bsp == "m68k/mvme167": + # PowerPC unfortunatly uses macros to define this instead of an integer. + # We need to choose one or the other. + ctx.define('CONSOLE_MINOR', 1) + ctx.define('PRINTK_MINOR', 1) + + +# general +def config_h(ctx): + # Are these even needed? + ctx.define_cond('ENABLE_DEBUG', ctx.env.ENABLE_DEBUG) + ctx.define_cond('ENABLE_MP', ctx.env.ENABLE_MP) + ctx.define_cond('ENABLE_MULTILIB', ctx.env.ENABLE_MULTILIB) + ctx.define_cond('ENABLE_NETWORKING', ctx.env.ENABLE_NETWORKING) + ctx.define_cond('ENABLE_NEWLIB', ctx.env.ENABLE_NEWLIB) + ctx.define_cond('ENABLE_POSIX', ctx.env.ENABLE_POSIX) + ctx.define_cond('ENABLE_PTHREADS', ctx.env.ENABLE_PTHREADS) + ctx.define_cond('ENABLE_SERDB', ctx.env.ENABLE_SERDB) + ctx.define_cond('ENABLE_SHELL', ctx.env.ENABLE_SHELL) + ctx.define_cond('ENABLE_SMP', ctx.env.ENABLE_SMP) + + header = ["sys/types.h", "sys/stat.h", "stdlib.h", "memory.h", "string.h", "strings.h", "inttypes.h", "stdint.h", "unistd.h", "getopt.h", "libgen.h"] + for file in header: + ctx.check(header_name=file, features='c cprogram', mandatory=False) + + ctx.check_inline() + ctx.check_cc(function_name='strerror', header_name="string.h", mandatory=True) + ctx.check_cc(function_name='strtol', header_name=["stdlib.h", "limits.h"], mandatory=True) + ctx.check_cc(function_name='basename', header_name="libgen.h", mandatory=True) + + +# cpukit/ +def config_h_libcpu(ctx): + # Mandated by POSIX, decls not present in some versions of newlib, + # some versions stubbed in newlib's rtems crt0 + files = ["seteuid", "geteuid", "setegid", "getegid", "setuid", "getuid", "setgid", "getgid", "setsid", "getsid", "setpgid", "getpgid", "setpgrp", "getpgrp"] + for f in files: + ctx.check_cc(function_name=f, header_name="unistd.h", mandatory=False) + + # Mandated by POSIX, decls not present in some versions of newlib + ctx.check_cc(function_name='flockfile', header_name="stdio.h", mandatory=False) + ctx.check_cc(function_name='funlockfile', header_name="stdio.h", mandatory=False) + ctx.check_cc(function_name='ftrylockfile', header_name="stdio.h", mandatory=False) + + # BSD-isms, used throughout the sources. + func = ["strsep", "strcasecmp", "snprintf", "strdup", "strndup", "strncasecmp", "bcopy", "bcmp", "isascii", "fileno", "strlcpy", "strlcat", "sbrk"] + + # Check for functions supplied by newlib >= 1.17.0 Newlib's posix/ directory + func += ["readdir_r", "isatty", "creat", "opendir", "closedir", "readdir", "rewinddir", "scandir", "seekdir", "sleep", "telldir", "usleep", "__assert", "execl", "execlp", "execle", "execv", "execvp", "execve", "regcomp", "regexec", "regerror", "regfree"] + + # Newlib's unix/ directory + func += ["ttyname", "getcwd"] + for f in func: + ctx.check_func(f, mandatory=False) + + header = ["tar.h", "errno.h", "sched.h", "sys/cdefs.h", "sys/queue.h", "stdint.h", "inttypes.h", "pthread.h"] + for file in header: + ctx.check(header_name=file, features='c cprogram') + + ctx.check(header_name="pthread.h", features='c cprogram') + ctx.check_cc(type_name='pthread_rwlock_t', header_name="pthread.h", mandatory=False) + ctx.check_cc(type_name='pthread_barrier_t', header_name="pthread.h", mandatory=False) + ctx.check_cc(type_name='pthread_spinlock_t', header_name="pthread.h", mandatory=False) + # pthread-functions not declared in some versions of newlib. + ctx.check_cc(function_name='pthread_attr_getguardsize', header_name="pthread.h", mandatory=False) + ctx.check_cc(function_name='pthread_attr_setguardsize', header_name="pthread.h", mandatory=False) + ctx.check_cc(function_name='pthread_attr_setstack', header_name="pthread.h", mandatory=False) + ctx.check_cc(function_name='pthread_attr_getstack', header_name="pthread.h", mandatory=False) + + ctx.check(header_name="signal.h", features='c cprogram') + ctx.check_cc(type_name='sighandler_t', header_name="signal.h", mandatory=False) + + # FIXME: Mandatory in SUSv4, optional in SUSv3. + # Not implemented in GCC/newlib, so far. + ctx.check_define("WORD_BIT", "limits.h") + ctx.check_define("LONG_BIT", "limits.h") + +# ctx.check_define("CLOCK_PROCESS_CPUTIME_ID", "time.h") +# ctx.check_define("CLOCK_THREAD_CPUTIME_ID", "time.h") + + types = [ + "uint8_t", "int8_t", + "uint16_t", "int16_t", + "uint32_t", "int32_t", + "uint64_t", "int64_t", + "uintmax_t", "intmax_t", + "uintptr_t", "intptr_t" + ] + for type in types: + ctx.check_cc(type_name=type, header_name="stdint.h", mandatory=False) + +# ctx.check_size("mode_t") +# ctx.define_cond('HAVE_MD5', True) # XXX: hack for cpukit/mghttpd/mongoose.c + ctx.define('SIZEOF_MODE_T', 4) # XXX: This is a hack for cpukit/libfs/src/nfsclient/src/dirutils.c + ctx.define('SIZEOF_VOID_P', 4) + ctx.define('SIZEOF_OFF_T', 8) + ctx.define('SIZEOF_TIME_T', 4) # XXX: hack for cpukit/libmisc/uuid/gen_uuid.c +# ctx.check_size("off_t") +# ctx.check_size("void *", define_name="SIZEOF_VOID_P") + + ctx.define('__RTEMS_HAVE_DECL_SIGALTSTACK__', 1) + + +def version_header_info(ctx, config): + ctx.define('__RTEMS_MAJOR__', config["rtems_version_major"]) + ctx.define('__RTEMS_MINOR__', config["rtems_version_minor"]) + ctx.define('__RTEMS_REVISION__', config["rtems_version_revision"]) + ctx.define('RTEMS_VERSION', ctx.env.RTEMS_VERSION) + ctx.define('RTEMS_BSP', ctx.env.RTEMS_BSP) + + +# c/ +def config_h_libbsp(ctx): + ctx.define('__RTEMS_SIZEOF_VOID_P__', 4) + + +def cpuopts_h(ctx): + ctx.define_cond('__RTEMS_USE_TICKS_FOR_STATISTICS__', False) # disable nanosecond granularity for statistics + ctx.define_cond('__RTEMS_USE_TICKS_CPU_USAGE_STATISTICS__', False) # disable nanosecond granularity for cpu usage statistics + ctx.define_cond('__RTEMS_USE_TICKS_RATE_MONOTONIC_STATISTICS__', False) # disable nanosecond granularity for period statistics + ctx.define_cond('__RTEMS_DO_NOT_INLINE_THREAD_ENABLE_DISPATCH__', False) # disable inlining _Thread_Enable_dispatch (This improves both the size and coverage analysis.) + ctx.define_cond('__RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__', False) # disable inlining _Thread_Enable_dispatch (This improves both the size and coverage analysis.) + ctx.define_cond('__RTEMS_DO_NOT_UNROLL_THREADQ_ENQUEUE_PRIORITY__', False) # disable inlining _Thread_queue_Enqueue_priority (This improves both the size and coverage analysis.) + ctx.define_cond('__RTEMS_STRICT_ORDER_MUTEX__', False) # disable strict order mutex (This gives the same behavior as 4.8 and older) + ctx.define_cond('__RTEMS_ADA__', False) # ada/gnat bindings are built-in (Deactivate ada bindings) + + ctx.define_cond('RTEMS_DEBUG', ctx.env.ENABLE_DEBUG) + ctx.define_cond('RTEMS_MULTIPROCESSING', ctx.env.ENABLE_MP) + ctx.define_cond('RTEMS_NETWORKING', ctx.env.ENABLE_NETWORKING) + ctx.define_cond('RTEMS_NEWLIB', ctx.env.ENABLE_NEWLIB) + ctx.define_cond('RTEMS_POSIX_API', ctx.env.ENABLE_POSIX) + ctx.define_cond('RTEMS_SMP', ctx.env.ENABLE_SMP) + + +def depend_version(ctx): + ctx.start_msg("Checking GCC version") + ctx.get_cc_version(ctx.env.CC, gcc=True) + ctx.end_msg(".".join(ctx.env.CC_VERSION)) + + ctx.start_msg("Checking Binutils version") + cmd = ctx.env.BIN_RTEMS_LD + ["-v"] + p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=None) + stdout, stderr = p.communicate() + ctx.env.LD_VERSION = stdout.decode("utf-8").split(" ")[4].replace("\n", "") + ctx.end_msg(ctx.env.LD_VERSION) + + +def build_config(ctx): + ctx.start_msg("DEVEL: Collecting compiler configuration") + cmd = ctx.env.CC + ["-dM", "-E", "-"] + p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=None) + p.stdin.write("\n") + gcc_config, stderr = p.communicate() + ctx.end_msg("Done") + + ctx.start_msg("DEVEL: Getting revision") + cmd = ["git", "log", "-1", "--format=%H"] + p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=None) + ctx.env.REVISION, stderr = p.communicate() + ctx.env.REVISION = ctx.env.REVISION.replace("\n", "") + ctx.end_msg(ctx.env.REVISION) + + with open("build/c4che/%s/%s_cache.py" % (ctx.env.RTEMS_ARCH, ctx.env.RTEMS_BSP), "r") as fp: + cache_data = fp.read() + + ctx.start_msg("DEVEL: Writing build information") + from json import JSONEncoder + from time import strftime + + data = JSONEncoder(sort_keys=True).encode({ + "time": int(strftime("%s")), # There is no better way to get seconds across lal platforms? + "revision": ctx.env.REVISION, + "bsp": ctx.env.RTEMS_BSP, + "architecture": ctx.env.RTEMS_ARCH, + "version": { + "gcc": ".".join(ctx.env.CC_VERSION), + "binutils": ctx.env.LD_VERSION + }, + "waf_cache": cache_data, + "gcc_config": gcc_config + }) + file = "build/c4che/%s/build_%s.json" % (ctx.env.RTEMS_ARCH, ctx.env.RTEMS_BSP) + with open(file, "w") as fp: + fp.write(data) + ctx.end_msg(file) + + +def cmd_configure(ctx, config): + + ctx.load('waf', tooldir='rtems_waf') + + from rtems_waf.config import BuildConfig + cfg = BuildConfig() + + + # Misc funcs + def yesno(val): + return "Yes" if val else "No" + + def write_header(header): + ctx.start_msg("Writing configuration header:") + ctx.write_config_header(header) + ctx.end_msg(header, "PINK") + + def msg(str): + pprint("YELLOW", str) + + def msg_setting(name, val): + pprint("NORMAL", " %-30s: " % name, sep="") + pprint("YELLOW", val) + + + ###### + # HOST + ###### + + msg("") + msg("--- General Settings ---") + cfg.config_set(ctx, "general") + + ctx.env.RTEMS_VERSION = "%d.%d.%d" % (config["rtems_version_major"], config["rtems_version_minor"], config["rtems_version_revision"]) + ctx.env.RTEMS_VERSION_DATA = "%d.%d" % (config["rtems_version_major"], config["rtems_version_minor"]) + + ctx.env.LIBDIR = "%s/lib" % ctx.env.PREFIX + ctx.env.BINDIR = "%s/bin" % ctx.env.PREFIX + + + + msg("") + msg("--- Host Settings ---") + ctx.setenv('host', ctx.env.derive()) + ctx.load('compiler_c') + ctx.load('compiler_cxx') + + + if ctx.options.build_config: + ctx.start_msg('BUILD: Gathering build platform details.') + + # General + from socket import gethostname + from waflib.Utils import unversioned_sys_platform + import platform + + ctx.env.BUILD_HOSTNAME = gethostname() + ctx.env.BUILD_PLATFORM = unversioned_sys_platform() + ctx.env.BUILD_ARCHITECTURE = platform.architecture() + ctx.env.BUILD_MACHINE = platform.machine() + ctx.env.BUILD_PLATFORM = platform.platform() + ctx.env.BUILD_PYTHON_BUILD = platform.python_build() + ctx.env.BUILD_SYSTEM = platform.system() + + # Unix + ctx.env.BUILD_SIGNATURE = platform.uname() + + # Linux + #platform.libc_ver() + #platform.linux_distribution() + + # Windows + #platform.win32_ver() + + ctx.end_msg("Done") + + + ctx.check_library() + ctx.check_cc(function_name='strerror', header_name="string.h", mandatory=True) + ctx.check_cc(function_name='strtol', header_name=["stdlib.h", "limits.h"], mandatory=True) + ctx.check_cc(function_name='basename', header_name="libgen.h", mandatory=True) + + files = ["getopt.h", "libgen.h"] + for f in files: + ctx.check(header_name=f, features='c cprogram') + + # Locate python binary for rtems-config + ctx.find_program("python", var='BIN_PYTHON') + + # Debug + if ctx.options.build_json: + ctx.env.BUILD_JSON = True + + #XXX: TEMP! + if ctx.options.enable_tests: + ctx.env.ENABLE_TESTS = True + + cfg.config_set(ctx, "host") + write_header("host/include/config.h") + + # Set general BSP options + cfg.config_set(ctx, "bsp") + + # Set timetstamp of config.cfg to enforce re-running configure if it is changed. + from .tools import get_file_mtime + ctx.env.CONFIG_TIMESTAMP = get_file_mtime("config.cfg") + + # Always start with a pristeen env while looping. + env_orig = ctx.env + for bsp in ctx.env.BSP: + msg("") + msg("--- Configuring %s ---" % bsp) + ctx.setenv(bsp, env_orig.derive()) + + (ctx.env.RTEMS_ARCH, ctx.env.RTEMS_BSP) = bsp.split("/") + + if ctx.env.ENABLE_PTHREADS and not ctx.env.ENABLE_POSIX: + ctx.fatal("Must be built with posix support (ENABLE_POSIX) when using pthreads (ENABLE_PTHREADS)") + + # XXX: Joel says this shouldn't be nessicary. + if ctx.env.ENABLE_MP and not ctx.env.ENABLE_POSIX: + ctx.fatal("Must be built with posix support (ENABLE_POSIX) when using MP (ENABLE_MP)") + + + # Miscellanous setup. + ctx.env.RTEMS_VERSION = "%d.%d.%d.%d" % (config["rtems_version_major"], config["rtems_version_minor"], config["rtems_version_revision"], config["rtems_version_patch"]) + ctx.env.RTEMS_VERSION_DATA = "%d.%d" % (config["rtems_version_major"], config["rtems_version_minor"]) + ctx.env.append_value('CFLAGS', '-DHAVE_CONFIG_H') + ctx.env.append_value('CFLAGS', '-D__rtems_%s_%s__' % (ctx.env.RTEMS_ARCH, ctx.env.RTEMS_BSP.replace("-", "_"))) + ctx.env.LIBDIR = "%s/lib/rtems/%s/%s-%s/" % (ctx.env.PREFIX, ctx.env.RTEMS_VERSION_DATA, ctx.env.RTEMS_ARCH, ctx.env.RTEMS_BSP) + ctx.env.BINDIR = ctx.env.LIBDIR + +#XXX: Re-add after things are fixed. + # Enforce required values. +# required = ["LINKCMDS", "LINK_START", "LINK_END"] +# for value in required: +# if not ctx.env[value]: +# ctx.fatal("%s must be defined in [%s]" % (value, bsp)) + + #XXX: ARM hack + if ctx.env.RTEMS_ARCH == "arm": + ctx.env.LDFLAGS = ctx.env.CFLAGS + + + # Tools. + ctx.find_program('%s-rtems%s-ar' % (ctx.env.RTEMS_ARCH, ctx.env.RTEMS_VERSION_DATA), var='BIN_RTEMS_AR', path_list=ctx.env.PATH_TOOLS) + ctx.find_program('%s-rtems%s-as' % (ctx.env.RTEMS_ARCH, ctx.env.RTEMS_VERSION_DATA), var='BIN_RTEMS_AS', path_list=ctx.env.PATH_TOOLS) + ctx.find_program('%s-rtems%s-g++' % (ctx.env.RTEMS_ARCH, ctx.env.RTEMS_VERSION_DATA), var='BIN_RTEMS_CPP', path_list=ctx.env.PATH_TOOLS, mandatory=False) + ctx.find_program('%s-rtems%s-gcc' % (ctx.env.RTEMS_ARCH, ctx.env.RTEMS_VERSION_DATA), var='BIN_RTEMS_CC', path_list=ctx.env.PATH_TOOLS) + ctx.find_program('%s-rtems%s-ld' % (ctx.env.RTEMS_ARCH, ctx.env.RTEMS_VERSION_DATA), var='BIN_RTEMS_LD', path_list=ctx.env.PATH_TOOLS) + ctx.find_program('%s-rtems%s-nm' % (ctx.env.RTEMS_ARCH, ctx.env.RTEMS_VERSION_DATA), var='BIN_RTEMS_NM', path_list=ctx.env.PATH_TOOLS) + ctx.find_program('%s-rtems%s-ranlib' % (ctx.env.RTEMS_ARCH, ctx.env.RTEMS_VERSION_DATA), var='BIN_RTEMS_RANLIB', path_list=ctx.env.PATH_TOOLS) + ctx.find_program('%s-rtems%s-strip' % (ctx.env.RTEMS_ARCH, ctx.env.RTEMS_VERSION_DATA), var='BIN_RTEMS_STRIP', path_list=ctx.env.PATH_TOOLS) + ctx.env.AR = ctx.env.BIN_RTEMS_AR + ctx.env.AS = ctx.env.BIN_RTEMS_AS + ctx.env.CC = ctx.env.BIN_RTEMS_CC + ctx.env.CPP = ctx.env.BIN_RTEMS_CPP + ctx.env.RANLIB = ctx.env.BIN_RTEMS_RANLIB + ctx.env.STRIP = ctx.env.BIN_RTEMS_STRIP + ctx.env.LD = ctx.env.BIN_RTEMS_LD + ctx.env.LINK_CC = ctx.env.BIN_RTEMS_CC + ctx.env.LINK_CXX = ctx.env.BIN_RTEMS_CCP + + # Config (config.h) + config_h(ctx) + config_h_libcpu(ctx) + version_header_info(ctx, config) + cpuopts_h(ctx) #XXX: duplicate info. + write_header("%s/include/config.h" % bsp) + + # BSP options. + cfg.config_set(ctx, ctx.env.RTEMS_BSP, ctx.env.RTEMS_ARCH) + bsp_hack(ctx, bsp) + write_header("%s/include/bspopts.h" % ctx.variant) + config_h_libbsp(ctx) # Eventually there will be an option to exclude this and replace it with something custom. + + # CPU options. + cpuopts_h(ctx) + version_header_info(ctx, config) + write_header("%s/include/rtems/score/cpuopts.h" % bsp) + + ctx.start_msg('Generating GCC spec file') + from rtems_waf.tools import generate_gcc_spec_file + spec_file = generate_gcc_spec_file(ctx, devel=True) + ctx.end_msg(spec_file) + + + depend_version(ctx) + if ctx.options.build_config: + build_config(ctx) + + + msg("") + msg("--- Settings for %s ---" % bsp) + msg_setting("Enable Networking", yesno(ctx.env.ENABLE_NETWORKING)) + msg_setting("Enable Multiprocessing", yesno(ctx.env.ENABLE_MP)) + msg_setting("Enable Multilib", yesno(ctx.env.ENABLE_MULTILIB)) + msg_setting("Enable POSIX", yesno(ctx.env.ENABLE_POSIX)) + msg_setting("Enable SMP", yesno(ctx.env.ENABLE_SMP)) + msg_setting("Enable pthreads", "%s (Depends on POSIX)" % yesno(ctx.env.ENABLE_PTHREADS)) + msg("") + msg("Build Options") + msg_setting("CC", " ".join(ctx.env.CC)) + msg_setting("CFLAGS", " ".join(ctx.env.CFLAGS)) + msg_setting("LDFLAGS", " ".join(ctx.env.LDFLAGS)) + + + # Reset the env back to the original in order to print the proper settings below. + ctx.setenv("host", env_orig.derive()) + + msg("") + ctx.start_msg('Generating rtems-config') + from rtems_waf.tools import generate_rtems_config + generate_rtems_config(ctx, "rtems_waf/rtems_config.py", "rtems-config", devel=True) + ctx.end_msg("Done") + + + msg("") + msg("--- General Settings (applies to all) --- ") + msg_setting("Enabled BSPs", ", ".join(ctx.env.BSP)) + msg_setting("Install Prefix", ctx.env.PREFIX) + msg_setting("Tool Directory", ctx.env.PATH_TOOLS) + msg("") + msg("Build Options") + msg_setting("CFLAGS", " ".join(ctx.env.CFLAGS)) + msg_setting("LDFLAGS", " ".join(ctx.env.LDFLAGS)) + msg_setting("Enable Debug", yesno(ctx.env.ENABLE_DEBUG)) + + + diff --git a/rtems_waf/debug.py b/rtems_waf/debug.py new file mode 100644 index 0000000000..d0c2a02ce9 --- /dev/null +++ b/rtems_waf/debug.py @@ -0,0 +1,95 @@ +from hashlib import sha256 +from os.path import exists +from json import JSONEncoder +from time import time +import logging +from logging.handlers import MemoryHandler +from waflib.Task import Task +from waflib.Utils import subprocess, check_dir +from waflib.Logs import debug + +from os.path import dirname + +#from cStringIO import StringIO +#from waflib import Utils + +def logger_json_create(ctx): + logger = logging.getLogger('build.json') + logger.setLevel(logging.INFO) + + if ctx.variant == "host": + file = "%s/logs/host.json" % ctx.out_dir + else: + file = "%s/logs/%s.json" % (ctx.out_dir, ctx.variant) + + check_dir(dirname(file)) + filetarget = logging.FileHandler(file, mode="w") + memoryhandler = MemoryHandler(1048576, target=filetarget) + + logger.addHandler(memoryhandler) + + return logger + + +def hash_files(files): + h = [] + for file in files: + if exists(file): + fp = open(file, "r") + h.append((file, sha256(fp.read()).hexdigest())) + fp.close() + return h + + +def exec_command_json(self, cmd, **kw): +# subprocess = Utils.subprocess + kw['shell'] = isinstance(cmd, str) + + debug('runner_env: kw=%s' % kw) + + try: + record = {} + record["time"] = time() + record["command"] = cmd + recoard["variant"] = ctx.variant + + task_self = kw["json_task_self"] + record["type"] = task_self.__class__.__name__ + + del kw["json_task_self"] + + record["inputs"] = [x.srcpath() for x in task_self.inputs] + record["outputs"] = [x.srcpath() for x in task_self.outputs] + record["cflags"] = self.env.CFLAGS + record["cc"] = self.env.CC + + kw['stdout'] = kw['stderr'] = subprocess.PIPE + + time_start = time() + p = subprocess.Popen(cmd, **kw) + (stdout, stderr) = p.communicate() + record["time_duration"] = time() - time_start + + if stdout: + record["stdout"] = stdout + if stderr: + record["stderr"] = stderr + + record["hash"] = {} + record["hash"]["inputs"] = hash_files(record["inputs"]) + record["hash"]["outputs"] = hash_files(record["outputs"]) + + record["retval"] = p.returncode + data = JSONEncoder(sort_keys=False, indent=False).encode(record) + + self.logger_json.info(data) + + return p.returncode + + except OSError: + return -1 + + +def exec_command_json_extra(self, cmd, **kw): + kw["json_task_self"] = self + self.exec_command_real(cmd, **kw) diff --git a/rtems_waf/defaults/__init__.py b/rtems_waf/defaults/__init__.py new file mode 100644 index 0000000000..4bad4a5dbd --- /dev/null +++ b/rtems_waf/defaults/__init__.py @@ -0,0 +1,2 @@ +from .options import * +from .bsp import * diff --git a/rtems_waf/defaults/bsp/__init__.py b/rtems_waf/defaults/bsp/__init__.py new file mode 100644 index 0000000000..e71761df16 --- /dev/null +++ b/rtems_waf/defaults/bsp/__init__.py @@ -0,0 +1,17 @@ +from . import arm +from . import avr +from . import bfin +from . import h8300 +from . import i386 +from . import lm32 +from . import m32c +from . import m32r +from . import m68k +from . import mips +from . import moxie +from . import nios2 +from . import powerpc +from . import sh +from . import sparc +from . import sparc64 +from . import v850 diff --git a/rtems_waf/defaults/bsp/arm.py b/rtems_waf/defaults/bsp/arm.py new file mode 100644 index 0000000000..ee6a905ef8 --- /dev/null +++ b/rtems_waf/defaults/bsp/arm.py @@ -0,0 +1,598 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "arm" + conflicts=("clang",) + + def build(self, c): + c.LINK_START = ['${RTEMS}/start.o', 'crti.o', 'crtbegin.o', '-e', '_start'] + c.LINK_END = ['crtend.o', 'crtn.o'] + + +class csb336(Base): + name = "arm/csb336" + + def build(self, c): + c.CFLAGS = ['-mcpu=arm920', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8'] + c.LINKCMDS = ['src/lib/libbsp/arm/csb336/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + +class csb337_shared(Base): + def build(self, c): + c.CFLAGS = ['-mcpu=arm920', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8'] + c.LINKCMDS = ['src/lib/libbsp/arm/csb337/startup/linkcmds.csb337', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + c.ENABLE_LCD = Default + c.ENABLE_UMON = True + c.ENABLE_UMON_CONSOLE = True + + def header(self, c): + c.ENABLE_USART0 = True + c.ENABLE_USART1 = True + c.ENABLE_USART2 = True + c.ENABLE_USART3 = True + c.csb637 = Default + + + +class csb637(csb337_shared): + name = "arm/csb637" + + def build(self, c): + c.CFLAGS = ['-mcpu=arm920', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8'] + c.LINKCMDS = ['src/lib/libbsp/arm/csb337/startup/linkcmds.csb637', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.csb637 = True + + + +class csb337(csb337_shared): + name = "arm/csb337" + + def build(self, c): + c.CFLAGS = ['-mcpu=arm920', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8'] + c.LINKCMDS = ['src/lib/libbsp/arm/csb337/startup/linkcmds.csb337', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + + +class kit637_v6(csb337_shared): + name = "arm/kit637_v6" + + def build(self, c): + c.CFLAGS = ['-mcpu=arm920', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8'] + c.LINKCMDS = ['src/lib/libbsp/arm/csb337/startup/linkcmds.csb337', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.csb637 = True + + + + +class lm3s_shared(Base): + def build(self, c): + c.CFLAGS = ['-march=armv7-m', '-mthumb'] + + def header(self, c): + c.BSP_SMALL_MEMORY = True + c.LM3S69XX_ENABLE_UART_0 = Default + c.LM3S69XX_ENABLE_UART_1 = Default + c.LM3S69XX_ENABLE_UART_2 = Default + c.LM3S69XX_HAS_UDMA = Default + c.LM3S69XX_MCU_LM3S3749 = Default + c.LM3S69XX_MCU_LM3S6965 = Default + c.LM3S69XX_SSI_CLOCK = Default + c.LM3S69XX_SYSTEM_CLOCK = Default + c.LM3S69XX_UART_BAUD = Default + c.LM3S69XX_USE_AHB_FOR_GPIO = Default + + +class lm3s3749(lm3s_shared): + name = "arm/lm3s3749" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/arm/lm3s69xx/startup/linkcmds.lm3s3749', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m', 'src/lib/libbsp/arm/shared/startup/linkcmds.base'] + + def header(self, c): + c.LM3S69XX_HAS_UDMA = True + c.LM3S69XX_XTAL_CONFIG = Default + c.LM3S69XX_MCU_LM3S3749 = True + c.LM3S69XX_NUM_GPIO_BLOCKS = 8 + c.LM3S69XX_NUM_SSI_BLOCKS = 2 + c.LM3S69XX_USE_AHB_FOR_GPIO = True + +class lm3s6965(lm3s_shared): + name = "arm/lm3s6965" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/arm/lm3s69xx/startup/linkcmds.lm3s6965', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m', 'src/lib/libbsp/arm/shared/startup/linkcmds.base'] + + def header(self, c): + c.LM3S69XX_XTAL_CONFIG = "0xE" + c.LM3S69XX_MCU_LM3S6965 = True + c.LM3S69XX_NUM_GPIO_BLOCKS = 7 + + +class lm3s6965_qemu(lm3s_shared): + name = "arm/lm3s6965_qemu" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/arm/lm3s69xx/startup/linkcmds.lm3s6965_qemu', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m', 'src/lib/libbsp/arm/shared/startup/linkcmds.base'] + + def header(self, c): + c.LM3S69XX_XTAL_CONFIG = "0xE" + c.LM3S69XX_MCU_LM3S6965 = True + c.LM3S69XX_NUM_GPIO_BLOCKS = 7 + + +class lpc17xx_shared(Base): + def build(self, c): + c.CFLAGS = ['-march=armv7-m', '-mthumb'] + + def header(self, c): + c.BSP_SMALL_MEMORY = Default + c.LPC24XX_CCLK = Default + c.LPC24XX_CONFIG_CONSOLE = Default + c.LPC24XX_CONFIG_I2C_2 = Default + c.LPC24XX_CONFIG_UART_1 = Default + c.LPC24XX_EMC_TEST = Default + c.LPC24XX_ETHERNET_RMII = Default + c.LPC24XX_OSCILLATOR_MAIN = Default + c.LPC24XX_OSCILLATOR_RTC = Default + c.LPC24XX_STOP_ETHERNET = Default + c.LPC24XX_STOP_GPDMA = Default + c.LPC24XX_STOP_USB = Default + c.LPC24XX_UART_BAUD = Default + c.LPC24XX_PCLKDIV = Default + c.LPC24XX_EMCCLKDIV = Default + c.LPC24XX_EMC_MT48LC4M16A2 = Default + c.LPC24XX_EMC_W9825G2JB75I = Default + c.LPC24XX_EMC_IS42S32800D7 = Default + c.LPC24XX_EMC_IS42S32800B = Default + c.LPC24XX_EMC_M29W160E = Default + c.LPC24XX_EMC_M29W320E70 = Default + c.LPC24XX_EMC_SST39VF3201 = Default + c.LPC24XX_CONFIG_UART_2 = Default + c.LPC24XX_CONFIG_UART_3 = Default + c.LPC24XX_CONFIG_I2C_0 = Default + c.LPC24XX_CONFIG_I2C_1 = Default + c.LPC_DMA_CHANNEL_COUNT = 8 + c.BSP_START_RESET_VECTOR = Default + c.BSP_USB_OTG_TRANSCEIVER_I2C_ADDR = "(0x2f << 1)" + + + +class lpc17xx_ea_ram(lpc17xx_shared): + name = "arm/lpc17xx_ea_ram" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_ea_ram', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.LPC24XX_CCLK = "96000000U" + c.LPC24XX_PCLKDIV = "2U" + c.LPC24XX_EMCCLKDIV = "2U" + + +class lpc17xx_ea_rom_int(lpc17xx_shared): + name = "arm/lpc17xx_ea_rom_int" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_ea_rom_int', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.LPC24XX_CCLK = "96000000U" + c.LPC24XX_PCLKDIV = "2U" + c.LPC24XX_EMC_IS42S32800B = True + +class lpc17xx_plx800_ram(lpc17xx_shared): + name = "arm/lpc17xx_plx800_ram" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_plx800_ram', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + pass + +class lpc17xx_plx800_rom_int(lpc17xx_shared): + name = "arm/lpc17xx_plx800_rom_int" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_plx800_rom_int', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.LPC24XX_EMC_M29W320E70 = True + + +class edb7312(Base): + name = "arm/edb7312" + + def build(self, c): + c.CFLAGS = ['-mcpu=arm7tdmi', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8'] + c.LINKCMDS = ['src/lib/libbsp/arm/edb7312/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.ON_SKYEYE = Default + + + +class gba(Base): + name = "arm/gba" + + def build(self, c): + c.CFLAGS = ['-mcpu=arm7tdmi', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8'] + c.LINKCMDS = ['src/lib/libbsp/arm/gba/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + +class gdbarmsim_shared(Base): + def build(self, c): + pass + + +class arm1136jfs(gdbarmsim_shared): + name = "arm/arm1136jfs" + + def build(self, c): + c.CFLAGS = ['-mcpu=arm1136jf-s'] + c.LINKCMDS = ['src/lib/libbsp/arm/gdbarmsim/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + +class arm1136js(gdbarmsim_shared): + name = "arm/arm1136js" + + def build(self, c): + c.CFLAGS = ['-mcpu=arm1136j-s'] + c.LINKCMDS = ['src/lib/libbsp/arm/gdbarmsim/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + +class armcortexa9(gdbarmsim_shared): + name = "arm/armcortexa9" + + def build(self, c): + c.CFLAGS = ['-mcpu=cortex-a9'] + c.LINKCMDS = ['src/lib/libbsp/arm/gdbarmsim/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + +class arm7tdmi(gdbarmsim_shared): + name = "arm/arm7tdmi" + + def build(self, c): + c.CFLAGS = ['-mcpu=arm7tdmi'] + c.LINKCMDS = ['src/lib/libbsp/arm/gdbarmsim/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + +class arm920(gdbarmsim_shared): + name = "arm/arm920" + + def build(self, c): + c.CFLAGS = ['-mcpu=arm920', '-mfloat-abi=soft', '-mfpu=vfp'] + c.LINKCMDS = ['src/lib/libbsp/arm/gdbarmsim/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + +class gp32(Base): + name = "arm/gp32" + + def build(self, c): + c.CFLAGS = ['-DCPU_S3C2400', '-mcpu=arm920t', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=32'] + c.LINKCMDS = ['src/lib/libbsp/arm/gp32/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + +class gumstix(Base): + name = "arm/gumstix" + + def build(self, c): + c.CFLAGS = ['-mcpu=xscale', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8'] + c.LINKCMDS = ['src/lib/libbsp/arm/gumstix/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + c.ON_SKYEYE = Default + + def header(self, c): + c.ON_SKYEYE = Default + + + +class lpc24xx_shared(Base): + + def build(self, c): + c.CFLAGS = ['-mcpu=arm7tdmi-s', '-mthumb', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8', '-Os'] + + + def header(self, c): + c.BSP_SMALL_MEMORY = Default + c.LPC24XX_CCLK = Default + c.LPC24XX_CONFIG_CONSOLE = Default + c.LPC24XX_CONFIG_I2C_2 = Default + c.LPC24XX_CONFIG_UART_1 = Default + c.LPC24XX_EMC_TEST = Default + c.LPC24XX_ETHERNET_RMII = Default + c.LPC24XX_OSCILLATOR_MAIN = Default + c.LPC24XX_OSCILLATOR_RTC = Default + c.LPC24XX_STOP_ETHERNET = Default + c.LPC24XX_STOP_GPDMA = Default + c.LPC24XX_STOP_USB = Default + c.LPC24XX_UART_BAUD = Default + c.LPC24XX_PCLKDIV = Default + c.LPC24XX_EMCCLKDIV = Default + c.LPC24XX_EMC_MT48LC4M16A2 = Default + c.LPC24XX_EMC_W9825G2JB75I = Default + c.LPC24XX_EMC_IS42S32800D7 = Default + c.LPC24XX_EMC_IS42S32800B = Default + c.LPC24XX_EMC_M29W160E = Default + c.LPC24XX_EMC_M29W320E70 = Default + c.LPC24XX_EMC_SST39VF3201 = Default + c.LPC24XX_CONFIG_UART_2 = Default + c.LPC24XX_CONFIG_UART_3 = Default + c.LPC24XX_CONFIG_I2C_0 = Default + c.LPC24XX_CONFIG_I2C_1 = Default + c.LPC_DMA_CHANNEL_COUNT = Default + c.BSP_START_RESET_VECTOR = Default + c.BSP_USB_OTG_TRANSCEIVER_I2C_ADDR = Default + + +class lpc24xx_ncs_rom_ext(lpc24xx_shared): + name = "arm/lpc24xx_ncs_rom_ext" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.BSP_START_RESET_VECTOR = "0x80000040" + c.LPC24XX_EMC_MT48LC4M16A2 = True + c.BSP_START_RESET_VECTOR = "0x80000040" + +class lpc24xx_ncs_rom_int(lpc24xx_shared): + name = "arm/lpc24xx_ncs_rom_int" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.LPC24XX_EMC_M29W320E70 = True + c.BSP_START_RESET_VECTOR = "0x80000040" + + +class lpc24xx_plx800_ram(lpc24xx_shared): + name = "arm/lpc24xx_plx800_ram" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_plx800_ram', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.LPC24XX_CCLK = "51612800U" + c.LPC24XX_CONFIG_UART_1 = False + c.LPC24XX_CONFIG_UART_2 = Default + + +class lpc24xx_plx800_rom_int(lpc24xx_shared): + name = "arm/lpc24xx_plx800_rom_int" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_plx800_rom_int', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.LPC24XX_CCLK = "51612800U" + c.LPC24XX_CONFIG_UART_1 = False + c.LPC24XX_CONFIG_UART_2 = Default + + +class lpc24xx_ea(lpc24xx_shared): + name = "arm/lpc24xx_ea" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.LPC24XX_ETHERNET_RMII = True + c.BSP_START_RESET_VECTOR = "0x80000040" + + +class lpc23xx_tli800(lpc24xx_shared): + name = "arm/lpc23xx_tli800" + + def build(self, c): + c.CFLAGS = ['-mcpu=arm7tdmi-s', '-mthumb', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8', '-Os'] + c.LINKCMDS = ['src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.LPC24XX_OSCILLATOR_MAIN = "3686400U" + c.LPC24XX_CCLK = "58982400U" + c.LPC24XX_HEAP_EXTEND = True + +class lpc2362(lpc24xx_shared): + name = "arm/lpc2362" + + def build(self, c): + c.CFLAGS = ['-mcpu=arm7tdmi-s', '-mthumb', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8', '-Os'] + c.LINKCMDS = ['src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.LPC24XX_OSCILLATOR_MAIN = "3686400U" + c.LPC24XX_CCLK = "58982400U" + c.LPC24XX_HEAP_EXTEND = True + + +#XXX: Some of the armv4 linkcmds are unnessicary (when armv7 is used) +class lpc24xx_ncs_ram(lpc24xx_shared): + name = "arm/lpc24xx_ncs_ram" + + def build(self, c): + c.CFLAGS = ['-mcpu=arm7tdmi-s', '-mthumb', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8', '-Os'] + c.LINKCMDS = ['src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.LPC24XX_CONFIG_I2C_1 = 1 + + +class lpc32xx_shared(Base): + + def header(self, c): + c.BSP_SMALL_MEMORY = Default + c.BSP_START_RESET_VECTOR = "" + c.LPC32XX_ARM_CLK = Default + c.LPC32XX_CONFIG_U3CLK = Default + c.LPC32XX_CONFIG_U4CLK = Default + c.LPC32XX_CONFIG_U5CLK = Default + c.LPC32XX_CONFIG_U6CLK = Default + c.LPC32XX_CONFIG_UART_CLKMODE = Default + c.LPC32XX_DISABLE_MMU = Default + c.LPC32XX_DISABLE_READ_ONLY_PROTECTION = Default + c.LPC32XX_DISABLE_READ_WRITE_DATA_CACHE = Default + c.LPC32XX_ENABLE_WATCHDOG_RESET = Default + c.LPC32XX_ETHERNET_RMII = Default + c.LPC32XX_HCLK = Default + c.LPC32XX_OSCILLATOR_MAIN = Default + c.LPC32XX_OSCILLATOR_RTC = Default + c.LPC32XX_PERIPH_CLK = Default + c.LPC32XX_STOP_ETHERNET = Default + c.LPC32XX_STOP_GPDMA = Default + c.LPC32XX_STOP_USB = Default + c.LPC32XX_UART_1_BAUD = Default + c.LPC32XX_UART_2_BAUD = Default + c.LPC32XX_UART_7_BAUD = Default + c.TESTS_USE_PRINTK = True + + + +class lpc32xx_mzx_stage_1(lpc32xx_shared): + name = "arm/lpc32xx_mzx_stage_1" + + def build(self, c): + # XXX: -Os was added as a hack to fix test builds (results were too huge resulting in an error) + c.CFLAGS = ['-fno-schedule-insns2', '-mcpu=arm926ej-s', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8', '-mthumb', '-Os'] + c.LINKCMDS = ['src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.BSP_SMALL_MEMORY = True + c.LPC_DMA_CHANNEL_COUNT = Default + + +class lpc32xx_mzx_stage_2(lpc32xx_shared): + name = "arm/lpc32xx_mzx_stage_2" + + def build(self, c): + c.CFLAGS = ['-fno-schedule-insns2', '-mcpu=arm926ej-s', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8', '-mthumb'] + c.LINKCMDS = ['src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.LPC_DMA_CHANNEL_COUNT = 8 + + +class lpc32xx_phycore(lpc32xx_shared): + name = "arm/lpc32xx_phycore" + + def build(self, c): + c.CFLAGS = ['-fno-schedule-insns2', '-mcpu=arm926ej-s', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8', '-mthumb'] + c.LINKCMDS = ['src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.LPC_DMA_CHANNEL_COUNT = 8 + + +class lpc32xx_mzx(lpc32xx_shared): + name = "arm/lpc32xx_mzx" + + def build(self, c): + c.CFLAGS = ['-fno-schedule-insns2', '-mcpu=arm926ej-s', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8', '-mthumb'] + c.LINKCMDS = ['src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.LPC_DMA_CHANNEL_COUNT = 8 + + +class nds(Base): + name = "arm/nds" + + def build(self, c): + c.CFLAGS = ['-mcpu=arm9tdmi', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8', '-mthumb-interwork'] + c.LINKCMDS = ['src/lib/libbsp/arm/nds/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + +class rtl22xx_shared(Base): + def build(self, c): + c.CFLAGS = ['-mapcs-frame', '-mcpu=arm7tdmi', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8'] + c.LINKCMDS = ['src/lib/libbsp/arm/rtl22xx/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + c.ON_SKYEYE = Default + + def header(self, c): + c.ON_SKYEYE = Default + + +class raspberrypi(Base): + name = "arm/raspberrypi" + def build(self, c): + c.CFLAGS = ['-mcpu=arm1176jzf-s'] + c.LINKCMDS = ['src/lib/libbsp/arm/raspberrypi/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4'] + + def header(self, c): + c.BSP_START_RESET_VECTOR = "" + + +class realview_pbx_a9_qemu(Base): + name = "arm/realview_pbx_a9_qemu" + + def build(self, c): + c.CFLAGS = ['-march=armv7-a', '-mthumb', '-mfpu=neon', '-mfloat-abi=hard', '-mtune=cortex-a9'] + c.LINKCMDS = ['src/lib/libbsp/arm/realview-pbx-a9/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4'] + + def header(self, c): + c.BSP_START_RESET_VECTOR = "" + c.BSP_ARM_A9MPCORE_PERIPHCLK = "100000000U" + + +class rtl22xx(rtl22xx_shared): + name = "arm/rtl22xx" + + def build(self, c): + c.CFLAGS = ['-mapcs-frame', '-mcpu=arm7tdmi', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8'] + c.LINKCMDS = ['src/lib/libbsp/arm/rtl22xx/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + +class rtl22xx_t(rtl22xx_shared): + name = "arm/rtl22xx_t" + + def build(self, c): + c.CFLAGS = ['-mapcs-frame', '-mcpu=arm7tdmi', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=8', '-mthumb', '-fno-schedule-insns2'] + c.LINKCMDS = ['src/lib/libbsp/arm/rtl22xx/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + +class smdk2410(Base): + name = "arm/smdk2410" + + def build(self, c): + c.CFLAGS = ['-DCPU_S3C2410', '-mcpu=arm920t', '-mfloat-abi=soft', '-mfpu=vfp', '-mstructure-size-boundary=32'] + c.LINKCMDS = ['src/lib/libbsp/arm/smdk2410/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.ON_SKYEYE = Default + + +class stm32f4(Base): + name = "arm/stm32f4" + + def build(self, c): + c.CFLAGS = ['-march=armv7-m', '-mthumb'] + c.LINKCMDS = ['src/lib/libbsp/arm/stm32f4/startup/linkcmds.stm32f4', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.STM32F4_HSE_OSCILLATOR = Default + c.STM32F4_SYSCLK = Default + c.STM32F4_HCLK = Default + c.STM32F4_PCLK1 = Default + c.STM32F4_PCLK2 = Default + c.STM32F4_USART_BAUD = Default + c.STM32F4_ENABLE_USART_1 = Default + c.STM32F4_ENABLE_USART_2 = Default + c.STM32F4_ENABLE_USART_3 = Default + c.STM32F4_ENABLE_UART_4 = Default + c.STM32F4_ENABLE_UART_5 = Default + c.STM32F4_ENABLE_USART_6 = Default + + +class xilinx_zynq_a9_qemu(Base): + name = "arm/xilinx_zynq_a9_qemu" + + def build(self, c): + c.CFLAGS = ['-march=armv7-a', '-mthumb', '-mfpu=neon', '-mfloat-abi=hard', '-mtune=cortex-a9'] + c.LINKCMDS = ['src/lib/libbsp/arm/xilinx-zynq/startup/linkcmds', 'src/lib/libbsp/arm/shared/startup/linkcmds.base', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv4', 'src/lib/libbsp/arm/shared/startup/linkcmds.armv7m'] + + def header(self, c): + c.BSP_START_RESET_VECTOR = "" + c.BSP_ARM_A9MPCORE_PERIPHCLK = "100000000U" diff --git a/rtems_waf/defaults/bsp/avr.py b/rtems_waf/defaults/bsp/avr.py new file mode 100644 index 0000000000..c06ed02f4f --- /dev/null +++ b/rtems_waf/defaults/bsp/avr.py @@ -0,0 +1,15 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "avr" + conflicts=("clang",) + + + +class avrtest(Base): + name = "avr/avrtest" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/avr/avrtest/startup/linkcmds'] + c.LINK_START = ['${RTEMS}/start.o', '-e', '__init'] + diff --git a/rtems_waf/defaults/bsp/bfin.py b/rtems_waf/defaults/bsp/bfin.py new file mode 100644 index 0000000000..18a4b9519c --- /dev/null +++ b/rtems_waf/defaults/bsp/bfin.py @@ -0,0 +1,48 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "bfin" + conflicts=("clang",) + + + +class bf537stamp(Base): + name = "bfin/bf537stamp" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/bfin/bf537Stamp/startup/linkcmds'] + c.LINK_START = ['${RTEMS}/start.o', '-e', '__start'] + + def header(self, c): + c.BFIN_ON_SKYEYE = Default + c.CONSOLE_USE_INTERRUPTS = Default + + + +class ezkit533(Base): + name = "bfin/ezkit533" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/bfin/eZKit533/startup/linkcmds'] + c.LINK_START = ['${RTEMS}/start.o', '-e', '__start'] + + def header(self, c): + c.BFIN_ON_SKYEYE = Default + c.CONSOLE_USE_INTERRUPTS = Default + + + +class tll6527m(Base): + name = "bfin/tll6527m" + + def build(self, c): + c.CFLAGS = ['-mcpu=bf527'] + c.LINKCMDS = ['src/lib/libbsp/bfin/TLL6527M/startup/linkcmds'] + c.LINK_START = ['${RTEMS}/start.o', '-e', '__start'] + + def header(self, c): + c.BFIN_ON_SKYEYE = Default + c.CONSOLE_BAUDRATE = 9600 + c.CONSOLE_USE_INTERRUPTS = False + c.INTERRUPT_USE_TABLE = Default + c.UART_USE_DMA = Default diff --git a/rtems_waf/defaults/bsp/h8300.py b/rtems_waf/defaults/bsp/h8300.py new file mode 100644 index 0000000000..faa147536a --- /dev/null +++ b/rtems_waf/defaults/bsp/h8300.py @@ -0,0 +1,27 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "h8300" + conflicts=("clang",) + + + +class h8sim_shared(Base): + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/h8300/h8sim/startup/linkcmds'] + c.LINK_START = ['${RTEMS}/start.o', '-e', '_start'] + +class h8sxsim(h8sim_shared): + name = "h8300/h8sxsim" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/h8300/h8sim/startup/linkcmds'] + + +class h8sim(h8sim_shared): + name = "h8300/h8sim" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/h8300/h8sim/startup/linkcmds'] + + diff --git a/rtems_waf/defaults/bsp/i386.py b/rtems_waf/defaults/bsp/i386.py new file mode 100644 index 0000000000..59ce98cee4 --- /dev/null +++ b/rtems_waf/defaults/bsp/i386.py @@ -0,0 +1,74 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "i386" + conflicts=("clang",) + + + +class pc386_shared(Base): + def build(self, c): + c.CFLAGS = ['-mtune=i386'] + c.LDFLAGS = ['-Wl,-Ttext,0x00100000'] + c.LINKCMDS = ['src/lib/libbsp/i386/pc386/startup/linkcmds'] + c.LINK_START = ['${RTEMS}/start.o', 'crti.o', 'crtbegin.o', '-e', 'start'] + c.LINK_END = ['crtend.o', 'crtn.o'] + c.ENABLE_NETWORKING = True + + def header(self, c): + c.BSP_HAS_SMP = Default + c.BSP_VIDEO_80x50 = Default + c.CLOCK_DRIVER_USE_8254 = Default + c.CLOCK_DRIVER_USE_TSC = Default + c.IDE_USE_PRIMARY_INTERFACE = Default + c.IDE_USE_SECONDARY_INTERFACE = Default + c.USE_COM1_AS_CONSOLE = Default + c.BSP_PRESS_KEY_FOR_RESET = True + + +class pc486(pc386_shared): + name = "i386/pc486" + + def build(self, c): + c.CFLAGS = ['-mtune=i486'] + c.LINKCMDS = ['src/lib/libbsp/i386/pc386/startup/linkcmds'] + + +class pc386(pc386_shared): + name = "i386/pc386" + + def build(self, c): + c.CFLAGS = ['-mtune=i386'] + c.LINKCMDS = ['src/lib/libbsp/i386/pc386/startup/linkcmds'] + + + +class pc686(pc386_shared): + name = "i386/pc686" + + def build(self, c): + c.CFLAGS = ['-mtune=pentiumpro'] + c.LINKCMDS = ['src/lib/libbsp/i386/pc386/startup/linkcmds'] + + +class pc586_sse(pc386_shared): + name = "i386/pc586-sse" + + def build(self, c): + c.CFLAGS = ['-mtune=i386'] + c.LINKCMDS = ['src/lib/libbsp/i386/pc386/startup/linkcmds'] + + +class pc586(pc386_shared): + name = "i386/pc586" + + def build(self, c): + c.CFLAGS = ['-mtune=pentium'] + c.LINKCMDS = ['src/lib/libbsp/i386/pc386/startup/linkcmds'] + + +class pcp4(pc386_shared): + name = "i386/pcp4" + + def build(self, c): + c.CFLAGS = ['-mtune=pentium4', '-march=pentium4', '-msse3'] diff --git a/rtems_waf/defaults/bsp/lm32.py b/rtems_waf/defaults/bsp/lm32.py new file mode 100644 index 0000000000..7caf519587 --- /dev/null +++ b/rtems_waf/defaults/bsp/lm32.py @@ -0,0 +1,36 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "lm32" + conflicts=("clang",) + + def build(self, c): + c.LINK_START = ['${RTEMS}/start.o', 'crti.o', 'crtbegin.o', '-e', 'start'] + c.LINK_END = ['crtend.o', 'crtn.o'] + c.LINK_LINK = ['-dc', '-dp', '-N'] + + + +class lm32_evr(Base): + name = "lm32/lm32_evr" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/lm32/lm32_evr/startup/linkcmds'] + + def header(self, c): + c.ON_SIMULATOR = Default + + + +class milkymist(Base): + name = "lm32/milkymist" + + def build(self, c): + c.CFLAGS = ['-mbarrel-shift-enabled', '-mmultiply-enabled', '-mdivide-enabled', '-msign-extend-enabled'] + c.LINKCMDS = ['src/lib/libbsp/lm32/milkymist/startup/linkcmds'] + + def header(self, c): + c.ON_SIMULATOR = Default + + + diff --git a/rtems_waf/defaults/bsp/m32c.py b/rtems_waf/defaults/bsp/m32c.py new file mode 100644 index 0000000000..aa51d7344b --- /dev/null +++ b/rtems_waf/defaults/bsp/m32c.py @@ -0,0 +1,17 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "m32c" + conflicts=("clang",) + + + +class m32csim(Base): + name = "m32c/m32csim" + + def build(self, c): + c.CFLAGS = ["-mcpu=m32cm"] + c.LINKCMDS = ['src/lib/libbsp/m32c/m32cbsp/startup/linkcmds'] + c.LINK_START = ['${RTEMS}/start.o', 'crtbegin.o', '-e', '_start'] + c.LINK_END = ['crtend.o'] + c.LINK_LINK = ['-dc', '-dp', '-N'] diff --git a/rtems_waf/defaults/bsp/m32r.py b/rtems_waf/defaults/bsp/m32r.py new file mode 100644 index 0000000000..9ad5fad991 --- /dev/null +++ b/rtems_waf/defaults/bsp/m32r.py @@ -0,0 +1,15 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "m32r" + conflicts=("clang",) + + + +class m32rsim(Base): + name = "m32r/m32rsim" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/m32r/m32rsim/startup/linkcmds'] + c.LINK_START = ['${RTEMS}/start.o', 'crtinit.o', '-e', '_start'] + diff --git a/rtems_waf/defaults/bsp/m68k.py b/rtems_waf/defaults/bsp/m68k.py new file mode 100644 index 0000000000..a6551b1647 --- /dev/null +++ b/rtems_waf/defaults/bsp/m68k.py @@ -0,0 +1,271 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "m68k" + conflicts=("clang",) + + def build(self, c): + c.LINK_START = ['${RTEMS}/start.o', 'crti.o', 'crtbegin.o', '-e', 'start'] + c.LINK_END = ['crtend.o', 'crtn.o'] + + +class av5282(Base): + name = "m68k/av5282" + + def build(self, c): + c.CFLAGS = ['-mcpu=528x'] + c.LINKCMDS = ['src/lib/libbsp/m68k/av5282/startup/linkcmds'] + +class csb360(Base): + name = "m68k/csb360" + + def build(self, c): + c.CFLAGS = ['-mcpu=5272'] + c.LINKCMDS = ['src/lib/libbsp/m68k/csb360/startup/linkcmds'] + + +class gen68302(Base): + name = "m68k/gen68302" + + def build(self, c): + c.CFLAGS = ['-mcpu=68302'] + c.LINKCMDS = ['src/lib/libbsp/m68k/gen68302/startup/linkcmds'] + + +class gen68340(Base): + name = "m68k/gen68340" + + def build(self, c): + c.CFLAGS = ['-mcpu=cpu32'] + c.LINKCMDS = ['src/lib/libbsp/m68k/gen68340/startup/linkcmds'] + + +class gen68360_shared(Base): + def build(self, c): + c.CFLAGS = ['-mcpu=cpu32'] + c.LINKCMDS = ['src/lib/libbsp/m68k/gen68360/startup/linkcmds', 'src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp', 'src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom'] + + def header(self, c): + c.GEN68360 = True + + + +class gen68360_040(gen68360_shared): + name = "m68k/gen68360_040" + + def build(self, c): + c.CFLAGS = ['-mcpu=68040'] + c.LINKCMDS = ['src/lib/libbsp/m68k/gen68360/startup/linkcmds', 'src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp', 'src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom'] + + def header(self, c): + c.GEN68360_040 = True + + + +class pgh360(gen68360_shared): + name = "m68k/pgh360" + + def build(self, c): + c.CFLAGS = ['-mcpu=cpu32'] + c.LINKCMDS = ['src/lib/libbsp/m68k/gen68360/startup/linkcmds', 'src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp', 'src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom'] + + def header(self, c): + c.PGH360 = True + + + +class gen68360(gen68360_shared): + name = "m68k/gen68360" + + def build(self, c): + c.CFLAGS = ['-mcpu=cpu32'] + c.LINKCMDS = ['src/lib/libbsp/m68k/gen68360/startup/linkcmds', 'src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp', 'src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom'] + + + +class genmcf548x_shared(Base): + + def header(self, c): + c.BSP_CONSOLE_BAUD = 9600 + c.BSP_CPU_CLOCK_SPEED = 100000000 + c.HAS_DBUG = Default + c.HAS_LOW_LEVEL_INIT = Default + + + +class cobra5475(genmcf548x_shared): + name = "m68k/cobra5475" + + def build(self, c): + c.CFLAGS = ['-mcfv4e', '-Wa,-memac'] + c.LINKCMDS = ['src/lib/libbsp/m68k/genmcf548x/startup/linkcmds.COBRA5475'] + + +class m5484fireengine(genmcf548x_shared): + name = "m68k/m5484fireengine" + + def build(self, c): + c.CFLAGS = ['-mcfv4e', '-Wa,-memac'] + c.LINKCMDS = ['src/lib/libbsp/m68k/genmcf548x/startup/linkcmds.m5484FireEngine', 'src/lib/libbsp/m68k/genmcf548x/startup/linkcmds.m5484FireEngine.flash'] + + +class idp(Base): + name = "m68k/idp" + + def build(self, c): + c.CFLAGS = ['-mcpu=68040', '-msoft-float'] + c.LINKCMDS = ['src/lib/libbsp/m68k/idp/startup/linkcmds'] + + +class mcf5206elite(Base): + name = "m68k/mcf5206elite" + + def build(self, c): + c.CFLAGS = ['-mcpu=5206e'] + c.LINKCMDS = ['src/lib/libbsp/m68k/mcf5206elite/startup/linkcmds', 'src/lib/libbsp/m68k/mcf5206elite/startup/linkcmds.flash'] + + +class mcf52235(Base): + name = "m68k/mcf52235" + + def build(self, c): + c.CFLAGS = ['-mcpu=52235'] + c.LINKCMDS = ['src/lib/libbsp/m68k/mcf52235/startup/linkcmds'] + + +class mcf5225x(Base): + name = "m68k/mcf5225x" + + def build(self, c): + c.CFLAGS = ['-mcpu=52235'] + c.LINKCMDS = ['src/lib/libbsp/m68k/mcf5225x/startup/linkcmds'] + + +class mcf5235(Base): + name = "m68k/mcf5235" + + def build(self, c): + c.CFLAGS = ['-mcpu=5235'] + c.LINKCMDS = ['src/lib/libbsp/m68k/mcf5235/startup/linkcmds', 'src/lib/libbsp/m68k/mcf5235/startup/linkcmdsflash', 'src/lib/libbsp/m68k/mcf5235/startup/linkcmdsram'] + + +class mcf5329(Base): + name = "m68k/mcf5329" + + def build(self, c): + c.CFLAGS = ['-mcpu=5307'] + c.LINKCMDS = ['src/lib/libbsp/m68k/mcf5329/startup/linkcmds', 'src/lib/libbsp/m68k/mcf5329/startup/linkcmdsflash'] + + +class mrm332(Base): + name = "m68k/mrm332" + + def build(self, c): + c.CFLAGS = ['-mcpu=cpu32'] + c.LINKCMDS = ['src/lib/libbsp/m68k/mrm332/startup/linkcmds', 'src/lib/libbsp/m68k/mrm332/startup/linkcmds_ROM'] + + +class mvme136(Base): + name = "m68k/mvme136" + + def build(self, c): + c.CFLAGS = ['-mcpu=68020'] + c.LINKCMDS = ['src/lib/libbsp/m68k/mvme136/startup/linkcmds'] + + +class mvme147(Base): + name = "m68k/mvme147" + + def build(self, c): + c.CFLAGS = ['-mcpu=68030'] + c.LINKCMDS = ['src/lib/libbsp/m68k/mvme147/startup/linkcmds'] + + +class mvme147s(Base): + name = "m68k/mvme147s" + + def build(self, c): + c.CFLAGS = ['-mcpu=68030'] + c.LINKCMDS = ['src/lib/libbsp/m68k/mvme147s/startup/linkcmds'] + + +class mvme162_shared(Base): + def build(self, c): + c.CFLAGS = ['-mcpu=68040'] + c.LINKCMDS = ['src/lib/libbsp/m68k/mvme162/startup/linkcmds'] + + +class mvme162lx(mvme162_shared): + name = "m68k/mvme162lx" + + def build(self, c): + c.CFLAGS = ['-mcpu=68040'] + c.LINKCMDS = ['src/lib/libbsp/m68k/mvme162/startup/linkcmds'] + + +class mvme162(mvme162_shared): + name = "m68k/mvme162" + + def build(self, c): + c.CFLAGS = ['-mcpu=68040'] + c.LINKCMDS = ['src/lib/libbsp/m68k/mvme162/startup/linkcmds'] + + +class mvme167(Base): + name = "m68k/mvme167" + + def build(self, c): + c.CFLAGS = ['-mcpu=68040'] + c.LINKCMDS = ['src/lib/libbsp/m68k/mvme167/startup/linkcmds'] + + def header(self, c): + c.mvme167 = True + c.CD2401_INT_LEVEL = Default + c.CD2401_IO_MODE = Default + c.CD2401_USE_TERMIOS = Default + c.CONSOLE_MINOR = Default + c.PRINTK_MINOR = Default + + +class ods68302(Base): + name = "m68k/ods68302" + + def build(self, c): + c.CFLAGS = ['-mcpu=68302'] + c.LINKCMDS = ['src/lib/libbsp/m68k/ods68302/startup/linkcmds'] + c.LINK_START = ['${RTEMS}/reset.o', 'crti.o', 'crtbegin.o', '-e', 'start'] + + +class sim68000_shared(Base): + def build(self, c): + c.CFLAGS = ['-mcpu=68000'] + c.LINKCMDS = ['src/lib/libbsp/m68k/sim68000/startup/linkcmds'] + + def header(self, c): + c.CONSOLE_USE_INTERRUPTS = Default + + + +class sim68000(sim68000_shared): + name = "m68k/sim68000" + + def build(self, c): + c.CFLAGS = ['-mcpu=68000'] + c.LINKCMDS = ['src/lib/libbsp/m68k/sim68000/startup/linkcmds'] + + + +class simcpu32(sim68000_shared): + name = "m68k/simcpu32" + + def build(self, c): + c.CFLAGS = ['-mcpu=cpu32'] + c.LINKCMDS = ['src/lib/libbsp/m68k/sim68000/startup/linkcmds'] + + +class uc5282(Base): + name = "m68k/uc5282" + + def build(self, c): + c.CFLAGS = ['-mcpu=5282'] + c.LINKCMDS = ['src/lib/libbsp/m68k/uC5282/startup/linkcmds'] diff --git a/rtems_waf/defaults/bsp/mips.py b/rtems_waf/defaults/bsp/mips.py new file mode 100644 index 0000000000..d3f7e7f051 --- /dev/null +++ b/rtems_waf/defaults/bsp/mips.py @@ -0,0 +1,80 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "mips" + conflicts=("clang",) + + def build(self, c): + c.LINK_START = ['${RTEMS}/start.o', 'crti.o', 'crtbegin.o', '-e', 'start'] + c.LINK_END = ['crtend.o', 'crtn.o'] + + +class csb350(Base): + name = "mips/csb350" + + def build(self, c): + c.CFLAGS = ['-mips32', '-G0', '-msoft-float'] + c.LDFLAGS = ['-msoft-float'] + c.LINKCMDS = ['src/lib/libbsp/mips/csb350/startup/linkcmds'] + c.LINK_START = ['${RTEMS}/start.o', 'crti.o', 'crtbegin.o', '-e', '_start'] + + +class genmongoosev(Base): + name = "mips/genmongoosev" + + def build(self, c): + c.CFLAGS = ['-mips1', '-G0'] + c.LINKCMDS = ['src/lib/libbsp/mips/genmongoosev/startup/linkcmds'] + + +class hurricane(Base): + name = "mips/hurricane" + + def build(self, c): + c.CFLAGS = ['-mips3', '-G0', '-EL'] + c.LINKCMDS = ['src/lib/libbsp/mips/hurricane/startup/linkcmds'] + c.LINK_LINK = ['-EL'] # work around gcc driver bug + + def header(self, c): + c.BSP_HAS_RM52xx = Default + c.BSP_HAS_USC320 = Default + + + +class jmr3904(Base): + name = "mips/jmr3904" + + def build(self, c): + c.CFLAGS = ['-march=r3900', '-Wa,-xgot', '-G0'] + c.LINKCMDS = ['src/lib/libbsp/mips/jmr3904/startup/linkcmds'] + + + +class malta(Base): + name = "mips/malta" + + def build(self, c): + c.CFLAGS = ['-march=24kf1_1', '-Wa,-xgot', '-G0'] + c.LINKCMDS = ['src/lib/libbsp/mips/malta/startup/linkcmds'] + + +class rbtx4925(Base): + name = "mips/rbtx4925" + + def build(self, c): + c.CFLAGS = ['-mips3', '-G0', '-EL'] + c.LINKCMDS = ['src/lib/libbsp/mips/rbtx4925/startup/linkcmds'] + c.LINK_LINK = ['-EL'] # work around gcc driver bug + + def header(self, c): + c.BSP_HAS_TX49xx = Default + + + +class rbtx4938(Base): + name = "mips/rbtx4938" + + def build(self, c): + c.CFLAGS = ['-mips3', '-G0', '-EL'] + c.LINKCMDS = ['src/lib/libbsp/mips/rbtx4938/startup/linkcmds'] + c.LINK_LINK = ['-EL'] # work around gcc driver bug diff --git a/rtems_waf/defaults/bsp/moxie.py b/rtems_waf/defaults/bsp/moxie.py new file mode 100644 index 0000000000..9516b344fe --- /dev/null +++ b/rtems_waf/defaults/bsp/moxie.py @@ -0,0 +1,17 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "moxie" + conflicts=("clang",) + + def build(self, c): + c.LINK_START = ['${RTEMS}/start.o', '-e', '_start'] + + +class moxiesim(Base): + name = "moxie/moxiesim" + + def build(self, c): + c.LDFLAGS = ['-Wl,--gc-sections'] + c.LINKCMDS = ['src/lib/libbsp/moxie/moxiesim/startup/linkcmds'] + diff --git a/rtems_waf/defaults/bsp/nios2.py b/rtems_waf/defaults/bsp/nios2.py new file mode 100644 index 0000000000..1bc451e878 --- /dev/null +++ b/rtems_waf/defaults/bsp/nios2.py @@ -0,0 +1,16 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "nios2" + conflicts=("clang",) + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/nios2/nios2_iss/startup/linkcmds'] + c.LINK_START = ['${RTEMS}/start.o', 'crti.o', 'crtbegin.o', '-e', 'start'] + c.LINK_END = ['crtend.o', '${RTEMS}/crtnn.o'] + +class nios2_iss(Base): + name = "nios2/nios2_iss" + + def build(self, c): + c.CFLAGS = ["-mno-hw-mul", "-mno-hw-div"] diff --git a/rtems_waf/defaults/bsp/powerpc.py b/rtems_waf/defaults/bsp/powerpc.py new file mode 100644 index 0000000000..00c4b287a9 --- /dev/null +++ b/rtems_waf/defaults/bsp/powerpc.py @@ -0,0 +1,914 @@ +from rtems_waf.config import Default, Config, Disable + +class Base(Config): + arch = name = "powerpc" + conflicts=("clang",) + + + +class beatnik(Base): + name = "powerpc/beatnik" + + def build(self, c): + c.CFLAGS = ['-mcpu=7400', '-D__ppc_generic'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/shared/startup/linkcmds'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o', '-e', '__rtems_entry_point', '-u', '__vectors', '${RTEMS}/vectors_entry.o', '${RTEMS}/preload.o', '${RTEMS}/start.o'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + c.LINK_LINK = ['-Bstatic'] + + def header(self, c): + c.CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK = Default + + + +class ep1a(Base): + name = "powerpc/ep1a" + + def build(self, c): + c.CFLAGS = ['-mcpu=603e', '-Dppc603e', '-mmultiple', '-mstring', '-mstrict-align'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/ep1a/startup/linkcmds'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o', '${RTEMS}/start.o', '-e', '__rtems_entry_point', '-u', '__vectors'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + c.LINK_LINK = ['-Bstatic'] + + def header(self, c): + c.CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK = Default + c.CONSOLE_USE_INTERRUPTS = Default + + +class gen5200_shared(Base): + def header(self, c): + c.ALLOW_IRQ_NESTING = True + c.BENCHMARK_IRQ_PROCESSING = False + c.BSP_GPIOPCR_INITMASK = Default + c.BSP_GPIOPCR_INITVAL = Default + c.BSP_PRESS_KEY_FOR_RESET = Default + c.BSP_RESET_BOARD_AT_EXIT = Default + c.BSP_UART_AVAIL_MASK = Default + c.PRINTK_MINOR = "0" + c.SINGLE_CHAR_MODE = Default + c.UARTS_USE_TERMIOS_INT = Default + + def build(self, c): + c.CFLAGS = ['-mcpu=603e', '-mstrict-align', '-meabi', '-msdata', '-fno-common'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o', '${RTEMS}/start.o'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + + +class icecube(gen5200_shared): + name = "powerpc/icecube" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/gen5200/startup/linkcmds.icecube', + 'src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base'] + + def header(self, c): + c.ALLOW_IRQ_NESTING = False + c.BSP_PRESS_KEY_FOR_RESET = True + c.BSP_RESET_BOARD_AT_EXIT = True + c.HAS_UBOOT = True + c.MPC5200_BOARD_ICECUBE = True + + +class dp2(gen5200_shared): + name = "powerpc/dp2" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/gen5200/startup/linkcmds.dp2', 'src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base'] + + def header(self, c): + c.BSP_GPIOPCR_INITMASK = "0x337F3F77" + c.BSP_GPIOPCR_INITVAL = "0x03550040" + c.BSP_TYPE_DP2 = True + c.BSP_UART_AVAIL_MASK = "0x22" + c.HAS_UBOOT = True + c.MPC5200_BOARD_DP2 = True + c.MPC5200_PSC_INDEX_FOR_GPS_MODULE = 5 + c.PRINTK_MINOR = "1" + + +class pm520_ze30(gen5200_shared): + name = "powerpc/pm520_ze30" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/gen5200/startup/linkcmds.pm520_ze30', 'src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base'] + + def header(self, c): + c.BSP_GPIOPCR_INITMASK = "0x037F3F07" + c.BSP_GPIOPCR_INITVAL = "0x01552104" + c.BSP_UART_AVAIL_MASK = "0x39" + c.HAS_UBOOT = True + c.MPC5200_BOARD_PM520_ZE30 = True + + +class pm520_cr825(gen5200_shared): + name = "powerpc/pm520_cr825" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/gen5200/startup/linkcmds.pm520_cr825', 'src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base'] + + def header(self, c): + c.BSP_RESET_BOARD_AT_EXIT = True + c.BSP_UART_AVAIL_MASK = "0x07" + c.HAS_UBOOT = True + c.MPC5200_BOARD_PM520_CR825 = True + + + +class brs5l(gen5200_shared): + name = "powerpc/brs5l" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/gen5200/startup/linkcmds.brs5l', 'src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base'] + + def header(self, c): + c.MPC5200_BOARD_BRS5L = True + c.BSP_GPIOPCR_INITMASK = "0xb30F0F77" + c.BSP_GPIOPCR_INITVAL = "0x91050444" + c.BSP_RESET_BOARD_AT_EXIT = True + c.BSP_UART_AVAIL_MASK = "0x07" + + +class brs6l(gen5200_shared): + name = "powerpc/brs6l" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/gen5200/startup/linkcmds.brs6l', 'src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base'] + + def header(self, c): + c.MPC5200_BOARD_BRS6L = True + + +class gen83xx_shared(Base): + def header(self, c): + c.BSP_CONSOLE_BAUD = 9600 + c.GEN83XX_ENABLE_INTERRUPT_NESTING = Default + + def build(self, c): + c.CFLAGS = ['-mcpu=603e', '-meabi', '-msdata', '-fno-common', '-mstrict-align'] + # XXX: These extra linkcmds need to move below. + c.LINKCMDS = ['src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.hsc_cm01', + 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base', + 'src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc83xx', + 'src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8349eamds', + 'src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8313erdb'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o', '${RTEMS}/start.o'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + c.LINK_LINK = ['-u', '__vectors'] + + + +class br_uid(gen83xx_shared): + name = "powerpc/br_uid" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.br_uid', 'src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc83xx', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base'] + + def header(self, c): + c.MPC83XX_BOARD_BR_UID = True + c.MPC83XX_NETWORK_INTERFACE_0_PHY_ADDR = "-1" + c.MPC83XX_CHIP_TYPE = 8309 + c.MPC83XX_HAS_NAND_LP_FLASH_ON_CS0 = True + + +class mpc8349eamds(gen83xx_shared): + name = "powerpc/mpc8349eamds" + + def header(self, c): + c.BSP_USE_UART2 = True + c.HAS_UBOOT = True + c.MPC8349 = True + c.MPC8349EAMDS = True + + + +class mpc8313erdb(gen83xx_shared): + name = "powerpc/mpc8313erdb" + + def header(self, c): + c.BSP_CONSOLE_BAUD = 115200 + c.BSP_USE_UART2 = True + c.BSP_USE_UART_INTERRUPTS = Default + c.HAS_UBOOT = True + c.MPC8313ERDB = True + c.MPC8349 = True + + + +class hsc_cm01(gen83xx_shared): + name = "powerpc/hsc_cm01" + + def header(self, c): + c.BSP_USE_UART2 = True + c.HSC_CM01 = True + c.MPC8349 = True + c.MPC83XX_BOARD_HSC_CM01 = Default + + +class mpc8309som(gen83xx_shared): + name = "powerpc/mpc8309som" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8309som', 'src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc83xx', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base'] + + def header(self, c): + c.MPC83XX_BOARD_MPC8309SOM = True + c.MPC83XX_NETWORK_INTERFACE_0_PHY_ADDR = "0x11" + c.MPC83XX_CHIP_TYPE = 8309 + c.HAS_UBOOT = True + + + +class haleakala(Base): + name = "powerpc/haleakala" + + def build(self, c): + c.CFLAGS = ['-mcpu=405', '-Dppc405'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/haleakala/startup/linkcmds'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + c.LINK_LINK = ['-u', '__vectors', '-u', 'download_entry'] + + def header(self, c): + c.PPC_USE_SPRG = Default + c.PPC_VECTOR_FILE_BASE = Default + + +class mbx8xx_shared(Base): + def header(self, c): + c.CONSOLE_MINOR = "SMC2_MINOR" + c.DISPATCH_HANDLER_STAT = True + c.EPPCBUG_SMC1 = Default + c.EPPCBUG_VECTORS = Default + c.NVRAM_CONFIGURE = Default + c.PRINTK_IO_MODE = Default + c.PRINTK_MINOR = "SMC2_MINOR" + c.UARTS_IO_MODE = Default + c.UARTS_USE_TERMIOS = Default + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/mbx8xx/startup/linkcmds'] + c.LINK_START = ['ecrti.o', '-e', 'start'] + c.LINK_END = ['ecrtn.o'] + c.LINK_LINK = ['-u', '__vectors'] + + +class mbx860_005b(mbx8xx_shared): + name = "powerpc/mbx860_005b" + + def build(self, c): + c.CFLAGS = ['-mcpu=860', '-Dmpc860', '-Dmbx860_005b', '-meabi', '-msdata', '-fno-common'] + + def header(self, c): + c.CONSOLE_MINOR = "SMC1_MINOR" + c.EPPCBUG_SMC1 = Default + c.EPPCBUG_VECTORS = Default + c.NVRAM_CONFIGURE = False + c.PRINTK_MINOR = "SMC1_MINOR" + c.UARTS_USE_TERMIOS = True + + + +class mbx821_002(mbx8xx_shared): + name = "powerpc/mbx821_002" + + def build(self, c): + c.CFLAGS = ['-mcpu=821', '-Dmpc821', '-Dmbx821_002', '-meabi', '-msdata', '-fno-common'] + + +class mbx821_001(mbx8xx_shared): + name = "powerpc/mbx821_001" + + def build(self, c): + c.CFLAGS = ['-mcpu=821', '-Dmpc821', '-Dmbx821_001', '-meabi', '-msdata', '-fno-common'] + + +class mbx860_1b(mbx8xx_shared): + name = "powerpc/mbx860_1b" + + def build(self, c): + c.CFLAGS = ['-mcpu=860', '-Dmpc860', '-Dmbx860_001b', '-meabi', '-msdata', '-fno-common'] + + +class mbx860_002(mbx8xx_shared): + name = "powerpc/mbx860_002" + + def build(self, c): + c.CFLAGS = ['-mcpu=860', '-Dmpc860', '-Dmbx860_002', '-meabi', '-msdata', '-fno-common'] + + +class mbx821_002b(mbx8xx_shared): + name = "powerpc/mbx821_002b" + + def build(self, c): + c.CFLAGS = ['-mcpu=821', '-Dmpc821', '-Dmbx821_002b', '-meabi', '-msdata', '-fno-common'] + + +class mbx860_001b(mbx8xx_shared): + name = "powerpc/mbx860_001b" + + def build(self, c): + c.CFLAGS = ['-mcpu=860', '-Dmpc860', '-Dmbx860_001b', '-meabi', '-msdata', '-fno-common'] + + +class motorola_powerpc_shared(Base): + def header(self, c): + c.CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK = Default + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/shared/startup/linkcmds'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o', '${RTEMS}/vectors_entry.o', '${RTEMS}/start.o', '-e', '__rtems_entry_point', '-u', '__vectors'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + c.LINK_LINK = ['-Bstatic'] + + +class mvme2307(motorola_powerpc_shared): + name = "powerpc/mvme2307" + + def build(self, c): + c.CFLAGS = ['-mcpu=604', '-mmultiple', '-mstring', '-mstrict-align', '-meabi'] + + def header(self, c): + c.mpc8240 = True + +class mvme2100(motorola_powerpc_shared): + name = "powerpc/mvme2100" + + def build(self, c): + c.CFLAGS = ['-mcpu=603e', '-Dppc603e'] + + def header(self, c): + c.mvme2100 = True + + + +class mtx603e(motorola_powerpc_shared): + name = "powerpc/mtx603e" + + def build(self, c): + c.CFLAGS = ['-mcpu=603e', '-Dppc603e'] + + +class mcp750(motorola_powerpc_shared): + name = "powerpc/mcp750" + + def build(self, c): + c.CFLAGS = ['-mcpu=750', '-Dmpc750'] + + +class qemuprep(motorola_powerpc_shared): + name = "powerpc/qemuprep" + + def build(self, c): + c.CFLAGS = ['-mcpu=powerpc', '-mmultiple', '-mstring', '-mstrict-align', '-D__ppc_generic'] + + def header(self, c): + c.qemu = True + + +class qemuprep_altivec(motorola_powerpc_shared): + name = "powerpc/qemuprep-altivec" + + def build(self, c): + c.CFLAGS = ['-mcpu=7400', '-mmultiple', '-mstring', '-mstrict-align', '-D__ppc_generic'] + + def header(self, c): + c.qemu = True + + +class mpc55xxevb_shared(Base): + def header(self, c): + c.MPC55XX_BOOTFLAGS = Default + c.MPC55XX_CHIP_TYPE = 5554 + c.MPC55XX_CHIP_FAMILY = Default + c.MPC55XX_CLOCK_EMIOS_CHANNEL = "(MPC55XX_EMIOS_CHANNEL_NUMBER-1)" + c.MPC55XX_EMIOS_PRESCALER = Default + c.MPC55XX_ESCI_CONSOLE_MINOR = Default + c.MPC55XX_ESCI_USE_INTERRUPTS = Default + c.MPC55XX_FMPLL_CLK_OUT = 128000000 + c.MPC55XX_FMPLL_MFD = 12 + c.MPC55XX_FMPLL_PREDIV = Default + c.MPC55XX_FMPLL_REF_CLOCK = 8000000 + c.SMSC9218I_EDMA_RX_CHANNEL = Default + c.SMSC9218I_EDMA_TX_CHANNEL = Default + c.SMSC9218I_BIG_ENDIAN_SUPPORT = Default + c.SMSC9218I_ENABLE_LED_OUTPUTS = Default + c.SMSC9218I_RESET_PIN = Default + c.SMSC9218I_IRQ_PIN = Default + c.MPC55XX_SYSTEM_CLOCK_DIVIDER = Default + c.MPC55XX_FMPLL_ESYNCR1_CLKCFG = Default + c.MPC55XX_CONSOLE_MINOR = Default + c.BSP_DEFAULT_BAUD_RATE = Default + c.MPC55XX_EARLY_STACK_SIZE = Default + c.MPC55XX_REFERENCE_CLOCK = Default + + def build(self, c): + c.CFLAGS = ['-mcpu=8540', '-meabi', '-msdata', '-fno-common', '-msoft-float', '-D__ppc_generic', '-mstrict-align'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o', '${RTEMS}/start.o'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + + +class gwlcfm(mpc55xxevb_shared): + name = "powerpc/gwlcfm" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.gwlcfm', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc55xx', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base'] + + def header(self, c): + c.MPC55XX_BOARD_GWLCFM = True + c.MPC55XX_CHIP_TYPE = 5516 + c.MPC55XX_EMIOS_PRESCALER = 66 + c.MPC55XX_FMPLL_CLK_OUT = 66000000 + c.MPC55XX_FMPLL_MFD = 99 + c.MPC55XX_FMPLL_PREDIV = 10 + c.MPC55XX_FMPLL_REF_CLOCK = 40000000 + c.RTEMS_BSP_I2C_EEPROM_DEVICE_NAME = "'\"eeprom\"'" + c.RTEMS_BSP_I2C_EEPROM_DEVICE_PATH = "'\"/dev/i2c1.eeprom\"'" + c.MPC55XX_REFERENCE_CLOCK = 40000000 + c.MPC55XX_SYSTEM_CLOCK = 66000000 + + +class mpc5566evb(mpc55xxevb_shared): + name = "powerpc/mpc5566evb" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc55xx'] + + def header(self, c): + c.MPC55XX_BOARD_MPC5566EVB = True + c.MPC55XX_CHIP_TYPE = 5566 + c.MPC55XX_REFERENCE_CLOCK = 40000000 + c.MPC55XX_SYSTEM_CLOCK = Default + c.MPC55XX_REFERENCE_CLOCK = 40000000 + +class mpc5566evb_spe(mpc55xxevb_shared): + name = "powerpc/mpc5566evb_spe" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb_spe', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc55xx'] + + def header(self, c): + c.BSP_INTERRUPT_HANDLER_TABLE_SIZE = 127 + c.MPC55XX_NULL_POINTER_PROTECTION = True + c.MPC55XX_CHIP_TYPE = 5566 + c.MPC55XX_BOARD_MPC5566EVB = True + c.MPC55XX_REFERENCE_CLOCK = 40000000 + + +class mpc5643l_dpu(mpc55xxevb_shared): + name = "powerpc/mpc5643l_dpu" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5643l_dpu', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5643l_evb', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc55xx'] + + def header(self, c): + c.BSP_INTERRUPT_HANDLER_TABLE_SIZE = 127 + c.MPC55XX_REFERENCE_CLOCK = 40000000 + c.MPC55XX_EMIOS_PRESCALER = Disable + c.MPC55XX_CLOCK_EMIOS_CHANNEL = Disable + c.MPC55XX_CLOCK_PIT_CHANNEL = 3 + c.MPC55XX_CHIP_TYPE = 5643 + c.BSP_DATA_CACHE_ENABLED = False + +class mpc5643l_evb(mpc55xxevb_shared): + name = "powerpc/mpc5643l_evb" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5643l_evb', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc55xx'] + + def header(self, c): + c.BSP_INTERRUPT_HANDLER_TABLE_SIZE = 127 + c.MPC55XX_REFERENCE_CLOCK = 40000000 + c.MPC55XX_EMIOS_PRESCALER = Disable + c.MPC55XX_CLOCK_EMIOS_CHANNEL = Disable + c.MPC55XX_CLOCK_PIT_CHANNEL = 3 + c.MPC55XX_CHIP_TYPE = 5643 + c.BSP_DATA_CACHE_ENABLED = False + + +class mpc5674f_ecu508_app(mpc55xxevb_shared): + name = "powerpc/mpc5674f_ecu508_app" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_ecu508_app', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_ecu508', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc55xx'] + + def header(self, c): + c.BSP_INTERRUPT_HANDLER_TABLE_SIZE = 255 + c.MPC55XX_CHIP_TYPE = 5674 + c.MPC55XX_CLOCK_EMIOS_CHANNEL = "31" + c.MPC55XX_FMPLL_MFD = 66 + c.MPC55XX_FMPLL_PREDIV = 5 + c.MPC55XX_NULL_POINTER_PROTECTION = True + c.MPC55XX_REFERENCE_CLOCK = 40000000 + c.MPC55XX_SYSTEM_CLOCK = 264000000 + c.MPC55XX_SYSTEM_CLOCK_DIVIDER = 2 + c.MPC55XX_NEEDS_LOW_LEVEL_INIT = Default + c.BSP_DATA_CACHE_USE_WRITE_THROUGH = True + c.MPC55XX_BOARD_MPC5674F_ECU508 = True + c.MPC55XX_CONSOLE_MINOR = 2 + c.SMSC9218I_BIG_ENDIAN_SUPPORT = True + c.SMSC9218I_ENABLE_LED_OUTPUTS = True + c.SMSC9218I_IRQ_PIN = 450 + c.SMSC9218I_RESET_PIN = 433 + + +class mpc5674f_ecu508_boot(mpc55xxevb_shared): + name = "powerpc/mpc5674f_ecu508_boot" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_ecu508_boot', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_ecu508', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc55xx'] + + def header(self, c): + c.BSP_INTERRUPT_HANDLER_TABLE_SIZE = 255 + c.MPC55XX_CHIP_TYPE = 5674 + c.MPC55XX_CLOCK_EMIOS_CHANNEL = "31" + c.MPC55XX_FMPLL_MFD = 66 + c.MPC55XX_FMPLL_PREDIV = 5 + c.MPC55XX_NULL_POINTER_PROTECTION = True + c.MPC55XX_REFERENCE_CLOCK = 40000000 + c.MPC55XX_SYSTEM_CLOCK = 264000000 + c.MPC55XX_SYSTEM_CLOCK_DIVIDER = 2 + c.BSP_DATA_CACHE_USE_WRITE_THROUGH = True + c.MPC55XX_BOARD_MPC5674F_ECU508 = True + c.MPC55XX_CONSOLE_MINOR = 2 + c.SMSC9218I_BIG_ENDIAN_SUPPORT = True + c.SMSC9218I_ENABLE_LED_OUTPUTS = True + c.SMSC9218I_IRQ_PIN = 450 + c.SMSC9218I_RESET_PIN = 433 + + + +class mpc5674f_rsm6(mpc55xxevb_shared): + name = "powerpc/mpc5674f_rsm6" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_rsm6', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_rsm6_base', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc55xx'] + + def header(self, c): + c.BSP_INTERRUPT_HANDLER_TABLE_SIZE = 255 + c.MPC55XX_CHIP_TYPE = 5674 + c.MPC55XX_CLOCK_EMIOS_CHANNEL = "31" + c.MPC55XX_FMPLL_MFD = 66 + c.MPC55XX_FMPLL_PREDIV = 5 + c.MPC55XX_NULL_POINTER_PROTECTION = True + c.MPC55XX_REFERENCE_CLOCK = 40000000 + c.MPC55XX_SYSTEM_CLOCK = 264000000 + c.MPC55XX_SYSTEM_CLOCK_DIVIDER = 2 + c.MPC55XX_BOARD_MPC5674F_RSM6 = True + c.MPC55XX_ENABLE_START_PROLOGUE = True + c.MPC55XX_FMPLL_ESYNCR1_CLKCFG = 6 + + + +class mpc5674fevb(mpc55xxevb_shared): + name = "powerpc/mpc5674fevb" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc55xx'] + + def header(self, c): + c.BSP_INTERRUPT_HANDLER_TABLE_SIZE = 255 + c.MPC55XX_CHIP_TYPE = 5674 + c.MPC55XX_CLOCK_EMIOS_CHANNEL = "31" + c.MPC55XX_FMPLL_MFD = 66 + c.MPC55XX_FMPLL_PREDIV = 5 + c.MPC55XX_NULL_POINTER_PROTECTION = True + c.MPC55XX_REFERENCE_CLOCK = 40000000 + c.MPC55XX_SYSTEM_CLOCK = 264000000 + c.MPC55XX_SYSTEM_CLOCK_DIVIDER = 2 + c.MPC55XX_BOARD_MPC5674FEVB = True + + +class mpc5674fevb_spe(mpc55xxevb_shared): + name = "powerpc/mpc5674fevb_spe" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb_spe', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc55xx'] + + def header(self, c): + c.BSP_INTERRUPT_HANDLER_TABLE_SIZE = 255 + c.MPC55XX_CHIP_TYPE = 5674 + c.MPC55XX_CLOCK_EMIOS_CHANNEL = "31" + c.MPC55XX_FMPLL_MFD = 66 + c.MPC55XX_FMPLL_PREDIV = 5 + c.MPC55XX_NULL_POINTER_PROTECTION = True + c.MPC55XX_REFERENCE_CLOCK = 40000000 + c.MPC55XX_SYSTEM_CLOCK = 264000000 + c.MPC55XX_SYSTEM_CLOCK_DIVIDER = 2 + c.MPC55XX_BOARD_MPC5674FEVB = True + + + +class phycore_mpc5554(mpc55xxevb_shared): + name = "powerpc/phycore_mpc5554" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.phycore_mpc5554', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base', 'src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc55xx'] + + def header(self, c): + c.HAS_SMC91111 = True + c.SMC91111_ENADDR_IS_SETUP = True + c.MPC55XX_BOARD_PHYCORE_MPC5554 = True + + + +class mpc8260ads(Base): + name = "powerpc/mpc8260ads" + + def build(self, c): + c.CFLAGS = ['-mcpu=603e', '-mstrict-align', '-Dmpc8260', '-meabi', '-msdata', '-fno-common'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/mpc8260ads/startup/linkcmds'] + c.LINK_START = ['ecrti.o', '${RTEMS}/start.o', '-e', 'start', '-u', '__vectors'] + c.LINK_END = ['ecrtn.o'] + + def header(self, c): + c.CONSOLE_MINOR = "SCC2_MINOR" + c.DISPATCH_HANDLER_STAT = True + c.PRINTK_MINOR = "SMC2_MINOR" + c.UARTS_IO_MODE = Default + c.UARTS_USE_TERMIOS = Default + + + +class mvme3100(Base): + name = "powerpc/mvme3100" + + def build(self, c): + c.CFLAGS = ['-mcpu=powerpc', '-msoft-float', '-D__ppc_generic'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/shared/startup/linkcmds'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o', + '-e', '__rtems_entry_point', '-u', '__vectors', + '${RTEMS}/preload.o', '${RTEMS}/vectors_entry.o', '${RTEMS}/start.o'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + c.LINK_LINK = ['-Bstatic'] + + def header(self, c): + c.CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK = Default + + + +class mvme5500(Base): + name = "powerpc/mvme5500" + + def build(self, c): + c.CFLAGS = ['-mcpu=7450', '-mtune=7450', '-Dmpc7455'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/shared/startup/linkcmds'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o', + '-e', '__rtems_entry_point', '-u', '__vectors', + '${RTEMS}/preload.o', '${RTEMS}/start.o'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + c.LINK_LINK = ['-Bstatic'] + c.ENABLE_NETWORKING = False # broken VPD.h header + + def header(self, c): + c.CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK = Default + + + +class psim(Base): + name = "powerpc/psim" + + def build(self, c): + c.CFLAGS = ['-mcpu=603e', '-Dppc603e'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/psim/startup/linkcmds', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o', + '${RTEMS}/start.o', '-e', '_start', '-u', '__vectors'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + c.LINK_LINK = ['-Bstatic'] + + def header(self, c): + c.CLOCK_DRIVER_USE_FAST_IDLE = True + c.CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK = Default + c.PPC_USE_SPRG = False + c.PPC_VECTOR_FILE_BASE = "0xFFF00100" + + + +class qemuppc(Base): + name = "powerpc/qemuppc" + + def build(self, c): + c.CFLAGS = ['-mcpu=603e', '-Dppc603e'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/qemuppc/startup/linkcmds'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o', + '${RTEMS}/start.o', '-e', '_start', '-u', '__vectors'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + c.LINK_LINK = ['-Bstatic'] + + + +class qoriq_shared(Base): + name = "powerpc/qoriq" + + def build(self, c): + c.CFLAGS = ['-mcpu=8540', '-meabi', '-msdata', '-fno-common', '-mstrict-align', '-mspe', '-mabi=spe', '-mfloat-gprs=double', '-D__ppc_generic'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o', '${RTEMS}/start.o'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + c.LINK_LINK = ['-u', '__vectors'] + + def header(self, c): + c.BSP_CONSOLE_BAUD = 115200 + c.BSP_DISABLE_UBOOT_WORK_AREA_CONFIG = Default + c.BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN = Default + c.BSP_USE_UART_INTERRUPTS = Default + c.HAS_UBOOT = True + c.QORIQ_CLOCK_TIMER = Default + c.QORIQ_ETSEC_1_PHY_ADDR = -1 + c.QORIQ_ETSEC_2_PHY_ADDR = Default + c.QORIQ_ETSEC_3_PHY_ADDR = Default + c.QORIQ_INITIAL_MSR = Default + c.QORIQ_INITIAL_SPEFSCR = Default + c.QORIQ_INTERCOM_AREA_BEGIN = Default + c.QORIQ_INTERCOM_AREA_SIZE = Default + c.QORIQ_UART_0_ENABLE = Default + c.QORIQ_UART_1_ENABLE = Default + c.QORIQ_UART_BRIDGE_0_ENABLE = Default + c.QORIQ_UART_BRIDGE_1_ENABLE = Default + c.QORIQ_UART_BRIDGE_MASTER_CORE = Default + c.QORIQ_UART_BRIDGE_SLAVE_CORE = Default + c.QORIQ_UART_BRIDGE_TASK_PRIORITY = 250 + + +class qoriq_core_0(qoriq_shared): + name = "powerpc/qoriq_core_0" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_core_0', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base'] + + def header(self, c): + c.QORIQ_UART_0_ENABLE = True + c.QORIQ_UART_1_ENABLE = True + c.QORIQ_UART_BRIDGE_1_ENABLE = Default + + +class qoriq_core_1(qoriq_shared): + name = "powerpc/qoriq_core_1" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_core_1', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base'] + + def header(self, c): + c.QORIQ_UART_BRIDGE_1_ENABLE = True + c.QORIQ_CLOCK_TIMER = 4 + + +class qoriq_p1020rdb(qoriq_shared): + name = "powerpc/qoriq_p1020rdb" + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_p1020rdb', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base'] + + def header(self, c): + c.QORIQ_UART_0_ENABLE = True + c.QORIQ_UART_1_ENABLE = True + + +class score603e(Base): + name = "powerpc/score603e" + + def build(self, c): + c.CFLAGS = ['-mcpu=603e', '-Dppc603e'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/score603e/startup/linkcmds'] + c.LINK_START = ['ecrti.o', '${RTEMS}/start.o', '-e', '_start', '-u', '__vectors'] + c.LINK_END = ['ecrtn.o'] + c.LINK_LINK = ['-Bstatic'] + + def header(self, c): + c.CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK = Default + c.CONSOLE_USE_INTERRUPTS = Default + c.HAS_PMC_PSC8 = True + c.INITIALIZE_COM_PORTS = False + c.PPC_USE_SPRG = False + c.PPC_VECTOR_FILE_BASE = Default + c.SCORE603E_OPEN_FIRMWARE = Default + c.SCORE603E_USE_DINK = True + c.SCORE603E_USE_NONE = Default + c.SCORE603E_USE_SDS = Default + + + +class ss555(Base): + name = "powerpc/ss555" + + def build(self, c): + c.CFLAGS = ['-mcpu=505', '-Dmpc555'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/ss555/startup/linkcmds'] + c.LINK_START = ['ecrti.o', '-u', '__vectors', '-N', '-u', 'start', '-e', 'start'] + c.LINK_END = ['ecrtn.o'] + + def header(self, c): + c.CONSOLE_MINOR = "SCI2_MINOR" + c.PRINTK_MINOR = "SCI2_MINOR" + c.UARTS_IO_MODE = Default + c.UARTS_USE_TERMIOS = Default + c.WATCHDOG_TIMEOUT = Default + + +class t32mppc(Base): + name = "powerpc/t32mppc" + + def build(self, c): + c.CFLAGS = ['-mcpu=8540', '-meabi', '-msdata', '-fno-common', '-msoft-float', '-D__ppc_generic'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/t32mppc/startup/linkcmds.t32mppc', 'src/lib/libbsp/powerpc/shared/startup/linkcmds.base'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o', '${RTEMS}/start.o'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + c.LINK_LINK = ['-dc', '-dp', '-u', '__vectors', '-N'] + + def header(self, c): + c.BSP_INSTRUCTION_CACHE_ENABLED = True + c.BSP_DATA_CACHE_ENABLED = True + + + +class tqm8xx_shared(Base): + def header(self, c): + c.BSP_USE_NETWORK_FEC = Default + c.BSP_USE_NETWORK_SCC = True + c.CONSOLE_CHN = "CONS_CHN_SMC1" + c.CONS_SCC1_MODE = Default + c.CONS_SCC2_MODE = Default + c.CONS_SCC3_MODE = Default + c.CONS_SCC4_MODE = Default + c.CONS_SMC1_MODE = Default + c.CONS_SMC2_MODE = Default + c.PRINTK_CHN = "CONS_CHN_SMC1" + c.SPI_BOARD_INIT_FNC = Default + c.SPI_SEND_ADDR_FNC = Default + c.SPI_SEND_STOP_FNC = Default + + def build(self, c): + c.CFLAGS = ['-mcpu=860', '-Dmpc860', '-mstrict-align', '-fno-strict-aliasing', + '-meabi', '-msdata', '-fno-common'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/tqm8xx/startup/linkcmds.tqm8xx', + 'src/lib/libbsp/powerpc/tqm8xx/startup/linkcmds.base'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o', + '${RTEMS}/start.o', '-u', '__vectors'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + + +class pghplus(tqm8xx_shared): + name = "powerpc/pghplus" + + def header(self, c): + c.BSP_USE_NETWORK_FEC = True + c.BSP_USE_NETWORK_SCC = Default + c.CONS_SMC1_MODE = "CONS_MODE_IRQ" + c.SPI_BOARD_INIT_FNC = "bsp_pghplus_spi_init" + c.SPI_SEND_ADDR_FNC = "bsp_pghplus_spi_sel_addr" + c.SPI_SEND_STOP_FNC = "bsp_pghplus_spi_send_stop" + +class tqm8xx_stk8xx(tqm8xx_shared): + name = "powerpc/tqm8xx_stk8xx" + + def header(self, c): + c.CONS_SMC1_MODE = "CONS_MODE_POLLED" + c.CONS_SMC2_MODE = "CONS_MODE_POLLED" + + + +class virtex(Base): + name = "powerpc/virtex" + + def build(self, c): + c.CFLAGS = ['-mcpu=403', '-Dppc405'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/virtex/startup/linkcmds'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o', '-u', '__vectors', '-u', 'download_entry'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + + def header(self, c): + c.PPC_USE_SPRG = Default + c.PPC_VECTOR_FILE_BASE = Default + c.RTEMS_XPARAMETERS_H = Default + c.RTEMS_XPPC_BASE = Default + + +class virtex4(Base): + name = "powerpc/virtex4" + + def build(self, c): + c.CFLAGS = ['-mcpu=405', '-Dppc405'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/virtex4/startup/linkcmds'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + c.LINK_LINK = ['-dc', '-dp', '-Bstatic', '-u', '__vectors', '-u', 'download_entry', '-N'] + + def header(self, c): + c.PPC_USE_DATA_CACHE = True + c.PPC_USE_SPRG = True + c.PPC_VECTOR_FILE_BASE = "0x0100" + + +class virtex5(Base): + name = "powerpc/virtex5" + + def build(self, c): + c.CFLAGS = ['-mcpu=440', '-Dppc440', '-msoft-float'] + c.LINKCMDS = ['src/lib/libbsp/powerpc/virtex5/startup/linkcmds'] + c.LINK_START = ['ecrti.o', '${RTEMS}/rtems_crti.o', 'crtbegin.o'] + c.LINK_END = ['crtend.o', 'ecrtn.o'] + c.LINK_LINK = ['-dc', '-dp', '-Bstatic', '-u', '__vectors', '-u', 'download_entry', '-N'] + + def header(self, c): + c.PPC_USE_DATA_CACHE = True + c.PPC_USE_SPRG = True + c.PPC_VECTOR_FILE_BASE = "0x0100" diff --git a/rtems_waf/defaults/bsp/sh.py b/rtems_waf/defaults/bsp/sh.py new file mode 100644 index 0000000000..ad919404cb --- /dev/null +++ b/rtems_waf/defaults/bsp/sh.py @@ -0,0 +1,87 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "sh" + conflicts=("clang",) + + def build(self, c): + c.LINK_START = ['${RTEMS}/start.o', '-e', '_start'] + + +class gensh1(Base): + name = "sh/gensh1" + + def build(self, c): + c.CFLAGS = ['-m1'] + c.LINKCMDS = ['src/lib/libbsp/sh/gensh1/startup/linkcmds'] + + def header(self, c): + c.CPU_CLOCK_RATE_HZ = Default + c.START_HW_INIT = Default + + + +class gensh2(Base): + name = "sh/gensh2" + + def build(self, c): + c.CFLAGS = ['-m2'] + c.LINKCMDS = ['src/lib/libbsp/sh/gensh2/startup/linkcmds', + 'src/lib/libbsp/sh/gensh2/startup/linkcmds.ram', + 'src/lib/libbsp/sh/gensh2/startup/linkcmds.rom'] + + def header(self, c): + c.CPU_CLOCK_RATE_HZ = 29491200 + c.STANDALONE_EVB = Default + c.START_HW_INIT = Default + + + +class gensh4(Base): + name = "sh/gensh4" + + def build(self, c): + c.CFLAGS = ['-m4', '-ml'] + c.LDFLAGS = ['-m4', '-ml'] + c.LINKCMDS = ['src/lib/libbsp/sh/gensh4/startup/linkcmds', + 'src/lib/libbsp/sh/gensh4/startup/linkcmds.rom', + 'src/lib/libbsp/sh/gensh4/startup/linkcmds.rom2ram'] + c.LINK_LINK = ['-EL'] + + def header(self, c): + c.CPU_CLOCK_RATE_HZ = 29491200 + c.START_HW_INIT = Default + + +class shsim_shared(Base): + def header(self, c): + c.CPU_CLOCK_RATE_HZ = Default + c.START_HW_INIT = Default + + def build(self, c): + c.CFLAGS = ['-m1'] + c.LINKCMDS = ['src/lib/libbsp/sh/shsim/startup/linkcmds', + 'src/lib/libbsp/sh/shsim/startup/linkcmds.sim'] + + +class simsh1(shsim_shared): + name = "sh/simsh1" + + def build(self, c): + c.CFLAGS = ['-m1'] + + +class simsh2(shsim_shared): + name = "sh/simsh2" + + def build(self, c): + c.CFLAGS = ['-m2'] + + +class simsh4(shsim_shared): + name = "sh/simsh4" + + + +class simsh2e(shsim_shared): + name = "sh/simsh2e" diff --git a/rtems_waf/defaults/bsp/sparc.py b/rtems_waf/defaults/bsp/sparc.py new file mode 100644 index 0000000000..8db2669ca6 --- /dev/null +++ b/rtems_waf/defaults/bsp/sparc.py @@ -0,0 +1,62 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "sparc" + conflicts=("clang",) + + def build(self, c): + c.LINK_START = ['${RTEMS}/start.o', 'crti.o', 'crtbegin.o'] + c.LINK_END = ['crtend.o', 'crtn.o'] + + + +class erc32_shared(Base): + def build(self, c): + c.CFLAGS = ['-mcpu=cypress'] + c.LINKCMDS = ['src/lib/libbsp/sparc/erc32/startup/linkcmds', + 'src/lib/libbsp/sparc/shared/startup/linkcmds.base'] + + def header(self, c): + c.CONSOLE_USE_INTERRUPTS = False + c.ENABLE_SIS_QUIRKS = Default + c.SIMSPARC_FAST_IDLE = Default + + + +class erc32(erc32_shared): + name = "sparc/erc32" + + +class sis(erc32_shared): + name = "sparc/sis" + + def header(self, c): + c.ENABLE_SIS_QUIRKS = True + + + +class leon2(Base): + name = "sparc/leon2" + + def build(self, c): + c.CFLAGS = ['-mcpu=cypress'] + c.LINKCMDS = ['src/lib/libbsp/sparc/leon2/startup/linkcmds', + 'src/lib/libbsp/sparc/shared/startup/linkcmds.base'] + + def header(self, c): + c.CONSOLE_USE_INTERRUPTS = False + c.SIMSPARC_FAST_IDLE = Default + + +class leon3(Base): + name = "sparc/leon3" + + def build(self, c): + c.CFLAGS = ['-mcpu=cypress'] + c.LINKCMDS = ['src/lib/libbsp/sparc/leon3/startup/linkcmds', + 'src/lib/libbsp/sparc/shared/startup/linkcmds.base'] + + def header(self, c): + c.BSP_LEON3_SMP = Default + c.CONSOLE_USE_INTERRUPTS = False + c.SIMSPARC_FAST_IDLE = Default diff --git a/rtems_waf/defaults/bsp/sparc64.py b/rtems_waf/defaults/bsp/sparc64.py new file mode 100644 index 0000000000..73003200fb --- /dev/null +++ b/rtems_waf/defaults/bsp/sparc64.py @@ -0,0 +1,27 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "sparc64" + conflicts=("clang",) + + def build(self, c): + c.LINKCMDS = ['src/lib/libbsp/sparc64/shared/startup/linkcmds'] + c.LINK_START = ['${RTEMS}/start.o', 'crtbegin.o', '-e', '_start'] + c.LINK_END = ['crtend.o'] + + +class niagara(Base): + name = "sparc64/niagara" + + def build(self, c): + c.CFLAGS = ['-mcpu=niagara', '-DSUN4V'] + + +class usiii(Base): + name = "sparc64/usiii" + + def build(self, c): + c.CFLAGS = ['-mcpu=ultrasparc3', '-DUS3', '-DSUN4U'] + + def header(self, c): + c.SIMSPARC_FAST_IDLE = Default diff --git a/rtems_waf/defaults/bsp/v850.py b/rtems_waf/defaults/bsp/v850.py new file mode 100644 index 0000000000..8d1a22da31 --- /dev/null +++ b/rtems_waf/defaults/bsp/v850.py @@ -0,0 +1,70 @@ +from rtems_waf.config import Default, Config + +class Base(Config): + arch = name = "v850" + conflicts=("clang",) + + + +class v850_shared(Base): + def build(self, c): + c.CFLAGS = ['-mtune=i386'] +# c.LDFLAGS = ['-Wl,-Ttext,0x00100000'] + c.LINKCMDS = ['src/lib/libbsp/v850/gdbv850sim/startup/linkcmds'] + c.LINK_START = ['${RTEMS}/start.o', '-e', 'start'] +# c.LINK_END = ['crtend.o', 'crtn.o'] +# c.ENABLE_NETWORKING = True + +# def header(self, c): +# c.BSP_HAS_SMP = Default +# c.BSP_VIDEO_80x50 = Default +# c.CLOCK_DRIVER_USE_8254 = Default +# c.CLOCK_DRIVER_USE_TSC = Default +# c.IDE_USE_PRIMARY_INTERFACE = Default +# c.IDE_USE_SECONDARY_INTERFACE = Default +# c.USE_COM1_AS_CONSOLE = Default +# c.BSP_PRESS_KEY_FOR_RESET = True + + +class v850e1sim(v850_shared): + name = "v850/v850e1sim" + + def build(self, c): + c.CFLAGS = ["-mv850e1",] + + +class v850e2sim(v850_shared): + name = "v850/v850e2sim" + + def build(self, c): + c.CFLAGS = ["-mv850e2",] + + +class v850e2v3sim(v850_shared): + name = "v850/v850e2v3sim" + + def build(self, c): + c.CFLAGS = ["-mv850e2v3",] + + +class v850esim(v850_shared): + name = "v850/v850esim" + + def build(self, c): + c.CFLAGS = ["-mv850e",] + + +class v850essim(v850_shared): + name = "v850/v850essim" + + def build(self, c): + c.CFLAGS = ["-mv850es",] + + +class v850sim(v850_shared): + name = "v850/v850sim" + + def build(self, c): + c.CFLAGS = ["-mv850",] + + diff --git a/rtems_waf/defaults/options.py b/rtems_waf/defaults/options.py new file mode 100644 index 0000000000..6c940a7a76 --- /dev/null +++ b/rtems_waf/defaults/options.py @@ -0,0 +1,2247 @@ +from rtems_waf.config.options import Boolean, Integer, String, StringList + + +class ALLOW_IRQ_NESTING(Boolean): + value = True + undef = True + descr = "If set to !0, allow nested irq processing" + + +class ARM_CLK(Boolean): + value = False + undef = True + descr = "Arm clock in hz" + + +class BENCHMARK_IRQ_PROCESSING(Boolean): + value = False + undef = True + descr = "If set to !0, enable code to benchmark irq processing" + + +class BFIN_ON_SKYEYE(Boolean): + value = False + undef = True + descr = """ +If defined, disable features which are not supported on skyeye. + """ + + +class BSP(StringList): + value = [] + undef = True + descr = "List of bsps to build, comma delimited." + + +class BSP_CONSOLE_BAUD(Integer): + value = 9600 + undef = True + descr = "The default console baud rate." + + +class BSP_CPU_CLOCK_SPEED(Integer): + value = 0 + undef = True + descr = "The cpu clock frequency." + + +class BSP_DATA_CACHE_ENABLED(Boolean): + value = True + undef = True + descr = "Enables the data cache, if defined to a value other than zero" + + +class BSP_DIRTY_MEMORY(Boolean): + value = False + undef = True + descr = """ +If defined, then the bsp framework will put a non-zero pattern into the rtems +workspace and C program heap. This should assist in finding code that assumes +memory starts set to zero. + """ + + +class BSP_DISABLE_UBOOT_WORK_AREA_CONFIG(Integer): + value = 1 + undef = True + descr = "Disable u-boot work area configuration" + + +class BSP_GPIOPCR_INITMASK(String): + value = "0x330F0F77" + undef = True + descr = """ +Defines the bits modified in the mpc5200 gpiopcr register during init. Must +match the hardware requirements + """ + + +class BSP_GPIOPCR_INITVAL(String): + value = "0x01050444" + undef = True + descr = """ +Defines the bit values written in the mpc5200 gpiopcr register during init. +Must match the hardware requirements + """ + + +class BSP_HAS_RM52xx(Integer): + value = 1 + undef = True + descr = "This bsp has a rm52xx compatible cpu." + + +class BSP_HAS_SMP(Integer): + value = 1 + undef = True + descr = """ +Always defined when on a pc386 to enable the pc386 support for determining +the cpu core number in an smp configuration. + """ + + +class BSP_HAS_TX49xx(Integer): + value = 1 + undef = True + descr = "This bsp has a rm52xx compatible cpu." + + +class BSP_HAS_USC320(Integer): + value = 1 + undef = True + descr = "This bsp has a v3 usc320 system controller chip." + + +class BSP_INSTRUCTION_CACHE_ENABLED(Boolean): + value = True + undef = True + descr = """ +Enables the instruction cache, if defined to a value other than zero + """ + + +class BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN(Integer): + value = 1 + undef = True + descr = "Indicate that the interrupt stack is at the work area begin" + + +class BSP_LEON3_SMP(Integer): + value = 1 + undef = True + descr = """ +Always defined when on a leon3 to enable the leon3 support for determining +the cpu core number in an smp configuration. + """ + + +class BSP_PRESS_KEY_FOR_RESET(Boolean): + value = False + undef = True + descr = """ +If defined, print a message and wait until pressed before resetting board when +application exits. + """ + + +class BSP_RESET_BOARD_AT_EXIT(Boolean): + value = False + undef = True + descr = "If defined, reset the board when the application exits." + + +class BSP_SMALL_MEMORY(Boolean): + value = False + undef = True + descr = "Disable testsuite samples with high memory demands" + + +class BSP_START_RESET_VECTOR(String): + value = "" + undef = True + descr = "Reset vector address for bsp start" + + +class BSP_UART_AVAIL_MASK(String): + value = "0x01" + undef = True + descr = """ +Bit mask to specify the uarts (pscs), which should be enabled on this board. +Must match the hardware requirements. Psc1 corresponds to the lsb + """ + + +class BSP_USE_NETWORK_FEC(Boolean): + value = False + undef = True + descr = """ +If defined, then the bsp will use the fast ethernet controller for 10/100mbit +networking and used as primary networking interface. + """ + + +class BSP_USE_NETWORK_SCC(Boolean): + value = False + undef = True + descr = """ +If defined, then the bsp will use the serial communications controller (scc1) +for 10mbit networking. + """ + + +class BSP_USE_UART2(Boolean): + value = False + undef = True + descr = "If defined, enables uart2." + + +class BSP_USE_UART_INTERRUPTS(Boolean): + value = True + undef = True + descr = "Enable usage of interrupts for the uart modules" + + +class BSP_VIDEO_80x50(Boolean): + value = False + undef = True + descr = "If defined, set the vga display to 80x50." + + +class CC(String): + value = "" + undef = True + descr = "C compiler command" + + +class CCAS(String): + value = "" + undef = True + descr = "Assembler compiler command (defaults to CC)" + + +class CCASFLAGS(String): + value = "" + undef = True + descr = "Assembler compiler flags (defaults to cflags)" + + +class CCLK(Boolean): + value = False + undef = True + descr = "Cpu clock in hz" + + +class CD2401_INT_LEVEL(Integer): + value = 1 + undef = True + descr = "Interrupt level for the cd2401 (when cd2401_io_mode == 1)." + + +class CD2401_IO_MODE(Integer): + value = 0 + undef = True + descr = "0 for polled I/O, 1 for interrupt-driven." + + +class CD2401_USE_TERMIOS(Boolean): + value = False + undef = True + descr = "Enable using termios based console." + + +class CFLAGS(StringList): + value = [] + undef = True + descr = "C compiler flags" + + +class CFLAGS_DEBUG(String): + value = "" + undef = True + descr = "Debug compiler flags." + + +class CFLAGS_OPTIMISE(String): + value = "" + undef = True + descr = "Compiler flags for optimisation" + + +class CLOCK_DRIVER_USE_8254(Integer): + value = 0 + undef = True + descr = """ +If enabled, the clock driver will use the good old 8254 chip to report +microsecond-accuracy clock times. Enable it, if: - you have nanosecond +timing enabled (you do not have use_ticks_for_cpu_usage_statistics enabled) +- you do not have clock_driver_use_tsc enabled (use one, the other, or +neither) - you do not mind adding roughly 5 microseconds to each context +switch. + """ + + +class CLOCK_DRIVER_USE_8254CLOCK_DRIVER_USE_TSC(Boolean): + value = False + undef = True + descr = """ +If enabled, the clock driver will use the good old 8254 chip to report +microsecond-accuracy clock times. Enable it, if: 1, you have nanosecond timing +enabled (you do not have use_ticks_for_cpu_usage_statistics enabled) 2, you +do not have clock_driver_use_tsc enabled (use one, the other, or neither 3, +you do not mind adding roughly 5 microseconds to each context switch. + """ + + +class CLOCK_DRIVER_USE_FAST_IDLE(Boolean): + value = False + undef = True + descr = """ +This sets a mode where the time runs as fast as possible when a clock isr +occurs while the idle thread is executing. This can significantly reduce +simulation times. + """ + + +class CLOCK_DRIVER_USE_TSC(Boolean): + value = False + undef = True + descr = """ +If enabled, the clock driver will use the tsc register available with pentium- +class cpus to report close to nanosecond-accuracy clock times. Enable it, if: +1, you have nanosecond timing enabled (you do not have +use_ticks_for_cpu_usage_statistics enabled 2, you do not have +clock_driver_use_8254 enabled (use one, the other, or neither 3, you have a +pentium which supports tsc (all intels, and probably all or most clones 4, you +do not have a variable-speed cpu clock. Note that some motherboard bios will +automatically vary clock speed for thermal control. Note also, however, that +really new pentium-class chips from intel and amd will maintain a constant- +rate tsc regardless. + """ + + +class CONFIG_CFLAGS(StringList): + value = [] + undef = True + descr = "Default compiler flags for rtems-config" + + +class CONFIG_CONSOLE(Boolean): + value = False + undef = True + descr = "Configuration for console (uart 0)" + + +class CONFIG_FPSP(Boolean): + value = False + undef = True + descr = """ +If defined enables the motorola floating point support package (fpsp) + """ + + +class CONFIG_I2C_0(Boolean): + value = False + undef = True + descr = "Configuration for i2c 0" + + +class CONFIG_I2C_1(Boolean): + value = False + undef = True + descr = "Configuration for i2c 1" + + +class CONFIG_I2C_2(Boolean): + value = False + undef = True + descr = "Configuration for i2c 2" + + +class CONFIG_LDFLAGS(StringList): + value = [] + undef = True + descr = "Default linker flags for rtems-config" + + +class CONFIG_LIBS(StringList): + value = [] + undef = True + descr = "= Default libraries for rtems-config" + + +class CONFIG_U3CLK(Boolean): + value = False + undef = True + descr = "Clock configuration for uart 3" + + +class CONFIG_U4CLK(Boolean): + value = False + undef = True + descr = "Clock configuration for uart 4" + + +class CONFIG_U5CLK(Boolean): + value = False + undef = True + descr = "Clock configuration for uart 5" + + +class CONFIG_U6CLK(Boolean): + value = False + undef = True + descr = "Clock configuration for uart 6" + + +class CONFIG_UART_1(Boolean): + value = False + undef = True + descr = "Configuration for uart 1" + + +class CONFIG_UART_2(Boolean): + value = False + undef = True + descr = "Configuration for uart 2" + + +class CONFIG_UART_3(Boolean): + value = False + undef = True + descr = "Configuration for uart 3" + + +class CONFIG_UART_CLKMODE(Boolean): + value = False + undef = True + descr = "Clock mode configuration for uarts" + + +class CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK(Boolean): + value = True + undef = True + descr = """ +If defined then the bsp may reduce the available memory size initially. This +can be useful for debugging (reduce the core size) or dynamic loading (std gcc +text offsets/Jumps are < +/-32m). Note that the policy can still be defined by +the application (see sbrk.C, bsp_sbrk_policy). By undefining +configure_malloc_bsp_supports_sbrk this feature is removed and a little memory +is saved. + """ + + +class CONS_SCC1_MODE(String): + value = "CONS_MODE_UNUSED" + undef = True + descr = """ +(Bsp--scc1 uart if mode) must be defined if scc1 is used as a tty (uart) +channel. Set it to cons_mode_polled for polled operation, cons_mode_irq for +interrupt driven (spooled) operation. Set it to cons_mode_unused, if not used + """ + + +class CONS_SCC2_MODE(String): + value = "CONS_MODE_UNUSED" + undef = True + descr = """ +(Bsp--scc2 uart if mode) must be defined if scc2 is used as a tty (uart) +channel. Set it to cons_mode_polled for polled operation, cons_mode_irq for +interrupt driven (spooled) operation. Set it to cons_mode_unused, if not used + """ + + +class CONS_SCC3_MODE(String): + value = "CONS_MODE_UNUSED" + undef = True + descr = """ +(Bsp--scc3 uart if mode) must be defined if scc3 is used as a tty (uart) +channel. Set it to cons_mode_polled for polled operation, cons_mode_irq for +interrupt driven (spooled) operation. Set it to cons_mode_unused, if not used + """ + + +class CONS_SCC4_MODE(String): + value = "CONS_MODE_UNUSED" + undef = True + descr = """ +(Bsp--scc4 uart if mode) must be defined if scc4 is used as a tty (uart) +channel. Set it to cons_mode_polled for polled operation, cons_mode_irq for +interrupt driven (spooled) operation. Set it to cons_mode_unused, if not used + """ + + +class CONS_SMC1_MODE(String): + value = "CONS_MODE_UNUSED" + undef = True + descr = """ +(Bsp--smc1 uart if mode) must be defined if smc1 is used as a tty (uart) +channel. Set it to cons_mode_polled for polled operation, cons_mode_irq for +interrupt driven (spooled) operation. Set it to cons_mode_unused, if not +used]) + """ + + +class CONS_SMC2_MODE(String): + value = "CONS_MODE_UNUSED" + undef = True + descr = """ +(Bsp--smc2 uart if mode) must be defined if smc2 is used as a tty (uart) +channel. Set it to cons_mode_polled for polled operation, cons_mode_irq for +interrupt driven (spooled) operation. Set it to cons_mode_unused, if not used + """ + + +class CONSOLE_BAUDRATE(Integer): + value = 9600 + undef = True + descr = "The baudrate of the console uart." + + +class CONSOLE_CHN(String): + value = "CONS_CHN_SMC1" + undef = True + descr = """ +Bsp--console driver) must be defined to be one of cons_chn_smc1, +cons_chn_smc2, cons_chn_scc1, cons_chn_scc2, cons_chn_scc3, or cons_chn_scc4. +Determines which device will be registered as /Dev/Console. + """ + + +class CONSOLE_MINOR(String): + value = "SMC1_MINOR" + undef = True + descr = """ +Port to use for the rtems console: 0 - /Dev/Tty0, serial port 1/Console on the +mvme712m, 1 - /Dev/Tty1, serial port 2/Tty01 on the mvme712m, 2 - /Dev/Tty2, +serial port 3 on the mvme712m, 3 - /Dev/Tty3, serial port 4 on the mvme712m.]) + """ + + +class CONSOLE_MINOR_DUPLICATE(String): + value = "SMC2_MINOR" + undef = True + descr = """ +Bsp--console driver) must be defined to be one of smc1_minor, smc2_minor, +scc2_minor, scc3_minor, or scc4_minor. Determines which device will be +registered as /Dev/Console. + """ + + +class CONSOLE_USE_INTERRUPTS(Boolean): + value = True + undef = False + descr = """ +The erc32 console driver can operate in either polled or interrupt mode. Under +the simulator (especially when fast_uart is defined), polled seems to operate +better. It is common for a task to print a line (like the end of test message) +and then exit. In this case, the program returns control to the simulator +command line before the program has even queued the output to the uart. Thus +sis has no chance of getting the data out. + """ + + +class CPU_CLOCK_RATE_HZ(Integer): + value = 20000000 + undef = True + descr = "Cpu clock rate in hz" + + +class DISABLE_MMU(Boolean): + value = False + undef = True + descr = "Disable mmu" + + +class DISABLE_READ_ONLY_PROTECTION(Boolean): + value = False + undef = True + descr = "Disable mmu protection of read-only sections" + + +class DISABLE_READ_WRITE_DATA_CACHE(Boolean): + value = False + undef = True + descr = "Disable cache for read-write data sections" + + +class DISPATCH_HANDLER_STAT(Boolean): + value = True + undef = True + descr = "Used by irq/Irq.C" + + +class EMC_MICRON(Boolean): + value = False + undef = True + descr = "Enable micron configuration for emc" + + +class EMC_NUMONYX(Boolean): + value = False + undef = True + descr = "Enable numonyx configuration for emc" + + +class EMC_TEST(Boolean): + value = False + undef = True + descr = "Enable tests for emc" + + +class ENABLE(Boolean): + value = True + undef = True + descr = "Whether a bsp is enabled or disabled for use." + + +class ENABLE_DEBUG(Boolean): + value = False + undef = True + descr = "Enable debug build." + + +class ENABLE_FPSP(Boolean): + value = False + undef = True + descr = "Motorola floating point support package (fpsp)" + + +class ENABLE_LCD(Boolean): + value = False + undef = True + descr = "If defined, enable use of the sed1356 controller and LCD." + + +class ENABLE_MP(Boolean): + value = False + undef = True + descr = "Enable multiprocessing." + + +class ENABLE_MULTILIB(Boolean): + value = True + undef = True + descr = "???" + + +class ENABLE_NETWORKING(Boolean): + value = True + undef = True + descr = "Enable tcp/Ip stack." + + +class ENABLE_NEWLIB(Boolean): + value = True + undef = True + descr = "???" + + +class ENABLE_POSIX(Boolean): + value = True + undef = True + descr = "Enable posix." + + +class ENABLE_PTHREADS(Boolean): + value = True + undef = True + descr = "Enable pthreads, requires posix." + + +class ENABLE_SERDBG(Boolean): + value = False + undef = True + descr = "???" + + +class ENABLE_SHELL(Boolean): + value = True + undef = True + descr = "???" + + +class ENABLE_SIS_QUIRKS(Boolean): + value = False + undef = True + descr = """ +If defined, then the sis simulator specific code in the bsp will be enabled. +In particular, sis requires special initialization not used on real erc32 + """ + + +class ENABLE_SMP(Boolean): + value = False + undef = True + descr = "Enable smp, available for i386/Sparc only." + + +class ENABLE_UMON(Boolean): + value = False + undef = True + descr = "If defined, enable use of the umon console." + + +class ENABLE_UMON_CONSOLE(Boolean): + value = False + undef = True + descr = "If defined, enable use of the micromonitor console device." + + +class ENABLE_USART0(Boolean): + value = False + undef = True + descr = "If defined, enable use of the usart 0." + + +class ENABLE_USART1(Boolean): + value = False + undef = True + descr = "If defined, enable use of the usart 1." + + +class ENABLE_USART2(Boolean): + value = False + undef = True + descr = "If defined, enable use of the usart 2." + + +class ENABLE_USART3(Boolean): + value = False + undef = True + descr = "If defined, enable use of the usart 3." + + +class ENABLE_WATCHDOG_RESET(Boolean): + value = False + undef = True + descr = "Bsp_reset() will use the watchdog to reset the chip" + + +class EPPCBUG_SMC1(Boolean): + value = True + undef = True + descr = """ +If defined, smc1 is in use by eppc-bug. The console driver will not re- +initialize that port. + """ + + +class EPPCBUG_VECTORS(Boolean): + value = True + undef = True + descr = """ +(Bsp--rtems) if defined, vectors branch to eppcbug, except the following: +0x500 (external interrupt), 0x900 (decrementer).]) + """ + + +class ETHERNET_RMII(Boolean): + value = False + undef = True + descr = "Enable rmii for ethernet" + + +class GEN83XX_ENABLE_INTERRUPT_NESTING(Boolean): + value = True + undef = True + descr = "Enable interrupt nesting" + + +class HAS_DBUG(Integer): + value = 0 + undef = True + descr = """ +If defined, we will not boot from reset, but from freescale dbug monitor. + """ + + +class HAS_LOW_LEVEL_INIT(Boolean): + value = False + undef = True + descr = """ +If defined, we will do all the low level init of the chip (like +bus/Memory...). + """ + + +class HAS_PMC_PSC8(Boolean): + value = False + undef = True + descr = "Whether has a psc8 pmc board attached to pmc slot" + + +class HAS_SMC91111(Boolean): + value = False + undef = True + descr = "If defined the board has the smc91111 networking chip." + + +class HAS_UBOOT(Boolean): + value = False + undef = True + descr = "Enable u-boot startup" + + +class HAVE_SHSIM_IOMEM_PATCH(Boolean): + value = True + undef = True + descr = """ +Whether support for functional iomem in shsim/Gdb shall be enabled + """ + + +class HCLK(Boolean): + value = False + undef = True + descr = "Ahb bus clock in hz" + + +class HEAP_EXTEND(Boolean): + value = False + undef = True + descr = "Enable heap extend by ethernet and usb regions" + + +class IDE_USE_PRIMARY_INTERFACE(Boolean): + value = True + undef = True + descr = """ +Determines, whether rtems will try to use the primary ide interface. Disable +it, if: 1, you have no primary ide interface. 2, you have no disk attached to +this interface or 3, you do not want to access disks attached to this +interface. + """ + + +class IDE_USE_SECONDARY_INTERFACE(Boolean): + value = False + undef = True + descr = """ +Determines, whether rtems will try to use the secondary ide interface. Enable +it, if: 1, you have a secondary ide interface 2, you have at least one disk +attached to this interface 3, you do want to access disks attached to this +interface. + """ + + +class INITIALIZE_COM_PORTS(Boolean): + value = False + undef = True + descr = "???" + + +class INTERRUPT_USE_TABLE(Boolean): + value = True + undef = True + descr = "Select if interrupt use table or link list" + + +class LDFLAGS(StringList): + value = [] + undef = True + descr = """ +Linker flags only, do not use this for directories or libraries + """ + + +class LIBS(StringList): + value = [] + undef = True + descr = "Libraries to pass to the linker, e.G. -L<library>" + + +class LINK_END(StringList): + value = [] + undef = True + descr = "Objects linked last" + + +class LINK_START(StringList): + value = [] + undef = True + descr = "Objects linked first" + + +class LINK_LINK(StringList): + value = ["-L${RTEMS} -T ${RTEMS}/linkcmds -dc -dp -N"] + undef = True + descr = "Linker link flags" + + +class LINKCMDS(StringList): + value = [] + undef = True + descr = "Linker command files, first one is installed as linkcmds" + + +class LPC24XX_CCLK(String): + value = "72000000U" + undef = True + descr = "Cpu clock in hz" + + +class LPC24XX_CONFIG_CONSOLE(Integer): + value = 0 + undef = True + descr = "Configuration for console (uart 0)" + + +class LPC24XX_CONFIG_I2C_0(Integer): + value = 0 + undef = True + descr = "Configuration for i2c 0" + + +class LPC24XX_CONFIG_I2C_1(Integer): + value = 1 + undef = True + descr = "Configuration for i2c 1" + + +class LPC24XX_CONFIG_I2C_2(String): + value = "" + undef = True + descr = "Configuration for i2c 2" + + +class LPC24XX_CONFIG_UART_1(Boolean): + value = True + undef = True + descr = "Configuration for uart 1" + + +class LPC24XX_CONFIG_UART_2(Boolean): + value = False + undef = True + descr = "Configuration for uart 2" + + +class LPC24XX_CONFIG_UART_3(Boolean): + value = False + undef = True + descr = "Configuration for uart 3" + + +class LPC24XX_EMC_MICRON(Integer): + value = 1 + undef = True + descr = "Enable micron configuration for emc" + + +class LPC24XX_EMC_NUMONYX(Integer): + value = 1 + undef = True + descr = "Enable numonyx configuration for emc" + + +class LPC24XX_EMC_TEST(String): + value = "" + undef = True + descr = "Enable tests for emc" + + +class LPC24XX_ETHERNET_RMII(Boolean): + value = True + undef = True + descr = "Enable rmii for ethernet" + + +class LPC24XX_HEAP_EXTEND(Boolean): + value = True + undef = True + descr = "Enable heap extend by ethernet and usb regions" + + +class LPC24XX_OSCILLATOR_MAIN(String): + value = "12000000U" + undef = True + descr = "Main oscillator frequency in hz" + + +class LPC24XX_OSCILLATOR_RTC(String): + value = "32768U" + undef = True + descr = "Rtc oscillator frequency in hz" + + +class LPC24XX_SPECIAL_TASK_STACKS_SUPPORT(Integer): + value = 1 + undef = True + descr = """ +Enable special task stack support for task stacks in internal ram + """ + + +class LPC24XX_STOP_ETHERNET(Integer): + value = 1 + undef = True + descr = "Stop ethernet controller at start-up to avoid dma interference" + + +class LPC24XX_STOP_GPDMA(Integer): + value = 1 + undef = True + descr = "Stop general purpose dma at start-up to avoid dma interference" + + +class LPC24XX_STOP_USB(Integer): + value = 1 + undef = True + descr = "Stop usb controller at start-up to avoid dma interference" + + +class LPC24XX_UART_BAUD(String): + value = "115200U" + undef = True + descr = "Baud for uarts" + + +class LPC32XX_ARM_CLK(String): + value = "208000000U" + undef = True + descr = "Arm clock in hz" + + +class LPC32XX_CONFIG_U3CLK(String): + value = "" + undef = True + descr = "Clock configuration for uart 3" + + +class LPC32XX_CONFIG_U4CLK(String): + value = "" + undef = True + descr = "Clock configuration for uart 4" + + +class LPC32XX_CONFIG_U5CLK(String): + value = "0x00001386U" + undef = True + descr = "Clock configuration for uart 5" + + +class LPC32XX_CONFIG_U6CLK(String): + value = "" + undef = True + descr = "Clock configuration for uart 6" + + +class LPC32XX_CONFIG_UART_CLKMODE(String): + value = "0x00000200U" + undef = True + descr = "Clock mode configuration for uarts" + + +class LPC32XX_DISABLE_MMU(Boolean): + value = False + undef = True + descr = "Disable mmu" + + +class LPC32XX_DISABLE_READ_ONLY_PROTECTION(Boolean): + value = False + undef = True + descr = "Disable mmu protection of read-only sections" + + +class LPC32XX_DISABLE_READ_WRITE_DATA_CACHE(Boolean): + value = False + undef = True + descr = "Disable cache for read-write data sections" + + +class LPC32XX_ENABLE_WATCHDOG_RESET(Boolean): + value = True + undef = True + descr = "Enable watchdog reset" + + +class LPC32XX_ETHERNET_RMII(Boolean): + value = True + undef = True + descr = "Enable rmii for ethernet" + + +class LPC32XX_HCLK(String): + value = "104000000U" + undef = True + descr = "Ahb bus clock in hz" + + +class LPC32XX_OSCILLATOR_MAIN(String): + value = "13000000U" + undef = True + descr = "Main oscillator frequency in hz" + + +class LPC32XX_OSCILLATOR_RTC(String): + value = "32768U" + undef = True + descr = "Rtc oscillator frequency in hz" + + +class LPC32XX_PERIPH_CLK(String): + value = "13000000U" + undef = True + descr = "Peripheral clock in hz" + + +class LPC32XX_SCRATCH_AREA_SIZE(Integer): + value = 4096 + undef = True + descr = "Size of scratch area" + + +class LPC32XX_STOP_ETHERNET(Boolean): + value = True + undef = True + descr = "Stop ethernet controller at start-up to avoid dma interference" + + +class LPC32XX_STOP_GPDMA(Boolean): + value = True + undef = True + descr = "Stop general purpose dma at start-up to avoid dma interference" + + +class LPC32XX_STOP_USB(Boolean): + value = True + undef = True + descr = "Stop usb controller at start-up to avoid dma interference" + + +class LPC32XX_UART_1_BAUD(String): + value = "" + undef = True + descr = "Baud for uart 1" + + +class LPC32XX_UART_2_BAUD(String): + value = "" + undef = True + descr = "Baud for uart 2" + + +class LPC32XX_UART_7_BAUD(String): + value = "" + undef = True + descr = "Baud for uart 7" + + +class MPC5200_PSC_INDEX_FOR_GPS_MODULE(Integer): + value = 0 + undef = True + descr = "Psc index for gps module, if defined results in '/Dev/Gps'" + + +class MPC55XX_BOARD_GWLCFM(Boolean): + value = True + undef = True + descr = "If defined, use custom settings for gwlcfm board" + + +class MPC55XX_BOARD_MPC5566EVB(Boolean): + value = False + undef = True + descr = "If defined, use custom settings for mpc5566evb board" + + +class MPC55XX_BOARD_MPC5674FEVB(Boolean): + value = True + undef = True + descr = "If defined, use custom settings for mpc5674fevb board" + + +class MPC55XX_BOARD_PHYCORE_MPC5554(Boolean): + value = True + undef = True + descr = "If defined, use custom settings for phycore mpc5554 board" + + +class MPC55XX_BOOTFLAGS(String): + value = "" + undef = True + descr = """ +If defined, builds in bootflags above the rchw for setup in a debugger to +avoid startup mmu setup + """ + + +class MPC55XX_CHIP_TYPE(Integer): + value = 5554 + undef = True + descr = "Specifies the chip type in use (e.G. 5554 for mpc5554" + + +class MPC55XX_CLOCK_EMIOS_CHANNEL(String): + value = "MPC55XX_EMIOS_CHANNEL_NUMBER-1" + undef = True + descr = """ +Define to the emios channel to use for the bsp clock. The default is the last +channel. + """ + + +class MPC55XX_EMIOS_PRESCALER(Integer): + value = 1 + undef = True + descr = "Must be defined to set the emios prescaler" + + +class MPC55XX_ESCI_CONSOLE_MINOR(Integer): + value = 0 + undef = True + descr = """ +Determines which esci device will be registered as /Dev/Console + """ + + +class MPC55XX_ESCI_USE_INTERRUPTS(Boolean): + value = True + undef = True + descr = """ +Define to zero or one to disable or enable interrupts for the esci devices + """ + + +class MPC55XX_FMPLL_CLK_OUT(Integer): + value = 128000000 + undef = True + descr = """ +Must be defined to be the pll output clock (in hz) for clock generation + """ + + +class MPC55XX_FMPLL_MFD(Integer): + value = 12 + undef = True + descr = """ +Must be defined to be the pll multiplication factor for clock generation + """ + + +class MPC55XX_FMPLL_PREDIV(Integer): + value = 1 + undef = True + descr = """ +Must be defined to be the pll predivider factor for clock generation + """ + + +class MPC55XX_FMPLL_REF_CLOCK(Integer): + value = 8000000 + undef = True + descr = """ +Must be defined to be the external reference clock (in hz) for clock +generation + """ + + +class NVRAM_CONFIGURE(Boolean): + value = True + undef = True + descr = """ +Define to 1 if you want the console driver, network driver and caches +configured at boot time from parameters stored in nvram. If set to 1, most +parameters below are ignored during the build. If not set to 1, then the +console driver is configured at build time, the network host information is +obtained from application supplied data structures, and the caches are +configured at boot time based on the information supplied in this file. + """ + + +class ON_SIMULATOR(Boolean): + value = False + undef = True + descr = """ +If defined, this indicates the bsp is being built to run on the lm32 simulator +in gdb. This enables fast idle support which speeds up the clock ticks while +the idle task is running so time spent in the idle task is minimized. This +significantly reduces the wall time required to execute the rtems test suites. +It also enables a special exit and alternate printk support. + """ + + +class ON_SKYEYE(Boolean): + value = False + undef = True + descr = """ +If defined, enable options which optimize executingon the skyeye simulator. +Speed up the clock ticks while the idle task is running so time spent in the +idle task is minimized. This significantly reduces the wall time required to +execute the rtems test suites. + """ + + +class OSCILLATOR_MAIN(Boolean): + value = False + undef = True + descr = "Main oscillator frequency in hz" + + +class OSCILLATOR_RTC(Boolean): + value = False + undef = True + descr = "Rtc oscillator frequency in hz" + + +class PATH_TOOLS(String): + value = "" + undef = True + descr = "Location of rtems tools." + + +class PERIPH_CLK(Boolean): + value = False + undef = True + descr = "Peripheral clock in hz" + + +class PPC_USE_SPRG(Boolean): + value = True + undef = True + descr = """ +If defined, then the powerpc specific code in rtems will use some of the +special purpose registers to slightly optimize interrupt response time. The +use of these registers can conflict with other tools like debuggers. + """ + + +class PPC_VECTOR_FILE_BASE(String): + value = "0x0100" + undef = True + descr = """ +This defines the base address of the exception table. Note: vectors are +actually at 0xfff00000 but file starts at offset. + """ + + +class PREFIX(String): + value = "" + undef = True + descr = "Install prefix." + + +class PRINTK_CHN(String): + value = "NOT_DEFINED_IN_BSP" + undef = True + descr = """ +(Bsp--console driver) must be defined to be one of cons_chn_smc1, +cons_chn_smc2, cons_chn_scc2, cons_chn_scc3, or cons_chn_scc4. Determines +which device is used for output y printk(). If the port that printk() uses is +also used for other I/O (e.G. If printk_chn == console_chn), then both ports +should use the same type of I/O, otherwise the drivers will likely conflict +with each other. + """ + + +class PRINTK_IO_MODE(Integer): + value = 0 + undef = True + descr = """ +(Bsp--console driver) define to 0 or 1 if you want polled I/O performed by +rtems. Define to 2 if you want polled I/O performed by eppcbug. The printk() +port is not configured to use termios. With eppcbug 1.1, if mode 2 is +selected, printk_minor must be set to smc1_minor. This is a deficiency of the +firmware: it does not perform serial I/O on any port other than its default +debug port, which must be smc1. Printk always uses polled output. + """ + + +class PRINTK_MINOR(String): + value = "NOT_DEFINED_IN_BSP" + undef = True + descr = """ +Port to use for the rtems console: 0 - /Dev/Tty0, serial port 1/Console on the +mvme712m, 1 - /Dev/Tty1, serial port 2/Tty01 on the mvme712m, 2 - /Dev/Tty2, +serial port 3 on the mvme712m, 3 - /Dev/Tty3, serial port 4 on the mvme712m.]) + """ + + +class PRINTK_MINOR_DUPLICATE(String): + value = "SMC2_MINOR" + undef = True + descr = """ +(Bsp--console driver) must be defined to be one of smc1_minor, smc2_minor, +scc2_minor, scc3_minor, or scc4_minor. Determines which device is used for +output by printk(). If the port that printk() uses is also used for other I/O +(e.G. If printk_minor == \$console_minor), then both ports should use the +same type of I/O, otherwise the drivers will likely conflict with each other. + """ + + +class QORIQ_CLOCK_TIMER(Integer): + value = 0 + undef = True + descr = """ +Global timer used for system clock, 0..3 maps to a0..a3, and 4..7 maps to +b0..b3 + """ + + +class QORIQ_ETSEC_1_PHY_ADDR(Integer): + value = -1 + undef = True + descr = "Phy address for etsec interface 1" + + +class QORIQ_ETSEC_2_PHY_ADDR(Integer): + value = 0 + undef = True + descr = "Phy address for etsec interface 2" + + +class QORIQ_ETSEC_3_PHY_ADDR(Integer): + value = 1 + undef = True + descr = "Phy address for etsec interface 3" + + +class QORIQ_INITIAL_MSR(String): + value = "0x02000200" + undef = True + descr = "Initial msr value" + + +class QORIQ_INITIAL_SPEFSCR(String): + value = "0x00000000" + undef = True + descr = "Initial spefscr value" + + +class QORIQ_INTERCOM_AREA_BEGIN(String): + value = "0x3000000" + undef = True + descr = "Inter-processor communication area begin" + + +class QORIQ_INTERCOM_AREA_SIZE(String): + value = "0x1000000" + undef = True + descr = "Inter-processor communication area size" + + +class QORIQ_UART_0_ENABLE(Boolean): + value = True + undef = True + descr = "Use 1 to enable uart 0, otherwise use 0" + + +class QORIQ_UART_1_ENABLE(Boolean): + value = True + undef = True + descr = "Use 1 to enable uart 1, otherwise use 0" + + +class QORIQ_UART_BRIDGE_0_ENABLE(Boolean): + value = True + undef = True + descr = "Use 1 to enable uart 0 to intercom bridge, otherwise use 0" + + +class QORIQ_UART_BRIDGE_1_ENABLE(Boolean): + value = True + undef = True + descr = "Use 1 to enable uart 1 to intercom bridge, otherwise use 0" + + +class QORIQ_UART_BRIDGE_MASTER_CORE(Integer): + value = 0 + undef = True + descr = "Uart to intercom bridge master core index" + + +class QORIQ_UART_BRIDGE_SLAVE_CORE(Integer): + value = 1 + undef = True + descr = "Uart to intercom bridge slave core index" + + +class QORIQ_UART_BRIDGE_TASK_PRIORITY(Integer): + value = 250 + undef = True + descr = "Uart to intercom bridge task priority" + + +class RTEMS_BSP_I2C_EEPROM_DEVICE_NAME(String): + value = "eeprom" + undef = True + descr = "Eeprom name for libi2c" + + +class RTEMS_BSP_I2C_EEPROM_DEVICE_PATH(String): + value = "/dev/i2c1.eeprom" + undef = True + descr = "Eeprom device file path" + + +class RTEMS_XPARAMETERS_H(String): + value = "<xparameters_dflt.h>" + undef = True + descr = """ +This defines the location of the hardware specific xparameters.H + """ + + +class RTEMS_XPPC_BASE(String): + value = "." + undef = True + descr = "Defines path to xilinx xps ppc libraries." + + +class SCORE603E_OPEN_FIRMWARE(Boolean): + value = False + undef = True + descr = "Use open firmware rom monitor" + + +class SCORE603E_USE_DINK(Boolean): + value = False + undef = True + descr = "???" + + +class SCORE603E_USE_NONE(Boolean): + value = False + undef = True + descr = "Use no rom monitor" + + +class SCORE603E_USE_SDS(Boolean): + value = False + undef = True + descr = "Use sds rom monitor" + + +class SCRATCH_AREA_SIZE(Boolean): + value = False + undef = True + descr = "Size of scratch area" + + +class SIMSPARC_FAST_IDLE(Boolean): + value = False + undef = True + descr = """ +If defined, speed up the clock ticks while the idle task is running so time +spent in the idle task is minimized. This significantly reduces the wall time +required to execute the rtems test suites. + """ + + +class SINGLE_CHAR_MODE(String): + value = "" + undef = True + descr = "Enable single character mode for the psc console driver" + + +class SMC91111_ENADDR_IS_SETUP(Boolean): + value = False + undef = True + descr = """ +If defined the smc91111 chip has the ethernet address loaded at reset. + """ + + +class SPECIAL_TASK_STACKS_SUPPORT(Boolean): + value = False + undef = True + descr = """ +Enable special task stack support for task stacks in internal ram. + """ + + +class SPI_BOARD_INIT_FNC(String): + value = "bsp_dummy_spi_init" + undef = True + descr = """ +(Bsp--spi board init function) specify the function that inits the board port +lines and further devices. + """ + + +class SPI_SEND_ADDR_FNC(String): + value = "bsp_dummy_spi_sel_addr" + undef = True + descr = """ +Bsp--spi send address function) specify the function that addresses spi +devices. Set to bsp_dummy_spi_sel_addr for dummy implementation + """ + + +class SPI_SEND_STOP_FNC(String): + value = "bsp_dummy_spi_send_stop" + undef = True + descr = """ +Bsp--spi send stop function) specify the function that deaddresses spi +devices. Set to bsp_dummy_spi_send_stop for dummy implementation + """ + + +class STANDALONE_EVB(String): + value = "" + undef = True + descr = """ +If defined, compiles code to jump-start from flash, without a monitor + """ + + +class START_HW_INIT(String): + value = "" + undef = True + descr = """ +If defined, selects whether 'early_hw_init()' is called from 'start.S'; +'bsp_hw_init()' is always called from 'bspstart.C' + """ + + +class STOP_ETHERNET(Boolean): + value = False + undef = True + descr = "Stop ethernet controller at start-up to avoid dma interference" + + +class STOP_GPDMA(Boolean): + value = False + undef = True + descr = "Stop general purpose dma at start-up to avoid dma interference" + + +class STOP_USB(Boolean): + value = False + undef = True + descr = "Stop usb controller at start-up to avoid dma interference" + + +class TESTS_USE_PRINTK(Boolean): + value = False + undef = True + descr = "Tests use printk() for output" + + +class UART_1_BAUD(Boolean): + value = False + undef = True + descr = "Baud for uart 1" + + +class UART_2_BAUD(Boolean): + value = False + undef = True + descr = "Baud for uart 2" + + +class UART_7_BAUD(Boolean): + value = False + undef = True + descr = "Baud for uart 7" + + +class UART_BAUD(Boolean): + value = False + undef = True + descr = "Baud for uarts" + + +class UART_USE_DMA(Boolean): + value = True + undef = True + descr = """ +The uart driver can operate in dma mode with interrupts. Set true if dma +operation is required + """ + + +class UARTS_IO_MODE(Integer): + value = 0 + undef = True + descr = """ +Define to 0 or 1 if you want polled I/O performed by rtems. Define to 1 if +you want interrupt-driven performed by rtems. Define to 2 if you want polled +I/O performed by eppcbug. There is no provision to have a MIX of interrupt- +driven and polled I/O ports, except that the printk port may use a different +mode from the other ports. If this is done, do not open the printk port from +an rtems application. With eppcbug 1.1, if mode 2 is selected, console_minor +must be set to smc1_minor. This is a deficiency of the firmware: it does not +perform serial I/O on any port other than its default debug port, which must +be smc1. + """ + + +class UARTS_USE_TERMIOS(Boolean): + value = False + undef = True + descr = """ +Define to 1 if you want termios support for every port. Termios support is +independent of the choice of uart I/O mode. + """ + + +class UARTS_USE_TERMIOS_INT(Boolean): + value = True + undef = True + descr = "Enable interrupt support for the psc console driver" + + +class USE_COM1_AS_CONSOLE(Boolean): + value = False + undef = True + descr = """ +Determines, whether the console will be associated with the standard vga +display or with the com1 serial port. Currently only the vga display and com1 +support printk. + """ + + +class WATCHDOG_TIMEOUT(String): + value = "0xFFFF" + undef = True + descr = """ +Define to the desired timeout (in steps of 1/20 msec) to enable the watchdog. +Default is to disable the watchdog entirely. + """ + + +# These are all hacks, they only exist to enable shared BSPS, they are not +# required and will be removed in the future. + +class BOARD_PHYCORE_MPC5554(Boolean): + value = False + undef = True + descr = """ +If defined, use custom settings for the phytec phycore mpc5554 som + """ + + +class BSP_TYPE_DP2(Boolean): + value = False + undef = True + descr = "Enable settings for dp2" + + +class csb637(Boolean): + value = False + undef = True + descr = """ +If defined, this indicates that the bsp is being built for the csb637 +variant. + """ + + +class GEN68360(Boolean): + value = False + undef = True + descr = "If defined, use custom settings for the gen68360 bsp." + + +class GEN68360_040(Boolean): + value = False + undef = True + descr = "If defined, use custom settings for the gen68360_040 bsp." + + +class HSC_CM01(Boolean): + value = False + undef = True + descr = "If defined, use custom settings for the hsc_cm01 bsp." + + +class M5484FIREENGINE(Boolean): + value = False + undef = True + descr = "If defined, use custom settings for the m5484fireengine bsp." + + +class mpc8240(Boolean): + value = False + undef = True + descr = "Defined for boards with mpc8240 -- undefined for others" + + +class MPC8313ERDB(Boolean): + value = False + undef = True + descr = "If defined, use custom settings for the mpc8313erdb bsp." + + +class MPC8349(Boolean): + value = False + undef = True + descr = "If defined, use custom settings for the mpc8349 libcpu family." + + +class MPC8349EAMDS(Boolean): + value = False + undef = True + descr = "If defined, use custom settings for the mpc8349eamds bsp." + + +class mvme167(Boolean): + value = False + undef = True + descr = "Defined for mvme167 -- undefined for others" + + +class mvme2100(Boolean): + value = False + undef = True + descr = "Defined for mvme2100 -- undefined for others" + + +class PGH360(Boolean): + value = False + undef = True + descr = "If defined, use custom settings for the pgh360 bsp." + + +class qemu(Boolean): + value = False + undef = True + descr = "Defined for qemu bsp -- undefined for others" + + +class MPC5200_BOARD_BRS5L(Boolean): + value = False + undef = True + descr = "Enable settings for powerpc MPC5200 BRS5L" + +class MPC5200_BOARD_BRS6L(Boolean): + value = False + undef = True + descr = "Enable settings for powerpc MPC5200 BRS6l" + +class MPC5200_BOARD_DP2(Boolean): + value = False + undef = True + descr = "Enable settings for powerpc MPC5200 dp2" + +class MPC5200_BOARD_ICECUBE(Boolean): + value = False + undef = True + descr = "Enable settings for powerpc MPC5200 icecube" + +class MPC5200_BOARD_PM520_CR825(Boolean): + value = False + undef = True + descr = "Enable settings for powerpc MPC5200 PM520_CR825" + +class MPC5200_BOARD_PM520_ZE30(Boolean): + value = False + undef = True + descr = "Enable settings for powerpc MPC5200 pm520" + + +# RTEMS internal options. +class USE_CLANG(Boolean): + value = False + undef = True + descr = "Use Clang compiler." + +class USE_GCC(Boolean): + value = True + undef = True + descr = "Use GCC compiler.." + + + + +# THESE ARE UNSORTED! + + +class LPC24XX_PCLKDIV(String): + value = "1U" + undef = True + descr = "clock divider for default PCLK (PCLK = CCLK / PCLKDIV)" + + +class LPC24XX_EMCCLKDIV(String): + value = "2U" + undef = True + descr = "clock divider for EMCCLK (EMCCLK = CCLK / EMCCLKDIV)" + + +class LPC24XX_EMC_MT48LC4M16A2(Boolean): + value = False + undef = True + descr = "enable Micron MT48LC4M16A2 configuration for EMC" + + +class LPC24XX_EMC_W9825G2JB75I(Boolean): + value = True + undef = True + descr = "enable Winbond W9825G2JB75I configuration for EMC" + + +class LPC24XX_EMC_IS42S32800D7(Boolean): + value = True + undef = True + descr = "enable ISSI IS42S32800D7 configuration for EMC" + + +class LPC24XX_EMC_IS42S32800B(Boolean): + value = True + undef = True + descr = "enable ISSI IS42S32800B configuration for EMC" + + +class LPC24XX_EMC_M29W160E(Boolean): + value = True + undef = True + descr = "enable M29W160E configuration for EMC" + + +class LPC24XX_EMC_M29W320E70(Boolean): + value = False + undef = True + descr = "enable M29W320E70 configuration for EMC" + + +class LPC24XX_EMC_SST39VF3201(Boolean): + value = True + undef = True + descr = "enable SST39VF3201 configuration for EMC" + + +class LPC_DMA_CHANNEL_COUNT(Integer): + value = 2 + undef = True + descr = "DMA channel count" + + +class BSP_USB_OTG_TRANSCEIVER_I2C_ADDR(String): + value = "" + undef = True + descr = "USB OTG transceiver I2C address used by USB stack" + + +class MPC55XX_CHIP_FAMILY(String): + value = "(MPC55XX_CHIP_TYPE / 10)" + undef = True + descr = "specifies the chip family in use (e.g. 555 for MPC5554)" + + +class SMSC9218I_EDMA_RX_CHANNEL(Integer): + value = 49 + undef = True + descr = "receive eDMA channel for SMSC9218I network interface" + +class SMSC9218I_EDMA_TX_CHANNEL(Integer): + value = 48 + undef = True + descr = "transmit eDMA channel for SMSC9218I network interface" + + +class SMSC9218I_BIG_ENDIAN_SUPPORT(Boolean): + value = True + undef = True + descr = "enable big endian support for SMSC9218I network interface" + + +class SMSC9218I_ENABLE_LED_OUTPUTS(Boolean): + value = True + undef = True + descr = "enable LED outputs for SMSC9218I network interface" + + +class SMSC9218I_RESET_PIN(Integer): + value = 186 + undef = True + descr = "reset pin for SMSC9218I network interface" + + +class SMSC9218I_IRQ_PIN(Integer): + value = 193 + undef = True + descr = "IRQ pin for SMSC9218I network interface" + + +class MPC55XX_SYSTEM_CLOCK_DIVIDER(Integer): + value = 1 + undef = True + descr = "system clock divider" + + +class MPC55XX_REFERENCE_CLOCK(Integer): + value = 8000000 + undef = True + descr = "Must be defined to be the external reference clock (in Hz) for clock generation" + + +class MPC55XX_SYSTEM_CLOCK(Integer): + value = 8000000 + undef = True + descr = "The system clock frequency in Hz." + + +class MPC55XX_FMPLL_ESYNCR1_CLKCFG(Integer): + value = 7 + undef = True + descr = "the FMPLL ESYNCR1[CLKCFG] value" + +class MPC83XX_BOARD_HSC_CM01(Boolean): + value = True + undef = True + descr = "if defined, then use settings for the HSC_CM01 board" + + + + + + +class LM3S69XX_ENABLE_UART_0(Boolean): + value = True + undef = True + descr = "enable UART 0" + + +class LM3S69XX_ENABLE_UART_1(Boolean): + value = True + undef = True + descr = "enable UART 1" + + +class LM3S69XX_ENABLE_UART_2(Boolean): + value = True + undef = True + descr = "enable UART 2" + + +class LM3S69XX_HAS_UDMA(Boolean): + value = False + undef = True + descr = "defined if MCU supports UDMA" + + +class LM3S69XX_MCU_LM3S3749(Boolean): + value = False + undef = True + descr = "board has LM3S3749 MCU" + + +class LM3S69XX_MCU_LM3S6965(Boolean): + value = False + undef = True + descr = "board has LM3S6965 MCU" + + +class LM3S69XX_NUM_GPIO_BLOCKS(Integer): + value = 1 + undef = True + descr = "number of GPIO blocks supported by MCU" + + +class LM3S69XX_NUM_SSI_BLOCKS(Integer): + value = 1 + undef = True + descr = "number of SSI blocks supported by MCU" + + +class LM3S69XX_SSI_CLOCK(String): + value = "1000000U" + undef = True + descr = "SSI clock in Hz" + + +class LM3S69XX_SYSTEM_CLOCK(String): + value = "50000000U" + undef = True + descr = "system clock in Hz" + + +class LM3S69XX_UART_BAUD(String): + value = "115200U" + undef = True + descr = "baud for UARTs" + + +class LM3S69XX_USE_AHB_FOR_GPIO(Boolean): + value = False + undef = True + descr = "use AHB apperture to access GPIO registers" + + +class LM3S69XX_XTAL_CONFIG(String): + value = "0x10" + undef = True + descr = "crystal configuration for RCC register" + + +class BSP_ARM_A9MPCORE_PERIPHCLK(String): + value = "100000000U" + undef = True + descr = "ARM Cortex-A9 MPCore PERIPHCLK clock frequency in Hz" + + + +class STM32F4_HSE_OSCILLATOR(Integer): + value = 8000000 + undef = True + descr = "HSE oscillator frequency in Hz" + + + +class STM32F4_SYSCLK(Integer): + value = 16000000 + undef = True + descr = "SYSCLK frequency in Hz" + + + +class STM32F4_HCLK(Integer): + value = 16000000 + undef = True + descr = "HCLK frequency in Hz" + + + +class STM32F4_PCLK1(Integer): + value = 16000000 + undef = True + descr = "PCLK1 frequency in Hz" + + + +class STM32F4_PCLK2(Integer): + value = 16000000 + undef = True + descr = "PCLK2 frequency in Hz" + + + +class STM32F4_USART_BAUD(Integer): + value = 115200 + undef = True + descr = "baud for USARTs" + + + +class STM32F4_ENABLE_USART_1(Boolean): + value = False + undef = True + descr = "enable USART 1" + + +class STM32F4_ENABLE_USART_2(Boolean): + value = False + undef = True + descr = "enable USART 2" + + +class STM32F4_ENABLE_USART_3(Boolean): + value = True + undef = True + descr = "enable USART 3" + + +class STM32F4_ENABLE_UART_4(Boolean): + value = False + undef = True + descr = "enable UART 4" + + +class STM32F4_ENABLE_UART_5(Boolean): + value = False + undef = True + descr = "enable UART 5" + + +class STM32F4_ENABLE_USART_6(Boolean): + value = False + undef = True + descr = "enable USART 6" + + +class MPC83XX_BOARD_BR_UID(Boolean): + value = True + undef = True + descr = "if defined, then use settings for the BR UID board" + + +class MPC83XX_NETWORK_INTERFACE_0_PHY_ADDR(String): + value = "0x11" + undef = True + quote = False + descr = "PHY address of network interface 0" + + +class MPC83XX_CHIP_TYPE(Integer): + value = 0 + undef = True + descr = "chip type of the MPC83XX family" + + +class MPC83XX_HAS_NAND_LP_FLASH_ON_CS0(Boolean): + value = True + undef = True + descr = "indicates if the board has a NAND large page flash on chip select 0" + + +class BSP_INTERRUPT_HANDLER_TABLE_SIZE(Integer): + no_default = True + undef = True + descr = "defines the maximum number of interrupt handlers" + + +class MPC55XX_NULL_POINTER_PROTECTION(Boolean): + value = True + undef = True + descr = "enable NULL pointer protection" + + +class MPC55XX_CLOCK_PIT_CHANNEL(Integer): + no_default = True + undef = True + descr = "selects the PIT channel for the RTEMS system tick (the default is the last channel" + + +class MPC55XX_NEEDS_LOW_LEVEL_INIT(Boolean): + value = True + undef = True + descr = "if defined, do low level initialization" + + +class BSP_DATA_CACHE_USE_WRITE_THROUGH(Boolean): + no_default = True + undef = True + descr = "use write-through for data cache" + + +class MPC55XX_BOARD_MPC5674F_ECU508(Boolean): + value = True + undef = True + descr = "if defined, use custom settings for ECU508 board" + + +class MPC55XX_CONSOLE_MINOR(Integer): + value = 0 + undef = True + descr = "determines which serial device will be registered as /dev/console" + + +class MPC55XX_BOARD_MPC5674F_RSM6(Boolean): + value = True + undef = True + descr = "if defined, use custom settings for RSM6 board" + + +class MPC55XX_ENABLE_START_PROLOGUE(Boolean): + value = True + undef = True + descr = "if defined, enable start prologue" + + +class BSP_DEFAULT_BAUD_RATE(Integer): + value = 115200 + undef = True + descr = "default console baud" + + +class MPC55XX_EARLY_STACK_SIZE(Integer): + value = 1024 + undef = True + descr = "size of the early initialization stack in bytes" + +class MPC83XX_BOARD_MPC8309SOM(Boolean): + value = True + undef = True + descr = "if defined, then use settings for the MPC8309SOM board" diff --git a/rtems_waf/hello.py b/rtems_waf/hello.py new file mode 100644 index 0000000000..95b1872ce4 --- /dev/null +++ b/rtems_waf/hello.py @@ -0,0 +1,35 @@ +from subprocess import Popen, PIPE +from .tools import run +from waflib.ConfigSet import ConfigSet + +def rtems_cmd_hello(ctx): + c = ConfigSet("build/c4che/_cache.py") + for bsp in c.BSP: + print("\nBUILDING: %s" % bsp) + a, b = bsp.split("/") + c = ConfigSet("build/c4che/%s/%s_cache.py" % (a, b)) + + cflags, cf_stderr, cf_rc = run(["./rtems-config", "--bsp=%s" % bsp, "--cflags"]) + ldflags, ld_stderr, ld_rc = run(["./rtems-config", "--bsp=%s" % bsp, "--ldflags"]) + + if cf_rc or ld_rc: + print(cf_stderr) + print(ld_stderr) + + cmd = c.BIN_RTEMS_CC + cmd += cflags.decode("utf-8").split(" ") + cmd.append("-o") + cmd.append("/tmp/hello") + cmd.append("testsuites/samples/hello/init.c") + cmd += ldflags.decode("utf-8").split(" ") + + print(" ".join(cmd)) + stdout, stderr, returncode = run(cmd) + + if stdout: + print(stdout) + if stderr: + print(stderr) + + if cf_rc or ld_rc or returncode: + ctx.fatal("Compilation Failed") diff --git a/rtems_waf/info.py b/rtems_waf/info.py new file mode 100644 index 0000000000..50164581a5 --- /dev/null +++ b/rtems_waf/info.py @@ -0,0 +1,72 @@ +from waflib.ConfigSet import ConfigSet + +def system(ctx): + info = {} + + from waflib.Utils import unversioned_sys_platform + info["platform_waf"] = unversioned_sys_platform() + + from multiprocessing import cpu_count + info["cpu_count"] = cpu_count() + + # platform information + import platform + methods = [ + "machine", + "platform", + "processor", + "python_build", + "python_version", + "python_version_tuple", + "system", +# "system_alias", + "release", +# "version", +# "uname", + "win32_ver", + "mac_ver", + "linux_distribution" + ] + for method in methods: + info[method] = getattr(platform, method)() + + return info + + +def rtems(ctx): + info = {} + + c = ConfigSet("build/c4che/_cache.py") + + + info["version"] = c.RTEMS_VERSION + + info["bsp"] = {} + for bsp in c.BSP: + a, b = bsp.split("/") + c = ConfigSet("build/c4che/%s/%s_cache.py" % (a, b)) + + b = {} + + info["bsp"][bsp] = b + + return info + + +def rtems_cmd_info(ctx): + info = {} + + info["system"] = system(ctx) + info["rtems"] = rtems(ctx) + + + for val in sorted(info): + print("\n%s" % val) + for v in sorted(info[val]): + print(" %s = %s" % (v, info[val][v])) + +# import pprint +# pp = pprint.PrettyPrinter(indent=4) +# pp.pprint(info) + + diff --git a/rtems_waf/rtems_config.py b/rtems_waf/rtems_config.py new file mode 100755 index 0000000000..8c8e21d04c --- /dev/null +++ b/rtems_waf/rtems_config.py @@ -0,0 +1,62 @@ + + +# --- ANYTHING ABOVE THIS LINE IS AUTOGENERATED --- +from argparse import ArgumentParser + +def arg_print(args): + print(" ".join(args)) + +parser = ArgumentParser(description="RTEMS %s Configuration" % RTEMS_VERSION) +parser.add_argument('--version', action='version', version=RTEMS_VERSION) + +compiler = parser.add_argument_group('BSP Settings / Information') +compiler.add_argument('--bsp', action="store", help="BSP to show options for, use --list for a list.", nargs=1) +compiler.add_argument('--list', action="store_true", help="List available BSPs.") +compiler.add_argument('--list-format', action="store", help="List available bsps using LIST_FORMAT. (default: %%(arch)s/%%(bsp)s)", default=False, nargs="?") + +compiler = parser.add_argument_group('Compiler Arguments') +compiler_e = compiler.add_mutually_exclusive_group() +compiler_e.add_argument('--cflags', action="store_true", help="C Flags.") +compiler_e.add_argument('--libs', action="store_true", help="Libraries used for linking.") +compiler_e.add_argument('--ldflags', action="store_true", help="Linker flags.") + +args = parser.parse_args() + + +if args.list is True: + print("List of Installed BSPs") + print("~~~~~~~~~~~~~~~~~~~~~~") + for b in sorted(BSP_LIST): + print("%-16s %s" % (b, BSP_LIST[b]["description"])) + exit(0) + + +if args.list_format is not False: + if args.list_format is None: + args.list_format = "%(arch)s/%(bsp)s" + + tmp = [] + for b in sorted(BSP_LIST): + arch, bsp = b.split("/") + tmp.append(args.list_format % {"arch": arch, "bsp": bsp}) + print(" ".join(tmp)) + exit(0) + + +if args.bsp is not None: + bsp = args.bsp[0] #XXX: Why is this a list? + + if bsp not in BSP_LIST: + print("Unknown BSP \"%s\", use --list." % bsp) + exit(1) + + if args.cflags is True: + arg_print(BSP_LIST[bsp]["cflags"]) + elif args.libs is True: + arg_print(BSP_LIST[bsp]["libs"]) + elif args.ldflags is True: + arg_print(BSP_LIST[bsp]["ldflags"]) + exit(0) + + +#parser.print_usage() diff --git a/rtems_waf/switch.py b/rtems_waf/switch.py new file mode 100644 index 0000000000..e4bb7a6bf5 --- /dev/null +++ b/rtems_waf/switch.py @@ -0,0 +1,21 @@ +def options(ctx): + ctx.load('compiler_c') + ctx.load('compiler_cxx') + + ctx.add_option('--enable-tests', action='store_true', default=False, help='Enable tests (TEMP OPTION!)') + + grp = ctx.add_option_group("config (configuration file) options") + grp.add_option('--bsp', dest='bsps', help="Command seperated list of BSPs to build.", type='string') + grp.add_option('--list', action='store_true', default=False, help='List available BSPs.') + grp.add_option('--prefix', dest='prefix', help="Install prefix.", type='string') + grp.add_option('--path-tools', dest='path_tools', help="Directory for RTEMS tools.", type='string') + grp.add_option('--force', action='store_true', default=False, help='Force overwriting config.cfg.') + + grp = ctx.add_option_group("docs documentation options") + grp.add_option('--out', dest='file_out', default="options.html", help="Output file (default: %default)", type='string') + grp.add_option('--html', action='store_true', default=True, help='Generate HTML documentation. (default: yes)') + grp.add_option('--txt', action='store_true', default=True, help='Generate Text documentation. (default: no)') + + grp = ctx.add_option_group("developer options") + grp.add_option('--build-config', action='store_true', default=False, help="Write build configuration. (default: no)") + grp.add_option('--build-json', action='store_true', default=False, help="Write JSON build log.. (default: no)") diff --git a/rtems_waf/tools.py b/rtems_waf/tools.py new file mode 100644 index 0000000000..9484de3526 --- /dev/null +++ b/rtems_waf/tools.py @@ -0,0 +1,211 @@ +from waflib.Logs import pprint +from os.path import exists, getmtime + + +def fatal(str): + pprint('RED', str) + exit(1) + +def generate_rtems_config(ctx, file_in, file_out, devel=False): + from os import fchmod + from pprint import PrettyPrinter + pp = PrettyPrinter(depth=4) + bsps = {} + + + for bsp in ctx.env.BSP: + env = ctx.all_envs[bsp] + bsps[bsp] = { + "cflags": env.CFLAGS + env.CONFIG_CFLAGS, + "libs": env.LIBS + ["-lrtemscpu -lrtemsbsp"] + env.CONFIG_LIBS, + "ldflags": env.LDFLAGS + env.CONFIG_LDFLAGS, + "description": env.CONFIG_DESCRIPTION + } + + if devel: + srcnode = ctx.srcnode.abspath() + path_bld = "%s/%s" % (ctx.bldnode.abspath(), bsp) + + include = [] + include.append("-I%s/include" % srcnode) + include.append("-I%s/include" % path_bld) + include.append("-I%s/include/rtems" % path_bld) + bsps[bsp]["cflags"] = include + bsps[bsp]["cflags"] +# bsps[bsp]["libs"] = ["%s/c/start.o" % path_bld] + bsps[bsp]["libs"] + + ldflags = [] + ldflags.append("-specs %s/gcc_spec" % path_bld) + ldflags.append("-L%s/cpukit/" % path_bld) + ldflags.append("-L%s/c/" % path_bld) +# ldflags.append("-Wl,-T %s/c/linkcmds" % path_bld) +# bsps[bsp]["ldflags"] = ldflags + bsps[bsp]["libs"] + bsps[bsp]["ldflags"] += ldflags + ["-Wl,-start-group"] + bsps[bsp]["libs"] + ["-lc"] + ["-lgcc"] + ["-Wl,-end-group"] + + else: + raise Exception("Doesn't work in install mode yet.") + + #XXX: file_in and file_out can be automatically calculated they don't need to be parms. + with open(file_in, "r") as fp: + config = fp.read() + + with open(file_out, "w") as fp: + fp.write('#!%s\n' % ctx.env.BIN_PYTHON[0]) # XXX: How does this work on Windows? + fp.write('RTEMS_VERSION = "%s"\n' % ctx.env.RTEMS_VERSION) + fp.write('PREFIX="%s"\n' % ctx.env.PREFIX) + fp.write('BSP_LIST = %s\n' % pp.pformat(bsps)) + fp.write(config) + fchmod(fp.fileno(), 0o755) + + +def generate_gcc_spec_file(ctx, devel=False): + path_bld = "%s/%s" % (ctx.bldnode.abspath(), ctx.variant) + data = [] + + def expand_flags(ctx, obj_list): + path_bld = "%s/%s" % (ctx.bldnode.abspath(), ctx.variant) + l = [] + for obj in obj_list: + obj = obj.replace("${RTEMS}", "%s/c" % path_bld) + if obj.endswith('.o'): + fmt = '%s%%s' + else: + fmt = '%s' + l.append(fmt % obj) + return " ".join(l) + + data.append("*startfile:") + data.append(expand_flags(ctx, ctx.env.LINK_START)) + data.append("") + data.append("*endfile:") + data.append(expand_flags(ctx, ctx.env.LINK_END)) + data.append("") + data.append("*link:") + data.append(expand_flags(ctx, ctx.env.LINK_LINK)) + + with open("%s/gcc_spec" % path_bld, "w") as fp: + for line in data: + fp.write(line) + fp.write("\n") + + ctx.env.append_value('cfg_files', "%s/gcc_spec" % path_bld) + + return "%s/%s/gcc_spec" % (ctx.bldnode, ctx.variant) + + + +# Get all the BSPs for a specific arch +def rtems_bsp_arch_all(arch): + from .bsp import list_bsp + if arch not in list_bsp: + fatal("Incorrect arch for --bsp, must be in the form of arch or arch/name: \"%s\"" % arch) + bsp_list = [] + for bsp in list_bsp[arch]: + bsp_list += ['%s/%s' % (arch, bsp)] + return bsp_list + + +# Get all the BSPs +def rtems_bsp_all(): + from .bsp import list_bsp + bsp_list = [] + for arch in list_bsp: + for bsp in list_bsp[arch]: + bsp_list += ['%s/%s' % (arch, bsp)] + return bsp_list + + +def rtems_bsp_wildcard(pattern): + if '.' in pattern: + pattern = pattern.replace('.', '\.') + if '*' in pattern: + pattern = pattern.replace('*', '.*') + return '^' + pattern + '$' + + +def rtems_bsp_list(bsps): + import re + from .bsp import list_bsp + + bsp_list = [x.strip() for x in bsps.split(',')] + + verified_bsp_list = [] + + for bsp in bsp_list: + if '/' not in bsp: + fatal("Incorrect value for --bsp must be in the form of arch/name: \"%s\"" % bsp) + (arch, bsp) = bsp.split('/') + pa = re.compile(rtems_bsp_wildcard(arch), re.IGNORECASE) + pb = re.compile(rtems_bsp_wildcard(bsp), re.IGNORECASE) + for arch in list_bsp: + if pa.match(arch) is not None: + for bsp in list_bsp[arch]: + if pb.match(bsp) is not None: + arch_bsp = '%s/%s' % (arch, bsp) + verified_bsp_list += [arch_bsp] + return sorted(verified_bsp_list) + + +def rtems_cmd_config(ctx): + if ctx.options.list is True: + from .bsp import list_bsp + + from rtems_waf.config import BuildConfig + cfg = BuildConfig() + + for arch in sorted(list_bsp): + print(arch) + for bsp in sorted(list_bsp[arch]): + descr = cfg.bsp_get_detail(arch, bsp) + print(" %-20s %s" % (bsp, descr)) + print() + return + + if ctx.options.force is False and exists("config.cfg"): + ctx.fatal("Please delete config.cfg before creating a new one.") + + if not ctx.options.bsps: + ctx.fatal("You must specify a single or comma separated list of BSPs using --bsp") + + bsp_list = rtems_bsp_list(ctx.options.bsps) + if not bsp_list: + ctx.fatal("You must specify a single or comma separated list of BSPs using --bsp") + + from rtems_waf.config import BuildConfig + cfg = BuildConfig(bsp_list) + cfg.option_set("general", "PATH_TOOLS", ctx.options.path_tools or "") + cfg.option_set("general", "PREFIX", ctx.options.prefix or "") + cfg.save() + + pprint("YELLOW", "Wrote config.cfg") + archs = {} + for bsp in bsp_list: + pprint("YELLOW", " - %s" % bsp) + arch = bsp.split('/')[0] + if arch not in archs: + archs[arch] = 0 + archs[arch] += 1 + + pprint("YELLOW", "Configured BSPS:") + pprint("YELLOW", " Total : %d" % len(bsp_list)) + arch_list = sorted(archs.keys()) + for arch in arch_list: + pprint("YELLOW", " %-8s: %d" % (arch, archs[arch])) + + +def rtems_cmd_bsp(ctx): + ctx.fatal("Not implemented.") + print("List of available BSPs") + print("List of DISABLED BSPs") + + +# Get file mtime. +def get_file_mtime(file): + return getmtime(file) + + +from subprocess import Popen, PIPE + +def run(cmd): + p = Popen(cmd, stdout=PIPE, stderr=PIPE) + stdout, stderr = p.communicate() + return stdout[:-1], stderr[:-1], p.returncode diff --git a/rtems_waf/waf.py b/rtems_waf/waf.py new file mode 100644 index 0000000000..2a3595044f --- /dev/null +++ b/rtems_waf/waf.py @@ -0,0 +1,274 @@ +from waflib.Task import Task +from waflib.TaskGen import feature, before, after, extension, after_method +from waflib.Configure import conf +from waflib.Logs import pprint +#from waflib.Build import BuildContext, CleanContext, InstallContext, UninstallContext +#from waflib import Build, Scripting +#from waflib.Tools import c_preproc +#from rtems_waf import gccdeps +#from waflib import Logs +#import ConfigParser + + +################# +# Handle .S Files +################# +class casm(Task): +# run_str = '${CC} ${ARCH_ST:ARCH} ${CFLAGS} ${CPPFLAGS} ${CPPPATH_ST:INCPATHS} ${DEFINES_ST:DEFINES} ${CC_SRC_F}${SRC} ${CC_TGT_F}${TGT}' + run_str = '${CC} -DASM ${ARCH_ST:ARCH} ${CFLAGS} ${CPPFLAGS} ${FRAMEWORKPATH_ST:FRAMEWORKPATH} ${CPPPATH_ST:INCPATHS} ${DEFINES_ST:DEFINES} ${CC_SRC_F}${SRC} ${CC_TGT_F}${TGT}' + ext_in = ['.h'] + ext_out = ['.o'] + color = 'BLUE' + +@extension('.S') +def asm_hook(self, node): + return self.create_compiled_task('casm', node) + + +########## +# Features +########## +@feature('bld_include') +@after_method('apply_incpaths') +def insert_blddir(self): + self.env.prepend_value('INCPATHS', ['include']) + +@feature('src_include') +@after_method('apply_incpaths', 'insert_blddir') +def insert_srcdir(self): + path = self.bld.srcnode.abspath() + self.env.append_value('INCPATHS', "%s/include" % path) + + if self.env.ENABLE_SMP: + self.env.append_value('INCPATHS', "%s/cpukit/score/include/" % path) + self.env.append_value('INCPATHS', "%s/cpukit/rtems/include/" % path) + +@feature('src_include_rtems') +@after_method('apply_incpaths', 'insert_blddir') +def insert_srcdir_rtems(self): + self.env.append_value('INCPATHS', "%s/include/rtems" % self.bld.srcnode.abspath()) + +@feature('src_include_networking') +@after_method('apply_incpaths', 'insert_blddir') +def insert_srcdir_networking(self): + self.env.append_value('INCPATHS', "%s/cpukit/libnetworking" % self.bld.srcnode.abspath()) + +@feature('src_include_bsp') +@after_method('apply_incpaths', 'insert_blddir') +def insert_srcdir_bsp(self): + self.env.append_value('INCPATHS', "%s/include/bsp" % self.bld.srcnode.abspath()) + +@feature('src_include_libcpu') +@after_method('apply_incpaths', 'insert_blddir') +def insert_srcdir_libcpu(self): + self.env.append_value('INCPATHS', "%s/include/libcpu" % self.bld.srcnode.abspath()) + +@feature('src_include_libchip') +@after_method('apply_incpaths', 'insert_blddir') +def insert_srcdir_libchip(self): + self.env.append_value('INCPATHS', "%s/include/libchip" % self.bld.srcnode.abspath()) + + +########### +# Shortcuts +########### +def rtems_build(cmd, ctx, target_name, source, **kwarg): + feature = "c bld_include" + if "features" in kwarg: + feature = "%s %s" % (kwarg["features"], feature) + del kwarg["features"] + + cmd( + source = source, + target = target_name, + features = feature, + install_path = ctx.env.LIBDIR, + **kwarg) + +# There's probably a better way to do this. +@conf +def rtems_lib(ctx, target_name, source, **kwarg): + rtems_build(ctx.stlib, ctx, target_name, source, **kwarg) + +@conf +def rtems_obj(ctx, target_name, source, **kwarg): + rtems_build(ctx, ctx, target_name, source, **kwarg) + +@conf +def rtems_program(ctx, target_name, source, **kwarg): + rtems_build(ctx.program, ctx, target_name, source, **kwarg) + + +@conf +def copy(ctx, source, target, name): + ctx( + rule='cp ${SRC} ${TGT}', # XXX: Make something that works on windows. + source=source, + target=target, + name=name + ) + +################# +# Configure Steps +################# +@conf +def check_func(ctx, func, mandatory=False): + ctx.check_cc( + mandatory = mandatory, + fragment = "char %s();\n int main() { return %s(); return 0; }" % (func, func), + define_name = "HAVE_%s" % func.upper(), + execute = False, + msg = "Checking for C library function %s" % func + ) + + +@conf +def check_size(ctx, field, mandatory=False, define_name=None): + if define_name is None: + define_name = "SIZEOF_%s" % field.upper() + + ctx.check_cc( + mandatory = mandatory, + fragment = """ + #include <sys/types.h> + #include <stdio.h> + main() { + printf("%%d", sizeof(%s)); + return 0; + } + """ % field, + execute = True, + define_ret = True, + define_name = define_name, + quote = False, + msg = "Checking size of %s" % field + ) + + +# XXX: It prints "yes" even if it doesn't exist. +@conf +def check_define(ctx, define, header, mandatory=False): + ctx.check( + mandatory = mandatory, + fragment = '''#include <%s>\n int main () {\n #ifdef %s\n return 0;\n #endif\n return 1; }\n''' % (header, define), + define_name = "HAVE_%s" % define.upper(), + features = "c cprogram", + execute = True, + msg = "Checking for define %s in %s" % (define, header) + ) + + +################################################# +# This writes objects to a file if there are > 25 +# objects to avoid commandline arg limits for ar. +################################################# +def rtems_stlib_command(self, *k, **kw): + # Following block borrowed from waflib/Tools/msvc.py + bld = self.generator.bld + + try: + if not kw.get('cwd', None): + kw['cwd'] = bld.cwd + except AttributeError: + bld.cwd = kw['cwd'] = bld.variant_dir + + # Put the objects on the commandline if there aren't enough to + # warrant writing to a file. + if len(self.inputs) < 25: + return self.generator.bld.exec_command(*k, **kw) + + file_obj = "%s_files" % self.outputs[0].abspath() + with open(file_obj, "w") as fp: + for f in self.inputs: + fp.write("%s\n" % f.bldpath()) + + pprint("YELLOW", "Wrote %d objects to %s" % (len(self.inputs), file_obj)) + cmd = self.env.AR + ["rc", self.outputs[0].bldpath(), "@%s_files" % self.outputs[0].bldpath()] + + # Task information for JSON build output. + if self.env.BUILD_JSON: + kw["json_task_self"] = self + + return self.generator.bld.exec_command(cmd, **kw) + + + +# Tests +@feature('test_include') +@after_method('apply_incpaths') +def insert_test_include(self): + self.env.prepend_value('INCPATHS', "%s/testsuites/support/include" % self.bld.srcnode.abspath()) + + +from waflib.Tools.c import cprogram +from waflib.Tools.ccroot import USELIB_VARS + +USELIB_VARS['test_cprogram'] = set(['STLIB', 'STLIBPATH', 'LDFLAGS']) + +#from StringIO import StringIO +from os import fdopen, pipe, read, close +class test_cprogram(cprogram): + run_str = '${LINK_CC} ${LDFLAGS} ${CFLAGS} ${CCLNK_SRC_F}${SRC} ${CCLNK_TGT_F}${TGT[0].abspath()} -specs gcc_spec -Wl,-Bstatic -Lc -Lcpukit -Wl,-start-group -lc -lgcc ${STLIBPATH_ST:STLIBPATH} ${STLIB_ST:STLIB} -Wl,-end-group' + + def exec_command(self, cmd, **kw): + r, w = pipe() + rfd = fdopen(r, "rb", 0) + kw["stderr"] = fdopen(w, "wb", 0) + ret = cprogram.exec_command(self, cmd, **kw) + kw["stderr"].close() + + if ret == 1: + data = rfd.readlines() + if " ".join(data).find("will not fit in region") != -1: + file = self.outputs[0].abspath() + with open(file, "w") as fp: + fp.write("Target does not meet test memory constraints.\n") + pprint("RED", "Target \"%s\" does not meet test memory constraints." % file) + rfd.close() + return 0 + print("".join(data)) + + rfd.close() + return ret + + + +@conf +def rtems_test(ctx, target_name, source_name, **kwarg): + features_merged = "c test_cprogram bld_include src_include" + if "features" in kwarg: + features_merged = "%s %s" % (kwarg["features"], features_merged) + del kwarg["features"] + + use_merged = "rtemsbsp rtemscpu" + if "use" in kwarg: + use_merged = "%s %s" % (kwarg["use"], use_merged) + del kwarg["use"] + + ctx( + source = source_name, + target = "test_%s" % target_name, + features = features_merged, + use = use_merged, + install_path = ctx.env.TESTDIR, + **kwarg + ) + + +@conf +def rtems_doc(ctx, section): + pprint("YELLOW", "See http://docs.rtems.org/%s/user/#%s (Not activated yet!)" % (ctx.env.RTEMS_VERSION, section)) + + +@conf +def rtems_fatal(ctx, message, section): + pprint("RED", message) + ctx.rtems_doc(section) + ctx.fatal("Fatal error") + + +@conf +def rtems_warn(ctx, message, section): + pprint("YELLOW", message) + ctx.rtems_doc(section) + diff --git a/testsuites/fstests/wscript b/testsuites/fstests/wscript new file mode 100644 index 0000000000..ae3214ab97 --- /dev/null +++ b/testsuites/fstests/wscript @@ -0,0 +1,92 @@ +def build(ctx): + srcnode = ctx.srcnode. abspath() + + includes_common = [ + "%s/testsuites/fstests/support" % srcnode, + "%s/testsuites/psxtests/include" % srcnode, + "%s/testsuites/support/include" % srcnode, + ] + + def test(target, source, includes=[], use=[]): + ctx.rtems_test( + "fstests_%s" % target, + source, + includes = includes_common + includes, + use = use + ) + + def objects_common(target, source): + ctx.objects( + source = source, + name = "fstests_%s_common" % target, + includes = ["%s/testsuites/fstests/%s_support" % (srcnode, target)] + includes_common, + features = "bld_include src_include" + ) + + + def imfs(target, source): + test( + target, + source, + includes = ["%s/testsuites/fstests/imfs_support" % srcnode], + use = "fstests_imfs_common" + ) + objects_common("imfs", ["imfs_support/fs_support.c", "support/fstest_support.c"]) + imfs("imfs_fserror", ["fserror/test.c"]) + imfs("imfs_fslink", ["fslink/test.c"]) + imfs("imfs_fspatheval", ["fspatheval/test.c"]) + imfs("imfs_fspermission", ["fspermission/test.c"]) + imfs("imfs_fsrdwr", ["fsrdwr/init.c"]) + imfs("imfs_fssymlink", ["fssymlink/test.c"]) + imfs("imfs_fstime", ["fstime/test.c"]) + + + + def mdosfs(target, source): + test( + target, + source, + includes = ["%s/testsuites/fstests/mdosfs_support" % srcnode], + use = "fstests_mdosfs_common" + ) + objects_common("mdosfs", ["mdosfs_support/fs_support.c", "support/fstest_support.c", "support/ramdisk_support.c"]) + mdosfs("mdosfs_fserror", ["fserror/test.c"]) + mdosfs("mdosfs_fspatheval", ["fspatheval/test.c"]) + mdosfs("mdosfs_fsrdwr", ["fsrdwr/init.c"]) + mdosfs("mdosfs_fstime", ["fstime/test.c"]) + + + + def mimfs(target, source): + test( + target, + source, + includes = ["%s/testsuites/fstests/mimfs_support" % srcnode], + use = "fstests_mimfs_common" + ) + objects_common("mimfs", ["mimfs_support/fs_support.c", "support/fstest_support.c"]) + mimfs("mimfs_fserror", ["fserror/test.c"]) + mimfs("mimfs_fslink", ["fslink/test.c"]) + mimfs("mimfs_fspatheval", ["fspatheval/test.c"]) + mimfs("mimfs_fspermission", ["fspermission/test.c"]) + mimfs("mimfs_fsrdwr", ["fsrdwr/init.c"]) + mimfs("mimfs_fssymlink", ["fssymlink/test.c"]) + mimfs("mimfs_fstime", ["fstime/test.c"]) + + + + def mrfs(target, source): + test( + target, + source, + includes = ["%s/testsuites/fstests/mimfs_support" % srcnode], + use = "fstests_mrfs_common" + ) + objects_common("mrfs", ["mrfs_support/fs_support.c", "support/fstest_support.c", "support/ramdisk_support.c"]) + mrfs("mrfs_fserror", ["fserror/test.c"]) + mrfs("mrfs_fslink", ["fslink/test.c"]) + mrfs("mrfs_fspatheval", ["fspatheval/test.c"]) + mrfs("mrfs_fspermission", ["fspermission/test.c"]) + mrfs("mrfs_fsrdwr", ["fsrdwr/init.c"]) + mrfs("mrfs_fssymlink", ["fssymlink/test.c"]) + mrfs("mrfs_fstime", ["fstime/test.c"]) diff --git a/testsuites/libtests/wscript b/testsuites/libtests/wscript new file mode 100644 index 0000000000..757f786afc --- /dev/null +++ b/testsuites/libtests/wscript @@ -0,0 +1,167 @@ +def build(ctx): + + broken = False +# XXX: This needs fixing! + if broken: +# if ctx.env.ENABLE_POSIX: + def posix(target, source): + ctx.rtems_test( + "libtests_posix_%s" % target, + source, + ) + + posix("calloc", "POSIX/calloc.c") + posix("clock_gettime", "POSIX/clock_gettime.c") + posix("close", "POSIX/close.c") + posix("dup2", "POSIX/dup2.c") + posix("fcntl", "POSIX/fcntl.c") + posix("flockfile", "POSIX/flockfile.c") + posix("fork", "POSIX/fork.c") + posix("free", "POSIX/free.c") + posix("fstat", "POSIX/fstat.c") + posix("ftrylockfile", "POSIX/ftrylockfile.c") + posix("funlockfile", "POSIX/funlockfile.c") + posix("getlogin", "POSIX/getlogin.c") + posix("getpwnam", "POSIX/getpwnam.c") + posix("getpwuid", "POSIX/getpwuid.c") + posix("gettimeofday", "POSIX/gettimeofday.c") + posix("getuid", "POSIX/getuid.c") + posix("htonl", "POSIX/htonl.c") + posix("iconv", "POSIX/iconv.c") + posix("iconv_close", "POSIX/iconv_close.c") + posix("iconv_open", "POSIX/iconv_open.c") + posix("kill", "POSIX/kill.c") + posix("longjmp", "POSIX/longjmp.c") + posix("lseek", "POSIX/lseek.c") + posix("lstat", "POSIX/lstat.c") + posix("malloc", "POSIX/malloc.c") + posix("nanosleep", "POSIX/nanosleep.c") + posix("open", "POSIX/open.c") + posix("pipe", "POSIX/pipe.c") + posix("posix_memalign", "POSIX/posix_memalign.c") + posix("read", "POSIX/read.c") + posix("readv", "POSIX/readv.c") + posix("realloc", "POSIX/realloc.c") + posix("setjmp", "POSIX/setjmp.c") + posix("sigaddset", "POSIX/sigaddset.c") + posix("sigdelset", "POSIX/sigdelset.c") + posix("sigemptyset", "POSIX/sigemptyset.c") + posix("sigfillset", "POSIX/sigfillset.c") + posix("sigismember", "POSIX/sigismember.c") + posix("sigprocmask", "POSIX/sigprocmask.c") + posix("stat", "POSIX/stat.c") + posix("unlink", "POSIX/unlink.c") + posix("vfork", "POSIX/vfork.c") + posix("wait", "POSIX/wait.c") + posix("waitpid", "POSIX/waitpid.c") + posix("write", "POSIX/write.c") + posix("writev", "POSIX/writev.c") + + return + + def test(target, source, **kwarg): + ctx.rtems_test( + "libtests_%s" % target, + source, + features = "test_include", + **kwarg + ) + + test("block01", ["block01/init.c"]) + test("block02", ["block02/init.c"]) + test("block03", ["block03/init.c"]) + test("block04", ["block04/init.c"]) + test("block05", ["block05/init.c"]) + test("block06", ["block06/init.c"]) + test("block07", ["block07/init.c"]) + test( + "block08", + ["block08/bdbuf_test1_1.c", "block08/bdbuf_test1_2.c", "block08/bdbuf_test1_3.c", "block08/bdbuf_test1_4.c", "block08/bdbuf_test1_5.c", "block08/bdbuf_test2_1.c", "block08/bdbuf_test2_2.c", "block08/bdbuf_test3_1.c", "block08/bdbuf_test3_2.c", "block08/bdbuf_test3_3.c", "block08/bdbuf_test4_1.c", "block08/bdbuf_test4_2.c", "block08/bdbuf_test4_3.c", "block08/bdbuf_tests.c", "block08/init.c", "block08/test_disk.c"], + includes="%s/testsuites/libtests/block08" % ctx.srcnode.abspath() + ) + test("block09", ["block09/init.c"]) + test("block10", ["block10/init.c"]) + test("bspcmdline01", ["bspcmdline01/init.c"]) +# requires build hacking test("complex", ["complex/docomplex.c", "complex/docomplexf.c", "complex/docomplexl.c", "complex/init.c"], stlib=["m"]) + test("cpuuse", ["cpuuse/init.c", "cpuuse/task1.c", "cpuuse/task2.c", "cpuuse/task3.c", "cpuuse/tswitch.c"]) + test("devfs01", ["devfs01/init.c"]) + test("devfs02", ["devfs02/init.c"]) + test("devfs03", ["devfs03/init.c"]) + test("devfs04", ["devfs04/init.c", "devfs04/test_driver.c"]) + test("deviceio01", ["deviceio01/init.c", "deviceio01/test_driver.c"]) +# test("devnullfatal01", ["../sptests/spfatal_support/init.c"]) # XXX: relative path + test("dumpbuf01", ["dumpbuf01/init.c"]) + test("ftp01", ["ftp01/init.c"]) + test("gxx01", ["gxx01/init.c"]) + test("heapwalk", ["heapwalk/init.c"]) + test("malloc02", ["malloc02/init.c"]) + test("malloc03", ["malloc03/init.c"]) + test("malloc04", ["malloc04/init.c"]) + test("malloc05", ["malloc05/init.c"]) + test("malloctest", ["malloctest/init.c", "malloctest/task1.c"]) + + test( + "math", + ["math/domath.c", "math/init.c"], + stlib=["m"] + ) + + test( + "mathf", + ["mathf/domathf.c", "mathf/init.c"], + stlib=["m"] + ) + + test( + "mathl", + ["mathl/domathl.c", "mathl/init.c"], + stlib=["m"] +) + test("monitor", ["monitor/init.c"]) + + test("monitor02", ["monitor02/init.c"]) + + test( + "mouse01", + ["mouse01/init.c", "mouse01/msmouse.c", "mouse01/serial_mouse_config.c", "termios04/termios_testdriver_intr.c"], + includes="%s/testsuites/libtests/termios04" % ctx.srcnode.abspath() + ) + + test("putenvtest", ["putenvtest/init.c"]) +# test("rtems++", ["Init.cc", "Task1.cc", "Task2.cc", "Task3.cc"]) + + test("rtmonuse", ["rtmonuse/getall.c", "rtmonuse/init.c", "rtmonuse/task1.c"]) + test("stackchk", ["stackchk/blow.c", "stackchk/init.c", "stackchk/task1.c"]) + test("stackchk01", ["stackchk01/init.c"]) + test("stringto01", ["stringto01/init.c"]) +#bin2c test("tar01", ["tar01/init.c"]) +#bin2c test("tar02", ["tar02/init.c"]) + test("tar03", ["tar03/init.c"]) + test("termios", ["termios/init.c"]) + test("termios01", ["termios01/init.c", "termios01/termios_testdriver.c"]) + test("termios02", ["termios02/init.c"]) + test("termios03", ["termios03/init.c", "termios03/termios_testdriver_polled.c"]) + test("termios04", ["termios04/init.c", "termios04/termios_testdriver_intr.c"]) + test( + "termios05", + ["termios05/init.c", "termios05/termios_testdriver_taskdriven.c"], + includes="%s/testsuites/libtests/termios04" % ctx.srcnode.abspath() + ) + test( + "termios06", + ["termios06/init.c", "termios06/test_pppd.c", "termios04/termios_testdriver_intr.c"], + includes="%s/testsuites/libtests/termios03" % ctx.srcnode.abspath() + ) + test( + "termios07", + ["termios07/init.c", "termios04/termios_testdriver_intr.c"], + includes="%s/testsuites/libtests/termios04" % ctx.srcnode.abspath() + ) + test( + "termios08", + ["termios08/init.c", "termios04/termios_testdriver_intr.c"], + includes="%s/testsuites/libtests/termios03" % ctx.srcnode.abspath() + ) + test("tztest", ["tztest/init.c"]) + + diff --git a/testsuites/mptests/wscript b/testsuites/mptests/wscript new file mode 100644 index 0000000000..e727092bc7 --- /dev/null +++ b/testsuites/mptests/wscript @@ -0,0 +1,57 @@ +def build(ctx): + srcnode = ctx.srcnode.abspath() + + def test(target, source, defines): + ctx.rtems_test( + "mptests_%s" % target, + source, + includes = [ + "%s/testsuites/psxtests/include/" % srcnode, + "%s/c/src/libchip/shmdr/" % srcnode, + ], + features = "test_include", + defines = defines + ) + + test("mp01-node01", ["mp01/init.c", "mp01/task1.c"], defines=["NODE_NUMBER=1"]) + test("mp01-node02", ["mp01/init.c", "mp01/task1.c"], defines=["NODE_NUMBER=2"]) + + test("mp02-node01", ["mp02/init.c", "mp02/task1.c"], defines=["NODE_NUMBER=1"]) + test("mp02-node02", ["mp02/init.c", "mp02/task1.c"], defines=["NODE_NUMBER=1"]) + + test("mp03-node01", ["mp03/delay.c", "mp03/init.c", "mp03/task1.c"], defines=["NODE_NUMBER=1"]) + test("mp03-node02", ["mp03/delay.c", "mp03/init.c", "mp03/task1.c"], defines=["NODE_NUMBER=1"]) + + test("mp04-node01", ["mp04/init.c", "mp04/task1.c"], defines=["NODE_NUMBER=1"]) + test("mp04-node02", ["mp04/init.c", "mp04/task1.c"], defines=["NODE_NUMBER=1"]) + + test("mp05-node01", ["mp05/asr.c", "mp05/init.c", "mp05/task1.c"], defines=["NODE_NUMBER=1"]) + test("mp05-node02", ["mp05/asr.c", "mp05/init.c", "mp05/task1.c"], defines=["NODE_NUMBER=1"]) + + test("mp06-node01", ["mp06/init.c", "mp06/task1.c"], defines=["NODE_NUMBER=1"]) + test("mp06-node02", ["mp06/init.c", "mp06/task1.c"], defines=["NODE_NUMBER=1"]) + + test("mp07-node01", ["mp07/init.c", "mp07/task1.c"], defines=["NODE_NUMBER=1"]) + test("mp07-node02", ["mp07/init.c", "mp07/task1.c"], defines=["NODE_NUMBER=1"]) + + test("mp08-node01", ["mp08/init.c", "mp08/task1.c"], defines=["NODE_NUMBER=1"]) + test("mp08-node02", ["mp08/init.c", "mp08/task1.c"], defines=["NODE_NUMBER=1"]) + + test("mp09-node01", ["mp09/init.c", "mp09/recvmsg.c", "mp09/sendmsg.c", "mp09/task1.c"], defines=["NODE_NUMBER=1"]) + test("mp09-node02", ["mp09/init.c", "mp09/recvmsg.c", "mp09/sendmsg.c", "mp09/task1.c"], defines=["NODE_NUMBER=1"]) + + test("mp10-node01", ["mp10/init.c", "mp10/task1.c", "mp10/task2.c", "mp10/task3.c"], defines=["NODE_NUMBER=1"]) + test("mp10-node02", ["mp10/init.c", "mp10/task1.c", "mp10/task2.c", "mp10/task3.c"], defines=["NODE_NUMBER=1"]) + + test("mp11-node01", ["mp11/init.c"], defines=["NODE_NUMBER=1"]) + test("mp11-node02", ["mp11/init.c"], defines=["NODE_NUMBER=1"]) + + test("mp12-node01", ["mp12/init.c"], defines=["NODE_NUMBER=1"]) + test("mp12-node02", ["mp12/init.c"], defines=["NODE_NUMBER=1"]) + + test("mp13-node01", ["mp13/init.c", "mp13/task1.c", "mp13/task2.c"], defines=["NODE_NUMBER=1"]) + test("mp13-node02", ["mp13/init.c", "mp13/task1.c", "mp13/task2.c"], defines=["NODE_NUMBER=1"]) + +#XXX: MAX_LONG_TEST_DURATION needs to be an option in config.cg + test("mp14-node01", ["mp14/delay.c", "mp14/evtask1.c", "mp14/evtmtask.c", "mp14/exit.c", "mp14/init.c", "mp14/msgtask1.c", "mp14/pttask1.c", "mp14/smtask1.c"], defines=["NODE_NUMBER=1", "MAX_LONG_TEST_DURATION=100"]) + test("mp14-node02", ["mp14/delay.c", "mp14/evtask1.c", "mp14/evtmtask.c", "mp14/exit.c", "mp14/init.c", "mp14/msgtask1.c", "mp14/pttask1.c", "mp14/smtask1.c"], defines=["NODE_NUMBER=1", "MAX_LONG_TEST_DURATION=100"]) diff --git a/testsuites/psxtests/wscript b/testsuites/psxtests/wscript new file mode 100644 index 0000000000..fc597ae728 --- /dev/null +++ b/testsuites/psxtests/wscript @@ -0,0 +1,109 @@ +def build(ctx): + srcnode = ctx.srcnode.abspath() + + def test(target, source, **kwarg): + + includes_merge = [] + if "includes" in kwarg: + includes_merge = kwarg["includes"] + del kwarg["includes"] + + ctx.rtems_test( + "sptests_%s" % target, + source, + includes = [ + "%s/testsuites/psxtests/include/" % srcnode, + ] + includes_merge, + features = "test_include", + **kwarg + ) + + + ctx( + target = "test_psxtests_psxhdrs", + source = ["psxhdrs/clock01.c", "psxhdrs/clock02.c", "psxhdrs/clock03.c", "psxhdrs/clock04.c", "psxhdrs/clock05.c", "psxhdrs/clock06.c", "psxhdrs/cond01.c", "psxhdrs/cond02.c", "psxhdrs/cond03.c", "psxhdrs/cond04.c", "psxhdrs/cond05.c", "psxhdrs/cond06.c", "psxhdrs/cond07.c", "psxhdrs/cond08.c", "psxhdrs/cond09.c", "psxhdrs/cond10.c", "psxhdrs/key01.c", "psxhdrs/key02.c", "psxhdrs/key03.c", "psxhdrs/key04.c", "psxhdrs/mutex01.c", "psxhdrs/mutex02.c", "psxhdrs/mutex03.c", "psxhdrs/mutex04.c", "psxhdrs/mutex05.c", "psxhdrs/mutex06.c", "psxhdrs/mutex07.c", "psxhdrs/mutex08.c", "psxhdrs/mutex09.c", "psxhdrs/mutex10.c", "psxhdrs/mutex11.c", "psxhdrs/mutex12.c", "psxhdrs/mutex13.c", "psxhdrs/mutex14.c", "psxhdrs/mutex15.c", "psxhdrs/mutex16.c", "psxhdrs/proc01.c", "psxhdrs/proc02.c", "psxhdrs/proc03.c", "psxhdrs/proc04.c", "psxhdrs/proc05.c", "psxhdrs/proc06.c", "psxhdrs/proc07.c", "psxhdrs/proc08.c", "psxhdrs/proc09.c", "psxhdrs/proc10.c", "psxhdrs/proc11.c", "psxhdrs/proc12.c", "psxhdrs/proc13.c", "psxhdrs/proc14.c", "psxhdrs/pthread01.c", "psxhdrs/pthread02.c", "psxhdrs/pthread03.c", "psxhdrs/pthread04.c", "psxhdrs/pthread05.c", "psxhdrs/pthread06.c", "psxhdrs/pthread07.c", "psxhdrs/pthread08.c", "psxhdrs/pthread09.c", "psxhdrs/pthread10.c", "psxhdrs/pthread11.c", "psxhdrs/pthread12.c", "psxhdrs/pthread13.c", "psxhdrs/pthread14.c", "psxhdrs/pthread15.c", "psxhdrs/pthread16.c", "psxhdrs/pthread17.c", "psxhdrs/pthread18.c", "psxhdrs/pthread19.c", "psxhdrs/pthread20.c", "psxhdrs/pthread21.c", "psxhdrs/pthread22.c", "psxhdrs/pthread23.c", "psxhdrs/pthread24.c", "psxhdrs/pthread25.c", "psxhdrs/pthread26.c", "psxhdrs/pthread27.c", "psxhdrs/pthread28.c", "psxhdrs/pthread29.c", "psxhdrs/pthread30.c", "psxhdrs/pthread31.c", "psxhdrs/pthread32.c", "psxhdrs/pthread34.c", "psxhdrs/pthread35.c", "psxhdrs/pthread36.c", "psxhdrs/pthread37.c", "psxhdrs/pthread38.c", "psxhdrs/pthread39.c", "psxhdrs/pthread40.c", "psxhdrs/sched01.c", "psxhdrs/sched02.c", "psxhdrs/sched03.c", "psxhdrs/sched04.c", "psxhdrs/sched05.c", "psxhdrs/sched06.c", "psxhdrs/sched07.c", "psxhdrs/sched08.c", "psxhdrs/signal01.c", "psxhdrs/signal02.c", "psxhdrs/signal03.c", "psxhdrs/signal04.c", "psxhdrs/signal05.c", "psxhdrs/signal06.c", "psxhdrs/signal07.c", "psxhdrs/signal08.c", "psxhdrs/signal09.c", "psxhdrs/signal10.c", "psxhdrs/signal11.c", "psxhdrs/signal12.c", "psxhdrs/signal13.c", "psxhdrs/signal14.c", "psxhdrs/signal15.c", "psxhdrs/signal16.c", "psxhdrs/signal17.c", "psxhdrs/signal18.c", "psxhdrs/signal19.c", "psxhdrs/signal20.c", "psxhdrs/signal21.c", "psxhdrs/signal22.c", "psxhdrs/signal23.c", "psxhdrs/sync01.c", "psxhdrs/sync02.c", "psxhdrs/sync03.c", "psxhdrs/time01.c", "psxhdrs/time02.c", "psxhdrs/time03.c", "psxhdrs/time04.c", "psxhdrs/time05.c", "psxhdrs/time06.c", "psxhdrs/time07.c", "psxhdrs/time08.c", "psxhdrs/time09.c", "psxhdrs/time10.c", "psxhdrs/time11.c", "psxhdrs/time12.c", "psxhdrs/time13.c", "psxhdrs/timer01.c", "psxhdrs/timer02.c", "psxhdrs/timer03.c", "psxhdrs/timer04.c", "psxhdrs/timer05.c", "psxhdrs/timer06.c", "psxhdrs/timer07.c"], + features = "c cstlib bld_include src_include", + ) + + + test("psx01", ["psx01/init.c", "psx01/task.c"]) + test("psx02", ["psx02/init.c", "psx02/task.c"]) + test("psx03", ["psx03/init.c", "psx03/task.c"]) + test("psx04", ["psx04/init.c", "psx04/task1.c", "psx04/task2.c", "psx04/task3.c"]) + test("psx05", ["psx05/init.c", "psx05/task.c", "psx05/task2.c", "psx05/task3.c"]) + test("psx06", ["psx06/init.c", "psx06/task.c", "psx06/task2.c"]) + test("psx07", ["psx07/init.c", "psx07/task.c"]) + test("psx08", ["psx08/init.c", "psx08/task1.c", "psx08/task2.c", "psx08/task3.c"]) + test("psx09", ["psx09/init.c"]) + test("psx10", ["psx10/init.c", "psx10/task.c", "psx10/task2.c", "psx10/task3.c"]) + test("psx11", ["psx11/init.c", "psx11/task.c"]) + test("psx12", ["psx12/init.c", "psx12/task.c"]) + test("psx13", ["psx13/main.c", "psx13/test.c"]) + test("psx14", ["psx14/init.c"]) + test("psx15", ["psx15/init.c"]) + test("psx16", ["psx16/init.c"]) + test("psxaio01", ["psxaio01/init.c"]) + test("psxaio02", ["psxaio02/init.c"]) + test("psxaio03", ["psxaio03/init.c"]) + test("psxalarm01", ["psxalarm01/init.c"]) + test("psxautoinit01", ["psxautoinit01/init.c"]) + test("psxautoinit02", ["psxautoinit02/init.c"]) + test("psxbarrier01", ["psxbarrier01/main.c", "psxbarrier01/test.c"]) +# test("psxcancel", ["psxcancel/init.c"]) _pthread_cleanup_push + test("psxcancel01", ["psxcancel01/init.c"]) + test("psxchroot01", ["psxchroot01/main.c", "psxchroot01/test.c"]) + test("psxclassic01", ["psxclassic01/init.c"]) +# test("psxcleanup", ["psxcleanup/psxcleanup.c"]) _pthread_cleanup_push +# test("psxcleanup01", ["psxcleanup01/init.c"]) _pthread_cleanup_push + test("psxclock", ["psxclock/init.c"]) + test("psxcond01", ["psxcond01/init.c"]) + test("psxeintr_join", ["psxeintr_join/init.c"]) + test("psxenosys", ["psxenosys/init.c"]) + test("psxfatal01", ["psxfatal_support/init.c"], includes=["%s/testsuites/psxtests/psxfatal01/" % srcnode]) + test("psxfatal02", ["psxfatal_support/init.c"], includes=["%s/testsuites/psxtests/psxfatal02/" % srcnode]) + test("psxfchx01", ["psxfchx01/init.c"]) + test("psxfile01", ["psxfile01/main.c", "psxfile01/test.c", "psxfile01/test_cat.c", "psxfile01/test_extend.c", "psxfile01/test_write.c"]) + test("psxfile02", ["psxfile02/init.c"]) +#flockfile test("psxfilelock01", ["psxfilelock01/init.c"]) + test("psxgetrusage01", ["psxgetrusage01/init.c"], use="test_support_spin") + test("psxid01", ["psxid01/init.c"]) + test("psximfs01", ["psximfs01/init.c"]) + test("psximfs02", ["psximfs02/init.c"]) + test("psxintrcritical01", ["psxintrcritical01/init.c", "../sptests/spintrcritical_support/intrcritical.c"], includes=["%s/testsuites/sptests/spintrcritical_support/" % srcnode]) #XXX: relative path + test("psxitimer", ["psxitimer/init.c"]) + test("psxkey01", ["psxkey01/init.c"], use="test_support") + test("psxkey02", ["psxkey02/init.c"]) + test("psxkey03", ["psxkey03/init.c"]) + test("psxmount", ["psxmount/main.c", "psxmount/test.c"]) + test("psxmsgq01", ["psxmsgq01/init.c"], use="test_support") + test("psxmsgq02", ["psxmsgq02/init.c"], use="test_support") + test("psxmsgq03", ["psxmsgq03/init.c"]) + test("psxmsgq04", ["psxmsgq04/init.c"], use="test_support") + test("psxmutexattr01", ["psxmutexattr01/init.c"]) + test("psxobj01", ["psxobj01/init.c"], use="test_support") + test("psxpasswd01", ["psxpasswd01/init.c"]) + test("psxpasswd02", ["psxpasswd02/init.c"]) + test("psxpipe01", ["psxpipe01/init.c"]) + test("psxrdwrv", ["psxrdwrv/main.c", "psxrdwrv/test.c"]) + test("psxreaddir", ["psxreaddir/main.c", "psxreaddir/test.c"]) + test("psxrwlock01", ["psxrwlock01/main.c", "psxrwlock01/test.c"]) + test("psxsem01", ["psxsem01/init.c"], use="test_support") + test("psxsignal01", ["psxsignal01/init.c", "psxsignal01/task1.c"]) + test("psxsignal02", ["psxsignal02/init.c"]) + test("psxsignal03", ["psxsignal03/init.c"], defines=["USE_USER_SIGNALS_PROCESS"]) + test("psxsignal04", ["psxsignal03/init.c"], defines=["USE_REAL_TIME_SIGNALS_PROCESS"]) + test("psxsignal05", ["psxsignal05/init.c"]) + test("psxsignal06", ["psxsignal06/init.c"]) + test("psxspin01", ["psxspin01/main.c", "psxspin01/test.c"]) + test("psxspin02", ["psxspin02/main.c", "psxspin02/test.c"]) + test("psxstack01", ["psxstack01/init.c"]) + test("psxstack02", ["psxstack02/init.c"]) + test("psxstat", ["psxstat/main.c", "psxstat/test.c"]) + test("psxsysconf", ["psxsysconf/init.c"]) + test("psxtime", ["psxtime/main.c", "psxtime/test.c"]) + test("psxtimer01", ["psxtimer01/psxtimer.c"]) + test("psxtimer02", ["psxtimer02/psxtimer.c"]) + test("psxtimes01", ["psxtimes01/init.c"], use="test_support_spin") + test("psxualarm", ["psxualarm/init.c"]) + test("psxusleep", ["psxusleep/init.c"]) + diff --git a/testsuites/psxtmtests/wscript b/testsuites/psxtmtests/wscript new file mode 100644 index 0000000000..e7f7d50ed1 --- /dev/null +++ b/testsuites/psxtmtests/wscript @@ -0,0 +1,52 @@ +def build(ctx): + srcnode = ctx.srcnode.abspath() + + def test(target, source, **kwarg): + + includes_merge = [] + if "includes" in kwarg: + includes_merge = kwarg["includes"] + del kwarg["includes"] + + ctx.rtems_test( + "sptests_%s" % target, + source, + includes = [ + "%s/testsuites/tmtests/include/" % srcnode, + ] + includes_merge, + features = "test_include", + **kwarg + ) + + + test("psxtmbarrier01", ["psxtmbarrier01/init.c"]) + test("psxtmbarrier02", ["psxtmbarrier02/init.c"]) + test("psxtmbarrier03", ["psxtmbarrier03/init.c"]) + test("psxtmkey01", ["psxtmkey01/init.c"]) + test("psxtmkey02", ["psxtmkey02/init.c"]) + test("psxtmmq01", ["psxtmmq01/init.c"]) + test("psxtmmutex01", ["psxtmmutex01/init.c"]) + test("psxtmmutex02", ["psxtmmutex02/init.c"]) + test("psxtmmutex03", ["psxtmmutex03/init.c"]) + test("psxtmmutex04", ["psxtmmutex04/init.c"]) + test("psxtmmutex05", ["psxtmmutex05/init.c"]) + test("psxtmmutex06", ["psxtmmutex06/init.c"]) + test("psxtmmutex07", ["psxtmmutex07/init.c"]) + test("psxtmnanosleep01", ["psxtmnanosleep01/init.c"]) + test("psxtmnanosleep02", ["psxtmnanosleep02/init.c"]) + test("psxtmrwlock01", ["psxtmrwlock01/init.c"]) + test("psxtmrwlock02", ["psxtmrwlock02/init.c"]) + test("psxtmrwlock03", ["psxtmrwlock03/init.c"]) + test("psxtmrwlock04", ["psxtmrwlock04/init.c"]) + test("psxtmrwlock05", ["psxtmrwlock05/init.c"]) + test("psxtmrwlock06", ["psxtmrwlock06/init.c"]) + test("psxtmrwlock07", ["psxtmrwlock07/init.c"]) + test("psxtmsem01", ["psxtmsem01/init.c"]) + test("psxtmsem02", ["psxtmsem02/init.c"]) + test("psxtmsem03", ["psxtmsem03/init.c"]) + test("psxtmsem04", ["psxtmsem04/init.c"]) + test("psxtmsem05", ["psxtmsem05/init.c"]) + test("psxtmsleep01", ["psxtmsleep01/init.c"]) + test("psxtmsleep02", ["psxtmsleep02/init.c"]) + test("psxtmthread01", ["psxtmthread01/init.c"], use="test_support_tmtests test_support_empty_func") + test("psxtmthread03", ["psxtmthread03/init.c"]) diff --git a/testsuites/smptests/wscript b/testsuites/smptests/wscript new file mode 100644 index 0000000000..075d347aa8 --- /dev/null +++ b/testsuites/smptests/wscript @@ -0,0 +1,21 @@ +def build(ctx): + srcnode = ctx.srcnode.abspath() + + def test(target, source): + ctx.rtems_test( + "smptests_%s" % target, + source, + features = "test_include", + use = "test_support_locked_print" + ) + + + test("smp01", ["smp01/init.c", "smp01/tasks.c"]) + test("smp02", ["smp02/init.c", "smp02/tasks.c"]) + test("smp03", ["smp03/init.c", "smp03/tasks.c"]) + test("smp04", ["smp04/init.c"]) + test("smp05", ["smp05/init.c"]) + test("smp06", ["smp06/init.c"]) + test("smp07", ["smp07/init.c"]) + test("smp08", ["smp08/init.c", "smp08/tasks.c"]) + test("smp09", ["smp09/init.c"]) diff --git a/testsuites/sptests/wscript b/testsuites/sptests/wscript new file mode 100644 index 0000000000..b1e99503a9 --- /dev/null +++ b/testsuites/sptests/wscript @@ -0,0 +1,203 @@ +def build(ctx): + def test(target, source, **kwarg): + ctx.rtems_test( + "sptests_%s" % target, + source, + features = "test_include", + **kwarg + ) + + test("sp01", ["sp01/init.c", "sp01/task1.c"]) + test("sp02", ["sp02/init.c", "sp02/preempt.c", "sp02/task1.c", "sp02/task2.c", "sp02/task3.c"]) + test("sp03", ["sp03/init.c", "sp03/task1.c", "sp03/task2.c"]) + test("sp04", ["sp04/init.c", "sp04/task1.c", "sp04/task2.c", "sp04/task3.c", "sp04/tswitch.c"]) + test("sp05", ["sp05/init.c", "sp05/task1.c", "sp05/task2.c", "sp05/task3.c"]) + test("sp06", ["sp06/init.c", "sp06/task1.c", "sp06/task2.c", "sp06/task3.c"]) + test("sp07", ["sp07/init.c", "sp07/task1.c", "sp07/task2.c", "sp07/task3.c", "sp07/task4.c", "sp07/taskexit.c", "sp07/tcreate.c", "sp07/tdelete.c", "sp07/trestart.c", "sp07/tstart.c"]) + test("sp08", ["sp08/init.c"]) +# test("sp09", ["sp09/init.c", "sp09/isr.c", "sp09/screen01.c", "sp09/screen02.c", "sp09/screen03.c", "sp09/screen04.c", "sp09/screen05.c", "sp09/screen06.c", "sp09/screen07.c", "sp09/screen08.c", "sp09/screen09.c", "sp09/screen10.c", "sp09/screen11.c", "sp09/screen12.c", "sp09/screen13.c", "sp09/screen14.c", "sp09/task1.c", "sp09/task2.c", "sp09/task3.c", "sp09/task4.c"]) + test("sp10", ["sp10/init.c"]) + test("sp11", ["sp11/init.c", "sp11/task1.c", "sp11/task2.c", "sp11/timer.c"]) + test("sp12", ["sp12/init.c", "sp12/pridrv.c", "sp12/pritask.c", "sp12/task1.c", "sp12/task2.c", "sp12/task3.c", "sp12/task4.c", "sp12/task5.c"]) + test("sp13", ["sp13/fillbuff.c", "sp13/init.c", "sp13/putbuff.c", "sp13/task1.c", "sp13/task2.c", "sp13/task3.c"]) + test("sp14", ["sp14/asr.c", "sp14/init.c", "sp14/task1.c", "sp14/task2.c"]) + test("sp15", ["sp15/init.c", "sp15/task1.c"]) + test("sp16", ["sp16/init.c", "sp16/task1.c", "sp16/task2.c", "sp16/task3.c", "sp16/task4.c", "sp16/task5.c"]) + test("sp17", ["sp17/asr.c", "sp17/init.c", "sp17/task1.c", "sp17/task2.c"]) + test("sp18", ["sp18/init.c"]) + test("sp19", ["sp19/first.c", "sp19/fptask.c", "sp19/init.c", "sp19/task1.c"]) + test("sp20", ["sp20/getall.c", "sp20/init.c", "sp20/task1.c"]) + test("sp21", ["sp21/init.c"]) + test("sp22", ["sp22/delay.c", "sp22/init.c", "sp22/prtime.c", "sp22/task1.c"]) + test("sp23", ["sp23/init.c", "sp23/task1.c"]) + test("sp24", ["sp24/init.c", "sp24/resume.c", "sp24/task1.c"]) + test("sp25", ["sp25/init.c", "sp25/task1.c"]) + test("sp26", ["sp26/init.c", "sp26/task1.c"]) + test("sp27", ["sp27/init.c"]) + test("sp27a", ["sp27/init.c"]) + test("sp28", ["sp28/init.c"]) + test("sp29", ["sp29/init.c"]) + test("sp30", ["sp30/init.c", "sp30/resume.c", "sp30/task1.c"]) + test("sp31", ["sp31/delay.c", "sp31/init.c", "sp31/prtime.c", "sp31/task1.c"]) + test("sp32", ["sp32/init.c"]) + test("sp33", ["sp33/init.c"]) + test("sp34", ["sp34/changepri.c"]) + test("sp35", ["sp35/priinv.c"]) + test("sp36", ["sp36/strict_order_mut.c"]) + test("sp37", ["sp37/init.c"]) + test("sp38", ["sp38/init.c"]) +# test("sp39", ["sp39/init.c"]) + test("sp40", ["sp40/init.c"]) + test("sp41", ["sp41/init.c"]) + test("sp42", ["sp42/init.c"]) + test("sp43", ["sp43/init.c"]) + test("sp44", ["sp44/init.c"]) + test("sp45", ["sp45/init.c"]) + test("sp46", ["sp46/init.c"]) + test("sp47", ["sp47/init.c"]) + test("sp48", ["sp48/init.c"]) + test("sp49", ["sp49/init.c"]) + test("sp50", ["sp50/init.c"]) + test("sp51", ["sp51/init.c"]) + test("sp52", ["sp52/init.c"]) + test("sp53", ["sp52/init.c"], defines=["USE_TIMER_SERVER"]) + test("sp54", ["sp54/init.c"]) + test("sp55", ["sp55/init.c"]) + test("sp56", ["sp56/init.c"]) + test("sp57", ["sp57/init.c"]) + test("sp58", ["sp58/init.c"]) + test("sp59", ["sp59/init.c"]) + test("sp60", ["sp60/init.c"]) + test("sp62", ["sp62/init.c"]) + test("sp63", ["sp63/init.c"]) + test("sp64", ["sp64/init.c"]) + test("sp65", ["sp65/init.c"]) + test("sp66", ["sp65/init.c"]) + test("sp67", ["sp67/init.c"]) + test("sp68", ["sp68/init.c"]) +#support/src/spin.c test("sp69", ["sp69/init.c"]) + test("sp70", ["sp70/init.c"]) + test("sp71", ["sp71/init.c"]) + test("sp72", ["sp72/init.c"]) + test("sp73", ["sp73/init.c"]) + test("sp74", ["sp74/init.c"]) + test("sp75", ["sp75/init.c"]) + test("sp76", ["sp76/init.c"]) + test("spassoc01", ["spassoc01/init.c"]) + test("spchain", ["spchain/init.c"]) + test("spclockget", ["spclockget/init.c"]) + test("spcoverage", ["spcoverage/init.c"]) + test("sperror01", ["sperror01/init.c"]) + test("sperror02", ["sperror02/init.c"]) + test("sperror03", ["sperror03/init.c"]) + + ctx.objects( + source = ["spfatal_support/consume_sems.c"], + name = "test_sptests_spfatal_support", + includes = "%s/testsuites/support/include" % ctx.srcnode.abspath(), + features = "bld_include src_include" + ) + + def spfatal(target, source): + ctx.rtems_test( + "sptests_%s" % target, + source, + includes = [ + "%s/testsuites/support/include" % ctx.srcnode.abspath(), + "%s/testsuites/sptests/%s" % (ctx.srcnode.abspath(), target) + ], + features = "test_include", + use="test_sptests_spfatal_support" + ) + + spfatal("spfatal01", ["spfatal_support/init.c"]) + spfatal("spfatal02", ["spfatal_support/init.c"]) + spfatal("spfatal03", ["spfatal_support/init.c"]) + spfatal("spfatal04", ["spfatal_support/init.c"]) + spfatal("spfatal05", ["spfatal_support/init.c"]) + spfatal("spfatal06", ["spfatal_support/init.c"]) + spfatal("spfatal07", ["spfatal_support/init.c"]) + spfatal("spfatal08", ["spfatal_support/init.c"]) + spfatal("spfatal09", ["spfatal_support/init.c"]) + spfatal("spfatal10", ["spfatal_support/init.c"]) + spfatal("spfatal11", ["spfatal_support/init.c"]) + spfatal("spfatal12", ["spfatal_support/init.c"]) + spfatal("spfatal13", ["spfatal_support/init.c"]) + spfatal("spfatal14", ["spfatal_support/init.c"]) + spfatal("spfatal15", ["spfatal_support/init.c"]) + spfatal("spfatal16", ["spfatal_support/init.c"]) + spfatal("spfatal17", ["spfatal_support/init.c"]) + spfatal("spfatal18", ["spfatal_support/init.c"]) + spfatal("spfatal19", ["spfatal_support/init.c"]) + spfatal("spfatal20", ["spfatal_support/init.c"]) +#testsuites/support/src/test_support.c spfatal("spfatal22", ["spfatal_support/init.c"]) +# spfatal("spfatal23", ["spfatal_support/init.c"]) + spfatal("spfatal24", ["spfatal_support/init.c"]) + spfatal("spfatal25", ["spfatal_support/init.c"]) + + + test("spfifo01", ["spfifo01/init.c"]) + test("spfifo02", ["spfifo02/init.c"]) + test("spfifo03", ["spfifo03/init.c"]) + test("spfifo04", ["spfifo04/init.c"]) + test("spfifo05", ["spfifo05/init.c"]) + test("spheapprot", ["spheapprot/init.c"]) + + + ctx.objects( + source = ["spintrcritical_support/intrcritical.c"], + name = "test_sptests_spintrcritical_support", + includes = [ + "%s/testsuites/support/include" % ctx.srcnode.abspath(), + "%s/testsuites/sptests/spintrcritical_support" % ctx.srcnode.abspath() + ], + features = "bld_include src_include" + ) + + def spincritical(target, source, **kwargs): + ctx.rtems_test( + "sptests_%s" % target, + source, + includes = [ + "%s/testsuites/sptests/spintrcritical_support" % ctx.srcnode.abspath() + ], + features = "test_include", + use="test_sptests_spintrcritical_support", + **kwargs + ) + + spincritical("spintrcritical01", ["spintrcritical01/init.c"], defines=["FIFO_NO_TIMEOUT"]) + spincritical("spintrcritical02", ["spintrcritical01/init.c"], defines=["FIFO_WITH_TIMEOUT"]) + spincritical("spintrcritical03", ["spintrcritical01/init.c"], defines=["PRIORITY_NO_TIMEOUT"]) + spincritical("spintrcritical04", ["spintrcritical01/init.c"], defines=["PRIORITY_WITH_TIMEOUT"]) + spincritical("spintrcritical05", ["spintrcritical01/init.c"], defines=["PRIORITY_NO_TIMEOUT_REVERSE"]) + spincritical("spintrcritical06", ["spintrcritical06/init.c"], defines=["PRIORITY_NO_TIMEOUT_FORWARD"]) + spincritical("spintrcritical07", ["spintrcritical06/init.c"], defines=["PRIORITY_NO_TIMEOUT_REVERSE"]) + spincritical("spintrcritical08", ["spintrcritical08/init.c"]) + spincritical("spintrcritical09", ["spintrcritical09/init.c"]) + spincritical("spintrcritical10", ["spintrcritical10/init.c"]) + spincritical("spintrcritical11", ["spintrcritical11/init.c"], defines=["EVENT_ANY"]) + spincritical("spintrcritical12", ["spintrcritical11/init.c"], defines=["EVENT_ALL"]) + spincritical("spintrcritical13", ["spintrcritical13/init.c"], defines=["FIRE_AFTER"]) + spincritical("spintrcritical14", ["spintrcritical13/init.c"], defines=["SERVER_FIRE_AFTER"]) + spincritical("spintrcritical15", ["spintrcritical15/init.c"]) + spincritical("spintrcritical16", ["spintrcritical16/init.c"]) + spincritical("spintrcritical17", ["spintrcritical17/init.c"]) + + + test("spmkdir", ["spmkdir/init.c"]) + test("spmountmgr01", ["spmountmgr01/init.c"]) + test("spnotepad01", ["spnotepad01/init.c"]) + test("spnsext01", ["spnsext01/init.c"]) + test("spobjgetnext", ["spobjgetnext/init.c"]) + test("spprintk", ["spprintk/init.c"]) + test("spprivenv01", ["spprivenv01/init.c"]) + test("sprbtree01", ["sprbtree01/init.c"]) + test("spsimplesched01", ["spsimplesched01/init.c"]) + test("spsimplesched02", ["spsimplesched02/init.c"]) + test("spsimplesched03", ["spsimplesched03/init.c"]) + test("spsize", ["spsize/getint.c", "spsize/init.c", "spsize/size.c"]) + test("spstkalloc", ["spstkalloc/init.c"]) + test("spthreadq01", ["spthreadq01/init.c"]) + test("spwatchdog", ["spwatchdog/delay.c", "spwatchdog/init.c", "spwatchdog/prtime.c", "spwatchdog/task1.c"]) + test("spwkspace", ["spwkspace/init.c"]) diff --git a/testsuites/tmtests/wscript b/testsuites/tmtests/wscript new file mode 100644 index 0000000000..285110da75 --- /dev/null +++ b/testsuites/tmtests/wscript @@ -0,0 +1,44 @@ +def build(ctx): + def test(target, source): + ctx.rtems_test( + "tmtests_%s" % target, + source, + use = "test_support_empty_func", + includes = [ + "%s/testsuites/tmtests/include/" % ctx.srcnode.abspath(), + "%s/testsuites/support/include/" % ctx.srcnode.abspath(), + ], + ) + + test("tmck", "tmck/task1.c") + test("tmoverhd", ["tmoverhd/empty.c", "tmoverhd/testtask.c"]) + test("tm01", "tm01/task1.c") +# test("tm02", "tm02/task1.c") +# test("tm03", "tm03/task1.c") + test("tm04", "tm04/task1.c") + test("tm05", "tm05/task1.c") + test("tm06", "tm06/task1.c") + test("tm07", "tm07/task1.c") + test("tm08", "tm08/task1.c") + test("tm09", "tm09/task1.c") + test("tm10", "tm10/task1.c") + test("tm11", "tm11/task1.c") + test("tm12", "tm12/task1.c") + test("tm13", "tm13/task1.c") + test("tm14", "tm14/task1.c") + test("tm15", "tm15/task1.c") + test("tm16", "tm16/task1.c") + test("tm17", "tm17/task1.c") + test("tm18", "tm18/task1.c") + test("tm19", "tm19/task1.c") + test("tm20", "tm20/task1.c") + test("tm21", "tm21/task1.c") + test("tm22", "tm22/task1.c") + test("tm23", "tm23/task1.c") + test("tm24", "tm24/task1.c") + test("tm25", "tm25/task1.c") + test("tm26", "tm26/task1.c") + test("tm27", "tm27/task1.c") + test("tm28", "tm28/task1.c") + test("tm29", "tm29/task1.c") + test("tm30", ["tm30/init.c", "../support/src/tmtests_support.c"]) # XXX: fix this relative path. diff --git a/testsuites/wscript b/testsuites/wscript new file mode 100644 index 0000000000..f9fecbf519 --- /dev/null +++ b/testsuites/wscript @@ -0,0 +1,54 @@ +def build(ctx): + srcnode = ctx.srcnode.abspath() + + ctx.objects( + source = ["support/src/tmtests_empty_function.c"], + name = "test_support_empty_func", + includes = ["%s/testsuites/support/include/" % srcnode], + features = "bld_include src_include" + ) + + ctx.objects( + source = ["support/src/spin.c"], + name = "test_support_spin", + includes = ["%s/testsuites/support/include/" % srcnode], #XXX: why was this added in ac165341 + features = "bld_include src_include" + ) + + ctx.objects( + source = ["support/src/test_support.c"], + name = "test_support", + features = "bld_include src_include test_include" + ) + + ctx.objects( + source = ["support/src/tmtests_support.c"], + name = "test_support_tmtests", + includes = ["%s/testsuites/tmtests/include/" % srcnode], + features = "bld_include src_include test_include" + ) + + if ctx.env.ENABLE_SMP and ctx.env.BSP[0] in ["sparc/leon3", "i386/pc386"]: + ctx.objects( + source = ["support/src/locked_print.c"], + name = "test_support_locked_print", + features = "bld_include src_include test_include" + ) + + ctx.recurse("fstests") + ctx.recurse("libtests") + + if ctx.env.ENABLE_MP: + ctx.recurse("mptests") + + if ctx.env.ENABLE_POSIX: + ctx.recurse("psxtests") + ctx.recurse("psxtmtests") + + if ctx.env.ENABLE_SMP and ctx.env.BSP[0] in ["sparc/leon3", "i386/pc386"]: + ctx.recurse("smptests") + + ctx.recurse("sptests") + ctx.recurse("tmtests") + +# ctx.recurse("samples") diff --git a/tools/build/wscript b/tools/build/wscript new file mode 100644 index 0000000000..4dd14b81d2 --- /dev/null +++ b/tools/build/wscript @@ -0,0 +1,10 @@ +def build(ctx): + build_dir = ctx.bldnode.abspath() + ctx.program(source='cklength.c', target='cklength', includes=["%s/include" % build_dir]) + ctx.program(source='eolstrip.c', target='eolstrip', includes=["%s/include" % build_dir]) + ctx.program(source='packhex.c', target='packhex', includes=["%s/include" % build_dir]) + ctx.program(source='unhex.c', target='unhex', includes=["%s/include" % build_dir]) + ctx.program(source='rtems-bin2c.c', target='rtems-bin2c', includes=["%s/include" % build_dir]) + ctx.program(source='binpatch.c', target='binpatch', includes=["%s/include" % build_dir]) + + diff --git a/wscript b/wscript new file mode 100644 index 0000000000..5ce156a1d6 --- /dev/null +++ b/wscript @@ -0,0 +1,213 @@ +# RTEMS version, this is the only editable portion of this file. +config = {} +config["rtems_version_major"] = 4 +config["rtems_version_minor"] = 11 # Moved to 4.11 for testing it's actually 4.10 +config["rtems_version_revision"] = 99 +config["rtems_version_patch"] = 0 + +# --------- DO NOT EDIT BELOW THIS LINE ----------- +from sys import argv +#from waflib.Task import Task +from waflib import Task +from waflib.Build import BuildContext, CleanContext, InstallContext, UninstallContext, StepContext, ListContext +from waflib.Context import Context +from waflib.Tools import c_preproc +from waflib.Logs import pprint +from rtems_waf.builder import libcpu, libbsp +from rtems_waf.switch import options +from rtems_waf.tools import get_file_mtime +from os.path import exists + +pprint.__doc__ = None # Make sure waf doesn't see this as a command. + +Context.repeat_hack = False + +top = '.' +out = 'build' +c_preproc.go_absolute = False # Disable dependencies on system headers. +config["variants"] = [] + +if exists("%s/build/c4che/host_cache.py" % top): + from waflib.ConfigSet import ConfigSet + cset = ConfigSet() + cset.load("build/c4che/host_cache.py") + config["variants"] = cset.BSP + + +# Init commands manually to iterate over the variants. +def init_handler(ctx): + if ctx.cmd == "init_handler" or ctx.cmd == "build": + context = BuildContext + elif ctx.cmd == "install": + context = InstallContext + elif ctx.cmd == "clean": + context = CleanContext + elif ctx.cmd == "uninstall": + ctx.fatal("This command is not available.") + elif ctx.cmd == "list": + context = ListContext + elif ctx.cmd == "step": + context = StepContext + else: + ctx.fatal("init_handler(): Internal error.") + + # By default we want to itterate over each variant. + for v in ["host"] + config["variants"]: + cls = type(context)(v, (context,), {'cmd': ctx.cmd, 'variant': v, 'counter': {}, 'cpu': None}) + bld = cls() + if hasattr(ctx, 'targets'): + bld.targets = ctx.targets + pprint("YELLOW", "--- %sing %s ---" % (ctx.cmd, v)) + bld.execute() + + +# Add target-specific commands. +variant_cmd = ( + ("build", BuildContext), + ("clean", CleanContext), + ("install", InstallContext), + ("step", StepContext), + ("list", ListContext) +) + +host = 1 +for variant in ["host"] + config["variants"]: + if host: + v = "host" + host = 0 + else: + v = variant.split("/")[1] + for cmd, cls in variant_cmd: + class tmp(cls): + __doc__ = "%s %s BSP" % (cmd, v) + cmd = "%s_%s" % (cmd, v) + variant = variant + counter = {} + cpu = None + +# These will stay local functions to avoid importing the subcommands +# upon every invocation which will happen during regular development. +def cmd_config(ctx): + from rtems_waf.tools import rtems_cmd_config + rtems_cmd_config(ctx) + +def cmd_docs(ctx): + from rtems_waf.docs import rtems_cmd_docs + rtems_cmd_docs(ctx) + +def cmd_bsp(ctx): + from rtems_waf.tools import rtems_cmd_bsp + rtems_cmd_bsp(ctx) + +def cmd_hello(ctx): + from rtems_waf.hello import rtems_cmd_hello + rtems_cmd_hello(ctx) + +def cmd_info(ctx): + from rtems_waf.info import rtems_cmd_info + rtems_cmd_info(ctx) + +# List of commands to override / add +commands = ( + ("install", "init_handler", None), + ("uninstall", "init_handler", None), + ("build", "init_handler", None), + ("clean", "init_handler", None), + ("list", "init_handler", None), + ("step", "init_handler", None), + ("config", "cmd_config", "create config.cfg"), + ("docs", "cmd_docs", "build option documentation."), + ("bsp", "cmd_bsp", "BSP information."), + ("hello", "cmd_hello", "Test command: Build hello.c."), + ("info", "cmd_info", "Show build information / configuration.") +) + +for command, func, descr in commands: + class tmp(Context): + if descr: + __doc__ = descr + cmd = command + fun = func + + +def buildlog(ctx): + pass +buildlog.__doc__ = "Available only when --build-json and --build-config are used." + + +# Check sanity of default.cfg +def checkconfig(ctx): + from rtems_waf.tools import rtems_check_config + rtems_check_config(ctx) +checkconfig.__doc__ = None # Make sure waf doesn't see this as a command. + + +def configure(ctx): + from rtems_waf.configure import cmd_configure + cmd_configure(ctx, config) + + +def build(ctx): + if ctx.env.CONFIG_TIMESTAMP != get_file_mtime("config.cfg"): + ctx.fatal("config.cfg has changed please re-run 'waf configure'") + + ctx.load('waf', tooldir='rtems_waf') + + from rtems_waf.waf import rtems_stlib_command + class cstlib(Task.classes['cstlib']): + exec_command = rtems_stlib_command + + # Dump build log in JSON. + if ctx.cmd == "build" \ + and ctx.env.BUILD_JSON \ + and not Context.repeat_hack: + + from rtems_waf.debug import logger_json_create, exec_command_json, exec_command_json_extra + Context.repeat_hack = True + + # Make sure any previous handlers are closed so logs are written. + if hasattr(Context, "logger_json"): + Context.logger_json.handlers[0].close() + + Context.logger_json = logger_json_create(ctx) + Context.exec_command = exec_command_json + + # Send extra information from the parent task. + cls_task = Task.classes["Task"] + + # Avoid recursion since this can be run twice due to host building. + if not hasattr(cls_task, "exec_command_real"): + cls_task.exec_command_real = cls_task.exec_command + cls_task.exec_command = exec_command_json_extra + + + # Host is only meant for building host utilities. + if ctx.variant == "host" and ctx.targets is "": + ctx.recurse("tools/build") + ctx.recurse("c") + + # Reset things back so a new log is created for the BSP. + if ctx.cmd == "build" and ctx.env.BUILD_JSON: + Context.repeat_hack = False + return + + # Everything will break if you remove these lines below. + ctx.cpu = libcpu(ctx) + ctx.bsp = libbsp(ctx) + + ctx.recurse("cpukit") + ctx.recurse("cpukit/score") + ctx.recurse("cpukit/rtems") + ctx.recurse("cpukit/posix") + ctx.recurse("cpukit/libcsupport") + ctx.recurse("cpukit/libfs") + ctx.recurse("cpukit/libnetworking") + ctx.recurse("cpukit/librpc") + ctx.recurse("cpukit/libmisc") + ctx.recurse("cpukit/zlib") + ctx.recurse("c") + + if ctx.env.ENABLE_TESTS or "--enable-tests" in argv: + pprint("YELLOW", "--- building %s tests ---" % ctx.env.BSP[0]) + ctx.recurse("testsuites") + |