Review Board 2.0.15


dev, arm: Rewrite the HDLCD controller

Review Request #2950 - Created July 8, 2015 and submitted - Latest diff uploaded

Information
Andreas Sandberg
gem5
default
Reviewers
Default
Changeset 10925:b0e1c8daa407
---------------------------
dev, arm: Rewrite the HDLCD controller

Rewrite the HDLCD controller to use the new DMA engine and pixel
pump. This fixes several bugs in the current implementation:

   * Broken/missing interrupt support (VSync, underrun, DMA end)
   * Fragile resolution changes (changing resolutions used
     to cause assertion errors).
   * Support for resolutions with a width that isn't divisible by 32.
   * The pixel clock can now be set dynamically.

This breaks checkpoint compatibility. Checkpoints can be upgraded with
the checkpoint conversion script. However, upgraded checkpoints won't
contain the state of the current frame. That means that HDLCD
controllers restoring from a converted checkpoint immediately start
drawing a new frame (i.e, expect timing differences).

Tested manually using a minimal linux and test images. Specifically made sure that checkpoints were taken mid-frame with buffers populated. Checkpoint upgrader tested on multiple existing checkpoints.