MCPcopy Create free account
hub / github.com/F-Stack/f-stack / decode_win_xor_setup

Function decode_win_xor_setup

freebsd/arm/mv/mv_common.c:2191–2256  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2189}
2190
2191void
2192decode_win_xor_setup(u_long base)
2193{
2194 uint32_t br, sz;
2195 int i, j, z, e = 1, m, window;
2196
2197 if (pm_is_disabled(CPU_PM_CTRL_XOR))
2198 return;
2199
2200 /*
2201 * Disable and clear all XOR windows, revoke protection for all
2202 * channels
2203 */
2204 m = xor_max_eng();
2205 for (j = 0; j < m; j++, e--) {
2206 /* Number of non-remaped windows */
2207 window = MV_XOR_NON_REMAP - 1;
2208
2209 for (i = 0; i < MV_WIN_XOR_MAX; i++) {
2210 win_xor_br_write(base, i, e, 0);
2211 win_xor_sz_write(base, i, e, 0);
2212 }
2213
2214 if (win_xor_can_remap(i) == 1)
2215 win_xor_har_write(base, i, e, 0);
2216
2217 for (i = 0; i < MV_XOR_CHAN_MAX; i++) {
2218 win_xor_ctrl_write(base, i, e, 0);
2219 xor_active_dram(base, i, e, &window);
2220 }
2221
2222 /*
2223 * Remaining targets -- from a statically defined table
2224 */
2225 for (i = 0; i < xor_wins_no; i++)
2226 if (xor_wins[i].target > 0) {
2227 br = (xor_wins[i].base & 0xffff0000) |
2228 (xor_wins[i].attr << 8) |
2229 xor_wins[i].target;
2230 sz = ((xor_wins[i].size - 1) & 0xffff0000);
2231
2232 /* Set the first free XOR window */
2233 for (z = 0; z < MV_WIN_XOR_MAX; z++) {
2234 if (xor_ctrl_read(base, z, 0, e) &&
2235 xor_ctrl_read(base, z, 1, e))
2236 continue;
2237
2238 /* Configure window */
2239 win_xor_br_write(base, z, e, br);
2240 win_xor_sz_write(base, z, e, sz);
2241 if (win_xor_can_remap(z) &&
2242 xor_wins[z].remap >= 0)
2243 win_xor_har_write(base, z, e,
2244 xor_wins[z].remap);
2245
2246 /* Set protection RW on all channels */
2247 xor_set_prot(base, z, e, 0x3);
2248

Callers

nothing calls this directly

Calls 7

pm_is_disabledFunction · 0.85
xor_max_engFunction · 0.85
win_xor_can_remapFunction · 0.85
xor_active_dramFunction · 0.85
xor_ctrl_readFunction · 0.85
xor_set_protFunction · 0.85
xor_ctrl_writeFunction · 0.85

Tested by

no test coverage detected