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