mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
reorg, and recovery from my mistake.
This commit is contained in:
parent
47717b57f3
commit
ef20fb22dc
5 changed files with 34 additions and 41 deletions
|
@ -15,8 +15,9 @@ CPUFLAGS += -DRAMTEST
|
||||||
CPUFLAGS += -DCMD_LINE='"ro root=/dev/hda1 console=ttyS0,115200 single "'
|
CPUFLAGS += -DCMD_LINE='"ro root=/dev/hda1 console=ttyS0,115200 single "'
|
||||||
|
|
||||||
TOP=../..
|
TOP=../..
|
||||||
INCLUDES=-I $(TOP)/src/include
|
INCLUDES=-nostdinc -I $(TOP)/src/include
|
||||||
CFLAGS=$(INCLUDES) -O2 $(CPUFLAGS) -Ilinux/include -Wall
|
NOOPT_CFLAGS=$(INCLUDES) $(CPUFLAGS) -Wall
|
||||||
|
CFLAGS=$(NOOPT_CFLAGS) -O2
|
||||||
|
|
||||||
OBJECTS=crt0.o hardwaremain.o linuxbiosmain.o
|
OBJECTS=crt0.o hardwaremain.o linuxbiosmain.o
|
||||||
OBJECTS += mainboard.o mtrr.o subr.o fill_inbuf.o params.o
|
OBJECTS += mainboard.o mtrr.o subr.o fill_inbuf.o params.o
|
||||||
|
@ -123,16 +124,16 @@ microcode.o: $(TOP)/src/cpu/p6/microcode.c
|
||||||
serial_subr.o: $(TOP)/chip/intel/serial_subr.c
|
serial_subr.o: $(TOP)/chip/intel/serial_subr.c
|
||||||
cc $(CFLAGS) -c $<
|
cc $(CFLAGS) -c $<
|
||||||
|
|
||||||
printk.o: $(TOP)/lib/printk.c
|
printk.o: $(TOP)/src/lib/printk.c
|
||||||
cc $(CFLAGS) -c $<
|
cc $(CFLAGS) -c $<
|
||||||
|
|
||||||
vsprintf.o: $(TOP)/lib/vsprintf.c
|
vsprintf.o: $(TOP)/src/lib/vsprintf.c
|
||||||
cc $(CFLAGS) -c $<
|
cc $(CFLAGS) -c $<
|
||||||
|
|
||||||
newpci.o: $(TOP)/lib/newpci.c
|
newpci.o: $(TOP)/src/lib/newpci.c
|
||||||
cc $(CFLAGS) -c $<
|
cc $(CFLAGS) -c $<
|
||||||
|
|
||||||
linuxpci.o: $(TOP)/lib/linuxpci.c
|
linuxpci.o: $(TOP)/src/lib/linuxpci.c
|
||||||
cc $(CFLAGS) -c $<
|
cc $(CFLAGS) -c $<
|
||||||
|
|
||||||
vmlinux.bin.gz.block: vmlinux.bin.gz
|
vmlinux.bin.gz.block: vmlinux.bin.gz
|
||||||
|
|
|
@ -35,7 +35,7 @@ void intel_set_mtrr(unsigned long rambase, unsigned long ramsizeK);
|
||||||
|
|
||||||
#ifdef NEWPCI /* IRQ routing stuff */
|
#ifdef NEWPCI /* IRQ routing stuff */
|
||||||
|
|
||||||
#include <pci.h>
|
#include <lbpci.h>
|
||||||
#include <pci-i386.h>
|
#include <pci-i386.h>
|
||||||
|
|
||||||
#define PIRQ_SIGNATURE (('$' << 0) + ('P' << 8) + ('I' << 16) + ('R' << 24))
|
#define PIRQ_SIGNATURE (('$' << 0) + ('P' << 8) + ('I' << 16) + ('R' << 24))
|
||||||
|
|
|
@ -14,7 +14,8 @@
|
||||||
* RGM
|
* RGM
|
||||||
*/
|
*/
|
||||||
#include <lbpci.h>
|
#include <lbpci.h>
|
||||||
#include <asm/io.h>
|
#include <pci_ids.h>
|
||||||
|
#include <cpu/p5/io.h>
|
||||||
|
|
||||||
extern void intel_post(unsigned char value);
|
extern void intel_post(unsigned char value);
|
||||||
#define DEBUG
|
#define DEBUG
|
||||||
|
@ -205,14 +206,22 @@ unsigned int pci_scan_bus(struct pci_bus *bus)
|
||||||
/* probe all devices on this bus with some optimization for non-existance and
|
/* probe all devices on this bus with some optimization for non-existance and
|
||||||
single funcion devices */
|
single funcion devices */
|
||||||
for (devfn = 0; devfn < 0xff; devfn++) {
|
for (devfn = 0; devfn < 0xff; devfn++) {
|
||||||
u32 id, class, addr;
|
u32 id, class, addr;
|
||||||
u8 cmd, tmp, hdr_type;
|
u8 cmd, tmp, hdr_type;
|
||||||
|
|
||||||
if (pcibios_read_config_dword(bus->number, devfn, PCI_VENDOR_ID, &id))
|
// gcc just went to hell. Don't test -- this always
|
||||||
continue;
|
// returns 0 anyway.
|
||||||
|
#if GCC_WORKS_ON_O2
|
||||||
|
if (pcibios_read_config_dword(bus->number, devfn, PCI_VENDOR_ID, &id)) {
|
||||||
|
DBG("PCI: devfn 0x%x, read_config_dword fails\n", devfn);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
pcibios_read_config_dword(bus->number, devfn, PCI_VENDOR_ID, &id);
|
||||||
|
|
||||||
/* some broken boards return 0 if a slot is empty: */
|
/* some broken boards return 0 if a slot is empty: */
|
||||||
if (id == 0xffffffff || id == 0x00000000 || id == 0x0000ffff || id == 0xffff0000) {
|
if (id == 0xffffffff || id == 0x00000000 || id == 0x0000ffff || id == 0xffff0000) {
|
||||||
|
DBG("PCI: devfn 0x%x, bad id 0x%x\n", devfn, id);
|
||||||
if (PCI_FUNC(devfn) == 0x00) {
|
if (PCI_FUNC(devfn) == 0x00) {
|
||||||
/* if this is a function 0 device and it is not present,
|
/* if this is a function 0 device and it is not present,
|
||||||
skip to next device */
|
skip to next device */
|
||||||
|
@ -222,11 +231,15 @@ unsigned int pci_scan_bus(struct pci_bus *bus)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pcibios_read_config_byte(bus->number, devfn, PCI_HEADER_TYPE, &hdr_type))
|
if (pcibios_read_config_byte(bus->number, devfn, PCI_HEADER_TYPE, &hdr_type)){
|
||||||
continue;
|
DBG("PCI: devfn 0x%x, header type read fails\n", devfn);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (pcibios_read_config_dword(bus->number, devfn, PCI_CLASS_REVISION, &class))
|
if (pcibios_read_config_dword(bus->number, devfn, PCI_CLASS_REVISION, &class)) {
|
||||||
|
DBG("PCI: devfn 0x%x, class read fails\n", devfn);
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ((dev = kmalloc(sizeof(*dev), GFP_ATOMIC)) == NULL) {
|
if ((dev = kmalloc(sizeof(*dev), GFP_ATOMIC)) == NULL) {
|
||||||
printk("PCI: out of memory.\n");
|
printk("PCI: out of memory.\n");
|
||||||
|
@ -332,9 +345,9 @@ unsigned int pci_scan_bus(struct pci_bus *bus)
|
||||||
* this bus number as a peer bus, don't also scan it
|
* this bus number as a peer bus, don't also scan it
|
||||||
* as a child bus
|
* as a child bus
|
||||||
*/
|
*/
|
||||||
if (((dev->vendor == PCI_VENDOR_ID_RCC) &&
|
if (((dev->vendor == PCI_VENDOR_ID_SERVERWORKS) &&
|
||||||
((dev->device == PCI_DEVICE_ID_RCC_HE) ||
|
((dev->device == PCI_DEVICE_ID_SERVERWORKS_HE) ||
|
||||||
(dev->device == PCI_DEVICE_ID_RCC_LE))) ||
|
(dev->device == PCI_DEVICE_ID_SERVERWORKS_LE))) ||
|
||||||
((dev->vendor == PCI_VENDOR_ID_COMPAQ) &&
|
((dev->vendor == PCI_VENDOR_ID_COMPAQ) &&
|
||||||
(dev->device == PCI_DEVICE_ID_COMPAQ_6010)) ||
|
(dev->device == PCI_DEVICE_ID_COMPAQ_6010)) ||
|
||||||
((dev->vendor == PCI_VENDOR_ID_INTEL) &&
|
((dev->vendor == PCI_VENDOR_ID_INTEL) &&
|
||||||
|
@ -449,6 +462,7 @@ unsigned int pci_scan_bus(struct pci_bus *bus)
|
||||||
* scan it.
|
* scan it.
|
||||||
* @param bus The bus number supported by the peer bridge
|
* @param bus The bus number supported by the peer bridge
|
||||||
* @return Pointer to the bus struct for this bus number.
|
* @return Pointer to the bus struct for this bus number.
|
||||||
|
*/
|
||||||
struct pci_bus *pci_scan_peer_bridge(int bus)
|
struct pci_bus *pci_scan_peer_bridge(int bus)
|
||||||
{
|
{
|
||||||
struct pci_bus *b;
|
struct pci_bus *b;
|
||||||
|
|
|
@ -12,7 +12,7 @@ static char rcsid[] = "$Id$";
|
||||||
|
|
||||||
#include <cpu/p5/macros.h>
|
#include <cpu/p5/macros.h>
|
||||||
#include <printk.h>
|
#include <printk.h>
|
||||||
#include <pci.h>
|
#include <lbpci.h>
|
||||||
#include <subr.h>
|
#include <subr.h>
|
||||||
|
|
||||||
#ifdef SERIAL_CONSOLE
|
#ifdef SERIAL_CONSOLE
|
||||||
|
@ -119,28 +119,6 @@ void intel_post(char value)
|
||||||
outb(value, 0x80);
|
outb(value, 0x80);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Write the special configuration registers on the INTEL
|
|
||||||
*/
|
|
||||||
void intel_conf_writeb(unsigned long port, unsigned char value)
|
|
||||||
{
|
|
||||||
unsigned char whichbyte = port & 3;
|
|
||||||
port &= (~3);
|
|
||||||
outl(port, PCI_CONF_REG_INDEX);
|
|
||||||
outb(value, PCI_CONF_REG_DATA + whichbyte);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Read the special configuration registers on the INTEL
|
|
||||||
*/
|
|
||||||
unsigned char intel_conf_readb(unsigned long port)
|
|
||||||
{
|
|
||||||
unsigned char whichbyte = port & 3;
|
|
||||||
port &= (~3);
|
|
||||||
outl(port, PCI_CONF_REG_INDEX);
|
|
||||||
return inb(PCI_CONF_REG_DATA + whichbyte);
|
|
||||||
}
|
|
||||||
|
|
||||||
void intel_cache_on(unsigned long base, unsigned long totalram)
|
void intel_cache_on(unsigned long base, unsigned long totalram)
|
||||||
{
|
{
|
||||||
intel_post(0x60);
|
intel_post(0x60);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#include <pci.h>
|
#include <lbpci.h>
|
||||||
#include <pc80/keyboard.h>
|
#include <pc80/keyboard.h>
|
||||||
#include <printk.h>
|
#include <printk.h>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue