summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmar Takhar <amar@rtems.org>2014-12-28 17:24:12 -0500
committerAmar Takhar <amar@rtems.org>2015-12-11 15:13:45 -0500
commit162684666af4c15522052447afb7775a413f4d6a (patch)
tree7d256a52beb6458ac3b17c0ba73966a41e9dbdb6
parentb618d8cfc54f84d4ed03dc7b7fa510c872e6128a (diff)
Add waf build system.
-rw-r--r--.gitignore10
-rw-r--r--c/wscript195
-rw-r--r--c/wscript_arm1340
-rw-r--r--c/wscript_avr53
-rw-r--r--c/wscript_bfin246
-rw-r--r--c/wscript_h830053
-rw-r--r--c/wscript_i386168
-rw-r--r--c/wscript_lm32103
-rw-r--r--c/wscript_m32c50
-rw-r--r--c/wscript_m32r50
-rw-r--r--c/wscript_m68k1126
-rw-r--r--c/wscript_mips347
-rw-r--r--c/wscript_moxie52
-rw-r--r--c/wscript_nios251
-rw-r--r--c/wscript_powerpc1830
-rw-r--r--c/wscript_sh284
-rw-r--r--c/wscript_sparc234
-rw-r--r--c/wscript_sparc6493
-rw-r--r--c/wscript_v85057
-rw-r--r--cpukit/libcsupport/wscript254
-rw-r--r--cpukit/libfs/wscript200
-rw-r--r--cpukit/libmisc/wscript221
-rw-r--r--cpukit/libnetworking/wscript145
-rw-r--r--cpukit/librpc/wscript55
-rw-r--r--cpukit/posix/wscript249
-rw-r--r--cpukit/rtems/wscript183
-rw-r--r--cpukit/score/wscript428
-rw-r--r--cpukit/wscript179
-rw-r--r--cpukit/zlib/wscript35
-rw-r--r--rtems_waf/.gitignore1
-rw-r--r--rtems_waf/TODO70
-rw-r--r--rtems_waf/__init__.py0
-rw-r--r--rtems_waf/bsp.py290
-rw-r--r--rtems_waf/builder.py120
-rw-r--r--rtems_waf/compat.py20
-rw-r--r--rtems_waf/config/__init__.py11
-rw-r--r--rtems_waf/config/base.py385
-rw-r--r--rtems_waf/config/feature.py30
-rw-r--r--rtems_waf/config/options.py274
-rw-r--r--rtems_waf/configure.py428
-rw-r--r--rtems_waf/debug.py95
-rw-r--r--rtems_waf/defaults/__init__.py2
-rw-r--r--rtems_waf/defaults/bsp/__init__.py17
-rw-r--r--rtems_waf/defaults/bsp/arm.py598
-rw-r--r--rtems_waf/defaults/bsp/avr.py15
-rw-r--r--rtems_waf/defaults/bsp/bfin.py48
-rw-r--r--rtems_waf/defaults/bsp/h8300.py27
-rw-r--r--rtems_waf/defaults/bsp/i386.py74
-rw-r--r--rtems_waf/defaults/bsp/lm32.py36
-rw-r--r--rtems_waf/defaults/bsp/m32c.py17
-rw-r--r--rtems_waf/defaults/bsp/m32r.py15
-rw-r--r--rtems_waf/defaults/bsp/m68k.py271
-rw-r--r--rtems_waf/defaults/bsp/mips.py80
-rw-r--r--rtems_waf/defaults/bsp/moxie.py17
-rw-r--r--rtems_waf/defaults/bsp/nios2.py16
-rw-r--r--rtems_waf/defaults/bsp/powerpc.py914
-rw-r--r--rtems_waf/defaults/bsp/sh.py87
-rw-r--r--rtems_waf/defaults/bsp/sparc.py62
-rw-r--r--rtems_waf/defaults/bsp/sparc64.py27
-rw-r--r--rtems_waf/defaults/bsp/v850.py70
-rw-r--r--rtems_waf/defaults/options.py2247
-rw-r--r--rtems_waf/hello.py35
-rw-r--r--rtems_waf/info.py72
-rwxr-xr-xrtems_waf/rtems_config.py62
-rw-r--r--rtems_waf/switch.py21
-rw-r--r--rtems_waf/tools.py211
-rw-r--r--rtems_waf/waf.py274
-rw-r--r--testsuites/fstests/wscript92
-rw-r--r--testsuites/libtests/wscript167
-rw-r--r--testsuites/mptests/wscript57
-rw-r--r--testsuites/psxtests/wscript109
-rw-r--r--testsuites/psxtmtests/wscript52
-rw-r--r--testsuites/smptests/wscript21
-rw-r--r--testsuites/sptests/wscript203
-rw-r--r--testsuites/tmtests/wscript44
-rw-r--r--testsuites/wscript54
-rw-r--r--tools/build/wscript10
-rw-r--r--wscript213
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")
+