static void dec_3000_300_cons_init(void) { struct ctb *ctb; ctb = (struct ctb *)(((char *)hwrpb) + hwrpb->rpb_ctb_off); switch (ctb->ctb_term_type) { case CTB_GRAPHICS: #if NWSDISPLAY > 0 /* display console ... */ if (zs_ioasic_lk201_cnattach(0x1a0000000, 0x00180000, 0) == 0 && tc_3000_300_fb_cnattach( CTB_TURBOSLOT_SLOT(ctb->ctb_turboslot)) == 0) { break; } #endif printf("consinit: Unable to init console on keyboard and "); printf("TURBOchannel slot 0x%lx.\n", ctb->ctb_turboslot); printf("Using serial console.\n"); /* FALLTHROUGH */ case CTB_PRINTERPORT: /* serial console ... */ /* * XXX This could stand some cleanup... */ { /* * Delay to allow PROM putchars to complete. * FIFO depth * character time. * character time = (1000000 / (defaultrate / 10)) */ DELAY(160000000 / 9600); /* XXX */ /* * Console is channel B of the first SCC. * XXX Should use ctb_line_off to get the * XXX line parameters. */ zs_ioasic_cnattach(0x1a0000000, 0x00100000, 1); break; } default: printf("ctb->ctb_term_type = 0x%lx\n", ctb->ctb_term_type); printf("ctb->ctb_turboslot = 0x%lx\n", ctb->ctb_turboslot); panic("consinit: unknown console type %lu", ctb->ctb_term_type); /* NOTREACHED */ } }
static void dec_3000_300_cons_init() { struct ctb *ctb; ctb = (struct ctb *)(((caddr_t)hwrpb) + hwrpb->rpb_ctb_off); #ifndef NEW_SCC_DRIVER switch (ctb->ctb_term_type) { case CTB_GRAPHICS: #if 0 alpha_donot_kludge_scc = 1; #endif return; case CTB_PRINTERPORT: return; default: goto badconsole; } #else switch (ctb->ctb_term_type) { case CTB_GRAPHICS: #if NWSDISPLAY > 0 /* display console ... */ if (zs_ioasic_lk201_cnattach(0x1a0000000, 0x00180000, 0) == 0 && tc_3000_300_fb_cnattach( CTB_TURBOSLOT_SLOT(ctb->ctb_turboslot)) == 0) { break; } #endif printf("consinit: Unable to init console on keyboard and "); printf("TURBOchannel slot 0x%lx.\n", ctb->ctb_turboslot); printf("Using serial console.\n"); /* FALLTHROUGH */ case CTB_PRINTERPORT: /* serial console ... */ /* * XXX This could stand some cleanup... */ { /* * Delay to allow PROM putchars to complete. * FIFO depth * character time. * character time = (1000000 / (defaultrate / 10)) */ DELAY(160000000 / 9600); /* XXX */ /* * Console is channel B of the first SCC. * XXX Should use ctb_line_off to get the * XXX line parameters. */ if (zs_ioasic_cnattach(0x1a0000000, 0x00100000, 1, 9600, (TTYDEF_CFLAG & ~(CSIZE | PARENB)) | CS8)) panic("can't init serial console"); break; } default: goto badconsole; } #endif return; badconsole: printf("ctb->ctb_term_type = 0x%lx\n", ctb->ctb_term_type); printf("ctb->ctb_turboslot = 0x%lx\n", ctb->ctb_turboslot); panic("consinit: unknown console type %lu", ctb->ctb_term_type); }