rpb
((struct rpb *)v1p->hwrpb)->rpb_phys;
((struct rpb *)HWRPB_ADDR)->rpb_phys;
((struct rpb *)HWRPB_ADDR)->rpb_size;
init_prom_interface(ptb, (struct rpb *)
bootinfo.hwrpb_phys = ((struct rpb *)HWRPB_ADDR)->rpb_phys;
bootinfo.hwrpb_size = ((struct rpb *)HWRPB_ADDR)->rpb_size;
init_prom_interface(ptb, (struct rpb *)HWRPB_ADDR);
hwrpb = (struct rpb *)ALPHA_PHYS_TO_K0SEG(bootinfo.hwrpb_phys);
cputype = rpb->rpb_type;
prom_check_qemu(const struct rpb * const rpb)
if (rpb->rpb_ssn[0] == 'Q' &&
rpb->rpb_ssn[1] == 'E' &&
rpb->rpb_ssn[2] == 'M' &&
rpb->rpb_ssn[3] == 'U') {
init_prom_interface(u_long ptb_pfn, struct rpb *rpb)
prom_init_cputype(rpb);
prom_check_qemu(rpb);
c = (struct crb *)((char *)rpb + rpb->rpb_crb_off);
i < (offsetof(struct rpb, rpb_checksum) / sizeof (uint64_t));
struct rpb *hwrpb __read_mostly;
prom_init_cputype(const struct rpb * const rpb)
void init_prom_interface(unsigned long, struct rpb *);
struct rpb;
struct rpb;
extern struct rpb *hwrpb;
struct rpb *r;
r = (struct rpb *)HWRPB_ADDR;
bootinfo_v1.hwrpbsize = ((struct rpb *)HWRPB_ADDR)->rpb_size;
struct rpb *r;
r = (struct rpb *)HWRPB_ADDR;
((struct rpb *)HWRPB_ADDR)->rpb_cc_freq) + 1;
((struct rpb *)HWRPB_ADDR)->rpb_cc_freq, wrapsecs);
tnsec += ((curpcc - lastpcc) * 1000000000) / ((struct rpb *)HWRPB_ADDR)->rpb_cc_freq;
struct rpb *prpb = (struct rpb *)bootregs[11];
memcpy(&bootrpb, (void *)prpb, sizeof(struct rpb));
struct rpb bootrpb;
int romwrite_uvax(int, int, void *, struct rpb *);
int romread_uvax(int, int, void *, struct rpb *);
extern struct rpb bootrpb;
rpb = (void *)0xf0000; /* Safe address right now */
bcopy ((void *)bootregs[11], rpb, sizeof(struct rpb));
bcopy ((void*)rpb->iovec, bqo, rpb->iovecsz);
memset(rpb, 0, sizeof(struct rpb));
rpb->devtyp = bootregs[0];
rpb->unit = bootregs[3];
rpb->rpb_bootr5 = bootregs[5];
rpb->csrphy = bootregs[2];
rpb->adpphy = bootregs[1]; /* BI node on 8200 */
if (rpb->devtyp != BDEV_HP && vax_cputype == VAX_TYP_750)
rpb->adpphy =
rpb->rpb_base = rpb;
rpb->iovec = (int)bqo;
initfn = rpb->iovec + bqo->unit_init;
if (rpb->devtyp == BDEV_UDA || rpb->devtyp == BDEV_TK) {
csr = (struct udadevice *)rpb->csrphy;
unit_init(initfn, rpb, bootregs[12]);
romread_uvax(block, size, cbuf, rpb);
if (rpb->devtyp == BDEV_HP)
void romread_uvax(int lbn, int size, void *buf, struct rpb *rpb);
int unit_init(int, struct rpb *, int);
struct rpb *rpb;
extern struct rpb rpb;
struct rpb *rpb_base; /* 4 physical base address of block */
if (rpb.rpb_base == (void *)-1)
if (rpb.rpb_base == (void *)-1)
if (rpb.devtyp != nr)
if (rpb.csrphy != p)
if (jmfr("ni", dev, BDEV_NI) || (kvtophys(ba->ba_ioh) != rpb.csrphy))
if (sa->sa_periph->periph_target != (rpb.unit/100) ||
sa->sa_periph->periph_lun != (rpb.unit % 100))
(device_cfdata(ppdev)->cf_loc[VSBUSCF_CSR] == rpb.csrphy))
if (raa->hwid != rpb.unit)
if (da->da_mp->mscp_unit != rpb.unit)
if (rpb.devtyp == BDEV_UDA && rpb.csrphy == ioaddr)
if (((struct mba_attach_args *)aux)->ma_unit != rpb.unit)
if (mbaaddr != rpb.adpphy)
if (*nr != rpb.unit)
rpb.devtyp, rpb.unit, rpb.csrphy, rpb.adpphy, rpb.slave);
rpb.wait = 0;
mapaddr = (cca ? (int)cca : rpb.cca_addr);
cca = (void *)rpb.cca_addr;
memset((void *)uv, 0, sizeof(struct rpb));
prpb = (struct rpb *)uv;
memcpy((void *)uv, prpb, sizeof(struct rpb));
void _start(struct rpb *);
_start(struct rpb *prpb)
*(struct rpb *)0 = *(struct rpb *)(uvm_lwp_getuarea(&lwp0) + REDZONEADDR);
rpb.sbr = mfpr(PR_SBR);
rpb.slr = mfpr(PR_SLR);
rpb.wait = 0; /* DDB signal */