Lines Matching refs:pa

83 static int pa_to_maddr(mc_opl_t *mcp, uint64_t pa, mc_addr_t *maddr);
85 static int mc_rangecheck_pa(mc_opl_t *mcp, uint64_t pa);
661 mcaddr_to_pa(mc_opl_t *mcp, mc_addr_t *maddr, uint64_t *pa) in mcaddr_to_pa() argument
694 *pa = mcp->mc_start_address + pa_offset; in mcaddr_to_pa()
695 MC_LOG("pa = %lx\n", *pa); in mcaddr_to_pa()
697 if (pa_to_maddr(mcp, *pa, &maddr1) == -1) { in mcaddr_to_pa()
700 maddr->ma_dimm_addr, *pa); in mcaddr_to_pa()
724 maddr->ma_dimm_addr, *pa, maddr1.ma_bd, maddr1.ma_bank, in mcaddr_to_pa()
813 pa_to_maddr(mc_opl_t *mcp, uint64_t pa, mc_addr_t *maddr) in pa_to_maddr() argument
817 if (!mc_rangecheck_pa(mcp, pa)) in pa_to_maddr()
821 pa_offset = pa - mcp->mc_start_address; in pa_to_maddr()
1113 uint64_t pa = (uint64_t)(-1); in mc_err_drain() local
1124 &(mc_aflt->mflt_stat[i]->mf_flt_maddr), &pa); in mc_err_drain()
1127 if (rv == 0 && pa_is_valid(mc_aflt->mflt_mcp, pa)) in mc_err_drain()
1128 mc_aflt->mflt_stat[i]->mf_flt_paddr = pa; in mc_err_drain()
1133 MC_LOG("mc_err_drain:pa = %lx\n", pa); in mc_err_drain()
1135 switch (page_retire_check(pa, NULL)) { in mc_err_drain()
1148 MC_LOG("offline page at pa %lx error %x\n", pa, in mc_err_drain()
1150 (void) page_retire(pa, mc_aflt->mflt_pr); in mc_err_drain()
1185 uint64_t pa; in restart_patrol() local
1196 rv = mcaddr_to_pa(mcp, &rsaddr_info->mi_restartaddr, &pa); in restart_patrol()
1203 if (!mc_rangecheck_pa(mcp, pa)) { in restart_patrol()
1206 "on board %d\n", pa, mcp->mc_board_num); in restart_patrol()
1211 MC_LOG("restart_patrol: pa = %lx\n", pa); in restart_patrol()
1228 uint64_t origpa = pa; in restart_patrol()
1230 if (!pa_is_valid(mcp, pa)) { in restart_patrol()
1236 pa = roundup(pa + 1, mc_isolation_bsize); in restart_patrol()
1239 if ((rv = page_retire_check(pa, NULL)) != 0 && in restart_patrol()
1247 if (pa == origpa) { in restart_patrol()
1263 pa = roundup(pa + 1, PAGESIZE); in restart_patrol()
1264 MC_LOG("Skipping bad page to %lx\n", pa); in restart_patrol()
1268 if (pa >= (mcp->mc_start_address + mcp->mc_size)) { in restart_patrol()
1270 pa = mcp->mc_start_address; in restart_patrol()
1290 MC_LOG("restart at pa = %lx\n", pa); in restart_patrol()
1291 ST_MAC_REG(MAC_RESTART_ADD(mcp, bank), MAC_RESTART_PA(pa)); in restart_patrol()
2428 mc_rangecheck_pa(mc_opl_t *mcp, uint64_t pa) in mc_rangecheck_pa() argument
2430 if ((pa < mcp->mc_start_address) || (mcp->mc_start_address + in mc_rangecheck_pa()
2431 mcp->mc_size <= pa)) in mc_rangecheck_pa()
2947 mc_pa_to_mcp(uint64_t pa) in mc_pa_to_mcp() argument
2960 if (mc_rangecheck_pa(mcp, pa)) { in mc_pa_to_mcp()
3112 mc_lock_va(uint64_t pa, caddr_t new_va) in mc_lock_va() argument
3117 sfmmu_memtte(&tte, pa >> PAGESHIFT, PROC_DATA|HAT_NOSYNC, TTE8K); in mc_lock_va()
3130 mc_inject_error(int error_type, uint64_t pa, uint32_t flags) in mc_inject_error() argument
3143 MC_LOG("HW mc_inject_error(%x, %lx, %x)\n", error_type, pa, flags); in mc_inject_error()
3146 if ((mcp = mc_pa_to_mcp(pa)) == NULL) { in mc_inject_error()
3162 MC_LOG("pa %lx, offset %lx\n", pa, pa - mcp->mc_start_address); in mc_inject_error()
3164 if (!pa_is_valid(mcp, pa)) { in mc_inject_error()
3169 pa0 = pa - mcp->mc_start_address; in mc_inject_error()
3246 stphys(pa, data); in mc_inject_error()
3248 MC_LOG("CMPE: writing data %x to %lx\n", data, pa); in mc_inject_error()
3250 stphys(pa, data ^ 0xffffffff); in mc_inject_error()
3254 MC_LOG("CMPE: write new data %xto %lx\n", data, pa); in mc_inject_error()
3283 MC_LOG("Writing %x to %lx\n", data, pa); in mc_inject_error()
3284 stphys(pa, data); in mc_inject_error()
3300 pp = page_numtopp_nolock(pa >> PAGESHIFT); in mc_inject_error()
3307 mc_lock_va((uint64_t)pa, va); in mc_inject_error()
3308 va1 = va + (pa & (PAGESIZE - 1)); in mc_inject_error()
3321 " for PA %lx\n", pa); in mc_inject_error()
3324 MC_LOG("Reading from %lx\n", pa); in mc_inject_error()
3325 data = ldphys(pa); in mc_inject_error()
3350 MC_LOG("Writing %x to %lx\n", data, pa); in mc_inject_error()
3351 stphys(pa, data); in mc_inject_error()
3408 mc_stphysio(uint64_t pa, uint32_t data) in mc_stphysio() argument
3410 MC_LOG("0x%x -> pa(%lx)\n", data, pa); in mc_stphysio()
3411 stphysio(pa, data); in mc_stphysio()
3414 data = ldphysio(pa); in mc_stphysio()
3415 MC_LOG("pa(%lx) = 0x%x\n", pa, data); in mc_stphysio()
3419 mc_ldphysio(uint64_t pa) in mc_ldphysio() argument
3423 rv = ldphysio(pa); in mc_ldphysio()
3424 MC_LOG("pa(%lx) = 0x%x\n", pa, rv); in mc_ldphysio()
3888 uint64_t pa; in mc_scf_log_event() local
3907 &pa)) != 0) { in mc_scf_log_event()
3935 flt_stat.mf_flt_paddr = pa; in mc_scf_log_event()
3937 if ((mcp = mc_pa_to_mcp(pa)) == NULL) { in mc_scf_log_event()
3945 unum, mcp->mc_board_num, bank, flt_pag->err_add, pa, in mc_scf_log_event()
3950 if (!pa_is_valid(mcp, pa)) { in mc_scf_log_event()
4025 uint64_t pa; in mc_ioctl_debug() local
4039 if (ddi_copyin((const void *)arg, (void *)&pa, in mc_ioctl_debug()
4048 pa = va_to_pa(buf); in mc_ioctl_debug()
4049 pa += offset; in mc_ioctl_debug()
4058 (void) mc_inject_error(MC_INJECT_INTERMITTENT_CE, pa, flags); in mc_ioctl_debug()
4061 (void) mc_inject_error(MC_INJECT_PERMANENT_CE, pa, flags); in mc_ioctl_debug()
4064 (void) mc_inject_error(MC_INJECT_UE, pa, flags); in mc_ioctl_debug()
4067 (void) mc_inject_error(MC_INJECT_INTERMITTENT_MCE, pa, flags); in mc_ioctl_debug()
4070 (void) mc_inject_error(MC_INJECT_PERMANENT_MCE, pa, flags); in mc_ioctl_debug()
4073 (void) mc_inject_error(MC_INJECT_MUE, pa, flags); in mc_ioctl_debug()
4076 (void) mc_inject_error(MC_INJECT_CMPE, pa, flags); in mc_ioctl_debug()
4079 (void) mc_inject_error(MC_INJECT_NOP, pa, flags); break; in mc_ioctl_debug()