Since some people disapprove of white space cleanups mixed in regular commits
while others dislike them being extra commits, let's clean them up once and for all for the existing code. If it's ugly, let it only be ugly once :-) Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5507 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
committed by
Stefan Reinauer
parent
0e1e8065e3
commit
14e2277962
@@ -159,8 +159,8 @@ void cardbus_enable_resources(device_t dev)
|
||||
uint16_t ctrl;
|
||||
ctrl = pci_read_config16(dev, PCI_CB_BRIDGE_CONTROL);
|
||||
ctrl |= (dev->link[0].bridge_ctrl & (
|
||||
PCI_BRIDGE_CTL_PARITY |
|
||||
PCI_BRIDGE_CTL_SERR |
|
||||
PCI_BRIDGE_CTL_PARITY |
|
||||
PCI_BRIDGE_CTL_SERR |
|
||||
PCI_BRIDGE_CTL_NO_ISA |
|
||||
PCI_BRIDGE_CTL_VGA |
|
||||
PCI_BRIDGE_CTL_MASTER_ABORT |
|
||||
@@ -174,8 +174,8 @@ void cardbus_enable_resources(device_t dev)
|
||||
enable_childrens_resources(dev);
|
||||
}
|
||||
|
||||
unsigned int cardbus_scan_bus(struct bus *bus,
|
||||
unsigned min_devfn, unsigned max_devfn,
|
||||
unsigned int cardbus_scan_bus(struct bus *bus,
|
||||
unsigned min_devfn, unsigned max_devfn,
|
||||
unsigned int max)
|
||||
{
|
||||
return pci_scan_bus(bus, min_devfn, max_devfn, max);
|
||||
@@ -196,7 +196,7 @@ unsigned int cardbus_scan_bridge(device_t dev, unsigned int max)
|
||||
|
||||
/* Set up the primary, secondary and subordinate bus numbers. We have
|
||||
* no idea how many buses are behind this bridge yet, so we set the
|
||||
* subordinate bus number to 0xff for the moment.
|
||||
* subordinate bus number to 0xff for the moment.
|
||||
*/
|
||||
bus->secondary = ++max;
|
||||
bus->subordinate = 0xff;
|
||||
@@ -222,7 +222,7 @@ unsigned int cardbus_scan_bridge(device_t dev, unsigned int max)
|
||||
((unsigned int) (bus->subordinate) << 16));
|
||||
pci_write_config32(dev, PCI_CB_PRIMARY_BUS, buses);
|
||||
|
||||
/* Now we can scan all subordinate buses
|
||||
/* Now we can scan all subordinate buses
|
||||
* i.e. the bus behind the bridge.
|
||||
*/
|
||||
max = cardbus_scan_bus(bus, 0x00, 0xff, max);
|
||||
@@ -235,7 +235,7 @@ unsigned int cardbus_scan_bridge(device_t dev, unsigned int max)
|
||||
((unsigned int) (bus->subordinate) << 16);
|
||||
pci_write_config32(dev, PCI_CB_PRIMARY_BUS, buses);
|
||||
pci_write_config16(dev, PCI_COMMAND, cr);
|
||||
|
||||
|
||||
printk(BIOS_SPEW, "%s returns max %d\n", __func__, max);
|
||||
return max;
|
||||
}
|
||||
|
@@ -79,7 +79,7 @@ struct device *dev_find_slot(unsigned int bus, unsigned int devfn)
|
||||
result = 0;
|
||||
for (dev = all_devices; dev; dev = dev->next) {
|
||||
if ((dev->path.type == DEVICE_PATH_PCI) &&
|
||||
(dev->bus->secondary == bus) &&
|
||||
(dev->bus->secondary == bus) &&
|
||||
(dev->path.pci.devfn == devfn)) {
|
||||
result = dev;
|
||||
break;
|
||||
@@ -92,32 +92,32 @@ struct device *dev_find_slot(unsigned int bus, unsigned int devfn)
|
||||
* @brief Given a smbus bus and a device number, find the device structure
|
||||
*
|
||||
* @param bus The bus number
|
||||
* @param addr a device number
|
||||
* @param addr a device number
|
||||
* @return pointer to the device structure
|
||||
*/
|
||||
struct device *dev_find_slot_on_smbus(unsigned int bus, unsigned int addr)
|
||||
{
|
||||
struct device *dev, *result;
|
||||
|
||||
|
||||
result = 0;
|
||||
for (dev = all_devices; dev; dev = dev->next) {
|
||||
if ((dev->path.type == DEVICE_PATH_I2C) &&
|
||||
(dev->bus->secondary == bus) &&
|
||||
(dev->bus->secondary == bus) &&
|
||||
(dev->path.i2c.device == addr)) {
|
||||
result = dev;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
/** Find a device of a given vendor and type
|
||||
* @param vendor Vendor ID (e.g. 0x8086 for Intel)
|
||||
* @param device Device ID
|
||||
* @param from Pointer to the device structure, used as a starting point
|
||||
* in the linked list of all_devices, which can be 0 to start at the
|
||||
* in the linked list of all_devices, which can be 0 to start at the
|
||||
* head of the list (i.e. all_devices)
|
||||
* @return Pointer to the device struct
|
||||
* @return Pointer to the device struct
|
||||
*/
|
||||
struct device *dev_find_device(unsigned int vendor, unsigned int device, struct device *from)
|
||||
{
|
||||
@@ -134,9 +134,9 @@ struct device *dev_find_device(unsigned int vendor, unsigned int device, struct
|
||||
/** Find a device of a given class
|
||||
* @param class Class of the device
|
||||
* @param from Pointer to the device structure, used as a starting point
|
||||
* in the linked list of all_devices, which can be 0 to start at the
|
||||
* in the linked list of all_devices, which can be 0 to start at the
|
||||
* head of the list (i.e. all_devices)
|
||||
* @return Pointer to the device struct
|
||||
* @return Pointer to the device struct
|
||||
*/
|
||||
struct device *dev_find_class(unsigned int class, struct device *from)
|
||||
{
|
||||
@@ -167,11 +167,11 @@ const char *dev_path(device_t dev)
|
||||
case DEVICE_PATH_PCI:
|
||||
#if CONFIG_PCI_BUS_SEGN_BITS
|
||||
sprintf(buffer, "PCI: %04x:%02x:%02x.%01x",
|
||||
dev->bus->secondary>>8, dev->bus->secondary & 0xff,
|
||||
dev->bus->secondary>>8, dev->bus->secondary & 0xff,
|
||||
PCI_SLOT(dev->path.pci.devfn), PCI_FUNC(dev->path.pci.devfn));
|
||||
#else
|
||||
sprintf(buffer, "PCI: %02x:%02x.%01x",
|
||||
dev->bus->secondary,
|
||||
dev->bus->secondary,
|
||||
PCI_SLOT(dev->path.pci.devfn), PCI_FUNC(dev->path.pci.devfn));
|
||||
#endif
|
||||
break;
|
||||
@@ -408,7 +408,7 @@ resource_t resource_end(struct resource *resource)
|
||||
* the bridge. While the granularity is simply how many low bits of the
|
||||
* address cannot be set.
|
||||
*/
|
||||
|
||||
|
||||
/* Get the end (rounded up) */
|
||||
end = base + align_up(resource->size, resource->gran) - 1;
|
||||
|
||||
@@ -468,7 +468,7 @@ void report_resource_stored(device_t dev, struct resource *resource, const char
|
||||
sprintf(buf, "bus %02x ", dev->link[0].secondary);
|
||||
#endif
|
||||
}
|
||||
printk(BIOS_DEBUG,
|
||||
printk(BIOS_DEBUG,
|
||||
"%s %02lx <- [0x%010Lx - 0x%010Lx] size 0x%08Lx gran 0x%02x %s%s%s\n",
|
||||
dev_path(dev),
|
||||
resource->index,
|
||||
|
@@ -39,7 +39,7 @@
|
||||
* so don't do it again
|
||||
*/
|
||||
#define OPT_HT_LINK 0
|
||||
|
||||
|
||||
#if OPT_HT_LINK == 1
|
||||
#include <cpu/amd/model_fxx_rev.h>
|
||||
#endif
|
||||
@@ -52,9 +52,9 @@ static device_t ht_scan_get_devs(device_t *old_devices)
|
||||
/* Extract the chain of devices to (first through last)
|
||||
* for the next hypertransport device.
|
||||
*/
|
||||
while(last && last->sibling &&
|
||||
while(last && last->sibling &&
|
||||
(last->sibling->path.type == DEVICE_PATH_PCI) &&
|
||||
(last->sibling->path.pci.devfn > last->path.pci.devfn))
|
||||
(last->sibling->path.pci.devfn > last->path.pci.devfn))
|
||||
{
|
||||
last = last->sibling;
|
||||
}
|
||||
@@ -101,11 +101,11 @@ static unsigned ht_read_freq_cap(device_t dev, unsigned pos)
|
||||
}
|
||||
/* AMD K8 Unsupported 1Ghz? */
|
||||
if ((dev->vendor == PCI_VENDOR_ID_AMD) && (dev->device == 0x1100)) {
|
||||
#if CONFIG_K8_HT_FREQ_1G_SUPPORT == 1
|
||||
#if CONFIG_K8_REV_F_SUPPORT == 0
|
||||
#if CONFIG_K8_HT_FREQ_1G_SUPPORT == 1
|
||||
#if CONFIG_K8_REV_F_SUPPORT == 0
|
||||
if (is_cpu_pre_e0()) { // only e0 later suupport 1GHz HT
|
||||
freq_cap &= ~(1 << HT_FREQ_1000Mhz);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#else
|
||||
freq_cap &= ~(1 << HT_FREQ_1000Mhz);
|
||||
@@ -129,7 +129,7 @@ static int ht_setup_link(struct ht_link *prev, device_t dev, unsigned pos)
|
||||
static const uint8_t pow2_to_link_width[] = { 0x7, 4, 5, 0, 1, 3 };
|
||||
unsigned present_width_cap, upstream_width_cap;
|
||||
unsigned present_freq_cap, upstream_freq_cap;
|
||||
unsigned ln_present_width_in, ln_upstream_width_in;
|
||||
unsigned ln_present_width_in, ln_upstream_width_in;
|
||||
unsigned ln_present_width_out, ln_upstream_width_out;
|
||||
unsigned freq, old_freq;
|
||||
unsigned present_width, upstream_width, old_width;
|
||||
@@ -140,7 +140,7 @@ static int ht_setup_link(struct ht_link *prev, device_t dev, unsigned pos)
|
||||
|
||||
/* Set the hypertransport link width and frequency */
|
||||
reset_needed = 0;
|
||||
/* See which side of the device our previous write to
|
||||
/* See which side of the device our previous write to
|
||||
* set the unitid came from.
|
||||
*/
|
||||
cur->dev = dev;
|
||||
@@ -164,7 +164,7 @@ static int ht_setup_link(struct ht_link *prev, device_t dev, unsigned pos)
|
||||
upstream_freq_cap = ht_read_freq_cap(prev->dev, prev->pos + prev->freq_cap_off);
|
||||
present_width_cap = pci_read_config8(cur->dev, cur->pos + cur->config_off);
|
||||
upstream_width_cap = pci_read_config8(prev->dev, prev->pos + prev->config_off);
|
||||
|
||||
|
||||
/* Calculate the highest useable frequency */
|
||||
freq = log2(present_freq_cap & upstream_freq_cap);
|
||||
|
||||
@@ -242,7 +242,7 @@ static int ht_setup_link(struct ht_link *prev, device_t dev, unsigned pos)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* Remember the current link as the previous link,
|
||||
* But look at the other offsets.
|
||||
*/
|
||||
@@ -261,7 +261,7 @@ static int ht_setup_link(struct ht_link *prev, device_t dev, unsigned pos)
|
||||
}
|
||||
|
||||
return reset_needed;
|
||||
|
||||
|
||||
}
|
||||
|
||||
static unsigned ht_lookup_slave_capability(struct device *dev)
|
||||
@@ -355,7 +355,7 @@ static void ht_collapse_early_enumeration(struct bus *bus, unsigned offset_uniti
|
||||
dummy.path.type = DEVICE_PATH_PCI;
|
||||
dummy.path.pci.devfn = devfn;
|
||||
id = pci_read_config32(&dummy, PCI_VENDOR_ID);
|
||||
if ( (id == 0xffffffff) || (id == 0x00000000) ||
|
||||
if ( (id == 0xffffffff) || (id == 0x00000000) ||
|
||||
(id == 0x0000ffff) || (id == 0xffff0000)) {
|
||||
continue;
|
||||
}
|
||||
@@ -371,12 +371,12 @@ static void ht_collapse_early_enumeration(struct bus *bus, unsigned offset_uniti
|
||||
flags = pci_read_config16(&dummy, pos + PCI_CAP_FLAGS);
|
||||
flags &= ~0x1f;
|
||||
pci_write_config16(&dummy, pos + PCI_CAP_FLAGS, flags);
|
||||
printk(BIOS_SPEW, "Collapsing %s [%04x/%04x]\n",
|
||||
printk(BIOS_SPEW, "Collapsing %s [%04x/%04x]\n",
|
||||
dev_path(&dummy), dummy.vendor, dummy.device);
|
||||
}
|
||||
}
|
||||
|
||||
unsigned int hypertransport_scan_chain(struct bus *bus,
|
||||
unsigned int hypertransport_scan_chain(struct bus *bus,
|
||||
unsigned min_devfn, unsigned max_devfn, unsigned int max, unsigned *ht_unitid_base, unsigned offset_unitid)
|
||||
{
|
||||
//even CONFIG_HT_CHAIN_UNITID_BASE == 0, we still can go through this function, because of end_of_chain check, also We need it to optimize link
|
||||
@@ -410,7 +410,7 @@ unsigned int hypertransport_scan_chain(struct bus *bus,
|
||||
prev.config_off = PCI_HT_CAP_HOST_WIDTH;
|
||||
prev.freq_off = PCI_HT_CAP_HOST_FREQ;
|
||||
prev.freq_cap_off = PCI_HT_CAP_HOST_FREQ_CAP;
|
||||
|
||||
|
||||
/* If present assign unitid to a hypertransport chain */
|
||||
last_unitid = min_unitid -1;
|
||||
max_unitid = next_unitid = min_unitid;
|
||||
@@ -446,7 +446,7 @@ unsigned int hypertransport_scan_chain(struct bus *bus,
|
||||
}
|
||||
}
|
||||
} while((ctrl & (1 << 5)) == 0);
|
||||
|
||||
|
||||
|
||||
/* Get and setup the device_structure */
|
||||
dev = ht_scan_get_devs(&old_devices);
|
||||
@@ -462,15 +462,15 @@ unsigned int hypertransport_scan_chain(struct bus *bus,
|
||||
/* Find the hypertransport link capability */
|
||||
pos = ht_lookup_slave_capability(dev);
|
||||
if (pos == 0) {
|
||||
printk(BIOS_ERR, "%s Hypertransport link capability not found",
|
||||
printk(BIOS_ERR, "%s Hypertransport link capability not found",
|
||||
dev_path(dev));
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
/* Update the Unitid of the current device */
|
||||
flags = pci_read_config16(dev, pos + PCI_CAP_FLAGS);
|
||||
|
||||
/* If the devices has a unitid set and is at devfn 0 we are done.
|
||||
|
||||
/* If the devices has a unitid set and is at devfn 0 we are done.
|
||||
* This can happen with shadow hypertransport devices,
|
||||
* or if we have reached the bottom of a
|
||||
* hypertransport device chain.
|
||||
@@ -492,7 +492,7 @@ unsigned int hypertransport_scan_chain(struct bus *bus,
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
flags |= next_unitid & 0x1f;
|
||||
@@ -502,12 +502,12 @@ unsigned int hypertransport_scan_chain(struct bus *bus,
|
||||
static_count = 1;
|
||||
for(func = dev; func; func = func->sibling) {
|
||||
func->path.pci.devfn += (next_unitid << 3);
|
||||
static_count = (func->path.pci.devfn >> 3)
|
||||
static_count = (func->path.pci.devfn >> 3)
|
||||
- (dev->path.pci.devfn >> 3) + 1;
|
||||
last_func = func;
|
||||
}
|
||||
/* Compute the number of unitids consumed */
|
||||
printk(BIOS_SPEW, "%s count: %04x static_count: %04x\n",
|
||||
printk(BIOS_SPEW, "%s count: %04x static_count: %04x\n",
|
||||
dev_path(dev), count, static_count);
|
||||
if (count < static_count) {
|
||||
count = static_count;
|
||||
@@ -534,7 +534,7 @@ unsigned int hypertransport_scan_chain(struct bus *bus,
|
||||
|
||||
printk(BIOS_DEBUG, "%s [%04x/%04x] %s next_unitid: %04x\n",
|
||||
dev_path(dev),
|
||||
dev->vendor, dev->device,
|
||||
dev->vendor, dev->device,
|
||||
(dev->enabled? "enabled": "disabled"), next_unitid);
|
||||
|
||||
} while (last_unitid != next_unitid);
|
||||
@@ -562,7 +562,7 @@ unsigned int hypertransport_scan_chain(struct bus *bus,
|
||||
}
|
||||
|
||||
ht_unitid_base[ht_dev_num-1] = CONFIG_HT_CHAIN_END_UNITID_BASE; // update last one
|
||||
|
||||
|
||||
printk(BIOS_DEBUG, " unitid: %04x --> %04x\n",
|
||||
real_last_unitid, CONFIG_HT_CHAIN_END_UNITID_BASE);
|
||||
|
||||
@@ -573,11 +573,11 @@ unsigned int hypertransport_scan_chain(struct bus *bus,
|
||||
if (next_unitid > 0x20) {
|
||||
next_unitid = 0x20;
|
||||
}
|
||||
if( (bus->secondary == 0) && (next_unitid > 0x18)) {
|
||||
if( (bus->secondary == 0) && (next_unitid > 0x18)) {
|
||||
next_unitid = 0x18; /* avoid K8 on bus 0 */
|
||||
}
|
||||
|
||||
/* Die if any leftover Static devices are are found.
|
||||
/* Die if any leftover Static devices are are found.
|
||||
* There's probably a problem in the Config.lb.
|
||||
*/
|
||||
if(old_devices) {
|
||||
@@ -587,14 +587,14 @@ unsigned int hypertransport_scan_chain(struct bus *bus,
|
||||
}
|
||||
printk(BIOS_ERR, "HT: Left over static devices. Check your Config.lb\n");
|
||||
if(last_func && !last_func->sibling) // put back the left over static device, and let pci_scan_bus disable it
|
||||
last_func->sibling = old_devices;
|
||||
last_func->sibling = old_devices;
|
||||
}
|
||||
|
||||
/* Now that nothing is overlapping it is safe to scan the
|
||||
* children.
|
||||
* children.
|
||||
*/
|
||||
max = pci_scan_bus(bus, 0x00, ((next_unitid-1) << 3)|7, max);
|
||||
return max;
|
||||
max = pci_scan_bus(bus, 0x00, ((next_unitid-1) << 3)|7, max);
|
||||
return max;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -106,7 +106,7 @@ struct i386_special_regs {
|
||||
u32 FLAGS;
|
||||
};
|
||||
|
||||
/*
|
||||
/*
|
||||
* Segment registers here represent the 16 bit quantities
|
||||
* CS, DS, ES, SS.
|
||||
*/
|
||||
@@ -184,8 +184,8 @@ struct i386_segment_regs {
|
||||
#define F_ALWAYS_ON (0x0002) /* flag bits always on */
|
||||
|
||||
/*
|
||||
* Define a mask for only those flag bits we will ever pass back
|
||||
* (via PUSHF)
|
||||
* Define a mask for only those flag bits we will ever pass back
|
||||
* (via PUSHF)
|
||||
*/
|
||||
#define F_MSK (FB_CF|FB_PF|FB_AF|FB_ZF|FB_SF|FB_TF|FB_IF|FB_DF|FB_OF)
|
||||
|
||||
@@ -271,8 +271,8 @@ typedef struct {
|
||||
* Delayed flag set 3 bits (zero, signed, parity)
|
||||
* reserved 6 bits
|
||||
* interrupt # 8 bits instruction raised interrupt
|
||||
* BIOS video segregs 4 bits
|
||||
* Interrupt Pending 1 bits
|
||||
* BIOS video segregs 4 bits
|
||||
* Interrupt Pending 1 bits
|
||||
* Extern interrupt 1 bits
|
||||
* Halted 1 bits
|
||||
*/
|
||||
|
@@ -128,7 +128,7 @@ extern u32 X86API rdl(u32 addr);
|
||||
extern void X86API wrb(u32 addr, u8 val);
|
||||
extern void X86API wrw(u32 addr, u16 val);
|
||||
extern void X86API wrl(u32 addr, u32 val);
|
||||
|
||||
|
||||
#pragma pack()
|
||||
|
||||
/*--------------------- type definitions -----------------------------------*/
|
||||
@@ -175,10 +175,10 @@ void X86EMU_halt_sys(void);
|
||||
#define DEBUG_SYSINT_F 0x000200 /* bios system interrupts. */
|
||||
#define DEBUG_TRACECALL_F 0x000400
|
||||
#define DEBUG_INSTRUMENT_F 0x000800
|
||||
#define DEBUG_MEM_TRACE_F 0x001000
|
||||
#define DEBUG_IO_TRACE_F 0x002000
|
||||
#define DEBUG_MEM_TRACE_F 0x001000
|
||||
#define DEBUG_IO_TRACE_F 0x002000
|
||||
#define DEBUG_TRACECALL_REGS_F 0x004000
|
||||
#define DEBUG_DECODE_NOPRINT_F 0x008000
|
||||
#define DEBUG_DECODE_NOPRINT_F 0x008000
|
||||
#define DEBUG_SAVE_IP_CS_F 0x010000
|
||||
#define DEBUG_TRACEJMP_F 0x020000
|
||||
#define DEBUG_TRACEJMP_REGS_F 0x040000
|
||||
|
@@ -45,16 +45,16 @@ int (*intXX_handler[256])(struct eregs *regs) = { NULL };
|
||||
|
||||
static int intXX_exception_handler(struct eregs *regs)
|
||||
{
|
||||
printk(BIOS_INFO, "Oops, exception %d while executing option rom\n",
|
||||
printk(BIOS_INFO, "Oops, exception %d while executing option rom\n",
|
||||
regs->vector);
|
||||
x86_exception(regs); // Call coreboot exception handler
|
||||
x86_exception(regs); // Call coreboot exception handler
|
||||
|
||||
return 0; // Never returns?
|
||||
}
|
||||
|
||||
static int intXX_unknown_handler(struct eregs *regs)
|
||||
{
|
||||
printk(BIOS_INFO, "Unsupported software interrupt #0x%x\n",
|
||||
printk(BIOS_INFO, "Unsupported software interrupt #0x%x\n",
|
||||
regs->vector);
|
||||
|
||||
return -1;
|
||||
@@ -74,12 +74,12 @@ static void setup_interrupt_handlers(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* The first 16 intXX functions are not BIOS services,
|
||||
/* The first 16 intXX functions are not BIOS services,
|
||||
* but the CPU-generated exceptions ("hardware interrupts")
|
||||
*/
|
||||
for (i = 0; i < 0x10; i++)
|
||||
intXX_handler[i] = &intXX_exception_handler;
|
||||
|
||||
|
||||
/* Mark all other intXX calls as unknown first */
|
||||
for (i = 0x10; i < 0x100; i++)
|
||||
{
|
||||
@@ -133,14 +133,14 @@ static void setup_realmode_idt(void)
|
||||
}
|
||||
|
||||
/* Many option ROMs use the hard coded interrupt entry points in the
|
||||
* system bios. So install them at the known locations.
|
||||
* system bios. So install them at the known locations.
|
||||
*/
|
||||
|
||||
|
||||
/* int42 is the relocated int10 */
|
||||
write_idt_stub((void *)0xff065, 0x42);
|
||||
|
||||
/* VIA's VBIOS calls f000:f859 instead of int15 */
|
||||
write_idt_stub((void *)0xff859, 0x15);
|
||||
write_idt_stub((void *)0xff859, 0x15);
|
||||
}
|
||||
|
||||
void run_bios(struct device *dev, unsigned long addr)
|
||||
@@ -187,7 +187,7 @@ static u32 VSA_vrRead(u16 classIndex)
|
||||
"outl %%eax, %%dx\n"
|
||||
"addb $2, %%dl\n"
|
||||
"inw %%dx, %%ax\n"
|
||||
: "=a" (eax), "=b"(ebx), "=c"(ecx), "=d"(edx)
|
||||
: "=a" (eax), "=b"(ebx), "=c"(ecx), "=d"(edx)
|
||||
: "a"(classIndex)
|
||||
);
|
||||
|
||||
@@ -245,7 +245,7 @@ void do_vsmbios(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
/* interrupt_handler() is called from assembler code only,
|
||||
/* interrupt_handler() is called from assembler code only,
|
||||
* so there is no use in putting the prototype into a header file.
|
||||
*/
|
||||
int __attribute__((regparm(0))) interrupt_handler(u32 intnumber,
|
||||
@@ -308,7 +308,7 @@ int __attribute__((regparm(0))) interrupt_handler(u32 intnumber,
|
||||
// will later pop them.
|
||||
// What happens here is that we force (volatile!) changing
|
||||
// the values of the parameters of this function. We do this
|
||||
// because we know that they stay alive on the stack after
|
||||
// because we know that they stay alive on the stack after
|
||||
// we leave this function. Don't say this is bollocks.
|
||||
*(volatile u32 *)&eax = reg_info.eax;
|
||||
*(volatile u32 *)&ecx = reg_info.ecx;
|
||||
|
@@ -25,7 +25,7 @@
|
||||
|
||||
/* This is the intXX interrupt handler stub code. It gets copied
|
||||
* to the IDT and to some fixed addresses in the F segment. Before
|
||||
* the code can used, it gets patched up by the C function copying
|
||||
* the code can used, it gets patched up by the C function copying
|
||||
* it: byte 3 (the $0 in movb $0, %al) is overwritten with the int#.
|
||||
*/
|
||||
|
||||
@@ -85,11 +85,11 @@ __run_optionrom = RELOCATED(.)
|
||||
* protected mode is turned off.
|
||||
*/
|
||||
mov $0x30, %ax
|
||||
mov %ax, %ds
|
||||
mov %ax, %es
|
||||
mov %ax, %fs
|
||||
mov %ax, %gs
|
||||
mov %ax, %ss
|
||||
mov %ax, %ds
|
||||
mov %ax, %es
|
||||
mov %ax, %fs
|
||||
mov %ax, %gs
|
||||
mov %ax, %ss
|
||||
|
||||
/* Turn off protection */
|
||||
movl %cr0, %eax
|
||||
@@ -114,9 +114,9 @@ __run_optionrom = RELOCATED(.)
|
||||
lidt __realmode_idt
|
||||
|
||||
/* Set all segments to 0x0000, ds to 0x0040 */
|
||||
mov %ax, %es
|
||||
mov %ax, %fs
|
||||
mov %ax, %gs
|
||||
mov %ax, %es
|
||||
mov %ax, %fs
|
||||
mov %ax, %gs
|
||||
mov $0x40, %ax
|
||||
mov %ax, %ds
|
||||
|
||||
@@ -140,8 +140,8 @@ __run_optionrom = RELOCATED(.)
|
||||
data32 ljmp $0x10, $RELOCATED(1f)
|
||||
1:
|
||||
.code32
|
||||
movw $0x18, %ax
|
||||
mov %ax, %ds
|
||||
movw $0x18, %ax
|
||||
mov %ax, %ds
|
||||
mov %ax, %es
|
||||
mov %ax, %fs
|
||||
mov %ax, %gs
|
||||
@@ -185,11 +185,11 @@ __run_vsa = RELOCATED(.)
|
||||
* protected mode is turned off.
|
||||
*/
|
||||
mov $0x30, %ax
|
||||
mov %ax, %ds
|
||||
mov %ax, %es
|
||||
mov %ax, %fs
|
||||
mov %ax, %gs
|
||||
mov %ax, %ss
|
||||
mov %ax, %ds
|
||||
mov %ax, %es
|
||||
mov %ax, %fs
|
||||
mov %ax, %gs
|
||||
mov %ax, %ss
|
||||
|
||||
/* Turn off protection */
|
||||
movl %cr0, %eax
|
||||
@@ -214,9 +214,9 @@ __run_vsa = RELOCATED(.)
|
||||
lidt __realmode_idt
|
||||
|
||||
/* Set all segments to 0x0000, ds to 0x0040 */
|
||||
mov %ax, %es
|
||||
mov %ax, %fs
|
||||
mov %ax, %gs
|
||||
mov %ax, %es
|
||||
mov %ax, %fs
|
||||
mov %ax, %gs
|
||||
mov $0x40, %ax
|
||||
mov %ax, %ds
|
||||
mov %cx, %ax // restore ax
|
||||
@@ -238,8 +238,8 @@ __run_vsa = RELOCATED(.)
|
||||
data32 ljmp $0x10, $RELOCATED(1f)
|
||||
1:
|
||||
.code32
|
||||
movw $0x18, %ax
|
||||
mov %ax, %ds
|
||||
movw $0x18, %ax
|
||||
mov %ax, %ds
|
||||
mov %ax, %es
|
||||
mov %ax, %fs
|
||||
mov %ax, %gs
|
||||
@@ -275,17 +275,17 @@ __run_interrupt = RELOCATED(.)
|
||||
* descriptors. They will retain these configurations (limits,
|
||||
* writability, etc.) once protected mode is turned off.
|
||||
*/
|
||||
mov $0x30, %ax
|
||||
mov %ax, %ds
|
||||
mov %ax, %es
|
||||
mov %ax, %fs
|
||||
mov %ax, %gs
|
||||
mov %ax, %ss
|
||||
mov $0x30, %ax
|
||||
mov %ax, %ds
|
||||
mov %ax, %es
|
||||
mov %ax, %fs
|
||||
mov %ax, %gs
|
||||
mov %ax, %ss
|
||||
|
||||
/* Turn off protected mode */
|
||||
movl %cr0, %eax
|
||||
movl %cr0, %eax
|
||||
andl $~PE, %eax
|
||||
movl %eax, %cr0
|
||||
movl %eax, %cr0
|
||||
|
||||
/* Now really going into real mode */
|
||||
data32 ljmp $0, $RELOCATED(1f)
|
||||
@@ -302,7 +302,7 @@ __run_interrupt = RELOCATED(.)
|
||||
movl %eax, %esp
|
||||
|
||||
/* Load 16-bit intXX IDT */
|
||||
xor %ax, %ax
|
||||
xor %ax, %ax
|
||||
mov %ax, %ds
|
||||
lidt __realmode_idt
|
||||
|
||||
|
@@ -202,7 +202,7 @@ int int15_handler(struct eregs *regs)
|
||||
res = 0;
|
||||
break;
|
||||
default:
|
||||
printk(BIOS_DEBUG, "Unknown INT15 function %04x!\n",
|
||||
printk(BIOS_DEBUG, "Unknown INT15 function %04x!\n",
|
||||
regs->eax & 0xffff);
|
||||
}
|
||||
|
||||
|
@@ -732,7 +732,7 @@ RETURNS:
|
||||
Value of scale * index
|
||||
|
||||
REMARKS:
|
||||
Decodes scale/index of SIB byte and returns relevant offset part of
|
||||
Decodes scale/index of SIB byte and returns relevant offset part of
|
||||
effective address.
|
||||
****************************************************************************/
|
||||
static unsigned decode_sib_si(
|
||||
|
@@ -170,7 +170,7 @@ static void x86emuOp2_rdmsr(u8 op2)
|
||||
M.x86.R_EAX = 0;
|
||||
DECODE_CLEAR_SEGOVR();
|
||||
END_OF_INSTR();
|
||||
}
|
||||
}
|
||||
|
||||
#define xorl(a,b) (((a) && !(b)) || (!(a) && (b)))
|
||||
|
||||
|
@@ -85,7 +85,7 @@ RETURNS:
|
||||
Byte value read from emulator memory.
|
||||
|
||||
REMARKS:
|
||||
Reads a byte value from the emulator memory.
|
||||
Reads a byte value from the emulator memory.
|
||||
****************************************************************************/
|
||||
u8 X86API rdb(u32 addr)
|
||||
{
|
||||
@@ -130,7 +130,7 @@ addr - Emulator memory address to read
|
||||
RETURNS:
|
||||
Long value read from emulator memory.
|
||||
REMARKS:
|
||||
Reads a long value from the emulator memory.
|
||||
Reads a long value from the emulator memory.
|
||||
****************************************************************************/
|
||||
u32 X86API rdl(u32 addr)
|
||||
{
|
||||
@@ -189,7 +189,7 @@ addr - Emulator memory address to read
|
||||
val - Value to store
|
||||
|
||||
REMARKS:
|
||||
Writes a long value to emulator memory.
|
||||
Writes a long value to emulator memory.
|
||||
****************************************************************************/
|
||||
void X86API wrl(u32 addr, u32 val)
|
||||
{
|
||||
|
@@ -75,7 +75,7 @@
|
||||
#include <xf86_ansic.h>
|
||||
#else
|
||||
#include <string.h>
|
||||
#endif
|
||||
#endif
|
||||
/*--------------------------- Inline Functions ----------------------------*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@@ -250,7 +250,7 @@ biosemu(u8 *biosmem, u32 biosmem_size, struct device * dev, unsigned long rom_ad
|
||||
X86EMU_setupMemFuncs(&my_mem_funcs);
|
||||
|
||||
//setup PMM struct in BIOS_DATA_SEGMENT, offset 0x0
|
||||
u8 pmm_length = pmm_setup(BIOS_DATA_SEGMENT, 0x0);
|
||||
u8 pmm_length = pmm_setup(BIOS_DATA_SEGMENT, 0x0);
|
||||
if (pmm_length <= 0) {
|
||||
printf ("\nYABEL: Warning: PMM Area could not be setup. PMM not available (%x)\n",
|
||||
pmm_length);
|
||||
|
@@ -38,7 +38,7 @@
|
||||
// Address, there will only be a call to this INT and a RETF
|
||||
#define PNP_INT_NUM 0xFD
|
||||
|
||||
/* array of funtion pointers to override generic interrupt handlers
|
||||
/* array of funtion pointers to override generic interrupt handlers
|
||||
* a YABEL caller can add functions to this array before calling YABEL
|
||||
* if a interrupt occurs, YABEL checks wether a function is set in
|
||||
* this array and only runs the generic interrupt handler code, if
|
||||
|
@@ -61,6 +61,6 @@ u64 get_time(void)
|
||||
"rdtsc"
|
||||
: "=a"(eax), "=d"(edx)
|
||||
: /* no inputs, no clobber */);
|
||||
act = ((u64) edx << 32) | eax;
|
||||
act = ((u64) edx << 32) | eax;
|
||||
return act;
|
||||
}
|
||||
|
@@ -19,7 +19,7 @@
|
||||
#define phandle_t p32
|
||||
#define ihandle_t p32
|
||||
|
||||
typedef struct
|
||||
typedef struct
|
||||
{
|
||||
unsigned int serv;
|
||||
int nargs;
|
||||
|
@@ -15,4 +15,4 @@
|
||||
/* TODO: check how this works in x86 */
|
||||
extern unsigned long tb_freq;
|
||||
u64 get_time(void);
|
||||
#endif
|
||||
#endif
|
||||
|
@@ -39,7 +39,7 @@ static inline void set_ci(void) {};
|
||||
* |||-Currently unused
|
||||
* ||||-Currently unused
|
||||
* |||||-Currently unused
|
||||
* ||||||-DEBUG_PNP - Print Plug And Play access made by option rom
|
||||
* ||||||-DEBUG_PNP - Print Plug And Play access made by option rom
|
||||
* |||||||-DEBUG_DISK - Print Disk I/O related messages, currently unused
|
||||
* ||||||||-DEBUG_PMM - Print messages related to POST Memory Manager (PMM)
|
||||
* |||||||||-DEBUG_VBE - Print messages related to VESA BIOS Extension (VBE) functions
|
||||
@@ -47,7 +47,7 @@ static inline void set_ci(void) {};
|
||||
* |||||||||||-DEBUG_INTR - Print messages related to interrupt handling
|
||||
* ||||||||||||-DEBUG_CHECK_VMEM_ACCESS - Print messages related to accesse to certain areas of the virtual Memory (e.g. BDA (BIOS Data Area) or Interrupt Vectors)
|
||||
* |||||||||||||-DEBUG_MEM - Print memory access made by option rom (NOTE: this also includes accesses to fetch instructions)
|
||||
* ||||||||||||||-DEBUG_IO - Print I/O access made by option rom
|
||||
* ||||||||||||||-DEBUG_IO - Print I/O access made by option rom
|
||||
* 11000111111111 - Max Binary Value, Debug All (WARNING: - This could run for hours)
|
||||
*/
|
||||
|
||||
|
@@ -410,7 +410,7 @@ handleInt1a(void)
|
||||
M.x86.R_CL =
|
||||
#ifdef CONFIG_PCI_OPTION_ROM_RUN_YABEL
|
||||
pci_read_config8(dev, offs);
|
||||
#else
|
||||
#else
|
||||
(u8) rtas_pci_config_read(bios_device.
|
||||
puid, 1,
|
||||
bus, devfn,
|
||||
@@ -425,7 +425,7 @@ handleInt1a(void)
|
||||
M.x86.R_CX =
|
||||
#ifdef CONFIG_PCI_OPTION_ROM_RUN_YABEL
|
||||
pci_read_config16(dev, offs);
|
||||
#else
|
||||
#else
|
||||
(u16) rtas_pci_config_read(bios_device.
|
||||
puid, 2,
|
||||
bus, devfn,
|
||||
@@ -440,7 +440,7 @@ handleInt1a(void)
|
||||
M.x86.R_ECX =
|
||||
#ifdef CONFIG_PCI_OPTION_ROM_RUN_YABEL
|
||||
pci_read_config32(dev, offs);
|
||||
#else
|
||||
#else
|
||||
(u32) rtas_pci_config_read(bios_device.
|
||||
puid, 4,
|
||||
bus, devfn,
|
||||
@@ -478,7 +478,7 @@ handleInt1a(void)
|
||||
case 0xb10b:
|
||||
#ifdef CONFIG_PCI_OPTION_ROM_RUN_YABEL
|
||||
pci_write_config8(bios_device.dev, offs, M.x86.R_CL);
|
||||
#else
|
||||
#else
|
||||
rtas_pci_config_write(bios_device.puid, 1, bus,
|
||||
devfn, offs, M.x86.R_CL);
|
||||
#endif
|
||||
@@ -490,7 +490,7 @@ handleInt1a(void)
|
||||
case 0xb10c:
|
||||
#ifdef CONFIG_PCI_OPTION_ROM_RUN_YABEL
|
||||
pci_write_config16(bios_device.dev, offs, M.x86.R_CX);
|
||||
#else
|
||||
#else
|
||||
rtas_pci_config_write(bios_device.puid, 2, bus,
|
||||
devfn, offs, M.x86.R_CX);
|
||||
#endif
|
||||
@@ -502,7 +502,7 @@ handleInt1a(void)
|
||||
case 0xb10d:
|
||||
#ifdef CONFIG_PCI_OPTION_ROM_RUN_YABEL
|
||||
pci_write_config32(bios_device.dev, offs, M.x86.R_ECX);
|
||||
#else
|
||||
#else
|
||||
rtas_pci_config_write(bios_device.puid, 4, bus,
|
||||
devfn, offs, M.x86.R_ECX);
|
||||
#endif
|
||||
@@ -576,7 +576,7 @@ handleInterrupt(int intNum)
|
||||
int_handled = 1;
|
||||
break;
|
||||
case PMM_INT_NUM:
|
||||
/* the selfdefined PMM INT number, this is called by the code in PMM struct, it
|
||||
/* the selfdefined PMM INT number, this is called by the code in PMM struct, it
|
||||
* is handled by pmm_handleInt()
|
||||
*/
|
||||
pmm_handleInt();
|
||||
|
@@ -19,8 +19,8 @@
|
||||
#include "device.h"
|
||||
|
||||
/* this struct is used to remember which PMM spaces
|
||||
* have been assigned. MAX_PMM_AREAS defines how many
|
||||
* PMM areas we can assign.
|
||||
* have been assigned. MAX_PMM_AREAS defines how many
|
||||
* PMM areas we can assign.
|
||||
* All areas are assigned in PMM_CONV_SEGMENT
|
||||
*/
|
||||
typedef struct {
|
||||
@@ -37,7 +37,7 @@ static pmm_allocation_t pmm_allocation_array[MAX_PMM_AREAS];
|
||||
/* index into pmm_allocation_array */
|
||||
static u32 curr_pmm_allocation_index = 0;
|
||||
|
||||
/* This function is used to setup the PMM struct in virtual memory
|
||||
/* This function is used to setup the PMM struct in virtual memory
|
||||
* at a certain offset, the length of the PMM struct is returned */
|
||||
u8 pmm_setup(u16 segment, u16 offset)
|
||||
{
|
||||
@@ -79,7 +79,7 @@ u8 pmm_setup(u16 segment, u16 offset)
|
||||
return sizeof(pmm_information_t);
|
||||
}
|
||||
|
||||
/* handle the selfdefined interrupt, this is executed, when the PMM Entry Point
|
||||
/* handle the selfdefined interrupt, this is executed, when the PMM Entry Point
|
||||
* is executed, it must handle all PMM requests
|
||||
*/
|
||||
void pmm_handleInt()
|
||||
@@ -136,7 +136,7 @@ void pmm_handleInt()
|
||||
__func__, next_offset);
|
||||
if (length == 0) {
|
||||
/* largest possible block size requested, we have on segment
|
||||
* to allocate, so largest possible is segment size (0xFFFF)
|
||||
* to allocate, so largest possible is segment size (0xFFFF)
|
||||
* minus next_offset
|
||||
*/
|
||||
rval = 0xFFFF - next_offset;
|
||||
@@ -151,7 +151,7 @@ void pmm_handleInt()
|
||||
}
|
||||
align = 1 << lsb;
|
||||
}
|
||||
/* always align at least to paragraph (16byte) boundary
|
||||
/* always align at least to paragraph (16byte) boundary
|
||||
* hm... since the length is always in paragraphs, we cannot
|
||||
* align outside of paragraphs anyway... so this check might
|
||||
* be unnecessary...*/
|
||||
|
@@ -34,7 +34,7 @@ typedef struct {
|
||||
u8 code[3];
|
||||
} __attribute__ ((__packed__)) pmm_information_t;
|
||||
|
||||
/* This function is used to setup the PMM struct in virtual memory
|
||||
/* This function is used to setup the PMM struct in virtual memory
|
||||
* at a certain offset */
|
||||
u8 pmm_setup(u16 segment, u16 offset);
|
||||
|
||||
|
@@ -796,7 +796,7 @@ void vbe_set_graphics(void)
|
||||
|
||||
mode_info.video_mode = (1 << 14) | CONFIG_FRAMEBUFFER_VESA_MODE;
|
||||
vbe_get_mode_info(&mode_info);
|
||||
unsigned char *framebuffer =
|
||||
unsigned char *framebuffer =
|
||||
(unsigned char *) le32_to_cpu(mode_info.vesa.phys_base_ptr);
|
||||
DEBUG_PRINTF_VBE("FRAMEBUFFER: 0x%08x\n", framebuffer);
|
||||
vbe_set_mode(&mode_info);
|
||||
@@ -807,9 +807,9 @@ void vbe_set_graphics(void)
|
||||
/* Switching Intel IGD to 1MB video memory will break this. Who
|
||||
* cares. */
|
||||
// int imagesize = 1024*768*2;
|
||||
|
||||
|
||||
unsigned char *jpeg = cbfs_find_file("bootsplash.jpg", CBFS_TYPE_BOOTSPLASH);
|
||||
if (!jpeg) {
|
||||
if (!jpeg) {
|
||||
DEBUG_PRINTF_VBE("Could not find bootsplash.jpg\n");
|
||||
return;
|
||||
}
|
||||
|
@@ -1187,7 +1187,7 @@ unsigned int pci_domain_scan_bus(device_t dev, unsigned int max)
|
||||
|
||||
#if CONFIG_PC80_SYSTEM == 1
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @brief Assign IRQ numbers
|
||||
*
|
||||
* This function assigns IRQs for all functions contained within the indicated
|
||||
@@ -1199,8 +1199,8 @@ unsigned int pci_domain_scan_bus(device_t dev, unsigned int max)
|
||||
* @param bus
|
||||
* @param slot
|
||||
* @param pIntAtoD is an array of IRQ #s that are assigned to PINTA through
|
||||
* PINTD of this slot. The particular irq #s that are passed in
|
||||
* depend on the routing inside your southbridge and on your
|
||||
* PINTD of this slot. The particular irq #s that are passed in
|
||||
* depend on the routing inside your southbridge and on your
|
||||
* motherboard.
|
||||
*/
|
||||
void pci_assign_irqs(unsigned bus, unsigned slot,
|
||||
@@ -1229,7 +1229,7 @@ void pci_assign_irqs(unsigned bus, unsigned slot,
|
||||
printk(BIOS_DEBUG, "Assigning IRQ %d to %d:%x.%d\n",
|
||||
irq, bus, slot, funct);
|
||||
|
||||
pci_write_config8(pdev, PCI_INTERRUPT_LINE,
|
||||
pci_write_config8(pdev, PCI_INTERRUPT_LINE,
|
||||
pIntAtoD[line - 1]);
|
||||
|
||||
#ifdef PARANOID_IRQ_ASSIGNMENTS
|
||||
|
@@ -87,7 +87,7 @@ struct rom_header * pci_rom_probe(struct device *dev)
|
||||
rom_data->class_hi, rom_data->class_lo,
|
||||
rom_data->type);
|
||||
if (dev->class != ((rom_data->class_hi << 8) | rom_data->class_lo)) {
|
||||
printk(BIOS_DEBUG, "Class Code mismatch ROM %08x, dev %08x\n",
|
||||
printk(BIOS_DEBUG, "Class Code mismatch ROM %08x, dev %08x\n",
|
||||
(rom_data->class_hi << 8) | rom_data->class_lo,
|
||||
dev->class);
|
||||
//return NULL;
|
||||
|
@@ -46,8 +46,8 @@ static void pciexp_tune_dev(device_t dev)
|
||||
#endif
|
||||
}
|
||||
|
||||
unsigned int pciexp_scan_bus(struct bus *bus,
|
||||
unsigned min_devfn, unsigned max_devfn,
|
||||
unsigned int pciexp_scan_bus(struct bus *bus,
|
||||
unsigned min_devfn, unsigned max_devfn,
|
||||
unsigned int max)
|
||||
{
|
||||
device_t child;
|
||||
|
@@ -86,12 +86,12 @@ const char *pcix_speed(unsigned sstatus)
|
||||
static const char pcix_266mhz[] = "266MHz PCI-X";
|
||||
static const char pcix_533mhz[] = "533MHZ PCI-X";
|
||||
static const char unknown[] = "Unknown";
|
||||
|
||||
|
||||
const char *result;
|
||||
result = unknown;
|
||||
switch(PCI_X_SSTATUS_MFREQ(sstatus)) {
|
||||
case PCI_X_SSTATUS_CONVENTIONAL_PCI:
|
||||
result = conventional;
|
||||
case PCI_X_SSTATUS_CONVENTIONAL_PCI:
|
||||
result = conventional;
|
||||
break;
|
||||
case PCI_X_SSTATUS_MODE1_66MHZ:
|
||||
result = pcix_66mhz;
|
||||
@@ -99,17 +99,17 @@ const char *pcix_speed(unsigned sstatus)
|
||||
case PCI_X_SSTATUS_MODE1_100MHZ:
|
||||
result = pcix_100mhz;
|
||||
break;
|
||||
|
||||
|
||||
case PCI_X_SSTATUS_MODE1_133MHZ:
|
||||
result = pcix_133mhz;
|
||||
break;
|
||||
|
||||
|
||||
case PCI_X_SSTATUS_MODE2_266MHZ_REF_66MHZ:
|
||||
case PCI_X_SSTATUS_MODE2_266MHZ_REF_100MHZ:
|
||||
case PCI_X_SSTATUS_MODE2_266MHZ_REF_133MHZ:
|
||||
result = pcix_266mhz;
|
||||
break;
|
||||
|
||||
|
||||
case PCI_X_SSTATUS_MODE2_533MHZ_REF_66MHZ:
|
||||
case PCI_X_SSTATUS_MODE2_533MHZ_REF_100MHZ:
|
||||
case PCI_X_SSTATUS_MODE2_533MHZ_REF_133MHZ:
|
||||
|
@@ -172,11 +172,11 @@ static void pnp_get_ioresource(device_t dev, unsigned index, struct io_info *inf
|
||||
unsigned moving, gran, step;
|
||||
|
||||
resource = new_resource(dev, index);
|
||||
|
||||
|
||||
/* Initilize the resource */
|
||||
resource->limit = 0xffff;
|
||||
resource->flags |= IORESOURCE_IO;
|
||||
|
||||
|
||||
/* Get the resource size */
|
||||
moving = info->mask;
|
||||
gran = 15;
|
||||
@@ -259,9 +259,9 @@ static void get_resources(device_t dev, struct pnp_info *info)
|
||||
resource->size = 1;
|
||||
resource->flags |= IORESOURCE_IRQ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void pnp_enable_devices(device_t base_dev, struct device_operations *ops,
|
||||
void pnp_enable_devices(device_t base_dev, struct device_operations *ops,
|
||||
unsigned functions, struct pnp_info *info)
|
||||
{
|
||||
struct device_path path;
|
||||
@@ -270,7 +270,7 @@ void pnp_enable_devices(device_t base_dev, struct device_operations *ops,
|
||||
|
||||
path.type = DEVICE_PATH_PNP;
|
||||
path.pnp.port = base_dev->path.pnp.port;
|
||||
|
||||
|
||||
/* Setup the ops and resources on the newly allocated devices */
|
||||
for(i = 0; i < functions; i++) {
|
||||
/* Skip logical devices this Super I/O doesn't have. */
|
||||
@@ -279,9 +279,9 @@ void pnp_enable_devices(device_t base_dev, struct device_operations *ops,
|
||||
|
||||
path.pnp.device = info[i].function;
|
||||
dev = alloc_find_dev(base_dev->bus, &path);
|
||||
|
||||
|
||||
/* Don't initialize a device multiple times */
|
||||
if (dev->ops)
|
||||
if (dev->ops)
|
||||
continue;
|
||||
|
||||
if (info[i].ops == 0) {
|
||||
|
@@ -27,7 +27,7 @@
|
||||
#include <device/pci.h>
|
||||
#include <reset.h>
|
||||
|
||||
/**
|
||||
/**
|
||||
* Read the resources for the root device,
|
||||
* that encompass the resources for the entire system.
|
||||
* @param root Pointer to the device structure for the system root device
|
||||
@@ -54,9 +54,9 @@ void root_dev_set_resources(device_t root)
|
||||
*
|
||||
* The enumeration of certain buses is purely static. The existence of
|
||||
* devices on those buses can be completely determined at compile time
|
||||
* and is specified in the config file. Typical examples are the 'PNP'
|
||||
* devices on a legacy ISA/LPC bus. There is no need of probing of any kind,
|
||||
* the only thing we have to do is to walk through the bus and
|
||||
* and is specified in the config file. Typical examples are the 'PNP'
|
||||
* devices on a legacy ISA/LPC bus. There is no need of probing of any kind,
|
||||
* the only thing we have to do is to walk through the bus and
|
||||
* enable or disable devices as indicated in the config file.
|
||||
*
|
||||
* On the other hand, some devices are virtual and their existence is
|
||||
@@ -93,7 +93,7 @@ unsigned int scan_static_bus(device_t bus, unsigned int max)
|
||||
child->ops->enable(child);
|
||||
}
|
||||
if (child->path.type == DEVICE_PATH_I2C) {
|
||||
printk(BIOS_DEBUG, "smbus: %s[%d]->",
|
||||
printk(BIOS_DEBUG, "smbus: %s[%d]->",
|
||||
dev_path(child->bus->dev), child->bus->link );
|
||||
}
|
||||
printk(BIOS_DEBUG, "%s %s\n",
|
||||
|
Reference in New Issue
Block a user