Lines Matching refs:bank

95 int mc_set_mem_sid(mc_opl_t *mcp, char *buf, int buflen, int lsb, int bank,
103 static void mc_set_rewrite(mc_opl_t *mcp, int bank, uint32_t addr, int state);
666 int bank = maddr->ma_bank; in mcaddr_to_pa() local
670 MC_LOG("mcaddr /LSB%d/B%d/%x\n", maddr->ma_bd, bank, in mcaddr_to_pa()
675 ASSERT(bank >= 0 && OPL_BANK_MAX > bank); in mcaddr_to_pa()
686 pa_bit = bank & 1; in mcaddr_to_pa()
688 pa_bit = (bank >> 1) & 1; in mcaddr_to_pa()
690 pa_bit = (bank >> 2) & 1; in mcaddr_to_pa()
699 "convert PA %lx\n", maddr->ma_bd, bank, in mcaddr_to_pa()
723 "PA %lx, target /LSB%d/B%d/%x\n", maddr->ma_bd, bank, in mcaddr_to_pa()
855 mc_set_mem_unum(char *buf, int buflen, int sb, int bank, in mc_set_mem_unum() argument
870 i = BD_BK_SLOT_TO_INDEX(0, bank, d_slot); in mc_set_mem_unum()
875 i = BD_BK_SLOT_TO_INDEX(0, bank, 0); in mc_set_mem_unum()
887 i = BD_BK_SLOT_TO_INDEX(sb, bank, d_slot); in mc_set_mem_unum()
895 i = BD_BK_SLOT_TO_INDEX(sb, bank, 0); in mc_set_mem_unum()
908 i = BD_BK_SLOT_TO_INDEX(sb, bank, d_slot); in mc_set_mem_unum()
913 i = BD_BK_SLOT_TO_INDEX(sb, bank, 0); in mc_set_mem_unum()
1058 int bank; in mc_ereport_post() local
1061 bank = flt_stat->mf_flt_maddr.ma_bank; in mc_ereport_post()
1063 flt_stat->mf_flt_maddr.ma_phys_bd, bank, flt_stat->mf_type, in mc_ereport_post()
1070 flt_stat->mf_flt_maddr.ma_bd, bank, in mc_ereport_post()
1085 blen, flt_stat->mf_flt_maddr.ma_phys_bd, bank, in mc_ereport_post()
1183 restart_patrol(mc_opl_t *mcp, int bank, mc_rsaddr_info_t *rsaddr_info) in restart_patrol() argument
1188 if (MC_REWRITE_MODE(mcp, bank)) { in restart_patrol()
1192 MAC_PTRL_START(mcp, bank); in restart_patrol()
1199 MAC_PTRL_START(mcp, bank); in restart_patrol()
1207 MAC_PTRL_START(mcp, bank); in restart_patrol()
1250 MAC_PTRL_START(mcp, bank); in restart_patrol()
1277 MAC_PTRL_START(mcp, bank); in restart_patrol()
1291 ST_MAC_REG(MAC_RESTART_ADD(mcp, bank), MAC_RESTART_PA(pa)); in restart_patrol()
1292 MAC_PTRL_START_ADD(mcp, bank); in restart_patrol()
1332 do_rewrite(mc_opl_t *mcp, int bank, uint32_t dimm_addr, int retrying) in do_rewrite() argument
1346 if (!retrying && MC_REWRITE_MODE(mcp, bank)) { in do_rewrite()
1354 cntl = LD_MAC_REG(MAC_PTRL_CNTL(mcp, bank)); in do_rewrite()
1366 ST_MAC_REG(MAC_REWRITE_ADD(mcp, bank), dimm_addr); in do_rewrite()
1367 MAC_REW_REQ(mcp, bank); in do_rewrite()
1377 cntl = LD_MAC_REG(MAC_PTRL_CNTL(mcp, bank)); in do_rewrite()
1384 MAC_CLEAR_ERRS(mcp, bank, MAC_CNTL_REW_ERRS); in do_rewrite()
1387 mc_set_rewrite(mcp, bank, dimm_addr, retry_state); in do_rewrite()
1393 mc_clear_rewrite(mc_opl_t *mcp, int bank) in mc_clear_rewrite() argument
1399 bankp = &(mcp->mc_bank[bank]); in mc_clear_rewrite()
1410 if (do_rewrite(mcp, bank, rew_addr, 1) == 0) in mc_clear_rewrite()
1417 if (!IS_MIRROR(mcp, bank)) { in mc_clear_rewrite()
1418 MC_CLEAR_REWRITE_MODE(mcp, bank); in mc_clear_rewrite()
1420 int mbank = bank ^ 1; in mc_clear_rewrite()
1423 MC_CLEAR_REWRITE_MODE(mcp, bank); in mc_clear_rewrite()
1426 bank = mbank; in mc_clear_rewrite()
1434 mc_set_rewrite(mc_opl_t *mcp, int bank, uint32_t addr, int state) in mc_set_rewrite() argument
1439 bankp = &mcp->mc_bank[bank]; in mc_set_rewrite()
1451 maddr.ma_bank = bank; in mc_set_rewrite()
1456 paddr, mcp->mc_board_num, bank, addr); in mc_set_rewrite()
1460 mcp->mc_board_num, bank, addr); in mc_set_rewrite()
1468 MC_SET_REWRITE_MODE(mcp, bank); in mc_set_rewrite()
1477 if (IS_MIRROR(mcp, bank)) { in mc_set_rewrite()
1478 int mbank = bank ^1; in mc_set_rewrite()
1489 int bank; in mc_process_scf_log() local
1491 for (bank = 0; bank < BANKNUM_PER_SB; bank++) { in mc_process_scf_log()
1492 while ((p = mcp->mc_scf_log[bank]) != NULL && in mc_process_scf_log()
1494 ASSERT(bank == p->sl_bank); in mc_process_scf_log()
1510 mcp->mc_scf_retry[bank] = 0; in mc_process_scf_log()
1515 if (mcp->mc_scf_retry[bank]++ <= in mc_process_scf_log()
1526 mcp->mc_scf_log[bank] = p->sl_next; in mc_process_scf_log()
1527 mcp->mc_scf_total[bank]--; in mc_process_scf_log()
1528 ASSERT(mcp->mc_scf_total[bank] >= 0); in mc_process_scf_log()
1534 mc_queue_scf_log(mc_opl_t *mcp, mc_flt_stat_t *flt_stat, int bank) in mc_queue_scf_log() argument
1538 if (mcp->mc_scf_total[bank] >= mc_max_scf_logs) { in mc_queue_scf_log()
1548 p->sl_bank = bank; in mc_queue_scf_log()
1550 if (mcp->mc_scf_log[bank] == NULL) { in mc_queue_scf_log()
1555 mcp->mc_scf_log_tail[bank] = mcp->mc_scf_log[bank] = p; in mc_queue_scf_log()
1557 mcp->mc_scf_log_tail[bank]->sl_next = p; in mc_queue_scf_log()
1558 mcp->mc_scf_log_tail[bank] = p; in mc_queue_scf_log()
1560 mcp->mc_scf_total[bank]++; in mc_queue_scf_log()
1576 mc_scrub_ce(mc_opl_t *mcp, int bank, mc_flt_stat_t *flt_stat, int ptrl_error) in mc_scrub_ce() argument
1589 cntl = do_rewrite(mcp, bank, flt_stat->mf_err_add, 0); in mc_scrub_ce()
1623 mc_queue_scf_log(mcp, flt_stat, bank); in mc_scrub_ce()
1647 mc_write_cntl(mc_opl_t *mcp, int bank, uint32_t value) in mc_write_cntl() argument
1649 int ebank = (IS_MIRROR(mcp, bank)) ? MIRROR_IDX(bank) : bank; in mc_write_cntl()
1655 ST_MAC_REG(MAC_PTRL_CNTL(mcp, bank), value); in mc_write_cntl()
1659 mc_read_ptrl_reg(mc_opl_t *mcp, int bank, mc_flt_stat_t *flt_stat) in mc_read_ptrl_reg() argument
1661 flt_stat->mf_cntl = LD_MAC_REG(MAC_PTRL_CNTL(mcp, bank)) & in mc_read_ptrl_reg()
1663 flt_stat->mf_err_add = LD_MAC_REG(MAC_PTRL_ERR_ADD(mcp, bank)); in mc_read_ptrl_reg()
1664 flt_stat->mf_err_log = LD_MAC_REG(MAC_PTRL_ERR_LOG(mcp, bank)); in mc_read_ptrl_reg()
1667 flt_stat->mf_flt_maddr.ma_bank = bank; in mc_read_ptrl_reg()
1672 mc_read_mi_reg(mc_opl_t *mcp, int bank, mc_flt_stat_t *flt_stat) in mc_read_mi_reg() argument
1676 status = LD_MAC_REG(MAC_PTRL_CNTL(mcp, bank)) & MAC_CNTL_MI_ERRS; in mc_read_mi_reg()
1682 flt_stat->mf_err_add = LD_MAC_REG(MAC_MI_ERR_ADD(mcp, bank)); in mc_read_mi_reg()
1683 flt_stat->mf_err_log = LD_MAC_REG(MAC_MI_ERR_LOG(mcp, bank)); in mc_read_mi_reg()
1684 status = LD_MAC_REG(MAC_PTRL_CNTL(mcp, bank)) & in mc_read_mi_reg()
1694 flt_stat->mf_flt_maddr.ma_bank = bank; in mc_read_mi_reg()
1739 int bank; in mc_process_error_mir() local
1761 bank = flt_stat[i].mf_flt_maddr.ma_bank; in mc_process_error_mir()
1762 MC_LOG("CE detected on bank %d\n", bank); in mc_process_error_mir()
1763 mc_scrub_ce(mcp, bank, &flt_stat[i], ptrl_error); in mc_process_error_mir()
1764 if (MC_REWRITE_ACTIVE(mcp, bank)) { in mc_process_error_mir()
1891 mc_error_handler_mir(mc_opl_t *mcp, int bank, mc_rsaddr_info_t *rsaddr) in mc_error_handler_mir() argument
1911 MC_LOG("Reading registers of bank %d\n", bank); in mc_error_handler_mir()
1913 mc_read_ptrl_reg(mcp, bank, &flt_stat[i]); in mc_error_handler_mir()
1930 mc_read_mi_reg(mcp, bank, &mi_flt_stat[i]); in mc_error_handler_mir()
1936 bank = bank^1; in mc_error_handler_mir()
1940 MAC_CLEAR_ERRS(mcp, bank, (MAC_CNTL_PTRL_ERRS|MAC_CNTL_MI_ERRS)); in mc_error_handler_mir()
1942 MAC_CLEAR_ERRS(mcp, bank ^ 1, (MAC_CNTL_PTRL_ERRS|MAC_CNTL_MI_ERRS)); in mc_error_handler_mir()
1988 mc_process_error(mc_opl_t *mcp, int bank, mc_aflt_t *mc_aflt, in mc_process_error() argument
2007 mc_scrub_ce(mcp, bank, flt_stat, ptrl_error); in mc_process_error()
2008 if (MC_REWRITE_ACTIVE(mcp, bank)) { in mc_process_error()
2035 mc_error_handler(mc_opl_t *mcp, int bank, mc_rsaddr_info_t *rsaddr) in mc_error_handler() argument
2049 mc_read_ptrl_reg(mcp, bank, &flt_stat); in mc_error_handler()
2058 mc_read_mi_reg(mcp, bank, &mi_flt_stat); in mc_error_handler()
2065 MAC_CLEAR_ERRS(mcp, bank, (MAC_CNTL_PTRL_ERRS|MAC_CNTL_MI_ERRS)); in mc_error_handler()
2071 mi_valid = mc_process_error(mcp, bank, &mc_aflt, &mi_flt_stat); in mc_error_handler()
2091 rsaddr->mi_valid = mc_process_error(mcp, bank, &mc_aflt, in mc_error_handler()
2115 mc_process_rewrite(mc_opl_t *mcp, int bank) in mc_process_rewrite() argument
2121 bankp = &(mcp->mc_bank[bank]); in mc_process_rewrite()
2127 cntl = LD_MAC_REG(MAC_PTRL_CNTL(mcp, bank)); in mc_process_rewrite()
2131 ST_MAC_REG(MAC_REWRITE_ADD(mcp, bank), rew_addr); in mc_process_rewrite()
2132 MAC_REW_REQ(mcp, bank); in mc_process_rewrite()
2137 cntl = ldphysio(MAC_PTRL_CNTL(mcp, bank)); in mc_process_rewrite()
2140 MAC_CLEAR_ERRS(mcp, bank, in mc_process_rewrite()
2142 mc_clear_rewrite(mcp, bank); in mc_process_rewrite()
2158 if (++mcp->mc_bank[bank].mcb_rewrite_count in mc_process_rewrite()
2165 bank); in mc_process_rewrite()
2379 get_ptrl_start_address(mc_opl_t *mcp, int bank, mc_addr_t *maddr) in get_ptrl_start_address() argument
2382 maddr->ma_bank = bank; in get_ptrl_start_address()
2410 uint32_t bank; member
2735 bk = macaddr[i].bank; in mc_board_add()
2989 int bank; in mc_get_mem_unum() local
3009 bank = pa_to_bank(mcp, flt_addr - mcp->mc_start_address); in mc_get_mem_unum()
3020 i = BD_BK_SLOT_TO_INDEX(0, bank, 0); in mc_get_mem_unum()
3029 i = BD_BK_SLOT_TO_INDEX(sb, bank, 0); in mc_get_mem_unum()
3039 i = BD_BK_SLOT_TO_INDEX(sb, bank, 0); in mc_get_mem_unum()
3133 int bank; in mc_inject_error() local
3171 bank = pa_to_bank(mcp, pa0); in mc_inject_error()
3174 bank = bank ^ 1; in mc_inject_error()
3176 if (MC_INJECT_MIRROR(error_type) && !IS_MIRROR(mcp, bank)) { in mc_inject_error()
3184 MC_LOG("injecting error to /LSB%d/B%d/%x\n", mcp->mc_board_num, bank, in mc_inject_error()
3196 ST_MAC_REG(MAC_EG_CNTL(mcp, bank), 0); in mc_inject_error()
3198 ST_MAC_REG(MAC_EG_ADD(mcp, bank), dimm_addr & MAC_EG_ADD_MASK); in mc_inject_error()
3201 ST_MAC_REG(MAC_EG_CNTL(mcp, bank^1), 0); in mc_inject_error()
3202 ST_MAC_REG(MAC_EG_ADD(mcp, bank^1), dimm_addr & in mc_inject_error()
3249 ST_MAC_REG(MAC_MIRR(mcp, bank), MAC_MIRR_BANK_EXCLUSIVE); in mc_inject_error()
3253 ST_MAC_REG(MAC_MIRR(mcp, bank), 0); in mc_inject_error()
3266 ST_MAC_REG(MAC_EG_CNTL(mcp, bank), cntl & MAC_EG_SETUP_MASK); in mc_inject_error()
3267 ST_MAC_REG(MAC_EG_CNTL(mcp, bank), cntl); in mc_inject_error()
3270 ST_MAC_REG(MAC_EG_CNTL(mcp, bank^1), cntl & in mc_inject_error()
3272 ST_MAC_REG(MAC_EG_CNTL(mcp, bank^1), cntl); in mc_inject_error()
3340 ST_MAC_REG(MAC_EG_CNTL(mcp, bank), in mc_inject_error()
3342 ST_MAC_REG(MAC_EG_CNTL(mcp, bank), cntl); in mc_inject_error()
3345 ST_MAC_REG(MAC_EG_CNTL(mcp, bank^1), cntl & in mc_inject_error()
3347 ST_MAC_REG(MAC_EG_CNTL(mcp, bank^1), cntl); in mc_inject_error()
3359 rsaddr.mi_restartaddr.ma_bank = bank; in mc_inject_error()
3363 (void) restart_patrol(mcp, bank, &rsaddr); in mc_inject_error()
3368 int ebank = (IS_MIRROR(mcp, bank)) ? MIRROR_IDX(bank) : bank; in mc_inject_error()
3371 stat = LD_MAC_REG(MAC_PTRL_STAT(mcp, bank)); in mc_inject_error()
3372 cntl = LD_MAC_REG(MAC_PTRL_CNTL(mcp, bank)); in mc_inject_error()
3384 if (IS_MIRROR(mcp, bank)) { in mc_inject_error()
3385 mc_error_handler_mir(mcp, bank, &rsaddr); in mc_inject_error()
3387 mc_error_handler(mcp, bank, &rsaddr); in mc_inject_error()
3390 (void) restart_patrol(mcp, bank, &rsaddr); in mc_inject_error()
3398 MAC_CMD(mcp, bank, 0); in mc_inject_error()
3399 (void) restart_patrol(mcp, bank, NULL); in mc_inject_error()
3546 int bank, uint32_t mf_type, uint32_t d_slot) in mc_set_mem_sid() argument
3559 id = BD_BK_SLOT_TO_INDEX(0, bank, d_slot); in mc_set_mem_sid()
3565 id = BD_BK_SLOT_TO_INDEX(sb, bank, d_slot); in mc_set_mem_sid()
3664 dname_to_bankslot(char *dname, int *bank, int *slot) in dname_to_bankslot() argument
3692 *bank = INDEX_TO_BANK(i); in dname_to_bankslot()
3705 int bank; in mc_get_mem_addr() local
3737 ret = dname_to_bankslot(dname, &bank, &slot); in mc_get_mem_addr()
3738 MC_LOG("mc_get_mem_addr: bank=%d slot=%d\n", bank, slot); in mc_get_mem_addr()
3744 maddr.ma_bank = bank; in mc_get_mem_addr()
3883 int board, bank, slot; in mc_scf_log_event() local
3925 if (dname_to_bankslot(dname, &bank, &slot) != 0) { in mc_scf_log_event()
3945 unum, mcp->mc_board_num, bank, flt_pag->err_add, pa, in mc_scf_log_event()
3959 mc_queue_scf_log(mcp, &flt_stat, bank); in mc_scf_log_event()