gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
HDLcd Class Reference

#include <hdlcd.hh>

Inheritance diagram for HDLcd:
AmbaDmaDevice DmaDevice AmbaDevice PioDevice MemObject ClockedObject SimObject Clocked EventManager Serializable Drainable

Classes

class  DmaEngine
 
class  PixelPump
 

Public Member Functions

 HDLcd (const HDLcdParams *p)
 
 ~HDLcd ()
 
void regStats () override
 Register statistics for this object. More...
 
void serialize (CheckpointOut &cp) const override
 Serialize an object. More...
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object. More...
 
void drainResume () override
 Resume execution after a successful drain. More...
 
Tick read (PacketPtr pkt) override
 Pure virtual function that the device must implement. More...
 
Tick write (PacketPtr pkt) override
 Pure virtual function that the device must implement. More...
 
AddrRangeList getAddrRanges () const override
 Every PIO device is obliged to provide an implementation that returns the address ranges the device responds to. More...
 
bool pxlNext (Pixel &p)
 
void pxlVSyncBegin ()
 
void pxlVSyncEnd ()
 
void pxlUnderrun ()
 
void pxlFrameDone ()
 
- Public Member Functions inherited from AmbaDmaDevice
 AmbaDmaDevice (const Params *p, Addr pio_size=0)
 
- Public Member Functions inherited from DmaDevice
 DmaDevice (const Params *p)
 
virtual ~DmaDevice ()
 
void dmaWrite (Addr addr, int size, Event *event, uint8_t *data, Tick delay=0)
 
void dmaRead (Addr addr, int size, Event *event, uint8_t *data, Tick delay=0)
 
bool dmaPending () const
 
void init () override
 init() is called after all C++ SimObjects have been created and all ports are connected. More...
 
unsigned int cacheBlockSize () const
 
BaseMasterPortgetMasterPort (const std::string &if_name, PortID idx=InvalidPortID) override
 Get a master port with a given name and index. More...
 
- Public Member Functions inherited from PioDevice
 PioDevice (const Params *p)
 
virtual ~PioDevice ()
 
const Paramsparams () const
 
virtual BaseSlavePortgetSlavePort (const std::string &if_name, PortID idx=InvalidPortID)
 Get a slave port with a given name and index. More...
 
- Public Member Functions inherited from MemObject
const Paramsparams () const
 
 MemObject (const Params *params)
 
- Public Member Functions inherited from ClockedObject
 ClockedObject (const ClockedObjectParams *p)
 
const Paramsparams () const
 
void serialize (CheckpointOut &cp) const override
 Serialize an object. More...
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object. More...
 
Enums::PwrState pwrState () const
 
std::string pwrStateName () const
 
std::vector< double > pwrStateWeights () const
 Returns the percentage residency for each power state. More...
 
void computeStats ()
 Record stats values like state residency by computing the time difference from previous update. More...
 
void pwrState (Enums::PwrState)
 
void regStats () override
 Register statistics for this object. More...
 
- Public Member Functions inherited from SimObject
const Paramsparams () const
 
 SimObject (const Params *_params)
 
virtual ~SimObject ()
 
virtual const std::string name () const
 
virtual void loadState (CheckpointIn &cp)
 loadState() is called on each SimObject when restoring from a checkpoint. More...
 
virtual void initState ()
 initState() is called on each SimObject when not restoring from a checkpoint. More...
 
virtual void resetStats ()
 Reset statistics associated with this object. More...
 
virtual void regProbePoints ()
 Register probe points for this object. More...
 
virtual void regProbeListeners ()
 Register probe listeners for this object. More...
 
ProbeManagergetProbeManager ()
 Get the probe manager for this object. More...
 
virtual void startup ()
 startup() is the final initialization call before simulation. More...
 
DrainState drain () override
 Provide a default implementation of the drain interface for objects that don't need draining. More...
 
virtual void memWriteback ()
 Write back dirty buffers to memory using functional writes. More...
 
virtual void memInvalidate ()
 Invalidate the contents of memory buffers. More...
 
void serialize (CheckpointOut &cp) const override
 Serialize an object. More...
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object. More...
 
- Public Member Functions inherited from EventManager
 EventManager (EventManager &em)
 
 EventManager (EventManager *em)
 
 EventManager (EventQueue *eq)
 
EventQueueeventQueue () const
 
void schedule (Event &event, Tick when)
 
void deschedule (Event &event)
 
void reschedule (Event &event, Tick when, bool always=false)
 
void schedule (Event *event, Tick when)
 
