diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/linux/nslu2-kernel/2.6.14/25-nslu2-arch-reset.patch | 39 | ||||
-rw-r--r-- | packages/linux/nslu2-kernel_2.6.14-rc2.bb | 3 |
2 files changed, 41 insertions, 1 deletions
diff --git a/packages/linux/nslu2-kernel/2.6.14/25-nslu2-arch-reset.patch b/packages/linux/nslu2-kernel/2.6.14/25-nslu2-arch-reset.patch new file mode 100644 index 0000000000..2fa828cf48 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.14/25-nslu2-arch-reset.patch @@ -0,0 +1,39 @@ +# Work round problems with the flash being unreadable on boot. +# +--- linux-2.6.13/.pc/25-nslu2-arch-reset.patch/include/asm-arm/arch-ixp4xx/system.h 2005-08-28 16:41:01.000000000 -0700 ++++ linux-2.6.13/include/asm-arm/arch-ixp4xx/system.h 2005-09-25 23:34:14.762872391 -0700 +@@ -10,6 +10,7 @@ + */ + + #include <asm/hardware.h> ++#include <asm/mach-types.h> + + static inline void arch_idle(void) + { +@@ -22,6 +23,21 @@ + + static inline void arch_reset(char mode) + { ++ /* On NSLU2 machines the flash is sometimes left in a non-read ++ * mode, such that attempting a read will cause problems - such as ++ * a hang. This will prevent both hard and soft reboot since the ++ * first thing done is to read the first instruction from the flash! ++ * Therefore issue a flash reset command here. ++ */ ++ if ( machine_is_nslu2()) { ++ /* Use the physical address here and write the reset command ++ * to the command address (not technically necessary). See ++ * <linux/mtd/cfi.h> for how to calculate this for other ++ * systems. The NSLU2 has one bank of 16 bit flash. ++ */ ++ *(__u16*)(NSLU2_FLASH_BASE+0xAA/*command*/) = 0x00ff/*reset*/; ++ } ++ + if ( 1 && mode == 's') { + /* Jump into ROM at address 0 */ + cpu_reset(0); +@@ -39,4 +55,3 @@ + *IXP4XX_OSWE = IXP4XX_WDT_RESET_ENABLE | IXP4XX_WDT_COUNT_ENABLE; + } + } +- diff --git a/packages/linux/nslu2-kernel_2.6.14-rc2.bb b/packages/linux/nslu2-kernel_2.6.14-rc2.bb index 74c57a1830..200d7ef3a5 100644 --- a/packages/linux/nslu2-kernel_2.6.14-rc2.bb +++ b/packages/linux/nslu2-kernel_2.6.14-rc2.bb @@ -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 = "r2.${PR_CONFIG}" +PR = "r3.${PR_CONFIG}" include nslu2-kernel.inc @@ -29,6 +29,7 @@ N2K_PATCHES = "\ file://15-ixp4xx-set-irq-type-return.patch;patch=1 \ file://15-ixp4xx-writesb-l-w.patch;patch=1 \ file://20-timer.patch;patch=1 \ + file://25-nslu2-arch-reset.patch;patch=1 \ file://30-i2c-x1205.patch;patch=1 \ file://50-nslu2-arch.patch;patch=1 \ file://50-nslu2-general.patch;patch=1 \ |