gem5 v24.0.0.0
Loading...
Searching...
No Matches
pl330.hh
Go to the documentation of this file.
1/*
2 * Copyright 2020 Google, Inc.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met: redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer;
8 * redistributions in binary form must reproduce the above copyright
9 * notice, this list of conditions and the following disclaimer in the
10 * documentation and/or other materials provided with the distribution;
11 * neither the name of the copyright holders nor the names of its
12 * contributors may be used to endorse or promote products derived from
13 * this software without specific prior written permission.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28#ifndef __ARCH_ARM_FASTMODEL_PL330_PL330_HH__
29#define __ARCH_ARM_FASTMODEL_PL330_PL330_HH__
30
31#pragma GCC diagnostic push
32#pragma GCC diagnostic ignored "-Woverloaded-virtual"
33#include <amba_pv.h>
34
35#pragma GCC diagnostic pop
36
37#include <array>
38#include <vector>
39
44#include "dev/intpin.hh"
45#include "params/FastModelPL330.hh"
46#include "scx_evs_PL330.h"
49
50namespace gem5
51{
52
53namespace fastmodel
54{
55
56class PL330 : public scx_evs_PL330
57{
58 private:
60
63
65
67
68 std::array<std::vector<std::unique_ptr<IntSource>>, 32> irqPort;
70
73
74 void allocateIrq(int idx, int count);
75
77
78 public:
79 PL330(const FastModelPL330Params &params, sc_core::sc_module_name _name);
80 PL330(const FastModelPL330Params &params) :
81 PL330(params, params.name.c_str())
82 {}
83
84 gem5::Port &gem5_getPort(const std::string &if_name, int idx=-1) override;
85
86 void
88 {
89 scx_evs_PL330::end_of_elaboration();
90 scx_evs_PL330::start_of_simulation();
91 }
92 void start_of_simulation() override;
93};
94
95} // namespace fastmodel
96} // namespace gem5
97
98#endif // __ARCH_ARM_FASTMODEL_PL330_PL330_HH__
Ports are used to interface objects to each other.
Definition port.hh:62
std::vector< std::unique_ptr< IntSource > > irqAbortPort
Definition pl330.hh:71
PL330(const FastModelPL330Params &params)
Definition pl330.hh:80
gem5::Port & gem5_getPort(const std::string &if_name, int idx=-1) override
Definition pl330.cc:230
std::array< std::vector< std::unique_ptr< IntSource > >, 32 > irqPort
Definition pl330.hh:68
ClockRateControlInitiatorSocket clockRateControl
Definition pl330.hh:64
AmbaTarget pioNs
Definition pl330.hh:62
SignalSender resetIn
Definition pl330.hh:76
void end_of_elaboration() override
Definition pl330.hh:87
std::vector< std::unique_ptr< SignalReceiver > > irqReceiver
Definition pl330.hh:69
PL330(const FastModelPL330Params &params, sc_core::sc_module_name _name)
Definition pl330.cc:41
AmbaInitiator dma
Definition pl330.hh:61
void allocateIrq(int idx, int count)
Definition pl330.cc:220
AmbaTarget pioS
Definition pl330.hh:62
void start_of_simulation() override
Definition pl330.cc:264
SignalReceiver irqAbortReceiver
Definition pl330.hh:72
STL vector class.
Definition stl.hh:37
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
Definition binary32.hh:36
uint64_t Tick
Tick count type.
Definition types.hh:58
const std::string & name()
Definition trace.cc:48

Generated on Tue Jun 18 2024 16:23:55 for gem5 by doxygen 1.11.0