void deschedule (Event *event)
 
void reschedule (Event *event, Tick when, bool always=false)
 
void wakeupEventQueue (Tick when=(Tick)-1)
 
void setCurTick (Tick newVal)
 
- Public Member Functions inherited from Serializable
 Serializable ()
 
virtual ~Serializable ()
 
void serializeSection (CheckpointOut &cp, const char *name) const
 Serialize an object into a new section. More...
 
void serializeSection (CheckpointOut &cp, const std::string &name) const
 
void unserializeSection (CheckpointIn &cp, const char *name)
 Unserialize an a child object. More...
 
void unserializeSection (CheckpointIn &cp, const std::string &name)
 
- Public Member Functions inherited from Drainable
DrainState drainState () const
 Return the current drain state of an object. More...
 
virtual void notifyFork ()
 Notify a child process of a fork. More...
 
- Public Member Functions inherited from Clocked
void updateClockPeriod () const
 Update the tick to the current tick. More...
 
Tick clockEdge (Cycles cycles=Cycles(0)) const
 Determine the tick when a cycle begins, by default the current one, but the argument also enables the caller to determine a future cycle. More...
 
Cycles curCycle () const
 Determine the current cycle, corresponding to a tick aligned to a clock edge. More...
 
Tick nextCycle () const
 Based on the clock of the object, determine the start tick of the first cycle that is at least one cycle in the future. More...
 
uint64_t frequency () const
 
Tick clockPeriod () const
 
double voltage () const
 
Cycles ticksToCycles (Tick t) const
 
Tick cyclesToTicks (Cycles c) const
 

Protected Types

enum  RegisterOffset {
  Version = 0x0000, Int_RawStat = 0x0010, Int_Clear = 0x0014, Int_Mask = 0x0018,
  Int_Status = 0x001C, Fb_Base = 0x0100, Fb_Line_Length = 0x0104, Fb_Line_Count = 0x0108,
  Fb_Line_Pitch = 0x010C, Bus_Options = 0x0110, V_Sync = 0x0200, V_Back_Porch = 0x0204,
  V_Data = 0x0208, V_Front_Porch = 0x020C, H_Sync = 0x0210, H_Back_Porch = 0x0214,
  H_Data = 0x0218, H_Front_Porch = 0x021C, Polarities = 0x0220, Command = 0x0230,
  Pixel_Format = 0x0240, Red_Select = 0x0244, Green_Select = 0x0248, Blue_Select = 0x024C
}
 ARM HDLcd register offsets. More...
 

Protected Member Functions

uint32_t readReg (Addr offset)
 
void writeReg (Addr offset, uint32_t value)
 
PixelConverter pixelConverter () const
 
DisplayTimings displayTimings () const
 
void createDmaEngine ()
 
void cmdEnable ()
 
void cmdDisable ()
 
bool enabled () const
 
void setInterrupts (uint32_t ints, uint32_t mask)
 Assign new interrupt values and update interrupt signals. More...
 
void intMask (uint32_t mask)
 Convenience function to update the interrupt mask. More...
 
void intRaise (uint32_t ints)
 Convenience function to raise a new interrupt. More...
 
void intClear (uint32_t ints)
 Convenience function to clear interrupts. More...
 
uint32_t intStatus () const
 Masked interrupt status register. More...
 
void virtRefresh ()
 Handler for fast frame refresh in KVM-mode. More...
 
- Protected Member Functions inherited from Drainable
 Drainable ()
 
virtual ~Drainable ()
 
void signalDrainDone () const
 Signal that an object is drained. More...
 
- Protected Member Functions inherited from Clocked
 Clocked (ClockDomain &clk_domain)
 Create a clocked object and set the clock domain based on the parameters. More...
 
 Clocked (Clocked &)=delete
 
Clockedoperator= (Clocked &)=delete
 
virtual ~Clocked ()
 Virtual destructor due to inheritance. More...
 
void resetClock () const
 Reset the object's clock using the current global tick value. More...
 
- Protected Member Functions inherited from AmbaDevice
bool readId (PacketPtr pkt, uint64_t amba_id, Addr pio_addr)
 

Protected Attributes

VncInputvnc
 
const bool workaroundSwapRB
 
const bool workaroundDmaLineCount
 
const AddrRangeList addrRanges
 
const bool enableCapture
 
const Addr pixelBufferSize
 
const Tick virtRefreshRate
 
EventWrapper< HDLcd,&HDLcd::virtRefreshvirtRefreshEvent
 
