AddrMapper.py (9259:fc28f3ca5b21) AddrMapper.py (9338:97b4a2be1e5b)
1# Copyright (c) 2012 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

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

41# An address mapper changes the packet addresses in going from the
42# slave port side of the mapper to the master port side. When the
43# slave port is queried for the address ranges, it also performs the
44# necessary range updates. Note that snoop requests that travel from
45# the master port (i.e. the memory side) to the slave port are
46# currently not modified.
47class AddrMapper(MemObject):
48 type = 'AddrMapper'
1# Copyright (c) 2012 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

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

41# An address mapper changes the packet addresses in going from the
42# slave port side of the mapper to the master port side. When the
43# slave port is queried for the address ranges, it also performs the
44# necessary range updates. Note that snoop requests that travel from
45# the master port (i.e. the memory side) to the slave port are
46# currently not modified.
47class AddrMapper(MemObject):
48 type = 'AddrMapper'
49 cxx_header = 'mem/addr_mapper.hh'
49 abstract = True
50
51 # one port in each direction
52 master = MasterPort("Master port")
53 slave = SlavePort("Slave port")
54
55
56# Range address mapper that maps a set of original ranges to a set of
57# remapped ranges, where a specific range is of the same size
58# (original and remapped), only with an offset.
59class RangeAddrMapper(AddrMapper):
60 type = 'RangeAddrMapper'
50 abstract = True
51
52 # one port in each direction
53 master = MasterPort("Master port")
54 slave = SlavePort("Slave port")
55
56
57# Range address mapper that maps a set of original ranges to a set of
58# remapped ranges, where a specific range is of the same size
59# (original and remapped), only with an offset.
60class RangeAddrMapper(AddrMapper):
61 type = 'RangeAddrMapper'
62 cxx_header = 'mem/addr_mapper.hh'
61
62 # These two vectors should be the exact same length and each range
63 # should be the exact same size. Each range in original_ranges is
64 # mapped to the corresponding element in the remapped_ranges. Note
65 # that the same range can occur multiple times in the remapped
66 # ranges for address aliasing.
67 original_ranges = VectorParam.AddrRange(
68 "Ranges of memory that should me remapped")
69 remapped_ranges = VectorParam.AddrRange(
70 "Ranges of memory that are being mapped to")
63
64 # These two vectors should be the exact same length and each range
65 # should be the exact same size. Each range in original_ranges is
66 # mapped to the corresponding element in the remapped_ranges. Note
67 # that the same range can occur multiple times in the remapped
68 # ranges for address aliasing.
69 original_ranges = VectorParam.AddrRange(
70 "Ranges of memory that should me remapped")
71 remapped_ranges = VectorParam.AddrRange(
72 "Ranges of memory that are being mapped to")