gem5  v20.1.0.0
hdlcd.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2010-2013, 2015, 2017 ARM Limited
3  * All rights reserved
4  *
5  * The license below extends only to copyright in the software and shall
6  * not be construed as granting a license to any other intellectual
7  * property including but not limited to intellectual property relating
8  * to a hardware implementation of the functionality of the software
9  * licensed hereunder. You may use the software subject to the license
10  * terms below provided that you ensure that this notice is replicated
11  * unmodified and in its entirety in all distributions of the software,
12  * modified or unmodified, in source code or in binary form.
13  *
14  * Redistribution and use in source and binary forms, with or without
15  * modification, are permitted provided that the following conditions are
16  * met: redistributions of source code must retain the above copyright
17  * notice, this list of conditions and the following disclaimer;
18  * redistributions in binary form must reproduce the above copyright
19  * notice, this list of conditions and the following disclaimer in the
20  * documentation and/or other materials provided with the distribution;
21  * neither the name of the copyright holders nor the names of its
22  * contributors may be used to endorse or promote products derived from
23  * this software without specific prior written permission.
24  *
25  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36  */
37 
38 
73 #ifndef __DEV_ARM_HDLCD_HH__
74 #define __DEV_ARM_HDLCD_HH__
75 
76 #include <fstream>
77 #include <memory>
78 
79 #include "base/framebuffer.hh"
80 #include "base/imgwriter.hh"
81 #include "base/output.hh"
82 #include "dev/arm/amba_device.hh"
83 #include "dev/pixelpump.hh"
84 #include "sim/serialize.hh"
85 
86 class VncInput;
87 struct HDLcdParams;
88 class HDLcdPixelPump;
89 
90 class HDLcd: public AmbaDmaDevice
91 {
92  public:
93  HDLcd(const HDLcdParams *p);
94  ~HDLcd();
95 
96  void regStats() override;
97 
98  void serialize(CheckpointOut &cp) const override;
99  void unserialize(CheckpointIn &cp) override;
100 
101  void drainResume() override;
102 
103  public: // IO device interface
104  Tick read(PacketPtr pkt) override;
105  Tick write(PacketPtr pkt) override;
106 
107  AddrRangeList getAddrRanges() const override { return addrRanges; }
108 
109  protected: // Parameters
111  const bool workaroundSwapRB;
114  const bool enableCapture;
117 
118  protected: // Register handling
121  Version = 0x0000,
122  Int_RawStat = 0x0010,
123  Int_Clear = 0x0014,
124  Int_Mask = 0x0018,
125  Int_Status = 0x001C,
126  Fb_Base = 0x0100,
127  Fb_Line_Length = 0x0104,
128  Fb_Line_Count = 0x0108,
129  Fb_Line_Pitch = 0x010C,
130  Bus_Options = 0x0110,
131  V_Sync = 0x0200,
132  V_Back_Porch = 0x0204,
133  V_Data = 0x0208,
134  V_Front_Porch = 0x020C,
135  H_Sync = 0x0210,
136  H_Back_Porch = 0x0214,
137  H_Data = 0x0218,
138  H_Front_Porch = 0x021C,
139  Polarities = 0x0220,
140  Command = 0x0230,
141  Pixel_Format = 0x0240,
142  Red_Select = 0x0244,
143  Green_Select = 0x0248,
144  Blue_Select = 0x024C,
145  };
146 
148  static constexpr size_t BUS_OPTIONS_RESETV = 0x408;
149 
151  static constexpr size_t VERSION_RESETV = 0x1CDC0000;
152 
154  static constexpr size_t AXI_PORT_WIDTH = 8;
155 
157  static constexpr size_t MAX_BURST_LEN = 16;
158 
160  static constexpr size_t MAX_PIXEL_SIZE = 4;
161 
167  BitUnion32(VersionReg)
168  Bitfield<7,0> version_minor;
169  Bitfield<15,8> version_major;
170  Bitfield<31,16> product_id;
171  EndBitUnion(VersionReg)
172 
173  static constexpr uint32_t INT_DMA_END = (1UL << 0);
174  static constexpr uint32_t INT_BUS_ERROR = (1UL << 1);
175  static constexpr uint32_t INT_VSYNC = (1UL << 2);
176  static constexpr uint32_t INT_UNDERRUN = (1UL << 3);
177 
178  BitUnion32(FbLineCountReg)
179  Bitfield<11,0> fb_line_count;
180  Bitfield<31,12> reserved_31_12;
181  EndBitUnion(FbLineCountReg)
182 
183  BitUnion32(BusOptsReg)
184  Bitfield<4,0> burst_len;
185  Bitfield<7,5> reserved_7_5;
186  Bitfield<11,8> max_outstanding;
187  Bitfield<31,12> reserved_31_12;
188  EndBitUnion(BusOptsReg)
189 
190  BitUnion32(TimingReg)
191  Bitfield<11,0> val;
192  Bitfield<31,12> reserved_31_12;
193  EndBitUnion(TimingReg)
194 
195  BitUnion32(PolaritiesReg)
196  Bitfield<0> vsync_polarity;
197  Bitfield<1> hsync_polarity;
198  Bitfield<2> dataen_polarity;
199  Bitfield<3> data_polarity;
200  Bitfield<4> pxlclk_polarity;
201  Bitfield<31,5> reserved_31_5;
202  EndBitUnion(PolaritiesReg)
203 
205  Bitfield<0> enable;
206  Bitfield<31,1> reserved_31_1;
208 
209  BitUnion32(PixelFormatReg)
210  Bitfield<2,0> reserved_2_0;
211  Bitfield<4,3> bytes_per_pixel;
212  Bitfield<30,5> reserved_30_5;
213  Bitfield<31> big_endian;
214  EndBitUnion(PixelFormatReg)
215 
216  BitUnion32(ColorSelectReg)
217  Bitfield<4,0> offset;
218  Bitfield<7,5> reserved_7_5;
219  Bitfield<11,8> size;
220  Bitfield<15,12> reserved_15_12;
221  Bitfield<23,16> default_color;
222  Bitfield<31,24> reserved_31_24;
223  EndBitUnion(ColorSelectReg)
231  const VersionReg version;
232  uint32_t int_rawstat;
233  uint32_t int_mask;
234  uint32_t fb_base;
235  uint32_t fb_line_length;
236  FbLineCountReg fb_line_count;
237  int32_t fb_line_pitch;
238  BusOptsReg bus_options;
239  TimingReg v_sync;
240  TimingReg v_back_porch;
241  TimingReg v_data;
242  TimingReg v_front_porch;
243  TimingReg h_sync;
244  TimingReg h_back_porch;
245  TimingReg h_data;
246  TimingReg h_front_porch;
247  PolaritiesReg polarities;
249  PixelFormatReg pixel_format;
250  ColorSelectReg red_select;
251  ColorSelectReg green_select;
252  ColorSelectReg blue_select;
255  uint32_t readReg(Addr offset);
256  void writeReg(Addr offset, uint32_t value);
257 
260 
261  void createDmaEngine();
262 
263  void cmdEnable();
264  void cmdDisable();
265 
266  bool enabled() const { return command.enable; }
267 
268  public: // Pixel pump callbacks
269  bool pxlNext(Pixel &p);
270  void pxlVSyncBegin();
271  void pxlVSyncEnd();
272  void pxlUnderrun();
273  void pxlFrameDone();
274 
275  protected: // Interrupt handling
287  void setInterrupts(uint32_t ints, uint32_t mask);
288 
295  void intMask(uint32_t mask) { setInterrupts(int_rawstat, mask); }
296 
303  void intRaise(uint32_t ints) {
305  }
306 
313  void intClear(uint32_t ints) {
315  }
316 
318  uint32_t intStatus() const { return int_rawstat & int_mask; }
319 
320  protected: // Pixel output
321  class PixelPump : public BasePixelPump
322  {
323  public:
324  PixelPump(HDLcd &p, ClockDomain &pxl_clk, unsigned pixel_chunk)
325  : BasePixelPump(p, pxl_clk, pixel_chunk), parent(p) {}
326 
327  void dumpSettings();
328 
329  protected:
330  bool nextPixel(Pixel &p) override { return parent.pxlNext(p); }
331 
332  void onVSyncBegin() override { return parent.pxlVSyncBegin(); }
333  void onVSyncEnd() override { return parent.pxlVSyncEnd(); }
334 
335  void onUnderrun(unsigned x, unsigned y) override {
337  }
338 
339  void onFrameDone() override { parent.pxlFrameDone(); }
340 
341  protected:
343  };
344 
346  void virtRefresh();
348 
350  std::unique_ptr<ImgWriter> imgWriter;
351 
353  Enums::ImageFormat imgFormat;
354 
357 
360 
362 
363  protected: // DMA handling
364  class DmaEngine : public DmaReadFifo
365  {
366  public:
367  DmaEngine(HDLcd &_parent, size_t size,
368  unsigned request_size, unsigned max_pending,
369  size_t line_size, ssize_t line_pitch, unsigned num_lines);
370 
371  void startFrame(Addr fb_base);
372  void abortFrame();
373  void dumpSettings();
374 
375  void serialize(CheckpointOut &cp) const override;
376  void unserialize(CheckpointIn &cp) override;
377 
378  protected:
379  void onEndOfBlock() override;
380  void onIdle() override;
381 
383  const size_t lineSize;
384  const ssize_t linePitch;
385  const unsigned numLines;
386 
389  };
390 
391  std::unique_ptr<DmaEngine> dmaEngine;
392 
393  protected: // Statistics
394  struct {
396  } stats;
397 };
398 
399 #endif
HDLcd::reserved_30_5
Bitfield< 30, 5 > reserved_30_5
Definition: hdlcd.hh:212
HDLcd::burst_len
burst_len
Definition: hdlcd.hh:184
HDLcd::intMask
void intMask(uint32_t mask)
Convenience function to update the interrupt mask.
Definition: hdlcd.hh:295
HDLcd::Fb_Line_Count
@ Fb_Line_Count
Definition: hdlcd.hh:128
HDLcd::v_data
TimingReg v_data
Vertical data width register.
Definition: hdlcd.hh:241
HDLcd::pxlVSyncBegin
void pxlVSyncBegin()
Definition: hdlcd.cc:534
HDLcd::stats
struct HDLcd::@52 stats
HDLcd::pixelPump
PixelPump pixelPump
Definition: hdlcd.hh:361
HDLcd::DmaEngine::DmaEngine
DmaEngine(HDLcd &_parent, size_t size, unsigned request_size, unsigned max_pending, size_t line_size, ssize_t line_pitch, unsigned num_lines)
Definition: hdlcd.cc:601
HDLcd::reserved_7_5
Bitfield< 7, 5 > reserved_7_5
Definition: hdlcd.hh:185
HDLcd::INT_UNDERRUN
static constexpr uint32_t INT_UNDERRUN
Definition: hdlcd.hh:176
HDLcd::underruns
Stats::Scalar underruns
Definition: hdlcd.hh:395
HDLcd::Int_Status
@ Int_Status
Definition: hdlcd.hh:125
HDLcd::pxlclk_polarity
Bitfield< 4 > pxlclk_polarity
Definition: hdlcd.hh:200
HDLcd::workaroundDmaLineCount
const bool workaroundDmaLineCount
Definition: hdlcd.hh:112
HDLcd::enableCapture
const bool enableCapture
Definition: hdlcd.hh:114
serialize.hh
AmbaDmaDevice
Definition: amba_device.hh:97
HDLcd::MAX_PIXEL_SIZE
static constexpr size_t MAX_PIXEL_SIZE
Maximum number of bytes per pixel.
Definition: hdlcd.hh:160
HDLcd::V_Back_Porch
@ V_Back_Porch
Definition: hdlcd.hh:132
HDLcd::getAddrRanges
AddrRangeList getAddrRanges() const override
Every PIO device is obliged to provide an implementation that returns the address ranges the device r...
Definition: hdlcd.hh:107
HDLcd::displayTimings
DisplayTimings displayTimings() const
Definition: hdlcd.cc:457
HDLcd::Red_Select
@ Red_Select
Definition: hdlcd.hh:142
PixelConverter
Configurable RGB pixel converter.
Definition: pixel.hh:87
HDLcd::regStats
void regStats() override
Callback to set stat parameters.
Definition: hdlcd.cc:100
HDLcd::imgFormat
Enums::ImageFormat imgFormat
Image Format.
Definition: hdlcd.hh:353
HDLcd::Bus_Options
@ Bus_Options
Definition: hdlcd.hh:130
HDLcd::pxlNext
bool pxlNext(Pixel &p)
Definition: hdlcd.cc:521
HDLcd::Blue_Select
@ Blue_Select
Definition: hdlcd.hh:144
HDLcd::fb_base
uint32_t fb_base
Frame buffer base address register.
Definition: hdlcd.hh:234
HDLcd::Int_RawStat
@ Int_RawStat
Definition: hdlcd.hh:122
HDLcd::v_back_porch
TimingReg v_back_porch
Vertical back porch width register.
Definition: hdlcd.hh:240
HDLcd::HDLcd
HDLcd(const HDLcdParams *p)
Definition: hdlcd.cc:57
HDLcd::PixelPump::dumpSettings
void dumpSettings()
Definition: hdlcd.cc:677
amba_device.hh
HDLcd::reserved_31_1
Bitfield< 31, 1 > reserved_31_1
Definition: hdlcd.hh:206
HDLcd::DmaEngine::numLines
const unsigned numLines
Definition: hdlcd.hh:385
HDLcd::PixelPump
Definition: hdlcd.hh:321
HDLcd::h_front_porch
TimingReg h_front_porch
Horizontal front porch width reg.
Definition: hdlcd.hh:246
HDLcd::Pixel_Format
@ Pixel_Format
Definition: hdlcd.hh:141
HDLcd::blue_select
ColorSelectReg blue_select
Blue color select register.
Definition: hdlcd.hh:252
HDLcd::command
CommandReg command
Command register.
Definition: hdlcd.hh:248
Tick
uint64_t Tick
Tick count type.
Definition: types.hh:63
HDLcd::DmaEngine::lineSize
const size_t lineSize
Definition: hdlcd.hh:383
HDLcd::Command
@ Command
Definition: hdlcd.hh:140
HDLcd::BUS_OPTIONS_RESETV
static constexpr size_t BUS_OPTIONS_RESETV
Reset value for Bus_Options register.
Definition: hdlcd.hh:148
HDLcd::reserved_2_0
reserved_2_0
Definition: hdlcd.hh:210
HDLcd::Int_Mask
@ Int_Mask
Definition: hdlcd.hh:124
pixelpump.hh
HDLcd::DmaEngine::nextLineAddr
Addr nextLineAddr
Definition: hdlcd.hh:387
HDLcd::V_Front_Porch
@ V_Front_Porch
Definition: hdlcd.hh:134
HDLcd::green_select
ColorSelectReg green_select
Green color select register.
Definition: hdlcd.hh:251
imgwriter.hh
HDLcd::offset
offset
Definition: hdlcd.hh:217
HDLcd::Version
@ Version
Definition: hdlcd.hh:121
output.hh
VncInput
Definition: vncinput.hh:85
HDLcd::virtRefreshEvent
EventFunctionWrapper virtRefreshEvent
Definition: hdlcd.hh:347
ClockDomain
The ClockDomain provides clock to group of clocked objects bundled under the same clock domain.
Definition: clock_domain.hh:68
HDLcd::pixelBufferSize
const Addr pixelBufferSize
Definition: hdlcd.hh:115
HDLcd::dmaEngine
std::unique_ptr< DmaEngine > dmaEngine
Definition: hdlcd.hh:391
HDLcd::intStatus
uint32_t intStatus() const
Masked interrupt status register.
Definition: hdlcd.hh:318
HDLcd::DmaEngine::serialize
void serialize(CheckpointOut &cp) const override
Serialize an object.
Definition: hdlcd.cc:614
HDLcd::intClear
void intClear(uint32_t ints)
Convenience function to clear interrupts.
Definition: hdlcd.hh:313
EventFunctionWrapper
Definition: eventq.hh:1101
HDLcd::pixel_format
PixelFormatReg pixel_format
Pixel format register.
Definition: hdlcd.hh:249
BasePixelPump
Timing generator for a pixel-based display.
Definition: pixelpump.hh:144
HDLcd::reserved_31_24
Bitfield< 31, 24 > reserved_31_24
Definition: hdlcd.hh:222
Stats::Scalar
This is a simple scalar statistic, like a counter.
Definition: statistics.hh:2533
HDLcd::polarities
PolaritiesReg polarities
Polarities register.
Definition: hdlcd.hh:247
HDLcd::bus_options
BusOptsReg bus_options
Bus options register.
Definition: hdlcd.hh:238
HDLcd::MAX_BURST_LEN
static constexpr size_t MAX_BURST_LEN
max number of beats delivered in one dma burst
Definition: hdlcd.hh:157
HDLcd::fb_line_length
uint32_t fb_line_length
Frame buffer Line length register.
Definition: hdlcd.hh:235
HDLcd::data_polarity
Bitfield< 3 > data_polarity
Definition: hdlcd.hh:199
HDLcd::Fb_Line_Pitch
@ Fb_Line_Pitch
Definition: hdlcd.hh:129
cp
Definition: cprintf.cc:40
HDLcd::version_minor
version_minor
Definition: hdlcd.hh:168
HDLcd::hsync_polarity
Bitfield< 1 > hsync_polarity
Definition: hdlcd.hh:197
HDLcd::bytes_per_pixel
Bitfield< 4, 3 > bytes_per_pixel
Definition: hdlcd.hh:211
HDLcd::EndBitUnion
EndBitUnion(VersionReg) static const expr uint32_t INT_DMA_END
HDLcd::DmaEngine::unserialize
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Definition: hdlcd.cc:623
HDLcd::read
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
Definition: hdlcd.cc:235
HDLcd::setInterrupts
void setInterrupts(uint32_t ints, uint32_t mask)
Assign new interrupt values and update interrupt signals.
Definition: hdlcd.cc:587
HDLcd::virtRefreshRate
const Tick virtRefreshRate
Definition: hdlcd.hh:116
HDLcd::h_back_porch
TimingReg h_back_porch
Horizontal back porch width register.
Definition: hdlcd.hh:244
HDLcd::DmaEngine::onEndOfBlock
void onEndOfBlock() override
End of block callback.
Definition: hdlcd.cc:658
HDLcd::unserialize
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Definition: hdlcd.cc:151
HDLcd::v_front_porch
TimingReg v_front_porch
Vertical front porch width register.
Definition: hdlcd.hh:242
HDLcd::vnc
VncInput * vnc
Definition: hdlcd.hh:110
HDLcd::RegisterOffset
RegisterOffset
ARM HDLcd register offsets.
Definition: hdlcd.hh:120
HDLcd::Green_Select
@ Green_Select
Definition: hdlcd.hh:143
HDLcd::VERSION_RESETV
static constexpr size_t VERSION_RESETV
Reset value for Version register.
Definition: hdlcd.hh:151
HDLcd::Fb_Line_Length
@ Fb_Line_Length
Definition: hdlcd.hh:127
HDLcd::product_id
Bitfield< 31, 16 > product_id
Definition: hdlcd.hh:170
HDLcd::H_Data
@ H_Data
Definition: hdlcd.hh:137
HDLcd::version_major
Bitfield< 15, 8 > version_major
Definition: hdlcd.hh:169
HDLcd::PixelPump::PixelPump
PixelPump(HDLcd &p, ClockDomain &pxl_clk, unsigned pixel_chunk)
Definition: hdlcd.hh:324
HDLcd::h_sync
TimingReg h_sync
Horizontal sync width register.
Definition: hdlcd.hh:243
HDLcd::AXI_PORT_WIDTH
static constexpr size_t AXI_PORT_WIDTH
AXI port width in bytes.
Definition: hdlcd.hh:154
HDLcd::PixelPump::onUnderrun
void onUnderrun(unsigned x, unsigned y) override
Buffer underrun occurred on a frame.
Definition: hdlcd.hh:335
HDLcd::pic
OutputStream * pic
Picture of what the current frame buffer looks like.
Definition: hdlcd.hh:356
HDLcd::cmdDisable
void cmdDisable()
Definition: hdlcd.cc:509
HDLcd::DmaEngine::startFrame
void startFrame(Addr fb_base)
Definition: hdlcd.cc:632
HDLcd::PixelPump::nextPixel
bool nextPixel(Pixel &p) override
Get the next pixel from the scan line buffer.
Definition: hdlcd.hh:330
HDLcd::size
Bitfield< 11, 8 > size
Definition: hdlcd.hh:219
HDLcd::V_Data
@ V_Data
Definition: hdlcd.hh:133
CommandReg
Definition: ide_disk.hh:124
HDLcd::int_mask
uint32_t int_mask
Interrupt mask register.
Definition: hdlcd.hh:233
HDLcd::Int_Clear
@ Int_Clear
Definition: hdlcd.hh:123
DmaReadFifo
Buffered DMA engine helper class.
Definition: dma_device.hh:325
RiscvISA::x
Bitfield< 3 > x
Definition: pagetable.hh:69
HDLcd::H_Back_Porch
@ H_Back_Porch
Definition: hdlcd.hh:136
HDLcd::pxlUnderrun
void pxlUnderrun()
Definition: hdlcd.cc:548
HDLcd::conv
PixelConverter conv
Cached pixel converter, set when the converter is enabled.
Definition: hdlcd.hh:359
Pixel
Internal gem5 representation of a Pixel.
Definition: pixel.hh:54
HDLcd::fb_line_pitch
int32_t fb_line_pitch
Frame buffer Line pitch register.
Definition: hdlcd.hh:237
Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:142
HDLcd::val
val
Definition: hdlcd.hh:191
HDLcd::h_data
TimingReg h_data
Horizontal data width register.
Definition: hdlcd.hh:245
HDLcd::enabled
bool enabled() const
Definition: hdlcd.hh:266
framebuffer.hh
HDLcd::DmaEngine::linePitch
const ssize_t linePitch
Definition: hdlcd.hh:384
HDLcd::reserved_31_5
Bitfield< 31, 5 > reserved_31_5
Definition: hdlcd.hh:201
HDLcd::BitUnion32
BitUnion32(VersionReg) Bitfield< 7
HDLcd::DmaEngine
Definition: hdlcd.hh:364
HDLcd::DmaEngine::abortFrame
void abortFrame()
Definition: hdlcd.cc:641
HDLcd::DmaEngine::dumpSettings
void dumpSettings()
Definition: hdlcd.cc:650
HDLcd::writeReg
void writeReg(Addr offset, uint32_t value)
Definition: hdlcd.cc:313
HDLcd::PixelPump::onFrameDone
void onFrameDone() override
Finished displaying the visible region of a frame.
Definition: hdlcd.hh:339
HDLcd::big_endian
Bitfield< 31 > big_endian
Definition: hdlcd.hh:213
HDLcd::imgWriter
std::unique_ptr< ImgWriter > imgWriter
Helper to write out bitmaps.
Definition: hdlcd.hh:350
HDLcd::H_Sync
@ H_Sync
Definition: hdlcd.hh:135
HDLcd::Fb_Base
@ Fb_Base
Definition: hdlcd.hh:126
HDLcd::reserved_31_12
Bitfield< 31, 12 > reserved_31_12
Definition: hdlcd.hh:180
HDLcd::PixelPump::onVSyncEnd
void onVSyncEnd() override
Callback on the first pixel of the line after the end VSync region (typically the first pixel of the ...
Definition: hdlcd.hh:333
HDLcd::readReg
uint32_t readReg(Addr offset)
Definition: hdlcd.cc:274
HDLcd::int_rawstat
uint32_t int_rawstat
Interrupt raw status register.
Definition: hdlcd.hh:232
OutputStream
Definition: output.hh:53
X86ISA::enable
Bitfield< 11 > enable
Definition: misc.hh:1051
HDLcd::INT_VSYNC
static constexpr uint32_t INT_VSYNC
Definition: hdlcd.hh:175
Packet
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Definition: packet.hh:257
HDLcd::virtRefresh
void virtRefresh()
Handler for fast frame refresh in KVM-mode.
Definition: hdlcd.cc:227
HDLcd::addrRanges
const AddrRangeList addrRanges
Definition: hdlcd.hh:113
HDLcd
Definition: hdlcd.hh:90
HDLcd::pxlVSyncEnd
void pxlVSyncEnd()
Definition: hdlcd.cc:541
HDLcd::H_Front_Porch
@ H_Front_Porch
Definition: hdlcd.hh:138
HDLcd::intRaise
void intRaise(uint32_t ints)
Convenience function to raise a new interrupt.
Definition: hdlcd.hh:303
HDLcd::dataen_polarity
Bitfield< 2 > dataen_polarity
Definition: hdlcd.hh:198
HDLcd::V_Sync
@ V_Sync
Definition: hdlcd.hh:131
DmaReadFifo::size
size_t size() const
Get the amount of data stored in the FIFO.
Definition: dma_device.hh:384
HDLcd::red_select
ColorSelectReg red_select
Red color select register.
Definition: hdlcd.hh:250
HDLcd::DmaEngine::onIdle
void onIdle() override
Last response received callback.
Definition: hdlcd.cc:671
CheckpointOut
std::ostream CheckpointOut
Definition: serialize.hh:63
HDLcd::write
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
Definition: hdlcd.cc:255
HDLcd::pxlFrameDone
void pxlFrameDone()
Definition: hdlcd.cc:557
HDLcd::PixelPump::parent
HDLcd & parent
Definition: hdlcd.hh:342
HDLcd::pixelConverter
PixelConverter pixelConverter() const
Definition: hdlcd.cc:434
DisplayTimings
Definition: pixelpump.hh:46
HDLcd::serialize
void serialize(CheckpointOut &cp) const override
Serialize an object.
Definition: hdlcd.cc:114
MipsISA::p
Bitfield< 0 > p
Definition: pra_constants.hh:323
std::list< AddrRange >
HDLcd::workaroundSwapRB
const bool workaroundSwapRB
Definition: hdlcd.hh:111
HDLcd::~HDLcd
~HDLcd()
Definition: hdlcd.cc:95
CheckpointIn
Definition: serialize.hh:67
HDLcd::PixelPump::onVSyncBegin
void onVSyncBegin() override
First pixel clock of the first VSync line.
Definition: hdlcd.hh:332
HDLcd::v_sync
TimingReg v_sync
Vertical sync width register.
Definition: hdlcd.hh:239
HDLcd::reserved_15_12
Bitfield< 15, 12 > reserved_15_12
Definition: hdlcd.hh:220
HDLcd::fb_line_count
fb_line_count
Definition: hdlcd.hh:179
HDLcd::drainResume
void drainResume() override
Resume execution after a successful drain.
Definition: hdlcd.cc:202
HDLcd::INT_BUS_ERROR
static constexpr uint32_t INT_BUS_ERROR
Definition: hdlcd.hh:174
HDLcd::createDmaEngine
void createDmaEngine()
Definition: hdlcd.cc:466
HDLcd::cmdEnable
void cmdEnable()
Definition: hdlcd.cc:493
HDLcd::default_color
Bitfield< 23, 16 > default_color
Definition: hdlcd.hh:221
ArmISA::mask
Bitfield< 28, 24 > mask
Definition: miscregs_types.hh:711
HDLcd::Polarities
@ Polarities
Definition: hdlcd.hh:139
HDLcd::DmaEngine::frameEnd
Addr frameEnd
Definition: hdlcd.hh:388
HDLcd::DmaEngine::parent
HDLcd & parent
Definition: hdlcd.hh:382
HDLcd::max_outstanding
Bitfield< 11, 8 > max_outstanding
Definition: hdlcd.hh:186

Generated on Wed Sep 30 2020 14:02:10 for gem5 by doxygen 1.8.17