Bitmap bmp
 Helper to write out bitmaps. More...
 
OutputStreampic
 Picture of what the current frame buffer looks like. More...
 
PixelConverter conv
 Cached pixel converter, set when the converter is enabled. More...
 
PixelPump pixelPump
 
std::unique_ptr< DmaEnginedmaEngine
 
struct {
   Stats::Scalar   underruns
 
stats
 
HDLCDRegisters

HDLCD register contents.

uint32_t int_rawstat
 Interrupt raw status register. More...
 
uint32_t int_mask
 Interrupt mask register. More...
 
uint32_t fb_base
 Frame buffer base address register. More...
 
uint32_t fb_line_length
 Frame buffer Line length register. More...
 
FbLineCountReg fb_line_count
 Frame buffer Line count register. More...
 
int32_t fb_line_pitch
 Frame buffer Line pitch register. More...
 
BusOptsReg bus_options
 Bus options register. More...
 
TimingReg v_sync
 Vertical sync width register. More...
 
TimingReg v_back_porch
 Vertical back porch width register. More...
 
TimingReg v_data
 Vertical data width register. More...
 
TimingReg v_front_porch
 Vertical front porch width register. More...
 
TimingReg h_sync
 Horizontal sync width register. More...
 
TimingReg h_back_porch
 Horizontal back porch width register. More...
 
TimingReg h_data
 Horizontal data width register. More...
 
TimingReg h_front_porch
 Horizontal front porch width reg. More...
 
PolaritiesReg polarities
 Polarities register. More...
 
CommandReg command
 Command register. More...
 
PixelFormatReg pixel_format
 Pixel format register. More...
 
ColorSelectReg red_select
 Red color select register. More...
 
ColorSelectReg green_select
 Green color select register. More...
 
ColorSelectReg blue_select
 Blue color select register. More...
 
- Protected Attributes inherited from AmbaDmaDevice
uint64_t ambaId
 
Addr pioAddr
 
Addr pioSize
 
Tick pioDelay
 
int intNum
 
BaseGicgic
 
- Protected Attributes inherited from DmaDevice
DmaPort dmaPort
 
- Protected Attributes inherited from PioDevice
Systemsys
 
PioPort pioPort
 The pioPort that handles the requests for us and provides us requests that it sees. More...
 
- Protected Attributes inherited from ClockedObject
Enums::PwrState _currPwrState
 To keep track of the current power state. More...
 
Tick prvEvalTick
 
Stats::Scalar numPwrStateTransitions
 
Stats::Distribution pwrStateClkGateDist
 
Stats::Vector pwrStateResidencyTicks
 
- Protected Attributes inherited from SimObject
const SimObjectParams * _params
 Cached copy of the object parameters. More...
 
- Protected Attributes inherited from EventManager
EventQueueeventq
 A pointer to this object's event queue. More...
 

Static Protected Attributes

static constexpr size_t BUS_OPTIONS_RESETV = 0x408
 Reset value for Bus_Options register. More...
 
static constexpr size_t VERSION_RESETV = 0x1CDC0000
 Reset value for Version register. More...
 
static constexpr size_t AXI_PORT_WIDTH = 8
 AXI port width in bytes. More...
 
static constexpr size_t MAX_BURST_LEN = 16
 max number of beats delivered in one dma burst More...
 
static constexpr size_t MAX_PIXEL_SIZE = 4
 Maximum number of bytes per pixel. More...
 
- Static Protected Attributes inherited from AmbaDevice
static const int AMBA_PER_ID0 = 0xFE0
 
static const int AMBA_PER_ID1 = 0xFE4
 
static const int AMBA_PER_ID2 = 0xFE8
 
static const int AMBA_PER_ID3 = 0xFEC
 
static const int AMBA_CEL_ID0 = 0xFF0
 
static const int AMBA_CEL_ID1 = 0xFF4
 
static const int AMBA_CEL_ID2 = 0xFF8
 
static const int AMBA_CEL_ID3 = 0xFFC
 

RegisterFieldLayouts

Bit layout declarations for multi-field registers.

 version_minor
 
Bitfield< 15, 8 > version_major
 
Bitfield< 31, 16 > product_id
 
 fb_line_count
 
Bitfield< 31, 12 > reserved_31_12
 
 burst_len
 
Bitfield< 7, 5 > reserved_7_5
 
Bitfield< 11, 8 > max_outstanding
 
