Files
system76-coreboot/src/mainboard/emulation/qemu-q35/mainboard.c
Edward O'Callaghan def00be41d src/drivers/pc80: Remove empty struct keyboard
This is a empty struct that has propagated through the superio's & ec's
but really does nothing. Time to get rid of it before it adds yet more
cruft. However, since this touches many superio's at once we do this in
stages by first changing the function type to be a pure procedure.

Change-Id: Ibc732e676a9d4f0269114acabc92b15771d27ef2
Signed-off-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-on: http://review.coreboot.org/5617
Tested-by: build bot (Jenkins)
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-by: Rudolf Marek <r.marek@assembler.cz>
2014-05-13 10:03:51 +02:00

86 lines
2.5 KiB
C

/*
* This file is part of the coreboot project.
*
* Copyright (C) 2004 Stefan Reinauer <stefan.reinauer@coreboot.org>
* Copyright (C) 2010 Kevin O'Connor <kevin@koconnor.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <device/device.h>
#include <device/pci.h>
#include <device/pci_ids.h>
#include <device/pci_ops.h>
#include <pc80/keyboard.h>
#include <arch/io.h>
#include <console/console.h>
#define Q35_PAM0 0x90
static const unsigned char qemu_q35_irqs[] = {
10, 10, 11, 11,
10, 10, 11, 11,
};
static void qemu_nb_init(device_t dev)
{
/* Map memory at 0xc0000 - 0xfffff */
int i;
uint8_t v = pci_read_config8(dev, Q35_PAM0);
v |= 0x30;
pci_write_config8(dev, Q35_PAM0, v);
pci_write_config8(dev, Q35_PAM0 + 1, 0x33);
pci_write_config8(dev, Q35_PAM0 + 2, 0x33);
pci_write_config8(dev, Q35_PAM0 + 3, 0x33);
pci_write_config8(dev, Q35_PAM0 + 4, 0x33);
pci_write_config8(dev, Q35_PAM0 + 5, 0x33);
pci_write_config8(dev, Q35_PAM0 + 6, 0x33);
/* This sneaked in here, because Qemu does not
* emulate a SuperIO chip
*/
pc_keyboard_init();
/* setup IRQ routing for pci slots */
for (i = 0; i < 25; i++)
pci_assign_irqs(0, i, qemu_q35_irqs + (i % 4));
/* setup IRQ routing southbridge devices */
for (i = 25; i < 32; i++)
pci_assign_irqs(0, i, qemu_q35_irqs);
}
static void qemu_nb_read_resources(struct device *dev)
{
pci_dev_read_resources(dev);
/* reserve mmconfig */
fixed_mem_resource(dev, 2, CONFIG_MMCONF_BASE_ADDRESS >> 10, 0x10000000 >> 10,
IORESOURCE_RESERVE);
}
static struct device_operations nb_operations = {
.read_resources = qemu_nb_read_resources,
.set_resources = pci_dev_set_resources,
.enable_resources = pci_dev_enable_resources,
.init = qemu_nb_init,
.ops_pci = 0,
};
static const struct pci_driver nb_driver __pci_driver = {
.ops = &nb_operations,
.vendor = 0x8086,
.device = 0x29c0,
};