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

Function decode_win_sata_setup

freebsd/arm/mv/mv_common.c:2369–2399  ·  view source on GitHub ↗

* SATA windows routines **************************************************************************/

Source from the content-addressed store, hash-verified

2367 * SATA windows routines
2368 **************************************************************************/
2369static void
2370decode_win_sata_setup(u_long base)
2371{
2372 uint32_t cr, br;
2373 int i, j;
2374
2375 if (pm_is_disabled(CPU_PM_CTRL_SATA))
2376 return;
2377
2378 for (i = 0; i < MV_WIN_SATA_MAX; i++) {
2379 win_sata_cr_write(base, i, 0);
2380 win_sata_br_write(base, i, 0);
2381 }
2382
2383 for (i = 0; i < MV_WIN_DDR_MAX; i++)
2384 if (ddr_is_active(i)) {
2385 cr = ((ddr_size(i) - 1) & 0xffff0000) |
2386 (ddr_attr(i) << 8) | (ddr_target(i) << 4) | 1;
2387 br = ddr_base(i);
2388
2389 /* Use the first available SATA window */
2390 for (j = 0; j < MV_WIN_SATA_MAX; j++) {
2391 if ((win_sata_cr_read(base, j) & 1) != 0)
2392 continue;
2393
2394 win_sata_br_write(base, j, br);
2395 win_sata_cr_write(base, j, cr);
2396 break;
2397 }
2398 }
2399}
2400
2401/*
2402 * Configure AHCI decoding windows

Callers

nothing calls this directly

Calls 6

pm_is_disabledFunction · 0.85
ddr_is_activeFunction · 0.85
ddr_sizeFunction · 0.85
ddr_attrFunction · 0.85
ddr_targetFunction · 0.85
ddr_baseFunction · 0.85

Tested by

no test coverage detected