43 #ifndef __DEV_ARM_PL111_HH__ 44 #define __DEV_ARM_PL111_HH__ 53 #include "params/Pl111.hh" 98 static const int buffer_size = LcdMaxWidth * LcdMaxHeight *
sizeof(uint32_t);
112 Bitfield<1> underflow;
171 class DmaDoneEvent : public
Event 177 DmaDoneEvent(
Pl111 *_obj)
178 : Event(), obj(*_obj) {}
185 const std::string
name()
const {
186 return obj.
name() +
".DmaDoneEvent";
364 return dynamic_cast<const Params *
>(
_params);
uint32_t clcdCrsrPalette1
static const int LcdTiming2
EndBitUnion(InterruptReg) BitUnion32(TimingReg0) Bitfield< 7
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.
AddrRangeList getAddrRanges() const override
Determine the address ranges that this device responds to.
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
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
EventFunctionWrapper intEvent
Wrapper to create an event out of the interrupt.
uint32_t lcdUpbase
Upper panel frame base address register.
InterruptReg clcdCrsrMis
Cursor masked interrupt status register - const.
InterruptReg lcdRis
Raw interrupt status register - const.
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.
EventFunctionWrapper fillFifoEvent
Fill fifo.
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.
static const int LcdUpCurr
Addr curAddr
Frame buffer current address.
static const int ClcdCrsrPalette1
uint32_t lcdLpbase
Lower panel frame base address register.
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...
EventFunctionWrapper readEvent
DMA framebuffer read event.
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.
virtual const std::string name() const
static const int LcdMaxHeight
uint32_t cursorImage[CrsrImageSize]
Cursor image RAM register 256-word wide values defining images overlaid by the hw cursor mechanism...
std::ostream CheckpointOut
static const int ClcdCrsrIcr
InterruptReg lcdImsc
Interrupt mask set/clear register.
const SimObjectParams * _params
Cached copy of the object parameters.
BitUnion8(InterruptReg) Bitfield< 1 > underflow
PixelConverter pixelConverter() const
Addr startAddr
Frame buffer base address.
static const int ClcdCrsrCtrl
InterruptReg clcdCrsrIcr
Cursor interrupt clear register.
BmpWriter bmp
Helper to write out bitmaps.
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
void serialize(CheckpointOut &cp) const override
Serialize an object.
EndBitUnion(ControlReg) class DmaDoneEvent TimingReg0 lcdTiming0
Event wrapper for dmaDone()
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
const Params * params() const