packet.cc (11284:b3926db25371) | packet.cc (11287:0d5bbeaeb8ca) |
---|---|
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 --- 69 unchanged lines hidden (view full) --- 78 { SET3(IsRead, IsResponse, HasData), InvalidCmd, "ReadResp" }, 79 /* ReadRespWithInvalidate */ 80 { SET4(IsRead, IsResponse, HasData, IsInvalidate), 81 InvalidCmd, "ReadRespWithInvalidate" }, 82 /* WriteReq */ 83 { SET5(IsWrite, NeedsWritable, IsRequest, NeedsResponse, HasData), 84 WriteResp, "WriteReq" }, 85 /* WriteResp */ | 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 --- 69 unchanged lines hidden (view full) --- 78 { SET3(IsRead, IsResponse, HasData), InvalidCmd, "ReadResp" }, 79 /* ReadRespWithInvalidate */ 80 { SET4(IsRead, IsResponse, HasData, IsInvalidate), 81 InvalidCmd, "ReadRespWithInvalidate" }, 82 /* WriteReq */ 83 { SET5(IsWrite, NeedsWritable, IsRequest, NeedsResponse, HasData), 84 WriteResp, "WriteReq" }, 85 /* WriteResp */ |
86 { SET3(IsWrite, NeedsWritable, IsResponse), InvalidCmd, "WriteResp" }, | 86 { SET2(IsWrite, IsResponse), InvalidCmd, "WriteResp" }, |
87 /* WritebackDirty */ 88 { SET4(IsWrite, IsRequest, IsEviction, HasData), 89 InvalidCmd, "WritebackDirty" }, 90 /* WritebackClean - This allows the upstream cache to writeback a 91 * line to the downstream cache without it being considered 92 * dirty. */ 93 { SET4(IsWrite, IsRequest, IsEviction, HasData), 94 InvalidCmd, "WritebackClean" }, --- 17 unchanged lines hidden (view full) --- 112 /* UpgradeReq */ 113 { SET5(IsInvalidate, NeedsWritable, IsUpgrade, IsRequest, NeedsResponse), 114 UpgradeResp, "UpgradeReq" }, 115 /* SCUpgradeReq: response could be UpgradeResp or UpgradeFailResp */ 116 { SET6(IsInvalidate, NeedsWritable, IsUpgrade, IsLlsc, 117 IsRequest, NeedsResponse), 118 UpgradeResp, "SCUpgradeReq" }, 119 /* UpgradeResp */ | 87 /* WritebackDirty */ 88 { SET4(IsWrite, IsRequest, IsEviction, HasData), 89 InvalidCmd, "WritebackDirty" }, 90 /* WritebackClean - This allows the upstream cache to writeback a 91 * line to the downstream cache without it being considered 92 * dirty. */ 93 { SET4(IsWrite, IsRequest, IsEviction, HasData), 94 InvalidCmd, "WritebackClean" }, --- 17 unchanged lines hidden (view full) --- 112 /* UpgradeReq */ 113 { SET5(IsInvalidate, NeedsWritable, IsUpgrade, IsRequest, NeedsResponse), 114 UpgradeResp, "UpgradeReq" }, 115 /* SCUpgradeReq: response could be UpgradeResp or UpgradeFailResp */ 116 { SET6(IsInvalidate, NeedsWritable, IsUpgrade, IsLlsc, 117 IsRequest, NeedsResponse), 118 UpgradeResp, "SCUpgradeReq" }, 119 /* UpgradeResp */ |
120 { SET3(NeedsWritable, IsUpgrade, IsResponse), | 120 { SET2(IsUpgrade, IsResponse), |
121 InvalidCmd, "UpgradeResp" }, 122 /* SCUpgradeFailReq: generates UpgradeFailResp but still gets the data */ 123 { SET6(IsRead, NeedsWritable, IsInvalidate, 124 IsLlsc, IsRequest, NeedsResponse), 125 UpgradeFailResp, "SCUpgradeFailReq" }, 126 /* UpgradeFailResp - Behaves like a ReadExReq, but notifies an SC 127 * that it has failed, acquires line as Dirty*/ | 121 InvalidCmd, "UpgradeResp" }, 122 /* SCUpgradeFailReq: generates UpgradeFailResp but still gets the data */ 123 { SET6(IsRead, NeedsWritable, IsInvalidate, 124 IsLlsc, IsRequest, NeedsResponse), 125 UpgradeFailResp, "SCUpgradeFailReq" }, 126 /* UpgradeFailResp - Behaves like a ReadExReq, but notifies an SC 127 * that it has failed, acquires line as Dirty*/ |
128 { SET4(IsRead, NeedsWritable, IsResponse, HasData), | 128 { SET3(IsRead, IsResponse, HasData), |
129 InvalidCmd, "UpgradeFailResp" }, 130 /* ReadExReq - Read issues by a cache, always cache-line aligned, 131 * and the response is guaranteed to be writeable (exclusive or 132 * even modified) */ 133 { SET5(IsRead, NeedsWritable, IsInvalidate, IsRequest, NeedsResponse), 134 ReadExResp, "ReadExReq" }, 135 /* ReadExResp - Response matching a read exclusive, as we check 136 * the need for exclusive also on responses */ | 129 InvalidCmd, "UpgradeFailResp" }, 130 /* ReadExReq - Read issues by a cache, always cache-line aligned, 131 * and the response is guaranteed to be writeable (exclusive or 132 * even modified) */ 133 { SET5(IsRead, NeedsWritable, IsInvalidate, IsRequest, NeedsResponse), 134 ReadExResp, "ReadExReq" }, 135 /* ReadExResp - Response matching a read exclusive, as we check 136 * the need for exclusive also on responses */ |
137 { SET4(IsRead, NeedsWritable, IsResponse, HasData), | 137 { SET3(IsRead, IsResponse, HasData), |
138 InvalidCmd, "ReadExResp" }, 139 /* ReadCleanReq - Read issued by a cache, always cache-line 140 * aligned, and the response is guaranteed to not contain dirty data 141 * (exclusive or shared).*/ 142 { SET3(IsRead, IsRequest, NeedsResponse), ReadResp, "ReadCleanReq" }, 143 /* ReadSharedReq - Read issued by a cache, always cache-line 144 * aligned, response is shared, possibly exclusive, owned or even 145 * modified. */ --- 6 unchanged lines hidden (view full) --- 152 { SET6(IsWrite, NeedsWritable, IsLlsc, 153 IsRequest, NeedsResponse, HasData), 154 StoreCondResp, "StoreCondReq" }, 155 /* StoreCondFailReq: generates failing StoreCondResp */ 156 { SET6(IsWrite, NeedsWritable, IsLlsc, 157 IsRequest, NeedsResponse, HasData), 158 StoreCondResp, "StoreCondFailReq" }, 159 /* StoreCondResp */ | 138 InvalidCmd, "ReadExResp" }, 139 /* ReadCleanReq - Read issued by a cache, always cache-line 140 * aligned, and the response is guaranteed to not contain dirty data 141 * (exclusive or shared).*/ 142 { SET3(IsRead, IsRequest, NeedsResponse), ReadResp, "ReadCleanReq" }, 143 /* ReadSharedReq - Read issued by a cache, always cache-line 144 * aligned, response is shared, possibly exclusive, owned or even 145 * modified. */ --- 6 unchanged lines hidden (view full) --- 152 { SET6(IsWrite, NeedsWritable, IsLlsc, 153 IsRequest, NeedsResponse, HasData), 154 StoreCondResp, "StoreCondReq" }, 155 /* StoreCondFailReq: generates failing StoreCondResp */ 156 { SET6(IsWrite, NeedsWritable, IsLlsc, 157 IsRequest, NeedsResponse, HasData), 158 StoreCondResp, "StoreCondFailReq" }, 159 /* StoreCondResp */ |
160 { SET4(IsWrite, NeedsWritable, IsLlsc, IsResponse), | 160 { SET3(IsWrite, IsLlsc, IsResponse), |
161 InvalidCmd, "StoreCondResp" }, 162 /* SwapReq -- for Swap ldstub type operations */ 163 { SET6(IsRead, IsWrite, NeedsWritable, IsRequest, HasData, NeedsResponse), 164 SwapResp, "SwapReq" }, 165 /* SwapResp -- for Swap ldstub type operations */ | 161 InvalidCmd, "StoreCondResp" }, 162 /* SwapReq -- for Swap ldstub type operations */ 163 { SET6(IsRead, IsWrite, NeedsWritable, IsRequest, HasData, NeedsResponse), 164 SwapResp, "SwapReq" }, 165 /* SwapResp -- for Swap ldstub type operations */ |
166 { SET5(IsRead, IsWrite, NeedsWritable, IsResponse, HasData), | 166 { SET4(IsRead, IsWrite, IsResponse, HasData), |
167 InvalidCmd, "SwapResp" }, 168 /* IntReq -- for interrupts */ 169 { SET4(IsWrite, IsRequest, NeedsResponse, HasData), 170 MessageResp, "MessageReq" }, 171 /* IntResp -- for interrupts */ 172 { SET2(IsWrite, IsResponse), InvalidCmd, "MessageResp" }, 173 /* MemFenceReq -- for synchronization requests */ 174 {SET2(IsRequest, NeedsResponse), MemFenceResp, "MemFenceReq"}, --- 10 unchanged lines hidden (view full) --- 185 /* PrintReq */ 186 { SET2(IsRequest, IsPrint), InvalidCmd, "PrintReq" }, 187 /* Flush Request */ 188 { SET3(IsRequest, IsFlush, NeedsWritable), InvalidCmd, "FlushReq" }, 189 /* Invalidation Request */ 190 { SET4(IsInvalidate, IsRequest, NeedsWritable, NeedsResponse), 191 InvalidateResp, "InvalidateReq" }, 192 /* Invalidation Response */ | 167 InvalidCmd, "SwapResp" }, 168 /* IntReq -- for interrupts */ 169 { SET4(IsWrite, IsRequest, NeedsResponse, HasData), 170 MessageResp, "MessageReq" }, 171 /* IntResp -- for interrupts */ 172 { SET2(IsWrite, IsResponse), InvalidCmd, "MessageResp" }, 173 /* MemFenceReq -- for synchronization requests */ 174 {SET2(IsRequest, NeedsResponse), MemFenceResp, "MemFenceReq"}, --- 10 unchanged lines hidden (view full) --- 185 /* PrintReq */ 186 { SET2(IsRequest, IsPrint), InvalidCmd, "PrintReq" }, 187 /* Flush Request */ 188 { SET3(IsRequest, IsFlush, NeedsWritable), InvalidCmd, "FlushReq" }, 189 /* Invalidation Request */ 190 { SET4(IsInvalidate, IsRequest, NeedsWritable, NeedsResponse), 191 InvalidateResp, "InvalidateReq" }, 192 /* Invalidation Response */ |
193 { SET3(IsInvalidate, IsResponse, NeedsWritable), | 193 { SET2(IsInvalidate, IsResponse), |
194 InvalidCmd, "InvalidateResp" } 195}; 196 197bool 198Packet::checkFunctional(Printable *obj, Addr addr, bool is_secure, int size, 199 uint8_t *_data) 200{ 201 Addr func_start = getAddr(); --- 210 unchanged lines hidden --- | 194 InvalidCmd, "InvalidateResp" } 195}; 196 197bool 198Packet::checkFunctional(Printable *obj, Addr addr, bool is_secure, int size, 199 uint8_t *_data) 200{ 201 Addr func_start = getAddr(); --- 210 unchanged lines hidden --- |