Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 86011
b: refs/heads/master
c: b7d0640
h: refs/heads/master
i:
  86009: d0947b6
  86007: 8d074f2
v: v3
  • Loading branch information
Stuart Bennett authored and Dave Airlie committed Feb 19, 2008
1 parent b0dbcd7 commit 8ad2b73
Show file tree
Hide file tree
Showing 247 changed files with 3,849 additions and 7,031 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3a93dc42f56c507d1034273d1e1d6f9b3ad94bb1
refs/heads/master: b7d0640f9229a9426ba9223796329c4f0cc4acb9
32 changes: 15 additions & 17 deletions trunk/Documentation/i386/IO-APIC.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
Most (all) Intel-MP compliant SMP boards have the so-called 'IO-APIC',
which is an enhanced interrupt controller. It enables us to route
hardware interrupts to multiple CPUs, or to CPU groups. Without an
IO-APIC, interrupts from hardware will be delivered only to the
CPU which boots the operating system (usually CPU#0).
which is an enhanced interrupt controller, it enables us to route
hardware interrupts to multiple CPUs, or to CPU groups.

Linux supports all variants of compliant SMP boards, including ones with
multiple IO-APICs. Multiple IO-APICs are used in high-end servers to
distribute IRQ load further.
multiple IO-APICs. (multiple IO-APICs are used in high-end servers to
distribute IRQ load further).

There are (a few) known breakages in certain older boards, such bugs are
There are (a few) known breakages in certain older boards, which bugs are
usually worked around by the kernel. If your MP-compliant SMP board does
not boot Linux, then consult the linux-smp mailing list archives first.

Expand All @@ -30,18 +28,18 @@ If your box boots fine with enabled IO-APIC IRQs, then your
hell:~>
<----------------------------

Some interrupts are still listed as 'XT PIC', but this is not a problem;
some interrupts are still listed as 'XT PIC', but this is not a problem,
none of those IRQ sources is performance-critical.


In the unlikely case that your board does not create a working mp-table,
in the unlikely case that your board does not create a working mp-table,
you can use the pirq= boot parameter to 'hand-construct' IRQ entries. This
is non-trivial though and cannot be automated. One sample /etc/lilo.conf
is nontrivial though and cannot be automated. One sample /etc/lilo.conf
entry:

append="pirq=15,11,10"

The actual numbers depend on your system, on your PCI cards and on their
the actual numbers depend on your system, on your PCI cards and on their
PCI slot position. Usually PCI slots are 'daisy chained' before they are
connected to the PCI chipset IRQ routing facility (the incoming PIRQ1-4
lines):
Expand All @@ -56,7 +54,7 @@ lines):
PIRQ1 ----| |- `----| |- `----| |- `----| |--------| |
`-' `-' `-' `-' `-'

Every PCI card emits a PCI IRQ, which can be INTA, INTB, INTC or INTD:
every PCI card emits a PCI IRQ, which can be INTA,INTB,INTC,INTD:

,-.
INTD--| |
Expand Down Expand Up @@ -97,21 +95,21 @@ card (IRQ11) in Slot3, and have Slot1 empty:
[value '0' is a generic 'placeholder', reserved for empty (or non-IRQ emitting)
slots.]

Generally, it's always possible to find out the correct pirq= settings, just
generally, it's always possible to find out the correct pirq= settings, just
permute all IRQ numbers properly ... it will take some time though. An
'incorrect' pirq line will cause the booting process to hang, or a device
won't function properly (e.g. if it's inserted as a module).
won't function properly (if it's inserted as eg. a module).

If you have 2 PCI buses, then you can use up to 8 pirq values, although such
If you have 2 PCI buses, then you can use up to 8 pirq values. Although such
boards tend to have a good configuration.

Be prepared that it might happen that you need some strange pirq line:

append="pirq=0,0,0,0,0,0,9,11"

Use smart trial-and-error techniques to find out the correct pirq line ...
use smart try-and-err techniques to find out the correct pirq line ...

Good luck and mail to linux-smp@vger.kernel.org or
good luck and mail to linux-smp@vger.kernel.org or
linux-kernel@vger.kernel.org if you have any problems that are not covered
by this document.

Expand Down
2 changes: 2 additions & 0 deletions trunk/Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1056,6 +1056,8 @@ and is between 256 and 4096 characters. It is defined in the file
[SCSI] Maximum number of LUNs received.
Should be between 1 and 16384.

mca-pentium [BUGS=X86-32]

mcatest= [IA-64]

mce [X86-32] Machine Check Exception
Expand Down
8 changes: 4 additions & 4 deletions trunk/Documentation/networking/tcp.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
TCP protocol
============

Last updated: 9 February 2008
Last updated: 21 June 2005

Contents
========
Expand Down Expand Up @@ -52,9 +52,9 @@ research and RFC's before developing new modules.
The method that is used to determine which congestion control mechanism is
determined by the setting of the sysctl net.ipv4.tcp_congestion_control.
The default congestion control will be the last one registered (LIFO);
so if you built everything as modules, the default will be reno. If you
build with the defaults from Kconfig, then CUBIC will be builtin (not a
module) and it will end up the default.
so if you built everything as modules. the default will be reno. If you
build with the default's from Kconfig, then BIC will be builtin (not a module)
and it will end up the default.

