mirror of https://github.com/YosysHQ/icestorm.git
icemulti: Store image reference in header
This commit is contained in:
parent
b7a6785b88
commit
a96d1fffdc
|
|
@ -122,11 +122,8 @@ void Image::write(std::ostream &ofs, uint32_t &file_offset)
|
||||||
}
|
}
|
||||||
|
|
||||||
class Header {
|
class Header {
|
||||||
uint32_t image_offs;
|
|
||||||
public:
|
public:
|
||||||
Header() {}
|
Image const *image;
|
||||||
Header(const Image &i) :
|
|
||||||
image_offs(i.offset()) {}
|
|
||||||
void write(std::ostream &ofs, uint32_t &file_offset, bool coldboot);
|
void write(std::ostream &ofs, uint32_t &file_offset, bool coldboot);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -146,9 +143,9 @@ void Header::write(std::ostream &ofs, uint32_t &file_offset, bool coldboot)
|
||||||
// Boot address
|
// Boot address
|
||||||
write_byte(ofs, file_offset, 0x44);
|
write_byte(ofs, file_offset, 0x44);
|
||||||
write_byte(ofs, file_offset, 0x03);
|
write_byte(ofs, file_offset, 0x03);
|
||||||
write_byte(ofs, file_offset, (image_offs >> 16) & 0xff);
|
write_byte(ofs, file_offset, (image->offset() >> 16) & 0xff);
|
||||||
write_byte(ofs, file_offset, (image_offs >> 8) & 0xff);
|
write_byte(ofs, file_offset, (image->offset() >> 8) & 0xff);
|
||||||
write_byte(ofs, file_offset, image_offs & 0xff);
|
write_byte(ofs, file_offset, image->offset() & 0xff);
|
||||||
|
|
||||||
// Bank offset
|
// Bank offset
|
||||||
write_byte(ofs, file_offset, 0x82);
|
write_byte(ofs, file_offset, 0x82);
|
||||||
|
|
@ -278,10 +275,10 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
// Populate headers
|
// Populate headers
|
||||||
for (int i=0; i<image_count; i++)
|
for (int i=0; i<image_count; i++)
|
||||||
headers[i + 1] = Header(*images[i]);
|
headers[i + 1].image = &*images[i];
|
||||||
headers[0] = headers[por_image + 1];
|
headers[0].image = headers[por_image + 1].image;
|
||||||
for (int i=image_count; i < NUM_IMAGES; i++)
|
for (int i=image_count; i < NUM_IMAGES; i++)
|
||||||
headers[i + 1] = headers[0];
|
headers[i + 1].image = headers[0].image;
|
||||||
|
|
||||||
std::ofstream ofs;
|
std::ofstream ofs;
|
||||||
std::ostream *osp;
|
std::ostream *osp;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue