diff --git a/artiq/gateware/targets/sayma_amc_standalone.py b/artiq/gateware/targets/sayma_amc_standalone.py index 833ac03ed..768f48d0f 100755 --- a/artiq/gateware/targets/sayma_amc_standalone.py +++ b/artiq/gateware/targets/sayma_amc_standalone.py @@ -27,6 +27,7 @@ from artiq.gateware import remote_csr from artiq.gateware import rtio from artiq.gateware.rtio.phy import ttl_simple, sawg from artiq import __version__ as artiq_version +from artiq import __path__ as artiq_path PhyPads = namedtuple("PhyPads", "txp txn") @@ -98,7 +99,7 @@ class AD9154(Module, AutoCSR): self.sync.jesd += conv.eq(Cat(ch.o)) -class SaymaAMCStandalone(MiniSoC, AMPSoC): +class Standalone(MiniSoC, AMPSoC): mem_map = { "cri_con": 0x10000000, "rtio": 0x11000000, @@ -219,6 +220,9 @@ class SaymaAMCStandalone(MiniSoC, AMPSoC): def main(): + installed_rtm_csr_csv = os.path.join( + artiq_path[0], "binaries", "sayma_rtm", "sayma_rtm_csr.csv") + parser = argparse.ArgumentParser( description="ARTIQ device binary builder / Sayma AMC stand-alone") builder_args(parser) @@ -226,17 +230,24 @@ def main(): parser.add_argument("--rtm-csr-csv", default=os.path.join("artiq_sayma_rtm", "sayma_rtm_csr.csv"), help="CSV file listing remote CSRs on RTM (default: %(default)s)") + parser.add_argument("--installed-rtm-csr-csv", + default=False, action="store_true", + help="use installed CSV file for RTM CSRs instead " + "({}, default: %(default)s)".format(installed_rtm_csr_csv)) parser.add_argument("--with-sawg", default=False, action="store_true", help="add JESD204B and SAWG channels (default: %(default)s)") args = parser.parse_args() - soc = SaymaAMCStandalone(with_sawg=args.with_sawg, - **soc_sdram_argdict(args)) + soc = Standalone(with_sawg=args.with_sawg, **soc_sdram_argdict(args)) + if args.installed_rtm_csr_csv: + rtm_csr_csv = installed_rtm_csr_csv + else: + rtm_csr_csv = args.rtm_csr_csv remote_csr_regions = remote_csr.get_remote_csr_regions( soc.mem_map["serwb"] | soc.shadow_base, - args.rtm_csr_csv) + rtm_csr_csv) for name, origin, busword, csrs in remote_csr_regions: soc.add_csr_region(name, origin, busword, csrs) # Configuration for RTM peripherals. Keep in sync with sayma_rtm.py! diff --git a/conda/artiq-sayma_amc-standalone/build.sh b/conda/artiq-sayma_amc-standalone/build.sh new file mode 100644 index 000000000..c0a3e1975 --- /dev/null +++ b/conda/artiq-sayma_amc-standalone/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +SOC_PREFIX=$PREFIX/lib/python3.5/site-packages/artiq/binaries/sayma_amc-standalone +mkdir -p $SOC_PREFIX + +V=1 $PYTHON -m artiq.gateware.targets.sayma_amc_standalone --installed-rtm-csr-csv +cp misoc_standalone_sayma_amc/gateware/top.bit $SOC_PREFIX +cp misoc_standalone_sayma_amc/software/bios/bios.bin $SOC_PREFIX +cp misoc_standalone_sayma_amc/software/runtime/runtime.fbi $SOC_PREFIX diff --git a/conda/artiq-sayma_amc-standalone/meta.yaml b/conda/artiq-sayma_amc-standalone/meta.yaml new file mode 100644 index 000000000..543c04bed --- /dev/null +++ b/conda/artiq-sayma_amc-standalone/meta.yaml @@ -0,0 +1,24 @@ +package: + name: artiq-sayma_amc-standalone + version: {{ environ.get("GIT_DESCRIBE_TAG", "") }} + +source: + git_url: ../.. + +build: + noarch: generic + ignore_prefix_files: True + number: {{ environ.get("GIT_DESCRIBE_NUMBER", 0) }} + string: py_{{ environ.get("GIT_DESCRIBE_NUMBER", 0) }}+git{{ environ.get("GIT_FULL_HASH", "")[:8] }} + +requirements: + build: + - artiq-dev {{ "{tag} py_{number}+git{hash}".format(tag=environ.get("GIT_DESCRIBE_TAG"), number=environ.get("GIT_DESCRIBE_NUMBER"), hash=environ.get("GIT_FULL_HASH", "")[:8]) if "GIT_DESCRIBE_TAG" in environ else "" }} + - artiq-sayma_rtm {{ "{tag} py_{number}+git{hash}".format(tag=environ.get("GIT_DESCRIBE_TAG"), number=environ.get("GIT_DESCRIBE_NUMBER"), hash=environ.get("GIT_FULL_HASH", "")[:8]) if "GIT_DESCRIBE_TAG" in environ else "" }} + run: + - artiq {{ "{tag} py_{number}+git{hash}".format(tag=environ.get("GIT_DESCRIBE_TAG"), number=environ.get("GIT_DESCRIBE_NUMBER"), hash=environ.get("GIT_FULL_HASH", "")[:8]) if "GIT_DESCRIBE_TAG" in environ else "" }} + +about: + home: https://m-labs.hk/artiq + license: LGPL + summary: 'Bitstream, BIOS and runtime for stand-alone Sayma AMC'