diff options
Diffstat (limited to 'packages/linux/ixp4xx-kernel/2.6.16/15-jffs2-endian-config.patch')
-rw-r--r-- | packages/linux/ixp4xx-kernel/2.6.16/15-jffs2-endian-config.patch | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/packages/linux/ixp4xx-kernel/2.6.16/15-jffs2-endian-config.patch b/packages/linux/ixp4xx-kernel/2.6.16/15-jffs2-endian-config.patch new file mode 100644 index 0000000000..0dcbdaeadd --- /dev/null +++ b/packages/linux/ixp4xx-kernel/2.6.16/15-jffs2-endian-config.patch @@ -0,0 +1,84 @@ +This patch allows the endianness of the JFSS2 filesystem to be +specified by config options. + +It defaults to native-endian (the previously hard-coded option). + +Some architectures (in particular, the NSLU2) benefit from having a +single known endianness of JFFS2 filesystem (for data, not +executables) independent of the endianness of the processor (ARM +processors can be switched to either endianness at run-time). + +Signed-off-by: Rod Whitby <rod@whitby.id.au> + + fs/Kconfig | 25 +++++++++++++++++++++++++ + fs/jffs2/nodelist.h | 8 +++----- + 2 files changed, 28 insertions(+), 5 deletions(-) + +--- linux-nslu2.orig/fs/Kconfig 2006-02-06 20:38:09.000000000 +0100 ++++ linux-nslu2/fs/Kconfig 2006-02-06 21:49:07.000000000 +0100 +@@ -1174,6 +1174,31 @@ config JFFS2_CMODE_SIZE + + endchoice + ++choice ++ prompt "JFFS2 endianness" ++ default JFFS2_NATIVE_ENDIAN ++ depends on JFFS2_FS ++ help ++ You can set here the default endianness of JFFS2 from ++ the available options. Don't touch if unsure. ++ ++config JFFS2_NATIVE_ENDIAN ++ bool "native endian" ++ help ++ Uses a native endian bytestream. ++ ++config JFFS2_BIG_ENDIAN ++ bool "big endian" ++ help ++ Uses a big endian bytestream. ++ ++config JFFS2_LITTLE_ENDIAN ++ bool "little endian" ++ help ++ Uses a little endian bytestream. ++ ++endchoice ++ + config CRAMFS + tristate "Compressed ROM file system support (cramfs)" + select ZLIB_INFLATE +--- linux-nslu2.orig/fs/jffs2/nodelist.h 2006-02-06 20:35:36.000000000 +0100 ++++ linux-nslu2/fs/jffs2/nodelist.h 2006-02-06 21:49:07.000000000 +0100 +@@ -29,12 +29,10 @@ + #include "os-linux.h" + #endif + +-#define JFFS2_NATIVE_ENDIAN +- + /* Note we handle mode bits conversion from JFFS2 (i.e. Linux) to/from + whatever OS we're actually running on here too. */ + +-#if defined(JFFS2_NATIVE_ENDIAN) ++#if defined(CONFIG_JFFS2_NATIVE_ENDIAN) + #define cpu_to_je16(x) ((jint16_t){x}) + #define cpu_to_je32(x) ((jint32_t){x}) + #define cpu_to_jemode(x) ((jmode_t){os_to_jffs2_mode(x)}) +@@ -42,7 +40,7 @@ + #define je16_to_cpu(x) ((x).v16) + #define je32_to_cpu(x) ((x).v32) + #define jemode_to_cpu(x) (jffs2_to_os_mode((x).m)) +-#elif defined(JFFS2_BIG_ENDIAN) ++#elif defined(CONFIG_JFFS2_BIG_ENDIAN) + #define cpu_to_je16(x) ((jint16_t){cpu_to_be16(x)}) + #define cpu_to_je32(x) ((jint32_t){cpu_to_be32(x)}) + #define cpu_to_jemode(x) ((jmode_t){cpu_to_be32(os_to_jffs2_mode(x))}) +@@ -50,7 +48,7 @@ + #define je16_to_cpu(x) (be16_to_cpu(x.v16)) + #define je32_to_cpu(x) (be32_to_cpu(x.v32)) + #define jemode_to_cpu(x) (be32_to_cpu(jffs2_to_os_mode((x).m))) +-#elif defined(JFFS2_LITTLE_ENDIAN) ++#elif defined(CONFIG_JFFS2_LITTLE_ENDIAN) + #define cpu_to_je16(x) ((jint16_t){cpu_to_le16(x)}) + #define cpu_to_je32(x) ((jint32_t){cpu_to_le32(x)}) + #define cpu_to_jemode(x) ((jmode_t){cpu_to_le32(os_to_jffs2_mode(x))}) |