1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
support for the Giant Shoulder Inc Loft board - a very minor
variation on a standard Avila board
arch/arm/mach-ixp4xx/Kconfig | 8 +++++++-
arch/arm/mach-ixp4xx/ixdp425-pci.c | 6 ++++--
arch/arm/mach-ixp4xx/ixdp425-setup.c | 19 +++++++++++++++++++
include/asm-arm/arch-ixp4xx/ixdp425.h | 1 +
4 files changed, 31 insertions(+), 3 deletions(-)
--- linux-nslu2.orig/arch/arm/mach-ixp4xx/Kconfig 2006-02-06 20:37:01.000000000 +0100
+++ linux-nslu2/arch/arm/mach-ixp4xx/Kconfig 2006-02-06 22:34:20.000000000 +0100
@@ -25,6 +25,12 @@ config ARCH_AVILA
Avila Network Platform. For more information on this platform,
see <file:Documentation/arm/IXP4xx>.
+config MACH_LOFT
+ bool "Loft"
+ help
+ Say 'Y' here if you want your kernel to support the Giant
+ Shoulder Inc Loft board.
+
config ARCH_ADI_COYOTE
bool "Coyote"
help
@@ -84,7 +90,7 @@ config MACH_NAS100D
#
config ARCH_IXDP4XX
bool
- depends on ARCH_IXDP425 || ARCH_AVILA || MACH_IXDP465
+ depends on ARCH_IXDP425 || ARCH_AVILA || MACH_IXDP465 || MACH_LOFT
default y
#
--- linux-nslu2.orig/arch/arm/mach-ixp4xx/ixdp425-pci.c 2006-02-06 20:37:01.000000000 +0100
+++ linux-nslu2/arch/arm/mach-ixp4xx/ixdp425-pci.c 2006-02-06 22:34:20.000000000 +0100
@@ -46,7 +46,8 @@ static int __init ixdp425_map_irq(struct
int irq = -1;
- if (slot >= 1 && slot <= IXDP425_PCI_MAX_DEV &&
+ if (slot >= 1 &&
+ slot <= (machine_is_loft() ? LOFT_PCI_MAX_DEV : IXDP425_PCI_MAX_DEV) &&
pin >= 1 && pin <= IXDP425_PCI_IRQ_LINES) {
irq = pci_irq_table[(slot + pin - 2) % 4];
}
@@ -66,7 +67,8 @@ struct hw_pci ixdp425_pci __initdata = {
int __init ixdp425_pci_init(void)
{
if (machine_is_ixdp425() || machine_is_ixcdp1100() ||
- machine_is_avila() || machine_is_ixdp465())
+ machine_is_avila() || machine_is_ixdp465() ||
+ machine_is_loft())
pci_common_init(&ixdp425_pci);
return 0;
}
--- linux-nslu2.orig/arch/arm/mach-ixp4xx/ixdp425-setup.c 2006-02-06 20:37:01.000000000 +0100
+++ linux-nslu2/arch/arm/mach-ixp4xx/ixdp425-setup.c 2006-02-06 22:34:20.000000000 +0100
@@ -176,3 +176,22 @@ MACHINE_START(AVILA, "Gateworks Avila Ne
MACHINE_END
#endif
+/*
+ * Loft is functionally equivalent to Avila except that it has a
+ * different number for the maximum PCI devices. The MACHINE
+ * structure below is identical to Avila except for the comment.
+ */
+#ifdef CONFIG_MACH_LOFT
+MACHINE_START(LOFT, "Giant Shoulder Inc Loft board")
+ /* Maintainer: Tom Billman <kernel@giantshoulderinc.com> */
+ .phys_ram = PHYS_OFFSET,
+ .phys_io = IXP4XX_PERIPHERAL_BASE_PHYS,
+ .io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
+ .map_io = ixp4xx_map_io,
+ .init_irq = ixp4xx_init_irq,
+ .timer = &ixp4xx_timer,
+ .boot_params = 0x0100,
+ .init_machine = ixdp425_init,
+MACHINE_END
+#endif
+
--- linux-nslu2.orig/include/asm-arm/arch-ixp4xx/ixdp425.h 2006-02-06 20:37:38.000000000 +0100
+++ linux-nslu2/include/asm-arm/arch-ixp4xx/ixdp425.h 2006-02-06 22:34:20.000000000 +0100
@@ -23,6 +23,7 @@
* IXDP425 PCI IRQs
*/
#define IXDP425_PCI_MAX_DEV 4
+#define LOFT_PCI_MAX_DEV 6
#define IXDP425_PCI_IRQ_LINES 4
|