46 #ifndef __DEV_ARM_PL111_HH__
47 #define __DEV_ARM_PL111_HH__
56 #include "params/Pl111.hh"
115 Bitfield<1> underflow;
181 : Event(), obj(*_obj) {}
188 const std::string
name()
const {
189 return obj.
name() +
".DmaDoneEvent";
uint32_t clcdCrsrPalette1
static const int LcdTiming2
static const int CrsrImage
InterruptReg clcdCrsrRis
Cursor raw interrupt status register - const.
uint32_t clcdCrsrCtrl
Cursor control register.
static const int LcdLpBase
Internal gem5 representation of a frame buffer.
InterruptReg lcdMis
Masked interrupt status register.
VncInput * vnc
VNC server.
AmbaDmaDeviceParams Params
AddrRangeList getAddrRanges() const override
Determine the address ranges that this device responds to.
EventWrapper< Pl111,&Pl111::readFramebuffer > readEvent
DMA framebuffer read event.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
static const int LcdTiming1
static const int buffer_size
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
static const int LcdTiming0
ARM PL111 register map.
uint32_t waterMark
DMA FIFO watermark.
uint16_t height
Frame buffer height - lines per panel.
void updateVideoParams()
Send updated parameters to the vnc server.
static const int LcdMaxWidth
const std::string name() const
Addr maxAddr
Frame buffer max address.
static const int ClcdCrsrConfig
void dmaDone()
DMA done event.
static const int LcdTiming3
TimingReg1 lcdTiming1
Vertical axis panel control register.
static const int LcdPalette
uint32_t lcdUpbase
Upper panel frame base address register.
InterruptReg clcdCrsrMis
Cursor masked interrupt status register - const.
InterruptReg lcdRis
Raw interrupt status register - const.
EventWrapper< Pl111,&Pl111::generateInterrupt > intEvent
Wrapper to create an event out of the interrupt.
uint32_t clcdCrsrXY
Cursor XY position register.
TimingReg3 lcdTiming3
Line end control register.
ControlReg lcdControl
Control register.
static const int LcdControl
Tick pixelClock
Pixel clock.
Bitfield< 13, 12 > lcdvcomp
void startDma()
start the dmas off after power is enabled
This is a base class for AMBA devices that have to respond to Device and Implementer ID calls...
void generateReadEvent()
Generate dma framebuffer read event.
uint64_t Tick
Tick count type.
static const int ClcdCrsrXY
uint32_t clcdCrsrClip
Cursor clip position register.
uint32_t lcdPalette[LcdPaletteSize]
256x16-bit color palette registers 256 palette entries organized as 128 locations of two entries per ...
static const int ClcdCrsrClip
std::vector< DmaDoneEvent > dmaDoneEventAll
All pre-allocated DMA done events.
static const int ClcdCrsrRis
InterruptReg clcdCrsrImsc
Cursor interrupt mask set/clear register.
DmaDoneEvent(Pl111 *_obj)
Event wrapper for dmaDone()
static const int LcdUpCurr
Addr curAddr
Frame buffer current address.
static const int ClcdCrsrPalette1
uint32_t lcdLpbase
Lower panel frame base address register.
Bitmap bmp
Helper to write out bitmaps.
void fillFifo()
fillFIFO event
uint8_t bytesPerPixel
Bytes per pixel.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
#define ULL(N)
uint64_t constant
static const int maxOutstandingDma
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
static const int LcdLpCurr
Tick startTime
Start time for frame buffer dma read.
static const uint64_t AMBA_ID
static const int CrsrImageSize
static const int ClcdCrsrMis
uint32_t clcdCrsrConfig
Cursor configuration register.
static const int LcdUpBase
uint32_t dmaPendingNum
Number of pending dma reads.
static const int LcdMaxHeight
uint32_t cursorImage[CrsrImageSize]
Cursor image RAM register 256-word wide values defining images overlaid by the hw cursor mechanism...
const Params * params() const
std::ostream CheckpointOut
PixelConverter pixelConverter() const
static const int ClcdCrsrIcr
InterruptReg lcdImsc
Interrupt mask set/clear register.
BitUnion8(InterruptReg) Bitfield< 1 > underflow
Addr startAddr
Frame buffer base address.
const SimObjectParams * _params
Cached copy of the object parameters.
EventWrapper< Pl111,&Pl111::fillFifo > fillFifoEvent
Fill fifo.
static const int ClcdCrsrCtrl
InterruptReg clcdCrsrIcr
Cursor interrupt clear register.
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
void serialize(CheckpointOut &cp) const override
Serialize an object.
TimingReg0 lcdTiming0
Horizontal axis panel control register.
TimingReg2 lcdTiming2
Clock and signal polarity control register.
std::vector< DmaDoneEvent * > dmaDoneEventFree
Unused DMA done events that are ready to be scheduled.
uint32_t clcdCrsrPalette0
Cursor palette registers.
void readFramebuffer()
DMA framebuffer read.
Configurable RGB pixel converter.
BitUnion32(UserDescFlags) Bitfield< 0 > seg_32bit
void generateInterrupt()
Function to generate interrupt.
static const int ClcdCrsrPalette0
uint8_t * dmaBuffer
CLCDC supports up to 1024x768.
OutputStream * pic
Picture of what the current frame buffer looks like.
static const int ClcdCrsrImsc
uint16_t width
Frame buffer width - pixels per line.
static const int LcdPaletteSize
EndBitUnion(InterruptReg) BitUnion32(TimingReg0) Bitfield<7