 val
 
Bitfield< 1 > hsync_polarity
 
Bitfield< 2 > dataen_polarity
 
Bitfield< 3 > data_polarity
 
Bitfield< 4 > pxlclk_polarity
 
Bitfield< 31, 5 > reserved_31_5
 
Bitfield< 31, 1 > reserved_31_1
 
 reserved_2_0
 
Bitfield< 4, 3 > bytes_per_pixel
 
Bitfield< 30, 5 > reserved_30_5
 
Bitfield< 31 > big_endian
 
 offset
 
Bitfield< 11, 8 > size
 
Bitfield< 15, 12 > reserved_15_12
 
Bitfield< 23, 16 > default_color
 
Bitfield< 31, 24 > reserved_31_24
 
static constexpr uint32_t INT_BUS_ERROR = (1UL << 1)
 
static constexpr uint32_t INT_VSYNC = (1UL << 2)
 
static constexpr uint32_t INT_UNDERRUN = (1UL << 3)
 
 BitUnion32 (VersionReg) Bitfield<7
 
 EndBitUnion (VersionReg) static const expr uint32_t INT_DMA_END
 
 BitUnion32 (FbLineCountReg) Bitfield< 11
 
 EndBitUnion (FbLineCountReg) BitUnion32(BusOptsReg) Bitfield<4
 
 EndBitUnion (BusOptsReg) BitUnion32(TimingReg) Bitfield< 11
 
 EndBitUnion (TimingReg) BitUnion32(PolaritiesReg) Bitfield< 0 > vsync_polarity
 
 EndBitUnion (PolaritiesReg) BitUnion32(CommandReg) Bitfield< 0 > enable
 
 EndBitUnion (CommandReg) BitUnion32(PixelFormatReg) Bitfield<2
 
