# Copyright 2020 Google, Inc.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met: redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer;
# redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution;
# neither the name of the copyright holders nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

from m5.params import *
from m5.objects.FastModel import AmbaInitiatorSocket, AmbaTargetSocket
from m5.objects.IntPin import IntSourcePin
from m5.objects.SystemC import SystemC_ScModule


class FastModelPL330(SystemC_ScModule):
    type = "FastModelPL330"
    cxx_class = "gem5::fastmodel::PL330"
    cxx_header = "arch/arm/fastmodel/PL330_DMAC/pl330.hh"

    clock = Param.Frequency("Clock frequency")

    irq_0 = IntSourcePin("Sets when DMASEV 0")
    irq_1 = IntSourcePin("Sets when DMASEV 1")
    irq_2 = IntSourcePin("Sets when DMASEV 2")
    irq_3 = IntSourcePin("Sets when DMASEV 3")
    irq_4 = IntSourcePin("Sets when DMASEV 4")
    irq_5 = IntSourcePin("Sets when DMASEV 5")
    irq_6 = IntSourcePin("Sets when DMASEV 6")
    irq_7 = IntSourcePin("Sets when DMASEV 7")
    irq_8 = IntSourcePin("Sets when DMASEV 8")
    irq_9 = IntSourcePin("Sets when DMASEV 9")
    irq_10 = IntSourcePin("Sets when DMASEV 10")
    irq_11 = IntSourcePin("Sets when DMASEV 11")
    irq_12 = IntSourcePin("Sets when DMASEV 12")
    irq_13 = IntSourcePin("Sets when DMASEV 13")
    irq_14 = IntSourcePin("Sets when DMASEV 14")
    irq_15 = IntSourcePin("Sets when DMASEV 15")
    irq_16 = IntSourcePin("Sets when DMASEV 16")
    irq_17 = IntSourcePin("Sets when DMASEV 17")
    irq_18 = IntSourcePin("Sets when DMASEV 18")
    irq_19 = IntSourcePin("Sets when DMASEV 19")
    irq_20 = IntSourcePin("Sets when DMASEV 20")
    irq_21 = IntSourcePin("Sets when DMASEV 21")
    irq_22 = IntSourcePin("Sets when DMASEV 22")
    irq_23 = IntSourcePin("Sets when DMASEV 23")
    irq_24 = IntSourcePin("Sets when DMASEV 24")
    irq_25 = IntSourcePin("Sets when DMASEV 25")
    irq_26 = IntSourcePin("Sets when DMASEV 26")
    irq_27 = IntSourcePin("Sets when DMASEV 27")
    irq_28 = IntSourcePin("Sets when DMASEV 28")
    irq_29 = IntSourcePin("Sets when DMASEV 29")
    irq_30 = IntSourcePin("Sets when DMASEV 30")
    irq_31 = IntSourcePin("Sets when DMASEV 31")
    irq_abort = IntSourcePin("Undefined instruction or instruction error")

    fifo_size = Param.UInt32(16, "Channel FIFO size in bytes")
    max_transfer = Param.UInt32(256, "Largest atomic transfer")
    generate_clear = Param.Bool(False, "Generate clear response")
    activate_delay = Param.UInt32(0, "request delay")
    revision = Param.String("r0p0", "revision ID")

    max_irqs = Param.UInt32(32, "number of interrupts")
    buffer_depth = Param.UInt32(16, "buffer depth")
    lsq_read_size = Param.UInt32(4, "LSQ read buffer depth")
    lsq_write_size = Param.UInt32(4, "LSQ write buffer depth")
    read_issuing_capability = Param.UInt32(1, "AXI read issuing capability")
    write_issuing_capability = Param.UInt32(1, "AXI write issuing capability")
    axi_bus_width = Param.UInt32(32, "AXI bus width")
    cache_line_words = Param.UInt32(1, "number of words in a cache line")
    cache_lines = Param.UInt32(1, "number of cache lines")
    max_channels = Param.UInt32(8, "virtual channels")
    controller_nsecure = Param.Bool(
        False, "Controller non-secure at reset " "(boot_manager_ns)"
    )
    irq_nsecure = Param.UInt32(0, "Interrupts non-secure at reset")
    periph_nsecure = Param.Bool(False, "Peripherals non-secure at reset")
    controller_boots = Param.Bool(True, "DMA boots from reset")
    reset_pc = Param.UInt32(0x60000000, "DMA PC at reset")
    max_periph = Param.UInt32(32, "number of peripheral interfaces")
    perip_request_acceptance_0 = Param.UInt32(
        2, "Peripheral 0 request acceptance"
    )
    perip_request_acceptance_1 = Param.UInt32(
        2, "Peripheral 1 request acceptance"
    )
    perip_request_acceptance_2 = Param.UInt32(
        2, "Peripheral 2 request acceptance"
    )
    perip_request_acceptance_3 = Param.UInt32(
        2, "Peripheral 3 request acceptance"
    )
    perip_request_acceptance_4 = Param.UInt32(
        2, "Peripheral 4 request acceptance"
    )
    perip_request_acceptance_5 = Param.UInt32(
        2, "Peripheral 5 request acceptance"
    )
    perip_request_acceptance_6 = Param.UInt32(
        2, "Peripheral 6 request acceptance"
    )
    perip_request_acceptance_7 = Param.UInt32(
        2, "Peripheral 7 request acceptance"
    )
    perip_request_acceptance_8 = Param.UInt32(
        2, "Peripheral 8 request acceptance"
    )
    perip_request_acceptance_9 = Param.UInt32(
        2, "Peripheral 9 request acceptance"
    )
    perip_request_acceptance_10 = Param.UInt32(
        2, "Peripheral 10 request acceptance"
    )
    perip_request_acceptance_11 = Param.UInt32(
        2, "Peripheral 11 request acceptance"
    )
    perip_request_acceptance_12 = Param.UInt32(
        2, "Peripheral 12 request acceptance"
    )
    perip_request_acceptance_13 = Param.UInt32(
        2, "Peripheral 13 request acceptance"
    )
    perip_request_acceptance_14 = Param.UInt32(
        2, "Peripheral 14 request acceptance"
    )
    perip_request_acceptance_15 = Param.UInt32(
        2, "Peripheral 15 request acceptance"
    )
    perip_request_acceptance_16 = Param.UInt32(
        2, "Peripheral 16 request acceptance"
    )
    perip_request_acceptance_17 = Param.UInt32(
        2, "Peripheral 17 request acceptance"
    )
    perip_request_acceptance_18 = Param.UInt32(
        2, "Peripheral 18 request acceptance"
    )
    perip_request_acceptance_19 = Param.UInt32(
        2, "Peripheral 19 request acceptance"
    )
    perip_request_acceptance_20 = Param.UInt32(
        2, "Peripheral 20 request acceptance"
    )
    perip_request_acceptance_21 = Param.UInt32(
        2, "Peripheral 21 request acceptance"
    )
    perip_request_acceptance_22 = Param.UInt32(
        2, "Peripheral 22 request acceptance"
    )
    perip_request_acceptance_23 = Param.UInt32(
        2, "Peripheral 23 request acceptance"
    )
    perip_request_acceptance_24 = Param.UInt32(
        2, "Peripheral 24 request acceptance"
    )
    perip_request_acceptance_25 = Param.UInt32(
        2, "Peripheral 25 request acceptance"
    )
    perip_request_acceptance_26 = Param.UInt32(
        2, "Peripheral 26 request acceptance"
    )
    perip_request_acceptance_27 = Param.UInt32(
        2, "Peripheral 27 request acceptance"
    )
    perip_request_acceptance_28 = Param.UInt32(
        2, "Peripheral 28 request acceptance"
    )
    perip_request_acceptance_29 = Param.UInt32(
        2, "Peripheral 29 request acceptance"
    )
    perip_request_acceptance_30 = Param.UInt32(
        2, "Peripheral 30 request acceptance"
    )
    perip_request_acceptance_31 = Param.UInt32(
        2, "Peripheral 31 request acceptance"
    )

    # Singleton IRQ abort signal port
    # 32 bit wide IRQ master DMASEV port
    dma = AmbaInitiatorSocket(64, "Memory accesses")
    pio_s = AmbaTargetSocket(64, "Register accesses (secure)")
    pio_ns = AmbaTargetSocket(64, "Register accesses (non-secure)")

    # irq_abort_master_port
    # irq_master_port
    # pvbus_m
    # pvbus_s
    # pvbus_s_ns
