targets: default to trellis toolchain on all ECP5 targets (now able to build all supported targets).

This commit is contained in:
Florent Kermarrec 2020-02-28 09:46:54 +01:00
parent b44885d222
commit be5ed35871
7 changed files with 39 additions and 24 deletions

View File

@ -11,6 +11,8 @@ from migen.genlib.resetsync import AsyncResetSynchronizer
from litex_boards.platforms import camlink_4k from litex_boards.platforms import camlink_4k
from litex.build.lattice.trellis import trellis_args, trellis_argdict
from litex.soc.cores.clock import * from litex.soc.cores.clock import *
from litex.soc.integration.soc_sdram import * from litex.soc.integration.soc_sdram import *
from litex.soc.integration.builder import * from litex.soc.integration.builder import *
@ -93,15 +95,17 @@ class BaseSoC(SoCSDRAM):
def main(): def main():
parser = argparse.ArgumentParser(description="LiteX SoC on Cam Link 4K") parser = argparse.ArgumentParser(description="LiteX SoC on Cam Link 4K")
parser.add_argument("--gateware-toolchain", dest="toolchain", default="diamond", parser.add_argument("--gateware-toolchain", dest="toolchain", default="trellis",
help='gateware toolchain to use, diamond (default) or trellis') help='gateware toolchain to use, trellis (default) or diamond')
builder_args(parser) builder_args(parser)
soc_sdram_args(parser) soc_sdram_args(parser)
trellis_args(parser)
args = parser.parse_args() args = parser.parse_args()
soc = BaseSoC(toolchain=args.toolchain, **soc_sdram_argdict(args)) soc = BaseSoC(toolchain=args.toolchain, **soc_sdram_argdict(args))
builder = Builder(soc, **builder_argdict(args)) builder = Builder(soc, **builder_argdict(args))
builder.build(toolchain_path="/usr/local/diamond/3.10_x64/bin/lin64") builder_kargs = trellis_argdict(args) if args.toolchain == "trellis" else {}
builder.build(**builder_kargs)
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -23,6 +23,8 @@ from migen.genlib.resetsync import AsyncResetSynchronizer
from litex_boards.platforms import colorlight_5a_75b from litex_boards.platforms import colorlight_5a_75b
from litex.build.lattice.trellis import trellis_args, trellis_argdict
from litex.soc.cores.clock import * from litex.soc.cores.clock import *
from litex.soc.integration.soc_core import * from litex.soc.integration.soc_core import *
from litex.soc.integration.builder import * from litex.soc.integration.builder import *
@ -125,6 +127,7 @@ def main():
parser = argparse.ArgumentParser(description="LiteX SoC on Colorlight 5A-75B") parser = argparse.ArgumentParser(description="LiteX SoC on Colorlight 5A-75B")
builder_args(parser) builder_args(parser)
soc_core_args(parser) soc_core_args(parser)
trellis_args(parser)
parser.add_argument("--revision", default="7.0", type=str, help="Board revision 7.0 (default) or 6.1") parser.add_argument("--revision", default="7.0", type=str, help="Board revision 7.0 (default) or 6.1")
parser.add_argument("--with-etherbone", action="store_true", help="enable Etherbone support") parser.add_argument("--with-etherbone", action="store_true", help="enable Etherbone support")
parser.add_argument("--eth-phy", default=0, type=int, help="Ethernet PHY 0 or 1 (default=0)") parser.add_argument("--eth-phy", default=0, type=int, help="Ethernet PHY 0 or 1 (default=0)")
@ -139,7 +142,7 @@ def main():
else: else:
soc = BaseSoC(args.revision, **soc_core_argdict(args)) soc = BaseSoC(args.revision, **soc_core_argdict(args))
builder = Builder(soc, **builder_argdict(args)) builder = Builder(soc, **builder_argdict(args))
builder.build() builder.build(**trellis_argdict(args))
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -14,6 +14,8 @@ from migen.genlib.resetsync import AsyncResetSynchronizer
from litex_boards.platforms import hadbadge from litex_boards.platforms import hadbadge
from litex.build.lattice.trellis import trellis_args, trellis_argdict
from litex.soc.cores.clock import * from litex.soc.cores.clock import *
from litex.soc.integration.soc_sdram import * from litex.soc.integration.soc_sdram import *
from litex.soc.integration.builder import * from litex.soc.integration.builder import *
@ -70,18 +72,20 @@ class BaseSoC(SoCSDRAM):
def main(): def main():
parser = argparse.ArgumentParser(description="LiteX SoC on Hackaday Badge") parser = argparse.ArgumentParser(description="LiteX SoC on Hackaday Badge")
parser.add_argument("--gateware-toolchain", dest="toolchain", default="trellis", parser.add_argument("--gateware-toolchain", dest="toolchain", default="trellis",
help='gateware toolchain to use, diamond or trellis (default)') help='gateware toolchain to use, trellis (default) or diamond')
parser.add_argument("--sys-clk-freq", default=48e6, parser.add_argument("--sys-clk-freq", default=48e6,
help="system clock frequency (default=48MHz)") help="system clock frequency (default=48MHz)")
builder_args(parser) builder_args(parser)
soc_sdram_args(parser) soc_sdram_args(parser)
trellis_args(parser)
args = parser.parse_args() args = parser.parse_args()
soc = BaseSoC(toolchain=args.toolchain, soc = BaseSoC(toolchain=args.toolchain,
sys_clk_freq=int(float(args.sys_clk_freq)), sys_clk_freq=int(float(args.sys_clk_freq)),
**soc_sdram_argdict(args)) **soc_sdram_argdict(args))
builder = Builder(soc, **builder_argdict(args)) builder = Builder(soc, **builder_argdict(args))
builder.build() builder_kargs = trellis_argdict(args) if args.toolchain == "trellis" else {}
builder.build(**builder_kargs)
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -75,7 +75,7 @@ class _CRG(Module):
# BaseSoC ------------------------------------------------------------------------------------------ # BaseSoC ------------------------------------------------------------------------------------------
class BaseSoC(SoCSDRAM): class BaseSoC(SoCSDRAM):
def __init__(self, sys_clk_freq=int(48e6), toolchain="diamond", **kwargs): def __init__(self, sys_clk_freq=int(48e6), toolchain="trellis", **kwargs):
platform = orangecrab.Platform(toolchain=toolchain) platform = orangecrab.Platform(toolchain=toolchain)
# SoCSDRAM --------------------------------------------------------------------------------- # SoCSDRAM ---------------------------------------------------------------------------------
@ -100,8 +100,8 @@ class BaseSoC(SoCSDRAM):
def main(): def main():
parser = argparse.ArgumentParser(description="LiteX SoC on OrangeCrab") parser = argparse.ArgumentParser(description="LiteX SoC on OrangeCrab")
parser.add_argument("--gateware-toolchain", dest="toolchain", default="diamond", parser.add_argument("--gateware-toolchain", dest="toolchain", default="trellis",
help='gateware toolchain to use, diamond (default) or trellis') help="gateware toolchain to use, diamond (default) or trellis")
builder_args(parser) builder_args(parser)
soc_sdram_args(parser) soc_sdram_args(parser)
trellis_args(parser) trellis_args(parser)
@ -111,7 +111,8 @@ def main():
soc = BaseSoC(toolchain=args.toolchain, sys_clk_freq=int(float(args.sys_clk_freq)), **soc_sdram_argdict(args)) soc = BaseSoC(toolchain=args.toolchain, sys_clk_freq=int(float(args.sys_clk_freq)), **soc_sdram_argdict(args))
builder = Builder(soc, **builder_argdict(args)) builder = Builder(soc, **builder_argdict(args))
builder.build(**trellis_argdict(args)) builder_kargs = trellis_argdict(args) if args.toolchain == "trellis" else {}
builder.build(**builder_kargs)
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -108,7 +108,7 @@ class EthernetSoC(BaseSoC):
} }
mem_map.update(BaseSoC.mem_map) mem_map.update(BaseSoC.mem_map)
def __init__(self, toolchain="diamond", **kwargs): def __init__(self, toolchain="trellis", **kwargs):
BaseSoC.__init__(self, toolchain=toolchain, **kwargs) BaseSoC.__init__(self, toolchain=toolchain, **kwargs)
# Ethernet --------------------------------------------------------------------------------- # Ethernet ---------------------------------------------------------------------------------
@ -136,8 +136,8 @@ class EthernetSoC(BaseSoC):
def main(): def main():
parser = argparse.ArgumentParser(description="LiteX SoC on Trellis Board") parser = argparse.ArgumentParser(description="LiteX SoC on Trellis Board")
parser.add_argument("--gateware-toolchain", dest="toolchain", default="diamond", parser.add_argument("--gateware-toolchain", dest="toolchain", default="trellis",
help='gateware toolchain to use, diamond (default) or trellis') help="gateware toolchain to use, trellis (default) or diamond")
builder_args(parser) builder_args(parser)
soc_sdram_args(parser) soc_sdram_args(parser)
trellis_args(parser) trellis_args(parser)
@ -150,7 +150,8 @@ def main():
cls = EthernetSoC if args.with_ethernet else BaseSoC cls = EthernetSoC if args.with_ethernet else BaseSoC
soc = cls(toolchain=args.toolchain, sys_clk_freq=int(float(args.sys_clk_freq)), **soc_sdram_argdict(args)) soc = cls(toolchain=args.toolchain, sys_clk_freq=int(float(args.sys_clk_freq)), **soc_sdram_argdict(args))
builder = Builder(soc, **builder_argdict(args)) builder = Builder(soc, **builder_argdict(args))
builder.build(**trellis_argdict(args)) builder_kargs = trellis_argdict(args) if args.toolchain == "trellis" else {}
builder.build(**builder_kargs)
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -12,6 +12,8 @@ from migen.genlib.resetsync import AsyncResetSynchronizer
from litex_boards.platforms import ulx3s from litex_boards.platforms import ulx3s
from litex.build.lattice.trellis import trellis_args, trellis_argdict
from litex.soc.cores.clock import * from litex.soc.cores.clock import *
from litex.soc.integration.soc_sdram import * from litex.soc.integration.soc_sdram import *
from litex.soc.integration.builder import * from litex.soc.integration.builder import *
@ -50,7 +52,7 @@ class _CRG(Module):
# BaseSoC ------------------------------------------------------------------------------------------ # BaseSoC ------------------------------------------------------------------------------------------
class BaseSoC(SoCSDRAM): class BaseSoC(SoCSDRAM):
def __init__(self, device="LFE5U-45F", toolchain="diamond", def __init__(self, device="LFE5U-45F", toolchain="trellis",
sys_clk_freq=int(50e6), sdram_module_cls="MT48LC16M16", **kwargs): sys_clk_freq=int(50e6), sdram_module_cls="MT48LC16M16", **kwargs):
platform = ulx3s.Platform(device=device, toolchain=toolchain) platform = ulx3s.Platform(device=device, toolchain=toolchain)
@ -72,16 +74,17 @@ class BaseSoC(SoCSDRAM):
def main(): def main():
parser = argparse.ArgumentParser(description="LiteX SoC on ULX3S") parser = argparse.ArgumentParser(description="LiteX SoC on ULX3S")
parser.add_argument("--gateware-toolchain", dest="toolchain", default="diamond", parser.add_argument("--gateware-toolchain", dest="toolchain", default="trellis",
help='gateware toolchain to use, diamond (default) or trellis') help="gateware toolchain to use, trellis (default) or diamond")
parser.add_argument("--device", dest="device", default="LFE5U-45F", parser.add_argument("--device", dest="device", default="LFE5U-45F",
help='FPGA device, ULX3S can be populated with LFE5U-45F (default) or LFE5U-85F') help="FPGA device, ULX3S can be populated with LFE5U-45F (default) or LFE5U-85F")
parser.add_argument("--sys-clk-freq", default=50e6, parser.add_argument("--sys-clk-freq", default=50e6,
help="system clock frequency (default=50MHz)") help="system clock frequency (default=50MHz)")
parser.add_argument("--sdram-module", default="MT48LC16M16", parser.add_argument("--sdram-module", default="MT48LC16M16",
help="SDRAM module: MT48LC16M16, AS4C32M16 or AS4C16M16 (default=MT48LC16M16)") help="SDRAM module: MT48LC16M16, AS4C32M16 or AS4C16M16 (default=MT48LC16M16)")
builder_args(parser) builder_args(parser)
soc_sdram_args(parser) soc_sdram_args(parser)
trellis_args(parser)
args = parser.parse_args() args = parser.parse_args()
soc = BaseSoC(device=args.device, toolchain=args.toolchain, soc = BaseSoC(device=args.device, toolchain=args.toolchain,
@ -89,7 +92,8 @@ def main():
sdram_module_cls=args.sdram_module, sdram_module_cls=args.sdram_module,
**soc_sdram_argdict(args)) **soc_sdram_argdict(args))
builder = Builder(soc, **builder_argdict(args)) builder = Builder(soc, **builder_argdict(args))
builder.build() builder_kargs = trellis_argdict(args) if args.toolchain == "trellis" else {}
builder.build(**builder_kargs)
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -130,8 +130,8 @@ class EthernetSoC(BaseSoC):
def main(): def main():
parser = argparse.ArgumentParser(description="LiteX SoC on Versa ECP5") parser = argparse.ArgumentParser(description="LiteX SoC on Versa ECP5")
parser.add_argument("--gateware-toolchain", dest="toolchain", default="diamond", parser.add_argument("--gateware-toolchain", dest="toolchain", default="trellis",
help='gateware toolchain to use, diamond (default) or trellis') help="gateware toolchain to use, trellis (default) or diamond")
builder_args(parser) builder_args(parser)
soc_sdram_args(parser) soc_sdram_args(parser)
trellis_args(parser) trellis_args(parser)
@ -144,9 +144,7 @@ def main():
cls = EthernetSoC if args.with_ethernet else BaseSoC cls = EthernetSoC if args.with_ethernet else BaseSoC
soc = cls(toolchain=args.toolchain, sys_clk_freq=int(float(args.sys_clk_freq)), **soc_sdram_argdict(args)) soc = cls(toolchain=args.toolchain, sys_clk_freq=int(float(args.sys_clk_freq)), **soc_sdram_argdict(args))
builder = Builder(soc, **builder_argdict(args)) builder = Builder(soc, **builder_argdict(args))
builder_kargs = {} builder_kargs = trellis_argdict(args) if args.toolchain == "trellis" else {}
if args.toolchain == "trellis":
builder_kargs == trellis_argdict(args)
builder.build(**builder_kargs) builder.build(**builder_kargs)
if __name__ == "__main__": if __name__ == "__main__":