Lines Matching defs:iaddr

169     const struct rct_rcbmap *rcbm, struct rct_csintlv *csid, uint64_t iaddr)
182 if (BITVAL(iaddr, ibitno) != 0)
186 mcamd_dprintf(hdl, MCAMD_DBG_FLOW, "iaddr_to_row: iaddr 0x%llx --> "
187 "row 0x%x (%d bits swapped for cs intlv)\n", iaddr, addr, swapped);
197 uint64_t iaddr = 0;
208 SETBIT(iaddr, ibitno);
211 return (iaddr);
217 const struct rct_rcbmap *rcbm, uint64_t iaddr)
235 if (BITVAL(iaddr, ibitno) != 0)
239 mcamd_dprintf(hdl, MCAMD_DBG_FLOW, "iaddr_to_col: iaddr 0x%llx --> "
240 "col 0x%x\n", iaddr, addr);
250 uint64_t iaddr = 0;
268 SETBIT(iaddr, ibitno);
271 return (iaddr);
279 const struct rct_bnkswzlinfo *swzlp, uint64_t iaddr)
288 * rcb_bankbit[abitno] tells us which iaddr bit number
292 val = BITVAL(iaddr, ibitno);
296 * obtained above with other iaddr bits.
301 val ^= BITVAL(iaddr, ibitno);
309 mcamd_dprintf(hdl, MCAMD_DBG_FLOW, "iaddr_to_bank: iaddr 0x%llx --> "
310 "bank 0x%x\n", iaddr, addr);
316 * bank_to_iaddr requires the iaddr reconstructed thus far with at least the
318 * the bank bits are the result of xor'ing three original iaddr bits
321 * in a nonzero iaddr bit (unlike in row and col reconstruction).
328 uint64_t iaddr = 0;
340 SETBIT(iaddr, rcbm->rcb_bankbit[abitno]);
343 return (iaddr);
348 uint64_t iaddr, uint32_t *rowp, uint32_t *colp, uint32_t *bankp)
360 *rowp = iaddr_to_row(hdl, bamp, rcbmp, &csi, iaddr);
361 *colp = iaddr_to_col(hdl, bamp, rcbmp, iaddr);
362 *bankp = iaddr_to_bank(hdl, rcbmp, swzlp, iaddr);
373 iaddr_unnormalize(struct mcamd_hdl *hdl, struct mcprops *mcpp, uint64_t iaddr,
401 * For a 2/4/8 way interleave iaddr was formed by excising
405 * reconstructed iaddr up to make a 1, 2 or 3 bit hole and
413 dramaddr = (BITS(iaddr, 35, 12) << intlvbits) |
414 (mcpp->intlvsel << 12) | BITS(iaddr, 11, 0);
416 dramaddr = iaddr + mcpp->base;
421 mcamd_dprintf(hdl, MCAMD_DBG_FLOW, "iaddr_unnormalize: iaddr 0x%llx "
423 iaddr, (int)mcpp->intlven, (int)mcpp->intlvsel, (int)mcpp->base,
431 uint64_t iaddr, uint64_t *offsetp)
447 if (iaddr_to_rcb(hdl, csmode, &mcp, iaddr, &rowaddr,
483 uint64_t iaddr = 0;
589 * to iaddr from the cs base address.
592 iaddr |= iaddr_add(hdl, iaddr,
599 * iaddr.
601 iaddr |= iaddr_add(hdl, iaddr,
611 iaddr |= iaddr_add(hdl, iaddr,
618 * Reconstruct iaddr bits from known row address
620 iaddr |= iaddr_add(hdl, iaddr,
622 "add iaddr bits from row");
625 * Reconstruct iaddr bits from known column address
627 iaddr |= iaddr_add(hdl, iaddr,
629 "add iaddr bits from col");
632 * Reconstruct iaddr bits from known internal banksel address
634 iaddr |= iaddr_add(hdl, iaddr,
635 bank_to_iaddr(hdl, rcbmp, swzlp, iaddr, bankaddr),
636 "add iaddr bits from bank");
639 * Move iaddr up into the range for this MC and insert any
642 if (iaddr_unnormalize(hdl, &mcp, iaddr, pap) < 0)