diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2014-02-03 09:55:55 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-02-03 09:55:55 +0100 |
commit | 52c43f57313f6e2c17326eb53a1469f28438bcc6 (patch) | |
tree | 4c23859beaaa818d52963c2990090eee10b6bd6f /arch/ppc | |
parent | 601bf0fcc62854af68b35d857696be9a4a9e567d (diff) | |
parent | 78f3ac7619cb94c306460fa2248be0e1172f2378 (diff) | |
download | barebox-52c43f57313f6e2c17326eb53a1469f28438bcc6.tar.gz barebox-52c43f57313f6e2c17326eb53a1469f28438bcc6.tar.xz |
Merge branch 'for-next/mtd'
Diffstat (limited to 'arch/ppc')
-rw-r--r-- | arch/ppc/boards/geip-da923rc/env/bin/init | 12 | ||||
-rw-r--r-- | arch/ppc/configs/da923rc_defconfig | 6 | ||||
-rw-r--r-- | arch/ppc/cpu-85xx/tlb.c | 2 | ||||
-rw-r--r-- | arch/ppc/include/asm/bitops.h | 46 | ||||
-rw-r--r-- | arch/ppc/mach-mpc85xx/fsl_law.c | 1 | ||||
-rw-r--r-- | arch/ppc/mach-mpc85xx/include/mach/ffs64.h | 20 |
6 files changed, 42 insertions, 45 deletions
diff --git a/arch/ppc/boards/geip-da923rc/env/bin/init b/arch/ppc/boards/geip-da923rc/env/bin/init index 63089990b3..330a435dd7 100644 --- a/arch/ppc/boards/geip-da923rc/env/bin/init +++ b/arch/ppc/boards/geip-da923rc/env/bin/init @@ -2,3 +2,15 @@ export PATH=/env/bin source /env/config + +#Define a 26MB partition in flash starting at offset 0x20000 +addpart -n /dev/nor0 0x1a00000@0x20000(boot) +ubiattach /dev/boot + +if [ $? -ne 0 ]; then + echo "Fail to attach UBI device" + exit 1; +fi + +mkdir /mnt +mount -t ubifs /dev/ubi0.boot /mnt diff --git a/arch/ppc/configs/da923rc_defconfig b/arch/ppc/configs/da923rc_defconfig index a9dc0dff95..da1b13aac7 100644 --- a/arch/ppc/configs/da923rc_defconfig +++ b/arch/ppc/configs/da923rc_defconfig @@ -42,6 +42,12 @@ CONFIG_DRIVER_CFI_BANK_WIDTH_4=n CONFIG_CFI_BUFFER_WRITE=y CONFIG_MTD=y CONFIG_MTD_WRITE=y +CONFIG_MTD_UBI=y +CONFIG_CMD_UBI=y +CONFIG_FS_UBIFS=y +CONFIG_FS_UBIFS_COMPRESSION_LZO=y +CONFIG_CMD_UNLZO=y +CONFIG_LZO_DECOMPRESS=y CONFIG_MALLOC_SIZE=0x2800000 CONFIG_PROMPT="GE> " CONFIG_BAUDRATE=9600 diff --git a/arch/ppc/cpu-85xx/tlb.c b/arch/ppc/cpu-85xx/tlb.c index 3f56655321..3c7057284f 100644 --- a/arch/ppc/cpu-85xx/tlb.c +++ b/arch/ppc/cpu-85xx/tlb.c @@ -24,7 +24,7 @@ #include <common.h> #include <asm/processor.h> #include <asm/config.h> -#include <asm/bitops.h> +#include <linux/log2.h> #include <mach/mmu.h> void e500_invalidate_tlb(u8 tlb) diff --git a/arch/ppc/include/asm/bitops.h b/arch/ppc/include/asm/bitops.h index 3b31d5420e..eea9e0c430 100644 --- a/arch/ppc/include/asm/bitops.h +++ b/arch/ppc/include/asm/bitops.h @@ -6,13 +6,7 @@ #define _PPC_BITOPS_H #include <asm/byteorder.h> - -extern void set_bit(int nr, volatile void *addr); -extern void clear_bit(int nr, volatile void *addr); -extern void change_bit(int nr, volatile void *addr); -extern int test_and_set_bit(int nr, volatile void *addr); -extern int test_and_clear_bit(int nr, volatile void *addr); -extern int test_and_change_bit(int nr, volatile void *addr); +#include <asm-generic/bitops/ops.h> /* * Arguably these bit operations don't imply any memory barrier or @@ -143,13 +137,6 @@ extern __inline__ int test_and_change_bit(int nr, volatile void *addr) } #endif /* __INLINE_BITOPS */ -extern __inline__ int test_bit(int nr, __const__ volatile void *addr) -{ - __const__ unsigned int *p = (__const__ unsigned int *) addr; - - return ((p[nr >> 5] >> (nr & 0x1f)) & 1) != 0; -} - /* Return the bit position of the most significant 1 bit in a word */ extern __inline__ int __ilog2(unsigned int x) { @@ -178,36 +165,6 @@ static inline int fls(unsigned int x) return 32 - lz; } -/* - * fls64 - find last set bit in a 64-bit word - * @x: the word to search - * - * This is defined in a similar way as the libc and compiler builtin - * ffsll, but returns the position of the most significant set bit. - * - * fls64(value) returns 0 if value is 0 or the position of the last - * set bit if value is nonzero. The last (most significant) bit is - * at position 64. - */ - -static inline int fls64(__u64 x) -{ - __u32 h = x >> 32; - if (h) - return fls(h) + 32; - return fls(x); -} - -static inline int __ilog2_u64(u64 n) -{ - return fls64(n) - 1; -} - -static inline int ffs64(u64 x) -{ - return __ilog2_u64(x & -x) + 1ull; -} - #ifdef __KERNEL__ /* @@ -220,6 +177,7 @@ extern __inline__ int ffs(int x) return __ilog2(x & -x) + 1; } +#include <asm-generic/bitops/fls64.h> #include <asm-generic/bitops/hweight.h> #endif /* __KERNEL__ */ diff --git a/arch/ppc/mach-mpc85xx/fsl_law.c b/arch/ppc/mach-mpc85xx/fsl_law.c index 34c039de86..38902e3be8 100644 --- a/arch/ppc/mach-mpc85xx/fsl_law.c +++ b/arch/ppc/mach-mpc85xx/fsl_law.c @@ -24,6 +24,7 @@ #include <common.h> #include <asm/config.h> #include <asm/fsl_law.h> +#include <mach/ffs64.h> #define FSL_HW_NUM_LAWS FSL_NUM_LAWS diff --git a/arch/ppc/mach-mpc85xx/include/mach/ffs64.h b/arch/ppc/mach-mpc85xx/include/mach/ffs64.h new file mode 100644 index 0000000000..045498c513 --- /dev/null +++ b/arch/ppc/mach-mpc85xx/include/mach/ffs64.h @@ -0,0 +1,20 @@ +/* + * Copyright 2013 GE Intelligent Platforms, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#include <linux/log2.h> + +static inline int ffs64(u64 x) +{ + return __ilog2_u64(x & -x) + 1ull; +} |