 EndBitUnion (PixelFormatReg) BitUnion32(ColorSelectReg) Bitfield<4
 

Additional Inherited Members

- Public Types inherited from AmbaDmaDevice
typedef AmbaDmaDeviceParams Params
 
- Public Types inherited from DmaDevice
typedef DmaDeviceParams Params
 
- Public Types inherited from PioDevice
typedef PioDeviceParams Params
 
- Public Types inherited from MemObject
typedef MemObjectParams Params
 
- Public Types inherited from ClockedObject
typedef ClockedObjectParams Params
 Parameters of ClockedObject. More...
 
- Public Types inherited from SimObject
typedef SimObjectParams Params
 
- Static Public Member Functions inherited from SimObject
static void serializeAll (CheckpointOut &cp)
 Serialize all SimObjects in the system. More...
 
static SimObjectfind (const char *name)
 Find the SimObject with the given name and return a pointer to it. More...
 
- Static Public Member Functions inherited from Serializable
static const std::string & currentSection ()
 Get the fully-qualified name of the active section. More...
 
static void serializeAll (const std::string &cpt_dir)
 
static void unserializeGlobals (CheckpointIn &cp)
 
- Static Public Attributes inherited from Serializable
static int ckptCount = 0
 
static int ckptMaxCount = 0
 
static int ckptPrevCount = -1
 

Detailed Description

Definition at line 93 of file hdlcd.hh.

Member Enumeration Documentation

enum HDLcd::RegisterOffset
protected

ARM HDLcd register offsets.

Enumerator
Version 
Int_RawStat 
Int_Clear 
Int_Mask 
Int_Status 
Fb_Base 
Fb_Line_Length 
Fb_Line_Count 
Fb_Line_Pitch 
Bus_Options 
V_Sync 
V_Back_Porch 
V_Data 
V_Front_Porch 
H_Sync 
H_Back_Porch 
H_Data 
H_Front_Porch 
Polarities 
Command 
Pixel_Format 
Red_Select 
Green_Select 
Blue_Select 

Definition at line 123 of file hdlcd.hh.

Constructor & Destructor Documentation

HDLcd::HDLcd ( const HDLcdParams *  p)

Definition at line 59 of file hdlcd.cc.

References AmbaDmaDevice::pioAddr, AmbaDmaDevice::pioSize, and RangeSize().

HDLcd::~HDLcd ( )

Definition at line 95 of file hdlcd.cc.

Member Function Documentation

HDLcd::BitUnion32 ( VersionReg  )
protected
HDLcd::BitUnion32 ( FbLineCountReg  )
protected
void HDLcd::cmdDisable ( )
protected
void HDLcd::cmdEnable ( )
protected
void HDLcd::createDmaEngine ( )
protected
DisplayTimings HDLcd::displayTimings ( ) const
protected

Definition at line 457 of file hdlcd.cc.

References h_back_porch, h_data, h_front_porch, h_sync, v_back_porch, v_data, v_front_porch, and v_sync.

Referenced by cmdEnable().

void HDLcd::drainResume ( )
overridevirtual

Resume execution after a successful drain.

Reimplemented from Drainable.

Definition at line 202 of file hdlcd.cc.

References BasePixelPump::active(), System::bypassCaches(), cmdDisable(), cmdEnable(), Drainable::drainResume(), enabled(), pixelPump, VncInput::setDirty(), PioDevice::sys, and vnc.

bool HDLcd::enabled ( ) const
inlineprotected

Definition at line 269 of file hdlcd.hh.

Referenced by drainResume(), serialize(), and unserialize().

HDLcd::EndBitUnion ( VersionReg  ) const
protected
HDLcd::EndBitUnion ( FbLineCountReg  )
protected
HDLcd::EndBitUnion ( BusOptsReg  )
protected
HDLcd::EndBitUnion ( TimingReg  )
protected
HDLcd::EndBitUnion ( PolaritiesReg  )
protected
HDLcd::EndBitUnion ( CommandReg  )
protected
HDLcd::EndBitUnion ( PixelFormatReg  )
protected
AddrRangeList HDLcd::getAddrRanges ( ) const
inlineoverridevirtual

Every PIO device is obliged to provide an implementation that returns the address ranges the device responds to.

Returns
a list of non-overlapping address ranges

Implements PioDevice.

Definition at line 110 of file hdlcd.hh.

References addrRanges.

void HDLcd::intClear ( uint32_t  ints)
inlineprotected

Convenience function to clear interrupts.

See Also
setInterrupts
Parameters
intsSet of interrupts to clear

Definition at line 316 of file hdlcd.hh.

References int_mask, int_rawstat, and setInterrupts().

Referenced by writeReg().

void HDLcd::intMask ( uint32_t  mask)
inlineprotected

Convenience function to update the interrupt mask.

See Also
setInterrupts
Parameters
maskNew interrupt mask

Definition at line 298 of file hdlcd.hh.

References int_rawstat, and setInterrupts().

Referenced by writeReg().

void HDLcd::intRaise ( uint32_t  ints)
inlineprotected

Convenience function to raise a new interrupt.

See Also
setInterrupts
Parameters
intsSet of interrupts to raise

Definition at line 306 of file hdlcd.hh.

References int_mask, int_rawstat, and setInterrupts().

Referenced by pxlUnderrun(), pxlVSyncBegin(), and writeReg().

uint32_t HDLcd::intStatus ( ) const
inlineprotected

Masked interrupt status register.

Definition at line 321 of file hdlcd.hh.

References int_mask, and int_rawstat.

Referenced by readReg(), and setInterrupts().

PixelConverter HDLcd::pixelConverter ( ) const
protected
void HDLcd::pxlFrameDone ( )
bool HDLcd::pxlNext ( Pixel p)
void HDLcd::pxlUnderrun ( )

Definition at line 548 of file hdlcd.cc.

References dmaEngine, DPRINTF, INT_UNDERRUN, intRaise(), and stats.

Referenced by HDLcd::PixelPump::onUnderrun().

void HDLcd::pxlVSyncBegin ( )

Definition at line 534 of file hdlcd.cc.

References DPRINTF, INT_VSYNC, and intRaise().

Referenced by HDLcd::PixelPump::onVSyncBegin().

void HDLcd::pxlVSyncEnd ( )

Definition at line 541 of file hdlcd.cc.

References dmaEngine, DPRINTF, and fb_base.

Referenced by HDLcd::PixelPump::onVSyncEnd().

Tick HDLcd::read ( PacketPtr  pkt)
overridevirtual

Pure virtual function that the device must implement.

Called when a read command is recieved by the port.

Parameters
pktPacket describing this request
Returns
number of ticks it took to complete

Implements PioDevice.

Definition at line 235 of file hdlcd.cc.

References data, DPRINTF, Packet::getAddr(), Packet::getSize(), Packet::makeAtomicResponse(), panic_if(), AmbaDmaDevice::pioAddr, AmbaDmaDevice::pioDelay, AmbaDmaDevice::pioSize, readReg(), and Packet::set().

uint32_t HDLcd::readReg ( Addr  offset)
protected
void HDLcd::regStats ( )
overridevirtual

Register statistics for this object.

Reimplemented from SimObject.

Definition at line 100 of file hdlcd.cc.

References SimObject::name(), Stats::nozero, ClockedObject::regStats(), and stats.

void HDLcd::serialize ( CheckpointOut cp) const
overridevirtual

Serialize an object.

Output an object's state into the current checkpoint section.

Parameters
cpCheckpoint state

Implements Serializable.

Definition at line 114 of file hdlcd.cc.

References blue_select, bus_options, command, dmaEngine, DPRINTF, enabled(), fb_base, fb_line_count, fb_line_length, fb_line_pitch, green_select, h_back_porch, h_data, h_front_porch, h_sync, int_mask, int_rawstat, pixel_format, pixelPump, polarities, red_select, SERIALIZE_OBJ, SERIALIZE_SCALAR, v_back_porch, v_data, v_front_porch, and v_sync.

void HDLcd::setInterrupts ( uint32_t  ints,
uint32_t  mask 
)
protected

Assign new interrupt values and update interrupt signals.

A new interrupt is scheduled signalled if the set of unmasked interrupts goes empty to non-empty. Conversely, if the set of unmasked interrupts goes from non-empty to empty, the interrupt signal is cleared.

Parameters
intsNew raw interrupt status
maskNew interrupt mask

Definition at line 586 of file hdlcd.cc.

References BaseGic::clearInt(), AmbaDmaDevice::gic, int_mask, int_rawstat, AmbaDmaDevice::intNum, intStatus(), ArmISA::mask, and BaseGic::sendInt().

Referenced by intClear(), intMask(), and intRaise().

void HDLcd::unserialize ( CheckpointIn cp)
overridevirtual
void HDLcd::virtRefresh ( )
protected

Handler for fast frame refresh in KVM-mode.

Definition at line 227 of file hdlcd.cc.

References curTick(), pixelPump, BasePixelPump::renderFrame(), EventManager::schedule(), virtRefreshEvent, and virtRefreshRate.

Tick HDLcd::write ( PacketPtr  pkt)
overridevirtual

Pure virtual function that the device must implement.

Called when a write command is recieved by the port.

Parameters
pktPacket describing this request
Returns
number of ticks it took to complete

Implements PioDevice.

Definition at line 255 of file hdlcd.cc.

References data, DPRINTF, Packet::get(), Packet::getAddr(), Packet::getSize(), Packet::makeAtomicResponse(), panic_if(), AmbaDmaDevice::pioAddr, AmbaDmaDevice::pioDelay, AmbaDmaDevice::pioSize, and writeReg().

void HDLcd::writeReg ( Addr  offset,
uint32_t  value 
)
protected

Member Data Documentation

const AddrRangeList HDLcd::addrRanges
protected

Definition at line 116 of file hdlcd.hh.

Referenced by getAddrRanges().

constexpr size_t HDLcd::AXI_PORT_WIDTH = 8
staticprotected

AXI port width in bytes.

Definition at line 157 of file hdlcd.hh.

Referenced by createDmaEngine().

Bitfield<31> HDLcd::big_endian
protected

Definition at line 216 of file hdlcd.hh.

ColorSelectReg HDLcd::blue_select
protected

Blue color select register.

Definition at line 255 of file hdlcd.hh.

Referenced by pixelConverter(), readReg(), serialize(), unserialize(), and writeReg().

Bitmap HDLcd::bmp
protected

Helper to write out bitmaps.

Definition at line 353 of file hdlcd.hh.

Referenced by pxlFrameDone().

HDLcd::burst_len
protected

Definition at line 187 of file hdlcd.hh.

Referenced by writeReg().

BusOptsReg HDLcd::bus_options
protected

Bus options register.

Definition at line 241 of file hdlcd.hh.

Referenced by createDmaEngine(), readReg(), serialize(), unserialize(), and writeReg().

constexpr size_t HDLcd::BUS_OPTIONS_RESETV = 0x408
staticprotected

Reset value for Bus_Options register.

Definition at line 151 of file hdlcd.hh.

Bitfield<4,3> HDLcd::bytes_per_pixel
protected

Definition at line 214 of file hdlcd.hh.

CommandReg HDLcd::command
protected

Command register.

Definition at line 251 of file hdlcd.hh.

Referenced by readReg(), serialize(), unserialize(), and writeReg().

PixelConverter HDLcd::conv
protected

Cached pixel converter, set when the converter is enabled.

Definition at line 359 of file hdlcd.hh.

Referenced by cmdEnable(), pxlNext(), and unserialize().

Bitfield<3> HDLcd::data_polarity
protected

Definition at line 202 of file hdlcd.hh.

Bitfield<2> HDLcd::dataen_polarity
protected

Definition at line 201 of file hdlcd.hh.

Bitfield<23,16> HDLcd::default_color
protected

Definition at line 224 of file hdlcd.hh.

std::unique_ptr<DmaEngine> HDLcd::dmaEngine
protected
const bool HDLcd::enableCapture
protected

Definition at line 117 of file hdlcd.hh.

Referenced by pxlFrameDone().

uint32_t HDLcd::fb_base
protected

Frame buffer base address register.

Definition at line 237 of file hdlcd.hh.

Referenced by pxlVSyncEnd(), readReg(), serialize(), HDLcd::DmaEngine::startFrame(), unserialize(), and writeReg().

HDLcd::fb_line_count
protected

Definition at line 182 of file hdlcd.hh.

Referenced by createDmaEngine(), readReg(), serialize(), unserialize(), and writeReg().

FbLineCountReg HDLcd::fb_line_count
protected

Frame buffer Line count register.

Definition at line 239 of file hdlcd.hh.

uint32_t HDLcd::fb_line_length
protected

Frame buffer Line length register.

Definition at line 238 of file hdlcd.hh.

Referenced by createDmaEngine(), readReg(), serialize(), unserialize(), and writeReg().

int32_t HDLcd::fb_line_pitch
protected

Frame buffer Line pitch register.

Definition at line 240 of file hdlcd.hh.

Referenced by createDmaEngine(), readReg(), serialize(), unserialize(), and writeReg().

ColorSelectReg HDLcd::green_select
protected

Green color select register.

Definition at line 254 of file hdlcd.hh.

Referenced by pixelConverter(), readReg(), serialize(), unserialize(), and writeReg().

TimingReg HDLcd::h_back_porch
protected

Horizontal back porch width register.

Definition at line 247 of file hdlcd.hh.

Referenced by displayTimings(), readReg(), serialize(), unserialize(), and writeReg().

TimingReg HDLcd::h_data
protected

Horizontal data width register.

Definition at line 248 of file hdlcd.hh.

Referenced by displayTimings(), readReg(), serialize(), unserialize(), and writeReg().

TimingReg HDLcd::h_front_porch
protected

Horizontal front porch width reg.

Definition at line 249 of file hdlcd.hh.

Referenced by displayTimings(), readReg(), serialize(), unserialize(), and writeReg().

TimingReg HDLcd::h_sync
protected

Horizontal sync width register.

Definition at line 246 of file hdlcd.hh.

Referenced by displayTimings(), readReg(), serialize(), unserialize(), and writeReg().

Bitfield<1> HDLcd::hsync_polarity
protected

Definition at line 200 of file hdlcd.hh.

constexpr uint32_t HDLcd::INT_BUS_ERROR = (1UL << 1)
staticprotected

Definition at line 177 of file hdlcd.hh.

uint32_t HDLcd::int_mask
protected

Interrupt mask register.

Definition at line 236 of file hdlcd.hh.

Referenced by intClear(), intRaise(), intStatus(), readReg(), serialize(), setInterrupts(), and unserialize().

uint32_t HDLcd::int_rawstat
protected

Interrupt raw status register.

Definition at line 235 of file hdlcd.hh.

Referenced by intClear(), intMask(), intRaise(), intStatus(), readReg(), serialize(), setInterrupts(), and unserialize().

constexpr uint32_t HDLcd::INT_UNDERRUN = (1UL << 3)
staticprotected

Definition at line 179 of file hdlcd.hh.

Referenced by pxlUnderrun().

constexpr uint32_t HDLcd::INT_VSYNC = (1UL << 2)
staticprotected

Definition at line 178 of file hdlcd.hh.

Referenced by pxlVSyncBegin().

constexpr size_t HDLcd::MAX_BURST_LEN = 16
staticprotected

max number of beats delivered in one dma burst

Definition at line 160 of file hdlcd.hh.

Referenced by createDmaEngine().

Bitfield<11,8> HDLcd::max_outstanding
protected

Definition at line 189 of file hdlcd.hh.

Referenced by writeReg().

constexpr size_t HDLcd::MAX_PIXEL_SIZE = 4
staticprotected

Maximum number of bytes per pixel.

Definition at line 163 of file hdlcd.hh.

Referenced by pxlNext().

HDLcd::offset
protected

Definition at line 220 of file hdlcd.hh.

OutputStream* HDLcd::pic
protected

Picture of what the current frame buffer looks like.

Definition at line 356 of file hdlcd.hh.

Referenced by pxlFrameDone().

PixelFormatReg HDLcd::pixel_format
protected

Pixel format register.

Definition at line 252 of file hdlcd.hh.

Referenced by pixelConverter(), readReg(), serialize(), unserialize(), and writeReg().

const Addr HDLcd::pixelBufferSize
protected

Definition at line 118 of file hdlcd.hh.

Referenced by createDmaEngine().

PixelPump HDLcd::pixelPump
protected
PolaritiesReg HDLcd::polarities
protected

Polarities register.

Definition at line 250 of file hdlcd.hh.

Referenced by readReg(), serialize(), unserialize(), and writeReg().

Bitfield<31,16> HDLcd::product_id
protected

Definition at line 173 of file hdlcd.hh.

Bitfield<4> HDLcd::pxlclk_polarity
protected

Definition at line 203 of file hdlcd.hh.

ColorSelectReg HDLcd::red_select
protected

Red color select register.

Definition at line 253 of file hdlcd.hh.

Referenced by pixelConverter(), readReg(), serialize(), unserialize(), and writeReg().

Bitfield<15,12> HDLcd::reserved_15_12
protected

Definition at line 223 of file hdlcd.hh.

HDLcd::reserved_2_0
protected

Definition at line 213 of file hdlcd.hh.

Bitfield<30,5> HDLcd::reserved_30_5
protected

Definition at line 215 of file hdlcd.hh.

Bitfield<31,1> HDLcd::reserved_31_1
protected

Definition at line 209 of file hdlcd.hh.

Bitfield< 31, 12 > HDLcd::reserved_31_12
protected

Definition at line 183 of file hdlcd.hh.

Bitfield<31,24> HDLcd::reserved_31_24
protected

Definition at line 225 of file hdlcd.hh.

Bitfield<31,5> HDLcd::reserved_31_5
protected

Definition at line 204 of file hdlcd.hh.

Bitfield< 7, 5 > HDLcd::reserved_7_5
protected

Definition at line 188 of file hdlcd.hh.

Bitfield<11,8> HDLcd::size
protected

Definition at line 222 of file hdlcd.hh.

struct { ... } HDLcd::stats

Referenced by pxlUnderrun(), and regStats().

Stats::Scalar HDLcd::underruns

Definition at line 395 of file hdlcd.hh.

TimingReg HDLcd::v_back_porch
protected

Vertical back porch width register.

Definition at line 243 of file hdlcd.hh.

Referenced by displayTimings(), readReg(), serialize(), unserialize(), and writeReg().

TimingReg HDLcd::v_data
protected

Vertical data width register.

Definition at line 244 of file hdlcd.hh.

Referenced by displayTimings(), readReg(), serialize(), unserialize(), and writeReg().

TimingReg HDLcd::v_front_porch
protected

Vertical front porch width register.

Definition at line 245 of file hdlcd.hh.

Referenced by displayTimings(), readReg(), serialize(), unserialize(), and writeReg().

TimingReg HDLcd::v_sync
protected

Vertical sync width register.

Definition at line 242 of file hdlcd.hh.

Referenced by displayTimings(), readReg(), serialize(), unserialize(), and writeReg().

HDLcd::val
protected

Definition at line 194 of file hdlcd.hh.

Bitfield<15,8> HDLcd::version_major
protected

Definition at line 172 of file hdlcd.hh.

HDLcd::version_minor
protected

Definition at line 171 of file hdlcd.hh.

constexpr size_t HDLcd::VERSION_RESETV = 0x1CDC0000
staticprotected

Reset value for Version register.

Definition at line 154 of file hdlcd.hh.

EventWrapper<HDLcd, &HDLcd::virtRefresh> HDLcd::virtRefreshEvent
protected

Definition at line 350 of file hdlcd.hh.

Referenced by cmdDisable(), cmdEnable(), and virtRefresh().

const Tick HDLcd::virtRefreshRate
protected

Definition at line 119 of file hdlcd.hh.

Referenced by virtRefresh().

VncInput* HDLcd::vnc
protected

Definition at line 113 of file hdlcd.hh.

Referenced by drainResume(), and pxlFrameDone().

const bool HDLcd::workaroundDmaLineCount
protected

Definition at line 115 of file hdlcd.hh.

Referenced by createDmaEngine().

const bool HDLcd::workaroundSwapRB
protected

Definition at line 114 of file hdlcd.hh.

Referenced by pixelConverter().


The documentation for this class was generated from the following files:

Generated on Fri Jun 9 2017 13:04:12 for gem5 by doxygen 1.8.6