aboutsummaryrefslogtreecommitdiffstats
path: root/icemulti
diff options
context:
space:
mode:
authorRoland Lutz <rlutz@hedmen.org>2017-07-11 18:10:02 +0200
committerRoland Lutz <rlutz@hedmen.org>2017-09-04 20:10:26 +0200
commitd1e91ace22cfa21de0f7a786984b86859e6c5201 (patch)
tree5574f19d16cb3e9186e11bfb19955f76ce65c590 /icemulti
parenta9c53a32c06362b4cf8a8fc964884cd7258b52f0 (diff)
downloadicestorm-d1e91ace22cfa21de0f7a786984b86859e6c5201.tar.gz
icestorm-d1e91ace22cfa21de0f7a786984b86859e6c5201.tar.bz2
icestorm-d1e91ace22cfa21de0f7a786984b86859e6c5201.zip
icemulti: Treat coldboot as global flag
Diffstat (limited to 'icemulti')
-rw-r--r--icemulti/icemulti.cc14
1 files changed, 5 insertions, 9 deletions
diff --git a/icemulti/icemulti.cc b/icemulti/icemulti.cc
index da90da3..bac69cf 100644
--- a/icemulti/icemulti.cc
+++ b/icemulti/icemulti.cc
@@ -123,17 +123,15 @@ void Image::write(std::ostream &ofs, uint32_t &file_offset)
class Header {
uint32_t image_offs;
- bool coldboot_flag;
bool empty;
public:
Header() : empty(true) {}
Header(const Image &i) :
- image_offs(i.offset()), coldboot_flag(false), empty(false) {}
- void set_coldboot_flag() { coldboot_flag = true; }
- void write(std::ostream &ofs, uint32_t &file_offset);
+ image_offs(i.offset()), empty(false) {}
+ void write(std::ostream &ofs, uint32_t &file_offset, bool coldboot);
};
-void Header::write(std::ostream &ofs, uint32_t &file_offset)
+void Header::write(std::ostream &ofs, uint32_t &file_offset, bool coldboot)
{
if (empty)
return;
@@ -147,7 +145,7 @@ void Header::write(std::ostream &ofs, uint32_t &file_offset)
// Boot mode
write_byte(ofs, file_offset, 0x92);
write_byte(ofs, file_offset, 0x00);
- write_byte(ofs, file_offset, (coldboot_flag? 0x10: 0x00));
+ write_byte(ofs, file_offset, coldboot ? 0x10 : 0x00);
// Boot address
write_byte(ofs, file_offset, 0x44);
@@ -288,8 +286,6 @@ int main(int argc, char **argv)
headers[0] = headers[por_image + 1];
for (int i=image_count; i < NUM_IMAGES; i++)
headers[i + 1] = headers[0];
- if (coldboot)
- headers[0].set_coldboot_flag();
std::ofstream ofs;
std::ostream *osp;
@@ -307,7 +303,7 @@ int main(int argc, char **argv)
for (int i=0; i<NUM_HEADERS; i++)
{
pad_to(*osp, file_offset, i * HEADER_SIZE);
- headers[i].write(*osp, file_offset);
+ headers[i].write(*osp, file_offset, i == 0 && coldboot);
}
for (int i=0; i<image_count; i++)
{