gem5
[DEVELOP-FOR-23.0]
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
Enumerations
_
a
b
c
d
e
f
g
h
i
k
l
m
o
p
q
r
s
t
v
x
Enumerator
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
Enumerations
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
w
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Related Functions
:
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
s
t
v
Variables
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
Typedefs
a
b
c
d
g
h
i
l
m
r
s
t
u
w
Enumerations
b
h
i
o
p
Enumerator
h
i
o
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
cpu
testers
gpu_ruby_test
tester_dma.hh
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2021 Advanced Micro Devices, Inc.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
*
8
* 1. Redistributions of source code must retain the above copyright notice,
9
* this list of conditions and the following disclaimer.
10
*
11
* 2. Redistributions in binary form must reproduce the above copyright notice,
12
* this list of conditions and the following disclaimer in the documentation
13
* and/or other materials provided with the distribution.
14
*
15
* 3. Neither the name of the copyright holder nor the names of its
16
* contributors may be used to endorse or promote products derived from this
17
* software without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
* POSSIBILITY OF SUCH DAMAGE.
30
*/
31
32
/*
33
* This is a fake DMA device to pass to Ruby.py so it will create the DMA
34
* sequencers and controllers without being protocol specific. It otherwise
35
* does nothing.
36
*/
37
38
#ifndef __CPU_TESTERS_GPU_RUBY_TEST_TESTER_DMA_HH__
39
#define __CPU_TESTERS_GPU_RUBY_TEST_TESTER_DMA_HH__
40
41
#include "
dev/dma_device.hh
"
42
#include "params/TesterDma.hh"
43
44
namespace
gem5
45
{
46
47
class
TesterDma
:
public
DmaDevice
48
{
49
public
:
50
typedef
TesterDmaParams
Params
;
51
TesterDma
(
const
Params
&
p
) :
DmaDevice
(
p
) { }
52
virtual
~TesterDma
() { }
53
54
// The tester does not use a huge memory range. The range itself is
55
// choosen arbitrarily
56
AddrRangeList
57
getAddrRanges
()
const override
58
{
59
AddrRangeList
ranges;
60
ranges.push_back(
RangeSize
(0, 0xc0000000));
61
return
ranges;
62
}
63
64
// These latencies are not important. Return any integer.
65
Tick
read
(
PacketPtr
)
override
{
return
10; }
66
Tick
write
(
PacketPtr
)
override
{
return
10; }
67
};
68
69
}
// namespace gem5
70
71
#endif
/* __CPU_TESTERS_GPU_RUBY_TEST_TESTER_DMA_HH__ */
gem5::TesterDma::~TesterDma
virtual ~TesterDma()
Definition:
tester_dma.hh:52
gem5::RangeSize
AddrRange RangeSize(Addr start, Addr size)
Definition:
addr_range.hh:831
gem5::TesterDma::Params
TesterDmaParams Params
Definition:
tester_dma.hh:50
gem5::TesterDma::TesterDma
TesterDma(const Params &p)
Definition:
tester_dma.hh:51
dma_device.hh
gem5::TesterDma::write
Tick write(PacketPtr) override
Pure virtual function that the device must implement.
Definition:
tester_dma.hh:66
gem5::VegaISA::p
Bitfield< 54 > p
Definition:
pagetable.hh:70
gem5::Packet
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Definition:
packet.hh:294
gem5::Tick
uint64_t Tick
Tick count type.
Definition:
types.hh:58
gem5::DmaDevice
Definition:
dma_device.hh:218
gem5::TesterDma::read
Tick read(PacketPtr) override
Pure virtual function that the device must implement.
Definition:
tester_dma.hh:65
std::list< AddrRange >
gem5
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Definition:
gpu_translation_state.hh:37
gem5::TesterDma
Definition:
tester_dma.hh:47
gem5::TesterDma::getAddrRanges
AddrRangeList getAddrRanges() const override
Every PIO device is obliged to provide an implementation that returns the address ranges the device r...
Definition:
tester_dma.hh:57
Generated on Sun Jul 30 2023 01:56:53 for gem5 by
doxygen
1.8.17