hdlcd.cc (10840:48039363f67a) hdlcd.cc (10905:a6ca6831e775)
1/*
2 * Copyright (c) 2010-2013, 2015 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

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

575 if ((dmaCurAddr < dmaMaxAddr) &&
576 (bytesFreeInPixelBuffer() + targetTransSize < PIXEL_BUFFER_CAPACITY) &&
577 !fillPixelBufferEvent.scheduled()) {
578 schedule(fillPixelBufferEvent, clockEdge());
579 }
580}
581
582void
1/*
2 * Copyright (c) 2010-2013, 2015 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

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

575 if ((dmaCurAddr < dmaMaxAddr) &&
576 (bytesFreeInPixelBuffer() + targetTransSize < PIXEL_BUFFER_CAPACITY) &&
577 !fillPixelBufferEvent.scheduled()) {
578 schedule(fillPixelBufferEvent, clockEdge());
579 }
580}
581
582void
583HDLcd::serialize(std::ostream &os)
583HDLcd::serialize(CheckpointOut &cp) const
584{
585 DPRINTF(HDLcd, "Serializing ARM HDLCD\n");
586
587 const uint32_t version_serial = version;
588 SERIALIZE_SCALAR(version_serial);
589 const uint32_t int_rawstat_serial = int_rawstat;
590 SERIALIZE_SCALAR(int_rawstat_serial);
591 const uint32_t int_clear_serial = int_clear;

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

636
637 SERIALIZE_SCALAR(frameReadStartTime);
638 SERIALIZE_SCALAR(dmaStartAddr);
639 SERIALIZE_SCALAR(dmaCurAddr);
640 SERIALIZE_SCALAR(dmaMaxAddr);
641 SERIALIZE_SCALAR(dmaPendingNum);
642 SERIALIZE_SCALAR(frameUnderrun);
643
584{
585 DPRINTF(HDLcd, "Serializing ARM HDLCD\n");
586
587 const uint32_t version_serial = version;
588 SERIALIZE_SCALAR(version_serial);
589 const uint32_t int_rawstat_serial = int_rawstat;
590 SERIALIZE_SCALAR(int_rawstat_serial);
591 const uint32_t int_clear_serial = int_clear;

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

636
637 SERIALIZE_SCALAR(frameReadStartTime);
638 SERIALIZE_SCALAR(dmaStartAddr);
639 SERIALIZE_SCALAR(dmaCurAddr);
640 SERIALIZE_SCALAR(dmaMaxAddr);
641 SERIALIZE_SCALAR(dmaPendingNum);
642 SERIALIZE_SCALAR(frameUnderrun);
643
644 arrayParamOut(os, "virtualDisplayBuffer", virtualDisplayBuffer);
644 arrayParamOut(cp, "virtualDisplayBuffer", virtualDisplayBuffer);
645
646 SERIALIZE_SCALAR(pixelBufferSize);
647 SERIALIZE_SCALAR(pixelIndex);
648 SERIALIZE_SCALAR(doUpdateParams);
649 SERIALIZE_SCALAR(frameUnderway);
650 SERIALIZE_SCALAR(dmaBytesInFlight);
651
652 Tick start_event_time = 0;

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

673 vector<Tick> dma_done_event_tick(MAX_OUTSTANDING_DMA_REQ_CAPACITY);
674 vector<size_t> dma_done_event_burst_len(MAX_OUTSTANDING_DMA_REQ_CAPACITY);
675 for (int x = 0; x < MAX_OUTSTANDING_DMA_REQ_CAPACITY; ++x) {
676 dma_done_event_tick[x] = dmaDoneEventAll[x].scheduled() ?
677 dmaDoneEventAll[x].when() : 0;
678 dma_done_event_burst_len[x] = dmaDoneEventAll[x].scheduled() ?
679 dmaDoneEventAll[x].getTransactionSize() : 0;
680 }
645
646 SERIALIZE_SCALAR(pixelBufferSize);
647 SERIALIZE_SCALAR(pixelIndex);
648 SERIALIZE_SCALAR(doUpdateParams);
649 SERIALIZE_SCALAR(frameUnderway);
650 SERIALIZE_SCALAR(dmaBytesInFlight);
651
652 Tick start_event_time = 0;

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

673 vector<Tick> dma_done_event_tick(MAX_OUTSTANDING_DMA_REQ_CAPACITY);
674 vector<size_t> dma_done_event_burst_len(MAX_OUTSTANDING_DMA_REQ_CAPACITY);
675 for (int x = 0; x < MAX_OUTSTANDING_DMA_REQ_CAPACITY; ++x) {
676 dma_done_event_tick[x] = dmaDoneEventAll[x].scheduled() ?
677 dmaDoneEventAll[x].when() : 0;
678 dma_done_event_burst_len[x] = dmaDoneEventAll[x].scheduled() ?
679 dmaDoneEventAll[x].getTransactionSize() : 0;
680 }
681 arrayParamOut(os, "dma_done_event_tick", dma_done_event_tick);
682 arrayParamOut(os, "dma_done_event_burst_length", dma_done_event_burst_len);
681 arrayParamOut(cp, "dma_done_event_tick", dma_done_event_tick);
682 arrayParamOut(cp, "dma_done_event_burst_length", dma_done_event_burst_len);
683}
684
685void
683}
684
685void
686HDLcd::unserialize(Checkpoint *cp, const std::string &section)
686HDLcd::unserialize(CheckpointIn &cp)
687{
688 uint32_t version_serial, int_rawstat_serial, int_clear_serial,
689 int_mask_serial, int_status_serial, fb_line_count_serial,
690 bus_options_serial, v_sync_serial, v_back_porch_serial,
691 v_data_serial, v_front_porch_serial, h_sync_serial,
692 h_back_porch_serial, h_data_serial, h_front_porch_serial,
693 polarities_serial, command_serial, pixel_format_serial,
694 red_select_serial, green_select_serial, blue_select_serial;

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

748 UNSERIALIZE_SCALAR(frameReadStartTime);
749 UNSERIALIZE_SCALAR(dmaStartAddr);
750 UNSERIALIZE_SCALAR(dmaCurAddr);
751 UNSERIALIZE_SCALAR(dmaMaxAddr);
752 UNSERIALIZE_SCALAR(dmaPendingNum);
753 UNSERIALIZE_SCALAR(frameUnderrun);
754 UNSERIALIZE_SCALAR(dmaBytesInFlight);
755
687{
688 uint32_t version_serial, int_rawstat_serial, int_clear_serial,
689 int_mask_serial, int_status_serial, fb_line_count_serial,
690 bus_options_serial, v_sync_serial, v_back_porch_serial,
691 v_data_serial, v_front_porch_serial, h_sync_serial,
692 h_back_porch_serial, h_data_serial, h_front_porch_serial,
693 polarities_serial, command_serial, pixel_format_serial,
694 red_select_serial, green_select_serial, blue_select_serial;

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

748 UNSERIALIZE_SCALAR(frameReadStartTime);
749 UNSERIALIZE_SCALAR(dmaStartAddr);
750 UNSERIALIZE_SCALAR(dmaCurAddr);
751 UNSERIALIZE_SCALAR(dmaMaxAddr);
752 UNSERIALIZE_SCALAR(dmaPendingNum);
753 UNSERIALIZE_SCALAR(frameUnderrun);
754 UNSERIALIZE_SCALAR(dmaBytesInFlight);
755
756 arrayParamIn(cp, section, "virtualDisplayBuffer", virtualDisplayBuffer);
756 arrayParamIn(cp, "virtualDisplayBuffer", virtualDisplayBuffer);
757
758 UNSERIALIZE_SCALAR(pixelBufferSize);
759 UNSERIALIZE_SCALAR(pixelIndex);
760 UNSERIALIZE_SCALAR(doUpdateParams);
761 UNSERIALIZE_SCALAR(frameUnderway);
762
763 Tick start_event_time = 0;
764 Tick end_event_time = 0;

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

778 schedule(renderPixelEvent, render_pixel_event_time);
779 if (fill_pixel_buffer_event_time)
780 schedule(fillPixelBufferEvent, fill_pixel_buffer_event_time);
781 if (int_event_time)
782 schedule(intEvent, int_event_time);
783
784 vector<Tick> dma_done_event_tick(MAX_OUTSTANDING_DMA_REQ_CAPACITY);
785 vector<Tick> dma_done_event_burst_len(MAX_OUTSTANDING_DMA_REQ_CAPACITY);
757
758 UNSERIALIZE_SCALAR(pixelBufferSize);
759 UNSERIALIZE_SCALAR(pixelIndex);
760 UNSERIALIZE_SCALAR(doUpdateParams);
761 UNSERIALIZE_SCALAR(frameUnderway);
762
763 Tick start_event_time = 0;
764 Tick end_event_time = 0;

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

778 schedule(renderPixelEvent, render_pixel_event_time);
779 if (fill_pixel_buffer_event_time)
780 schedule(fillPixelBufferEvent, fill_pixel_buffer_event_time);
781 if (int_event_time)
782 schedule(intEvent, int_event_time);
783
784 vector<Tick> dma_done_event_tick(MAX_OUTSTANDING_DMA_REQ_CAPACITY);
785 vector<Tick> dma_done_event_burst_len(MAX_OUTSTANDING_DMA_REQ_CAPACITY);
786 arrayParamIn(cp, section, "dma_done_event_tick", dma_done_event_tick);
787 arrayParamIn(cp, section, "dma_done_event_burst_length", dma_done_event_burst_len);
786 arrayParamIn(cp, "dma_done_event_tick", dma_done_event_tick);
787 arrayParamIn(cp, "dma_done_event_burst_length", dma_done_event_burst_len);
788 dmaDoneEventFree.clear();
789 for (int x = 0; x < MAX_OUTSTANDING_DMA_REQ_CAPACITY; ++x) {
790 if (dma_done_event_tick[x]) {
791 dmaDoneEventAll[x].setTransactionSize(dma_done_event_burst_len[x]);
792 schedule(dmaDoneEventAll[x], dma_done_event_tick[x]);
793 } else
794 dmaDoneEventFree.push_back(&dmaDoneEventAll[x]);
795 }

--- 38 unchanged lines hidden ---
788 dmaDoneEventFree.clear();
789 for (int x = 0; x < MAX_OUTSTANDING_DMA_REQ_CAPACITY; ++x) {
790 if (dma_done_event_tick[x]) {
791 dmaDoneEventAll[x].setTransactionSize(dma_done_event_burst_len[x]);
792 schedule(dmaDoneEventAll[x], dma_done_event_tick[x]);
793 } else
794 dmaDoneEventFree.push_back(&dmaDoneEventAll[x]);
795 }

--- 38 unchanged lines hidden ---