dev, arm: Rewrite the HDLCD controller
authorAndreas Sandberg <andreas.sandberg@arm.com>
Fri, 11 Sep 2015 14:55:46 +0000 (15:55 +0100)
committerAndreas Sandberg <andreas.sandberg@arm.com>
Fri, 11 Sep 2015 14:55:46 +0000 (15:55 +0100)
commitf7055e9215106fbd8297083298a815ef7098a028
tree62ba5ed3436bd5eef88f5330846bae4f7d1f2216
parentf611d4f22e913633e884b0d87b4de52def6434f3
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).
src/dev/arm/RealView.py
src/dev/arm/hdlcd.cc
src/dev/arm/hdlcd.hh
util/cpt_upgraders/arm-hdlcd-upgrade.py [new file with mode: 0644]