static void vga_init(device_t dev) { uint8_t reg8; mainboard_interrupt_handlers(0x15, &via_vx800_int15_handler); //A20 OPEN reg8 = inb(0x92); reg8 = reg8 | 2; outb(reg8, 0x92); //* //pci_write_config8(dev, 0x04, 0x07); //pci_write_config32(dev,0x10, 0xa0000008); //pci_write_config32(dev,0x14, 0xdd000000); pci_write_config32(dev, 0x10, VIACONFIG_VGA_PCI_10); pci_write_config32(dev, 0x14, VIACONFIG_VGA_PCI_14); pci_write_config8(dev, 0x3c, 0x0a); //same with vx855_lpc.c //*/ printk(BIOS_DEBUG, "Initializing VGA...\n"); pci_dev_init(dev); printk(BIOS_DEBUG, "Enable VGA console\n"); vga_enable_console(); if ((acpi_sleep_type == 3)/* || (PAYLOAD_IS_SEABIOS == 0)*/) { /* It's not clear if these need to be programmed before or after * the VGA bios runs. Try both, clean up later */ /* Set memory rate to 200MHz */ outb(0x3d, CRTM_INDEX); reg8 = inb(CRTM_DATA); reg8 &= 0x0f; reg8 |= (0x3 << 4); outb(0x3d, CRTM_INDEX); outb(reg8, CRTM_DATA); #if 0 /* Set framebuffer size to CONFIG_VIDEO_MB mb */ reg8 = (CONFIG_VIDEO_MB/4); outb(0x39, SR_INDEX); outb(reg8, SR_DATA); #endif } }
static void vga_init(device_t dev) { u8 reg8; mainboard_interrupt_handlers(0x15, &via_cx700_int15_handler); //* pci_write_config8(dev, 0x04, 0x07); pci_write_config8(dev, 0x3e, 0x02); pci_write_config8(dev, 0x0d, 0x40); pci_write_config32(dev, 0x10, 0xa0000008); pci_write_config32(dev, 0x14, 0xdd000000); pci_write_config8(dev, 0x3c, 0x0b); //*/ printk(BIOS_DEBUG, "Initializing VGA...\n"); pci_dev_init(dev); if (pci_read_config32(dev, PCI_ROM_ADDRESS) != 0xc0000) return; printk(BIOS_DEBUG, "Enable VGA console\n"); vga_enable_console(); /* It's not clear if these need to be programmed before or after * the VGA bios runs. Try both, clean up later */ /* Set memory rate to 200MHz */ outb(0x3d, CRTM_INDEX); reg8 = inb(CRTM_DATA); reg8 &= 0x0f; reg8 |= (0x3 << 4); outb(0x3d, CRTM_INDEX); outb(reg8, CRTM_DATA); /* Set framebuffer size to 32mb */ reg8 = (32 / 4); outb(0x39, SR_INDEX); outb(reg8, SR_DATA); }