From 898229bf2bf9b128f1fdc7ec565a52d5983536b5 Mon Sep 17 00:00:00 2001 From: Roland Lutz Date: Thu, 31 Aug 2017 19:49:59 +0200 Subject: icepack: Add support for non-warmboot images --- icepack/icepack.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/icepack/icepack.cc b/icepack/icepack.cc index 4374452..2eac9c6 100644 --- a/icepack/icepack.cc +++ b/icepack/icepack.cc @@ -649,6 +649,18 @@ void FpgaConfig::read_ascii(std::istream &ifs) continue; } + if (command == ".warmboot") + { + is >> this->warmboot; + + if (this->warmboot != "disabled" && + this->warmboot != "enabled") + error("Unknown warmboot setting '%s'.\n", + this->warmboot.c_str()); + + continue; + } + if (command == ".io_tile" || command == ".logic_tile" || command == ".ramb_tile" || command == ".ramt_tile") { if (!got_device) @@ -764,6 +776,8 @@ void FpgaConfig::write_ascii(std::ostream &ofs) const } ofs << stringf("\n.device %s\n", this->device.c_str()); + if (this->warmboot != "enabled") + ofs << stringf(".warmboot %s\n", this->warmboot.c_str()); typedef std::tuple tile_bit_t; std::set tile_bits; -- cgit v1.2.3 From a684b28b55f1ca938bdf6954e74952c7b61e8477 Mon Sep 17 00:00:00 2001 From: Roland Lutz Date: Sat, 2 Sep 2017 22:05:17 +0200 Subject: icebox: Add support for non-warmboot images --- icebox/icebox.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/icebox/icebox.py b/icebox/icebox.py index 982d088..41e8f12 100644 --- a/icebox/icebox.py +++ b/icebox/icebox.py @@ -26,6 +26,7 @@ class iceconfig: self.max_x = 0 self.max_y = 0 self.device = "" + self.warmboot = True self.logic_tiles = dict() self.io_tiles = dict() self.ramb_tiles = dict() @@ -668,6 +669,10 @@ class iceconfig: assert line[1] in ["1k", "5k", "8k", "384"] self.device = line[1] continue + if line[0] == ".warmboot": + assert line[1] in ["disabled", "enabled"] + self.warmboot = line[1] == "enabled" + continue if line[0] == ".sym": self.symbols.setdefault(int(line[1]), set()).add(line[2]) continue @@ -680,6 +685,8 @@ class iceconfig: def write_file(self, filename): with open(filename, "w") as f: print(".device %s" % self.device, file=f) + if not self.warmboot: + print(".warmboot disabled", file=f) for y in range(self.max_y+1): for x in range(self.max_x+1): if self.tile_pos(x, y) is not None: -- cgit v1.2.3