ixp4xx-kernel: loft support in 2.6.15
authorJohn Bowler <jbowler@nslu2-linux.org>
Fri, 13 Jan 2006 19:30:01 +0000 (19:30 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Fri, 13 Jan 2006 19:30:01 +0000 (19:30 +0000)
packages/linux/ixp4xx-kernel/2.6.15/65-loft-config.patch [new file with mode: 0644]
packages/linux/ixp4xx-kernel/2.6.15/defconfig
packages/linux/ixp4xx-kernel_2.6.15.bb

diff --git a/packages/linux/ixp4xx-kernel/2.6.15/65-loft-config.patch b/packages/linux/ixp4xx-kernel/2.6.15/65-loft-config.patch
new file mode 100644 (file)
index 0000000..c6b0c7c
--- /dev/null
@@ -0,0 +1,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
index ff69ccc..c05034d 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.15
-# Sun Jan  8 02:47:26 2006
+# Thu Jan 12 17:44:50 2006
 #
 CONFIG_ARM=y
 CONFIG_MMU=y
@@ -113,12 +113,14 @@ CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
 #
 CONFIG_MACH_NSLU2=y
 # CONFIG_ARCH_AVILA is not set
+CONFIG_MACH_LOFT=y
 # CONFIG_ARCH_ADI_COYOTE is not set
 # CONFIG_ARCH_IXDP425 is not set
 # CONFIG_MACH_IXDPG425 is not set
 # CONFIG_MACH_IXDP465 is not set
 # CONFIG_ARCH_PRPMC1100 is not set
 CONFIG_MACH_NAS100D=y
+CONFIG_ARCH_IXDP4XX=y
 # CONFIG_MACH_GTWX5715 is not set
 
 #
@@ -177,7 +179,7 @@ CONFIG_ALIGNMENT_TRAP=y
 #
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc rtc-x1205.hctosys=1 rtc-x1205.probe=0,0x6f noirqdebug console=ttyS0,115200n8"
+CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc  rtc-x1205.hctosys=1 rtc-x1205.probe=0,0x6f rtc-ds1672.probe=0,0x68 rtc-ds1672.hctosys=1 pcf8563.hctosys=1 noirqdebug console=ttyS0,115200n8"
 # CONFIG_XIP_KERNEL is not set
 
 #
index 39ad707..4a7cd96 100644 (file)
@@ -8,7 +8,7 @@ PR_CONFIG = "0"
 # Increment the number below (i.e. the digits after PR) when
 # making changes within this file or for changes to the patches
 # applied to the kernel.
-PR = "r3.${PR_CONFIG}"
+PR = "r4.${PR_CONFIG}"
 
 include ixp4xx-kernel.inc
 
@@ -25,6 +25,7 @@ IXP4XX_PATCHES += "file://60-nas100d-i2c.patch;patch=1"
 # IXP4XX_PATCHES += "file://60-nas100d-ide.patch;patch=1"
 IXP4XX_PATCHES += "file://60-nas100d-rtc.patch;patch=1"
 IXP4XX_PATCHES += "file://60-nslu2-beeper.patch;patch=1"
+IXP4XX_PATCHES += "file://65-loft-config.patch;patch=1"
 # IXP4XX_PATCHES += "file://75-nslu2-leds.patch;patch=1"
 IXP4XX_PATCHES += "file://80-nslu2-io.patch;patch=1"
 IXP4XX_PATCHES += "file://85-timer.patch;patch=1"