pl111.cc (9090:e4e22240398f) pl111.cc (9157:e0bad9d7bbd6)
1/*
2 * Copyright (c) 2010 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

--- 49 unchanged lines hidden (view full) ---

58
59// initialize clcd registers
60Pl111::Pl111(const Params *p)
61 : AmbaDmaDevice(p), lcdTiming0(0), lcdTiming1(0), lcdTiming2(0),
62 lcdTiming3(0), lcdUpbase(0), lcdLpbase(0), lcdControl(0), lcdImsc(0),
63 lcdRis(0), lcdMis(0),
64 clcdCrsrCtrl(0), clcdCrsrConfig(0), clcdCrsrPalette0(0),
65 clcdCrsrPalette1(0), clcdCrsrXY(0), clcdCrsrClip(0), clcdCrsrImsc(0),
1/*
2 * Copyright (c) 2010 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

--- 49 unchanged lines hidden (view full) ---

58
59// initialize clcd registers
60Pl111::Pl111(const Params *p)
61 : AmbaDmaDevice(p), lcdTiming0(0), lcdTiming1(0), lcdTiming2(0),
62 lcdTiming3(0), lcdUpbase(0), lcdLpbase(0), lcdControl(0), lcdImsc(0),
63 lcdRis(0), lcdMis(0),
64 clcdCrsrCtrl(0), clcdCrsrConfig(0), clcdCrsrPalette0(0),
65 clcdCrsrPalette1(0), clcdCrsrXY(0), clcdCrsrClip(0), clcdCrsrImsc(0),
66 clcdCrsrIcr(0), clcdCrsrRis(0), clcdCrsrMis(0), clock(p->clock),
66 clcdCrsrIcr(0), clcdCrsrRis(0), clcdCrsrMis(0),
67 vncserver(p->vnc), bmp(NULL), width(LcdMaxWidth), height(LcdMaxHeight),
68 bytesPerPixel(4), startTime(0), startAddr(0), maxAddr(0), curAddr(0),
69 waterMark(0), dmaPendingNum(0), readEvent(this), fillFifoEvent(this),
70 dmaDoneEvent(maxOutstandingDma, this), intEvent(this)
71{
72 pioSize = 0xFFFF;
73
74 pic = simout.create(csprintf("%s.framebuffer.bmp", sys->name()), true);

--- 432 unchanged lines hidden (view full) ---

507
508 if (dmaPendingNum > (maxOutstandingDma - waterMark))
509 return;
510
511 if (!fillFifoEvent.scheduled())
512 schedule(fillFifoEvent, nextCycle());
513}
514
67 vncserver(p->vnc), bmp(NULL), width(LcdMaxWidth), height(LcdMaxHeight),
68 bytesPerPixel(4), startTime(0), startAddr(0), maxAddr(0), curAddr(0),
69 waterMark(0), dmaPendingNum(0), readEvent(this), fillFifoEvent(this),
70 dmaDoneEvent(maxOutstandingDma, this), intEvent(this)
71{
72 pioSize = 0xFFFF;
73
74 pic = simout.create(csprintf("%s.framebuffer.bmp", sys->name()), true);

--- 432 unchanged lines hidden (view full) ---

507
508 if (dmaPendingNum > (maxOutstandingDma - waterMark))
509 return;
510
511 if (!fillFifoEvent.scheduled())
512 schedule(fillFifoEvent, nextCycle());
513}
514
515
516Tick
517Pl111::nextCycle()
518{
519 Tick nextTick = curTick() + clock - 1;
520 nextTick -= nextTick%clock;
521 return nextTick;
522}
523
524Tick
525Pl111::nextCycle(Tick beginTick)
526{
527 Tick nextTick = beginTick;
528 if (nextTick%clock!=0)
529 nextTick = nextTick - (nextTick%clock) + clock;
530
531 assert(nextTick >= curTick());
532 return nextTick;
533}
534
535void
536Pl111::serialize(std::ostream &os)
537{
538 DPRINTF(PL111, "Serializing ARM PL111\n");
539
540 uint32_t lcdTiming0_serial = lcdTiming0;
541 SERIALIZE_SCALAR(lcdTiming0_serial);
542

--- 38 unchanged lines hidden (view full) ---

581 SERIALIZE_SCALAR(clcdCrsrIcr_serial);
582
583 uint8_t clcdCrsrRis_serial = clcdCrsrRis;
584 SERIALIZE_SCALAR(clcdCrsrRis_serial);
585
586 uint8_t clcdCrsrMis_serial = clcdCrsrMis;
587 SERIALIZE_SCALAR(clcdCrsrMis_serial);
588
515void
516Pl111::serialize(std::ostream &os)
517{
518 DPRINTF(PL111, "Serializing ARM PL111\n");
519
520 uint32_t lcdTiming0_serial = lcdTiming0;
521 SERIALIZE_SCALAR(lcdTiming0_serial);
522

--- 38 unchanged lines hidden (view full) ---

561 SERIALIZE_SCALAR(clcdCrsrIcr_serial);
562
563 uint8_t clcdCrsrRis_serial = clcdCrsrRis;
564 SERIALIZE_SCALAR(clcdCrsrRis_serial);
565
566 uint8_t clcdCrsrMis_serial = clcdCrsrMis;
567 SERIALIZE_SCALAR(clcdCrsrMis_serial);
568
589 SERIALIZE_SCALAR(clock);
590 SERIALIZE_SCALAR(height);
591 SERIALIZE_SCALAR(width);
592 SERIALIZE_SCALAR(bytesPerPixel);
593
594 SERIALIZE_ARRAY(dmaBuffer, height * width);
595 SERIALIZE_SCALAR(startTime);
596 SERIALIZE_SCALAR(startAddr);
597 SERIALIZE_SCALAR(maxAddr);

--- 86 unchanged lines hidden (view full) ---

684 uint8_t clcdCrsrRis_serial;
685 UNSERIALIZE_SCALAR(clcdCrsrRis_serial);
686 clcdCrsrRis = clcdCrsrRis_serial;
687
688 uint8_t clcdCrsrMis_serial;
689 UNSERIALIZE_SCALAR(clcdCrsrMis_serial);
690 clcdCrsrMis = clcdCrsrMis_serial;
691
569 SERIALIZE_SCALAR(height);
570 SERIALIZE_SCALAR(width);
571 SERIALIZE_SCALAR(bytesPerPixel);
572
573 SERIALIZE_ARRAY(dmaBuffer, height * width);
574 SERIALIZE_SCALAR(startTime);
575 SERIALIZE_SCALAR(startAddr);
576 SERIALIZE_SCALAR(maxAddr);

--- 86 unchanged lines hidden (view full) ---

663 uint8_t clcdCrsrRis_serial;
664 UNSERIALIZE_SCALAR(clcdCrsrRis_serial);
665 clcdCrsrRis = clcdCrsrRis_serial;
666
667 uint8_t clcdCrsrMis_serial;
668 UNSERIALIZE_SCALAR(clcdCrsrMis_serial);
669 clcdCrsrMis = clcdCrsrMis_serial;
670
692 UNSERIALIZE_SCALAR(clock);
693 UNSERIALIZE_SCALAR(height);
694 UNSERIALIZE_SCALAR(width);
695 UNSERIALIZE_SCALAR(bytesPerPixel);
696
697 UNSERIALIZE_ARRAY(dmaBuffer, height * width);
698 UNSERIALIZE_SCALAR(startTime);
699 UNSERIALIZE_SCALAR(startAddr);
700 UNSERIALIZE_SCALAR(maxAddr);

--- 62 unchanged lines hidden ---
671 UNSERIALIZE_SCALAR(height);
672 UNSERIALIZE_SCALAR(width);
673 UNSERIALIZE_SCALAR(bytesPerPixel);
674
675 UNSERIALIZE_ARRAY(dmaBuffer, height * width);
676 UNSERIALIZE_SCALAR(startTime);
677 UNSERIALIZE_SCALAR(startAddr);
678 UNSERIALIZE_SCALAR(maxAddr);

--- 62 unchanged lines hidden ---