litex-buildenv icon indicating copy to clipboard operation
litex-buildenv copied to clipboard

Get a multiboot configuration working on a Series 7 device

Open mithro opened this issue 7 years ago • 0 comments

class Platform(XilinxPlatform):
    def __init__(self, toolchain="vivado", programmer="vivado", device="xc7a35t", build_multiboot=True):
        XilinxPlatform.__init__(self, "{}-fgg484-2".format(device), _io, toolchain=toolchain)
        self.sysid = 0x4b01
        self.toolchain.bitstream_commands = [
            "set_property BITSTREAM.GENERAL.COMPRESS True [current_design]",
            "set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]",
            "set_property BITSTREAM.CONFIG.EXTMASTERCCLK_EN div-1 [current_design]"
        ]
        self.toolchain.additional_commands = [
            # build single bitstream (no multiboot)
            "write_cfgmem -force -format bin -interface spix4 -size 16 -loadbit \"up 0x0 \
            {build_name}.bit\" -file {build_name}.bin",
        ]
        if build_multiboot:
            self.toolchain.additional_commands += [
                # build operational bistream (multiboot)
                "set_property BITSTREAM.CONFIG.TIMER_CFG 0x0001FBD0 [current_design]",
                "set_property BITSTREAM.CONFIG.CONFIGFALLBACK Enable [current_design]",
                "write_bitstream -force {build_name}_operational.bit ",
                "write_cfgmem -force -format bin -interface spix4 -size 16 -loadbit \"up 0x0 \
                {build_name}_operational.bit\" -file {build_name}_operational.bin",

                # build fallback bistream (Multiboot)
                "set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 0x00400000 [current_design]",
                "write_bitstream -force {build_name}_fallback.bit ",
                "write_cfgmem -force -format bin -interface spix4 -size 16 -loadbit \"up 0x0 \
                {build_name}_fallback.bit\" -file {build_name}_fallback.bin",
            ]
    def create_programmer(self):
        return VivadoProgrammer()

mithro avatar Oct 03 '18 01:10 mithro