RealView.py (14274:8fc8b95931aa) RealView.py (14283:b02cde4661e1)
1# Copyright (c) 2009-2019 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

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

60from m5.objects.EnergyCtrl import EnergyCtrl
61from m5.objects.ClockedObject import ClockedObject
62from m5.objects.ClockDomain import SrcClockDomain
63from m5.objects.SubSystem import SubSystem
64from m5.objects.Graphics import ImageFormat
65from m5.objects.ClockedObject import ClockedObject
66from m5.objects.PS2 import *
67from m5.objects.VirtIOMMIO import MmioVirtIO
1# Copyright (c) 2009-2019 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

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

60from m5.objects.EnergyCtrl import EnergyCtrl
61from m5.objects.ClockedObject import ClockedObject
62from m5.objects.ClockDomain import SrcClockDomain
63from m5.objects.SubSystem import SubSystem
64from m5.objects.Graphics import ImageFormat
65from m5.objects.ClockedObject import ClockedObject
66from m5.objects.PS2 import *
67from m5.objects.VirtIOMMIO import MmioVirtIO
68from m5.objects.Display import Display, Display1080p
68
69# Platforms with KVM support should generally use in-kernel GIC
70# emulation. Use a GIC model that automatically switches between
71# gem5's GIC model and KVM's GIC model if KVM is available.
72try:
73 from m5.objects.KvmGic import MuxingKvmGic
74 kvm_gicv2_class = MuxingKvmGic
75except ImportError:

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

486
487 pixel_buffer_size = Param.MemorySize32("2kB", "Size of address range")
488
489 pxl_clk = Param.ClockDomain("Pixel clock source")
490 pixel_chunk = Param.Unsigned(32, "Number of pixels to handle in one batch")
491 virt_refresh_rate = Param.Frequency("20Hz", "Frame refresh rate "
492 "in KVM mode")
493
69
70# Platforms with KVM support should generally use in-kernel GIC
71# emulation. Use a GIC model that automatically switches between
72# gem5's GIC model and KVM's GIC model if KVM is available.
73try:
74 from m5.objects.KvmGic import MuxingKvmGic
75 kvm_gicv2_class = MuxingKvmGic
76except ImportError:

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

487
488 pixel_buffer_size = Param.MemorySize32("2kB", "Size of address range")
489
490 pxl_clk = Param.ClockDomain("Pixel clock source")
491 pixel_chunk = Param.Unsigned(32, "Number of pixels to handle in one batch")
492 virt_refresh_rate = Param.Frequency("20Hz", "Frame refresh rate "
493 "in KVM mode")
494
495 encoder = Param.Display(Display1080p(), "Display encoder")
496
497 def endpointPhandle(self):
498 return "hdlcd_endpoint"
499
494 def generateDeviceTree(self, state):
500 def generateDeviceTree(self, state):
501 endpoint_node = FdtNode("endpoint")
502 endpoint_node.appendPhandle(self.endpointPhandle())
503
504 for encoder_node in self.encoder.generateDeviceTree(state):
505 encoder_endpoint = self.encoder.endpointNode()
506
507 # Endpoint subnode
508 endpoint_node.append(FdtPropertyWords("remote-endpoint",
509 [ state.phandle(self.encoder.endpointPhandle()) ]))
510 encoder_endpoint.append(FdtPropertyWords("remote-endpoint",
511 [ state.phandle(self.endpointPhandle()) ]))
512
513 yield encoder_node
514
515 port_node = FdtNode("port")
516 port_node.append(endpoint_node)
517
495 # Interrupt number is hardcoded; it is not a property of this class
496 node = self.generateBasicPioDeviceNode(state, 'hdlcd',
497 self.pio_addr, 0x1000, [63])
498
499 node.appendCompatible(["arm,hdlcd"])
500 node.append(FdtPropertyWords("clocks", state.phandle(self.pxl_clk)))
501 node.append(FdtPropertyStrings("clock-names", ["pxlclk"]))
502
503 # This driver is disabled by default since the required DT nodes
504 # haven't been standardized yet. To use it, override this status to
505 # "ok" and add the display configuration nodes required by the driver.
506 # See the driver for more information.
507 node.append(FdtPropertyStrings("status", ["disabled"]))
508
509 self.addIommuProperty(state, node)
510
518 # Interrupt number is hardcoded; it is not a property of this class
519 node = self.generateBasicPioDeviceNode(state, 'hdlcd',
520 self.pio_addr, 0x1000, [63])
521
522 node.appendCompatible(["arm,hdlcd"])
523 node.append(FdtPropertyWords("clocks", state.phandle(self.pxl_clk)))
524 node.append(FdtPropertyStrings("clock-names", ["pxlclk"]))
525
526 # This driver is disabled by default since the required DT nodes
527 # haven't been standardized yet. To use it, override this status to
528 # "ok" and add the display configuration nodes required by the driver.
529 # See the driver for more information.
530 node.append(FdtPropertyStrings("status", ["disabled"]))
531
532 self.addIommuProperty(state, node)
533
534 node.append(port_node)
535
511 yield node
512
513class RealView(Platform):
514 type = 'RealView'
515 cxx_header = "dev/arm/realview.hh"
516 system = Param.System(Parent.any, "system")
517 _mem_regions = [ AddrRange(0, size='256MB') ]
518

--- 607 unchanged lines hidden ---
536 yield node
537
538class RealView(Platform):
539 type = 'RealView'
540 cxx_header = "dev/arm/realview.hh"
541 system = Param.System(Parent.any, "system")
542 _mem_regions = [ AddrRange(0, size='256MB') ]
543

--- 607 unchanged lines hidden ---