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 --- |