/* * Gatorbox console support */ int gboxcnattach(bus_space_tag_t bst, bus_addr_t addr, int scode) { bus_space_handle_t bsh; void *va; struct diofbreg *fbr; struct diofb *fb = &diofb_cn; int size; if (bus_space_map(bst, addr, PAGE_SIZE, 0, &bsh)) return 1; va = bus_space_vaddr(bst, bsh); fbr = va; if (badaddr(va) || (fbr->id != GRFHWID) || (fbr->fbid != GID_GATORBOX)) { bus_space_unmap(bst, bsh, PAGE_SIZE); return 1; } size = DIO_SIZE(scode, va); bus_space_unmap(bst, bsh, PAGE_SIZE); if (bus_space_map(bst, addr, size, 0, &bsh)) return 1; va = bus_space_vaddr(bst, bsh); /* * Initialize the framebuffer hardware. */ conscode = scode; conaddr = va; gbox_reset(fb, conscode, (struct diofbreg *)conaddr); /* * Initialize the terminal emulator. */ diofb_cnattach(fb); return 0; }
void topcatcninit() { topcat_reset(&diofb_cn, conscode, (struct diofbreg *)conaddr); diofb_cnattach(&diofb_cn); }
void rboxcninit() { rbox_reset(&diofb_cn, conscode, (struct diofbreg *)conaddr); diofb_cnattach(&diofb_cn); }
void hypercninit() { hyper_reset(&diofb_cn, conscode, (struct diofbreg *)conaddr); diofb_cnattach(&diofb_cn); }