diff options
author | Chander Sudanthi <Chander.Sudanthi@arm.com> | 2013-01-07 13:05:39 -0500 |
---|---|---|
committer | Chander Sudanthi <Chander.Sudanthi@arm.com> | 2013-01-07 13:05:39 -0500 |
commit | 694a81e9942724544024266378604fb7d6b3dd40 (patch) | |
tree | 2302dbe89e961c1648a7802b67b243640f05d4ab /src/dev/arm/pl111.cc | |
parent | c3551e82f7087a0c0398ef037c979e0cc24d51ca (diff) | |
download | gem5-694a81e9942724544024266378604fb7d6b3dd40.tar.xz |
ARM: pl111/LCD framebuffer checkpointing fix
Fixed check pointing of the framebuffer. Previously, the pixel size was not
considered in determining the size of the buffer to checkpoint. This patch
checkpoints the entire framebuffer instead of the first quarter.
Diffstat (limited to 'src/dev/arm/pl111.cc')
-rw-r--r-- | src/dev/arm/pl111.cc | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/dev/arm/pl111.cc b/src/dev/arm/pl111.cc index cd1f00272..acb3b7dd8 100644 --- a/src/dev/arm/pl111.cc +++ b/src/dev/arm/pl111.cc @@ -76,7 +76,6 @@ Pl111::Pl111(const Params *p) pic = simout.create(csprintf("%s.framebuffer.bmp", sys->name()), true); - const int buffer_size = LcdMaxWidth * LcdMaxHeight * sizeof(uint32_t); dmaBuffer = new uint8_t[buffer_size]; memset(lcdPalette, 0, sizeof(lcdPalette)); @@ -581,7 +580,7 @@ Pl111::serialize(std::ostream &os) SERIALIZE_SCALAR(width); SERIALIZE_SCALAR(bytesPerPixel); - SERIALIZE_ARRAY(dmaBuffer, height * width); + SERIALIZE_ARRAY(dmaBuffer, buffer_size); SERIALIZE_SCALAR(startTime); SERIALIZE_SCALAR(startAddr); SERIALIZE_SCALAR(maxAddr); @@ -683,7 +682,7 @@ Pl111::unserialize(Checkpoint *cp, const std::string §ion) UNSERIALIZE_SCALAR(width); UNSERIALIZE_SCALAR(bytesPerPixel); - UNSERIALIZE_ARRAY(dmaBuffer, height * width); + UNSERIALIZE_ARRAY(dmaBuffer, buffer_size); UNSERIALIZE_SCALAR(startTime); UNSERIALIZE_SCALAR(startAddr); UNSERIALIZE_SCALAR(maxAddr); |