minor changes after Eric's major merge

This commit is contained in:
Li-Ta Lo 2001-03-26 01:55:46 +00:00
commit d3956f5c22
8 changed files with 54 additions and 27 deletions

View file

@ -6,6 +6,7 @@
#include <pci.h>
#include <subr.h>
#include <string.h>
#include <i386_subr.h>
void intel_cache_on(unsigned long base, unsigned long totalram)
{

View file

@ -1,4 +1,4 @@
#include <subr.h>
#include <i386_subr.h>
#ifndef SIS630S
#define CHECKSUM 0xe6

View file

@ -1,4 +1,5 @@
#include <subr.h>
#include <i386_subr.h>
#define CHECKSUM 0xe6
const struct irq_routing_table intel_irq_routing_table = {
PIRQ_SIGNATURE, /* u32 signature */

View file

@ -1,4 +1,4 @@
#include <subr.h>
#include <i386_subr.h>
#define CHECKSUM 0xe6
const struct irq_routing_table intel_irq_routing_table = {

View file

@ -106,14 +106,3 @@ void framebuffer_on()
pcibios_write_config_word(0, devfn, 0x3e, command);
}
#endif /* HAVE_FRAMEBUFFER */
#define RTABLE_DEST 0xf0000
void copy_irq_routing_table(void)
{
#ifdef USE_DOC_MIL
/* copy the PCI IRQ table to segment F, not neceressary for 512KB flash case */
memcpy((char *) RTABLE_DEST, &intel_irq_routing_table, intel_irq_routing_table.size);
#endif /* USE_DOC_MIL */
}

View file

@ -91,6 +91,52 @@ serial_irq_fixedup(void)
}
}
/* apc_fixup: Fix up the Mux-ed GPIO Lines controlled by APC registers
*
* For SiS630A/B Mainboards, the MAC address of the internal SiS900 is stored in EEPROM
* on the board. The EEPROM interface lines are muxed with GPIO pins and are selected by
* some APC registers.
*/
static void
apc_fixup(void)
{
u8 regval, revision;
struct pci_dev *host_bridge, *isa_bridge;
host_bridge = pci_find_device(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_630,
(void *) NULL);
if (host_bridge == NULL)
return;
pci_read_config_byte(host_bridge, PCI_CLASS_REVISION, &revision);
isa_bridge = pci_find_device(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503,
(void *)NULL);
if (isa_bridge != NULL) {
/* Register 0x48, select APC control registers */
pci_read_config_byte(isa_bridge, 0x48, &regval);
pci_write_config_byte(isa_bridge, 0x48, regval | 0x40);
/* Enable MAC Serial ROM Autoload */
outb(0x01, 0x70);
regval = inb(0x71);
outb(regval | 0x80, 0x71);
/* Select Programmable LED0 and EEPROM Data Out for GPIO8 and GPIO3 */
outb(0x02, 0x70);
regval = inb(0x71);
outb(regval | 0x19, 0x71);
/* select Keyboard/Mouse function for GPIO Pin [14:10] */
outb(0x02, 0x70);
regval = inb(0x71);
outb(regval | 0x40, 0x71);
/* Register 0x48, select RTC registers */
pci_read_config_byte(isa_bridge, 0x48, &regval);
pci_write_config_byte(isa_bridge, 0x48, regval & ~0x40);
}
}
static void
acpi_fixup(void)
{
@ -100,7 +146,6 @@ acpi_fixup(void)
if (pcidev != NULL) {
unsigned char val;
unsigned short acpibase = 0xc000, temp;
int i;
// the following is to turn off software watchdogs.
// we co-op the address space from c000-cfff here. Temporarily.
@ -149,9 +194,9 @@ acpi_fixup(void)
void
final_southbridge_fixup()
{
#ifdef OLD_KERNEL_HACK
struct pci_dev *pcidev;
#ifdef OLD_KERNEL_HACK
pcidev = pci_find_device(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503, (void *)NULL);
if (pcidev != NULL) {
printk("Remapping IRQ on southbridge for OLD_KERNEL_HACK\n");
@ -182,6 +227,7 @@ final_southbridge_fixup()
}
#endif /* OLD_KERNEL_HACK */
apc_fixup();
serial_irq_fixedup();
acpi_fixup();

View file

@ -107,13 +107,3 @@ void framebuffer_on()
}
#endif /* HAVE_FRAMEBUFFER */
#define RTABLE_DEST 0xf0000
void copy_irq_routing_table(void)
{
#ifdef USE_DOC_MIL
/* copy the PCI IRQ table to segment F, not neceressary for 512KB flash case */
memcpy((char *) RTABLE_DEST, &intel_irq_routing_table, intel_irq_routing_table.size);
#endif /* USE_DOC_MIL */
}

View file

@ -1,5 +1,5 @@
# Sample config file for Winfast 6300 with DoC Millennium (as root)
arch i386
# This will make a target directory of ./winfast
target winfast