packet.cc (10883:9294c4a60251) packet.cc (10885:3ac92bf1f31f)
1/*
2 * Copyright (c) 2011-2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

66#define SET5(a1, a2, a3, a4, a5) (SET4(a1, a2, a3, a4) | SET1(a5))
67#define SET6(a1, a2, a3, a4, a5, a6) (SET5(a1, a2, a3, a4, a5) | SET1(a6))
68
69const MemCmd::CommandInfo
70MemCmd::commandInfo[] =
71{
72 /* InvalidCmd */
73 { 0, InvalidCmd, "InvalidCmd" },
1/*
2 * Copyright (c) 2011-2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

66#define SET5(a1, a2, a3, a4, a5) (SET4(a1, a2, a3, a4) | SET1(a5))
67#define SET6(a1, a2, a3, a4, a5, a6) (SET5(a1, a2, a3, a4, a5) | SET1(a6))
68
69const MemCmd::CommandInfo
70MemCmd::commandInfo[] =
71{
72 /* InvalidCmd */
73 { 0, InvalidCmd, "InvalidCmd" },
74 /* ReadReq */
74 /* ReadReq - Read issued by a non-caching agent such as a CPU or
75 * device, with no restrictions on alignment. */
75 { SET3(IsRead, IsRequest, NeedsResponse), ReadResp, "ReadReq" },
76 /* ReadResp */
77 { SET3(IsRead, IsResponse, HasData), InvalidCmd, "ReadResp" },
78 /* ReadRespWithInvalidate */
79 { SET4(IsRead, IsResponse, HasData, IsInvalidate),
80 InvalidCmd, "ReadRespWithInvalidate" },
81 /* WriteReq */
82 { SET5(IsWrite, NeedsExclusive, IsRequest, NeedsResponse, HasData),

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

120 /* SCUpgradeFailReq: generates UpgradeFailResp but still gets the data */
121 { SET6(IsRead, NeedsExclusive, IsInvalidate,
122 IsLlsc, IsRequest, NeedsResponse),
123 UpgradeFailResp, "SCUpgradeFailReq" },
124 /* UpgradeFailResp - Behaves like a ReadExReq, but notifies an SC
125 * that it has failed, acquires line as Dirty*/
126 { SET4(IsRead, NeedsExclusive, IsResponse, HasData),
127 InvalidCmd, "UpgradeFailResp" },
76 { SET3(IsRead, IsRequest, NeedsResponse), ReadResp, "ReadReq" },
77 /* ReadResp */
78 { SET3(IsRead, IsResponse, HasData), InvalidCmd, "ReadResp" },
79 /* ReadRespWithInvalidate */
80 { SET4(IsRead, IsResponse, HasData, IsInvalidate),
81 InvalidCmd, "ReadRespWithInvalidate" },
82 /* WriteReq */
83 { SET5(IsWrite, NeedsExclusive, IsRequest, NeedsResponse, HasData),

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

121 /* SCUpgradeFailReq: generates UpgradeFailResp but still gets the data */
122 { SET6(IsRead, NeedsExclusive, IsInvalidate,
123 IsLlsc, IsRequest, NeedsResponse),
124 UpgradeFailResp, "SCUpgradeFailReq" },
125 /* UpgradeFailResp - Behaves like a ReadExReq, but notifies an SC
126 * that it has failed, acquires line as Dirty*/
127 { SET4(IsRead, NeedsExclusive, IsResponse, HasData),
128 InvalidCmd, "UpgradeFailResp" },
128 /* ReadExReq */
129 /* ReadExReq - Read issues by a cache, always cache-line aligned,
130 * and the response is guaranteed to be writeable (exclusive or
131 * even modified) */
129 { SET5(IsRead, NeedsExclusive, IsInvalidate, IsRequest, NeedsResponse),
130 ReadExResp, "ReadExReq" },
132 { SET5(IsRead, NeedsExclusive, IsInvalidate, IsRequest, NeedsResponse),
133 ReadExResp, "ReadExReq" },
131 /* ReadExResp */
134 /* ReadExResp - Response matching a read exclusive, as we check
135 * the need for exclusive also on responses */
132 { SET4(IsRead, NeedsExclusive, IsResponse, HasData),
133 InvalidCmd, "ReadExResp" },
136 { SET4(IsRead, NeedsExclusive, IsResponse, HasData),
137 InvalidCmd, "ReadExResp" },
138 /* ReadCleanReq - Read issued by a cache, always cache-line
139 * aligned, and the response is guaranteed to not contain dirty data
140 * (exclusive or shared).*/
141 { SET3(IsRead, IsRequest, NeedsResponse), ReadResp, "ReadCleanReq" },
142 /* ReadSharedReq - Read issued by a cache, always cache-line
143 * aligned, response is shared, possibly exclusive, owned or even
144 * modified. */
145 { SET3(IsRead, IsRequest, NeedsResponse), ReadResp, "ReadSharedReq" },
134 /* LoadLockedReq: note that we use plain ReadResp as response, so that
135 * we can also use ReadRespWithInvalidate when needed */
136 { SET4(IsRead, IsLlsc, IsRequest, NeedsResponse),
137 ReadResp, "LoadLockedReq" },
138 /* StoreCondReq */
139 { SET6(IsWrite, NeedsExclusive, IsLlsc,
140 IsRequest, NeedsResponse, HasData),
141 StoreCondResp, "StoreCondReq" },

--- 250 unchanged lines hidden ---
146 /* LoadLockedReq: note that we use plain ReadResp as response, so that
147 * we can also use ReadRespWithInvalidate when needed */
148 { SET4(IsRead, IsLlsc, IsRequest, NeedsResponse),
149 ReadResp, "LoadLockedReq" },
150 /* StoreCondReq */
151 { SET6(IsWrite, NeedsExclusive, IsLlsc,
152 IsRequest, NeedsResponse, HasData),
153 StoreCondResp, "StoreCondReq" },

--- 250 unchanged lines hidden ---