Exemple #1
0
void ioport__setup_arch(void)
{
	/* Legacy ioport setup */

	/* 0x0020 - 0x003F - 8259A PIC 1 */
	ioport__register(0x0020, &dummy_read_write_ioport_ops, 2, NULL);

	/* PORT 0040-005F - PIT - PROGRAMMABLE INTERVAL TIMER (8253, 8254) */
	ioport__register(0x0040, &dummy_read_write_ioport_ops, 4, NULL);

	/* 0x00A0 - 0x00AF - 8259A PIC 2 */
	ioport__register(0x00A0, &dummy_read_write_ioport_ops, 2, NULL);

	/* PORT 00E0-00EF are 'motherboard specific' so we use them for our
	   internal debugging purposes.  */
	ioport__register(IOPORT_DBG, &debug_ops, 1, NULL);

	/* PORT 00ED - DUMMY PORT FOR DELAY??? */
	ioport__register(0x00ED, &dummy_write_only_ioport_ops, 1, NULL);

	/* 0x00F0 - 0x00FF - Math co-processor */
	ioport__register(0x00F0, &dummy_write_only_ioport_ops, 2, NULL);

	/* PORT 03D4-03D5 - COLOR VIDEO - CRT CONTROL REGISTERS */
	ioport__register(0x03D4, &dummy_read_write_ioport_ops, 1, NULL);
	ioport__register(0x03D5, &dummy_write_only_ioport_ops, 1, NULL);
}
Exemple #2
0
int pci__init(struct kvm *kvm)
{
    int r;

    r = ioport__register(kvm, PCI_CONFIG_DATA + 0, &pci_config_data_ops, 4, NULL);
    if (r < 0)
        return r;

    r = ioport__register(kvm, PCI_CONFIG_ADDRESS + 0, &pci_config_address_ops, 4, NULL);
    if (r < 0) {
        ioport__unregister(kvm, PCI_CONFIG_DATA);
        return r;
    }

    return 0;
}
Exemple #3
0
int rtc__init(struct kvm *kvm)
{
	int r = 0;

	/* PORT 0070-007F - CMOS RAM/RTC (REAL TIME CLOCK) */
	r = ioport__register(kvm, 0x0070, &cmos_ram_index_ioport_ops, 1, NULL);
	if (r < 0)
		return r;

	r = ioport__register(kvm, 0x0071, &cmos_ram_data_ioport_ops, 1, NULL);
	if (r < 0) {
		ioport__unregister(kvm, 0x0071);
		return r;
	}

	return r;
}
Exemple #4
0
void pci__init(void)
{
	ioport__register(PCI_CONFIG_DATA + 0, &pci_config_data_ops, 4, NULL);
	ioport__register(PCI_CONFIG_ADDRESS + 0, &pci_config_address_ops, 4, NULL);
}
Exemple #5
0
void ioport__setup_arch(struct kvm *kvm)
{
	/* Legacy ioport setup */

	/* 0000 - 001F - DMA1 controller */
	ioport__register(kvm, 0x0000, &dummy_read_write_ioport_ops, 32, NULL);

	/* 0x0020 - 0x003F - 8259A PIC 1 */
	ioport__register(kvm, 0x0020, &dummy_read_write_ioport_ops, 2, NULL);

	/* PORT 0040-005F - PIT - PROGRAMMABLE INTERVAL TIMER (8253, 8254) */
	ioport__register(kvm, 0x0040, &dummy_read_write_ioport_ops, 4, NULL);

	/* 0092 - PS/2 system control port A */
	ioport__register(kvm, 0x0092, &ps2_control_a_ops, 1, NULL);

	/* 0x00A0 - 0x00AF - 8259A PIC 2 */
	ioport__register(kvm, 0x00A0, &dummy_read_write_ioport_ops, 2, NULL);

	/* 00C0 - 001F - DMA2 controller */
	ioport__register(kvm, 0x00C0, &dummy_read_write_ioport_ops, 32, NULL);

	/* PORT 00E0-00EF are 'motherboard specific' so we use them for our
	   internal debugging purposes.  */
	ioport__register(kvm, IOPORT_DBG, &debug_ops, 1, NULL);

	/* PORT 00ED - DUMMY PORT FOR DELAY??? */
	ioport__register(kvm, 0x00ED, &dummy_write_only_ioport_ops, 1, NULL);

	/* 0x00F0 - 0x00FF - Math co-processor */
	ioport__register(kvm, 0x00F0, &dummy_write_only_ioport_ops, 2, NULL);

	/* PORT 0278-027A - PARALLEL PRINTER PORT (usually LPT1, sometimes LPT2) */
	ioport__register(kvm, 0x0278, &dummy_read_write_ioport_ops, 3, NULL);

	/* PORT 0378-037A - PARALLEL PRINTER PORT (usually LPT2, sometimes LPT3) */
	ioport__register(kvm, 0x0378, &dummy_read_write_ioport_ops, 3, NULL);

	/* PORT 03D4-03D5 - COLOR VIDEO - CRT CONTROL REGISTERS */
	ioport__register(kvm, 0x03D4, &dummy_read_write_ioport_ops, 1, NULL);
	ioport__register(kvm, 0x03D5, &dummy_write_only_ioport_ops, 1, NULL);

	ioport__register(kvm, 0x402, &seabios_debug_ops, 1, NULL);

	/* 0510 - QEMU BIOS configuration register */
	ioport__register(kvm, 0x510, &dummy_read_write_ioport_ops, 2, NULL);
}