summaryrefslogtreecommitdiff
path: root/packages/linux/ixp4xx-kernel/2.6.15/65-loft-config.patch
blob: c6b0c7c679bfab8462a626d3ec58214c6430f76d (plain)
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
support for the Giant Shoulder Inc Loft board - a very minor
variation on a standard Avila board

--- linux-2.6.15/arch/arm/mach-ixp4xx/Kconfig	1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.15/arch/arm/mach-ixp4xx/Kconfig	1970-01-01 00:00:00.000000000 +0000
@@ -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
@@ -85,7 +91,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-2.6.15/arch/arm/mach-ixp4xx/ixdp425-pci.c	1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.15/arch/arm/mach-ixp4xx/ixdp425-pci.c	1970-01-01 00:00:00.000000000 +0000
@@ -51,7 +51,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];
 	}
@@ -71,7 +72,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-2.6.15/arch/arm/mach-ixp4xx/ixdp425-setup.c	1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.15/arch/arm/mach-ixp4xx/ixdp425-setup.c	1970-01-01 00:00:00.000000000 +0000
@@ -185,3 +185,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-2.6.15/include/asm-arm/arch-ixp4xx/ixdp425.h	1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.15/include/asm-arm/arch-ixp4xx/ixdp425.h	1970-01-01 00:00:00.000000000 +0000
@@ -26,6 +26,7 @@
  * IXDP425 PCI IRQs
  */
 #define IXDP425_PCI_MAX_DEV	4
+#define LOFT_PCI_MAX_DEV	6
 #define IXDP425_PCI_IRQ_LINES	4