If you really want a particular default value then you will need
to set it with the sysctl. If you use a sysctl, the module will be autoloaded
Expand Down
12 changes: 6 additions & 6 deletions trunk/arch/mips/bcm47xx/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -92,17 +92,17 @@ static int bcm47xx_get_invariants(struct ssb_bus *bus,
iv->sprom.revision = 3;

if (cfe_getenv("et0macaddr", buf, sizeof(buf)) >= 0)
str2eaddr(buf, iv->sprom.et0mac);
str2eaddr(buf, iv->sprom.r1.et0mac);
if (cfe_getenv("et1macaddr", buf, sizeof(buf)) >= 0)
str2eaddr(buf, iv->sprom.et1mac);
str2eaddr(buf, iv->sprom.r1.et1mac);
if (cfe_getenv("et0phyaddr", buf, sizeof(buf)) >= 0)
iv->sprom.et0phyaddr = simple_strtoul(buf, NULL, 10);
iv->sprom.r1.et0phyaddr = simple_strtoul(buf, NULL, 10);
if (cfe_getenv("et1phyaddr", buf, sizeof(buf)) >= 0)
iv->sprom.et1phyaddr = simple_strtoul(buf, NULL, 10);
iv->sprom.r1.et1phyaddr = simple_strtoul(buf, NULL, 10);
if (cfe_getenv("et0mdcport", buf, sizeof(buf)) >= 0)
iv->sprom.et0mdcport = simple_strtoul(buf, NULL, 10);
iv->sprom.r1.et0mdcport = simple_strtoul(buf, NULL, 10);
if (cfe_getenv("et1mdcport", buf, sizeof(buf)) >= 0)
iv->sprom.et1mdcport = simple_strtoul(buf, NULL, 10);
iv->sprom.r1.et1mdcport = simple_strtoul(buf, NULL, 10);

return 0;
}
Expand Down
71 changes: 4 additions & 67 deletions trunk/arch/mips/bcm47xx/wgt634u.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
#include <linux/platform_device.h>
#include <linux/module.h>
#include <linux/leds.h>
#include <linux/mtd/physmap.h>
#include <linux/ssb/ssb.h>
#include <asm/mach-bcm47xx/bcm47xx.h>

Expand Down Expand Up @@ -44,82 +43,20 @@ static struct platform_device wgt634u_gpio_leds = {
}
};


/* 8MiB flash. The struct mtd_partition matches original Netgear WGT634U
firmware. */
static struct mtd_partition wgt634u_partitions[] = {
{
.name = "cfe",
.offset = 0,
.size = 0x60000, /* 384k */
.mask_flags = MTD_WRITEABLE /* force read-only */
},
{
.name = "config",
.offset = 0x60000,
.size = 0x20000 /* 128k */
},
{
.name = "linux",
.offset = 0x80000,
.size = 0x140000 /* 1280k */
},
{
.name = "jffs",
.offset = 0x1c0000,
.size = 0x620000 /* 6272k */
},
{
.name = "nvram",
.offset = 0x7e0000,
.size = 0x20000 /* 128k */
},
};

static struct physmap_flash_data wgt634u_flash_data = {
.parts = wgt634u_partitions,
.nr_parts = ARRAY_SIZE(wgt634u_partitions)
};

static struct resource wgt634u_flash_resource = {
.flags = IORESOURCE_MEM,
};

static struct platform_device wgt634u_flash = {
.name = "physmap-flash",
.id = 0,
.dev = { .platform_data = &wgt634u_flash_data, },
.resource = &wgt634u_flash_resource,
.num_resources = 1,
};

/* Platform devices */
static struct platform_device *wgt634u_devices[] __initdata = {
&wgt634u_flash,
&wgt634u_gpio_leds,
};

static int __init wgt634u_init(void)
{
/* There is no easy way to detect that we are running on a WGT634U
* machine. Use the MAC address as an heuristic. Netgear Inc. has
* been allocated ranges 00:09:5b:xx:xx:xx and 00:0f:b5:xx:xx:xx.
*/

u8 *et0mac = ssb_bcm47xx.sprom.et0mac;
u8 *et0mac = ssb_bcm47xx.sprom.r1.et0mac;

if (et0mac[0] == 0x00 &&
((et0mac[1] == 0x09 && et0mac[2] == 0x5b) ||
(et0mac[1] == 0x0f && et0mac[2] == 0xb5))) {
struct ssb_mipscore *mcore = &ssb_bcm47xx.mipscore;
wgt634u_flash_data.width = mcore->flash_buswidth;
wgt634u_flash_resource.start = mcore->flash_window;
wgt634u_flash_resource.end = mcore->flash_window
+ mcore->flash_window_size
- 1;
return platform_add_devices(wgt634u_devices,
ARRAY_SIZE(wgt634u_devices));
} else
(et0mac[1] == 0x0f && et0mac[2] == 0xb5)))
return platform_device_register(&wgt634u_gpio_leds);
else
return -ENODEV;
}

Expand Down
Loading

0 comments on commit 8ad2b73

Please sign in to comment.