On 18:19 Tue 21 Oct , Kyungmin Park wrote: > If you want to UBI on Apollon, uncomment the CONFIG_SYS_USE_UBI macro > > Signed-off-by: Kyungmin Park <[EMAIL PROTECTED]> > --- > board/apollon/Makefile | 4 ++- > board/apollon/ubi.c | 55 > +++++++++++++++++++++++++++++++++++++++++++++ > include/configs/apollon.h | 27 +++++++++++++++++++-- > 3 files changed, 82 insertions(+), 4 deletions(-) > create mode 100644 board/apollon/ubi.c > > diff --git a/board/apollon/Makefile b/board/apollon/Makefile > index 9bac9a6..4c3e57f 100644 > --- a/board/apollon/Makefile > +++ b/board/apollon/Makefile > @@ -25,9 +25,11 @@ include $(TOPDIR)/config.mk > > LIB = $(obj)lib$(BOARD).a > > -COBJS := apollon.o mem.o sys_info.o > +COBJS-y := apollon.o mem.o sys_info.o > +COBJS-$(CONFIG_CMD_UBI) += ubi.o > SOBJS := lowlevel_init.o > > +COBJS := $(COBJS-y) > SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) > OBJS := $(addprefix $(obj),$(COBJS)) > SOBJS := $(addprefix $(obj),$(SOBJS)) > diff --git a/board/apollon/ubi.c b/board/apollon/ubi.c > new file mode 100644 > index 0000000..342569d > --- /dev/null > +++ b/board/apollon/ubi.c > @@ -0,0 +1,55 @@ > +/* > + * board/apollon/ubi.c > + */ > + > +#include <common.h> > +#include <linux/mtd/mtd.h> > +#include <linux/mtd/partitions.h> > +#include <jffs2/load_kernel.h> > +#include <ubi_uboot.h> > + > +/* common/cmd_jffs2.c */ > +extern int mtdparts_init(void); > +extern int find_dev_and_part(const char *id, struct mtd_device **dev, > + u8 *part_num, struct part_info **part); ^^^^^^^^^^^^^^^^ whitespace please fix It will be better to have it in a header? > + > +/* drivers/mtd/ubi/build.c */ > +extern int ubi_mtd_param_parse(const char *val, struct kernel_param *kp); > +extern int ubi_init(void); It will be better to have it in a header? > + > +#ifdef CONFIG_CMD_UBI please move this to the Makefile > + > +int ubi_board_scan(void) > +{ > + struct mtd_device *dev; ^^^^^^^^ whitespace please fix > + struct part_info *part; ^^^^^^^^ whitespace please fix > + struct mtd_partition mtd_part; whitespace please fix ^^^^^^^^ > + char buffer[32]; ^^^^^^^^ whitespace please fix > + u8 pnum; ^^^^^^^^ whitespace please fix > + int err; ^^^^^^^^ whitespace please fix > + > + if (mtdparts_init() !=0) ^^^^^^^^ whitespace please fix > + return 1; ^^^^^^^^^^^^^^^^ whitespace please fix > + > + if (find_dev_and_part("onenand0,4", &dev, &pnum, &part) != 0) ^^^^^^^^ whitespace please fix > + return 1; ^^^^^^^^^^^^^^^^ whitespace please fix > + > + printf("%s[%d] pnum %d\n", __func__, __LINE__, pnum); ^^^^^^^^ whitespace please fix > + sprintf(buffer, "mtd=%d", pnum); ^^^^^^^^ whitespace please fix > + mtd_part.name = buffer; ^^^^^^^^ whitespace please fix > + mtd_part.size = part->size; ^^^^^^^^ whitespace please fix > + mtd_part.offset = part->offset; ^^^^^^^^ whitespace please fix > + add_mtd_partitions(&onenand_mtd, &mtd_part, 1); ^^^^^^^^ whitespace please fix > + > + err = ubi_mtd_param_parse(buffer, NULL); ^^^^^^^^ whitespace please fix > + if (err) ^^^^^^^^ whitespace please fix > + return err; whitespace please fix > + > + err = ubi_init(); ^^^^^^^^ whitespace please fix > + if (err) ^^^^^^^^ whitespace please fix > + return err; ^^^^^^^^^^^^^^^^ whitespace please fix > + > + return 0; ^^^^^^^^ whitespace please fix > +} > + > +#endif > diff --git a/include/configs/apollon.h b/include/configs/apollon.h > index d71ed44..3377f60 100644 > --- a/include/configs/apollon.h > +++ b/include/configs/apollon.h > @@ -53,6 +53,9 @@ > #define CONFIG_SYS_USE_NOR 1 > #endif > > +/* uncommnet if you want to use UBI */ ???? > +#define CONFIG_SYS_USE_UBI > + > #include <asm/arch/omap2420.h> /* get chip and board defs */ > > #define V_SCLK 12000000 > @@ -73,7 +76,7 @@ > * Size of malloc() pool > */ > #define CONFIG_ENV_SIZE SZ_128K /* Total Size of Environment Sector */ > -#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + SZ_128K) > +#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + SZ_1M) > #define CONFIG_SYS_GBL_DATA_SIZE 128 /* bytes reserved for > initial data */ > > /* > @@ -116,6 +119,12 @@ > #define CONFIG_CMD_DIAG > #define CONFIG_CMD_ONENAND > > +#ifdef CONFIG_SYS_USE_UBI > +#define CONFIG_CMD_JFFS2 > +#define CONFIG_CMD_UBI > +#define CONFIG_RBTREE > +#endif > + > #undef CONFIG_CMD_AUTOSCRIPT > > #ifndef CONFIG_SYS_USE_NOR > @@ -134,9 +143,9 @@ > #define CONFIG_ETHADDR 00:0E:99:00:24:20 > > #ifdef CONFIG_APOLLON_PLUS > -# define CONFIG_BOOTARGS "root=/dev/nfs rw mem=64M > console=ttyS0,115200n8 > ip=192.168.116.25:192.168.116.1:192.168.116.1:255.255.255.0:apollon:eth0:off > nfsroot=/tftpboot/nfsroot profile=2" > +# define CONFIG_BOOTARGS "root=/dev/nfs rw mem=64M > console=ttyS0,115200n8 > ip=192.168.116.25:192.168.116.1:192.168.116.1:255.255.255.0:apollon:eth0:off > nfsroot=/tftpboot/nfsroot profile=2 lpj=1646592 ubi.mtd=4" too long please split > #else > -# define CONFIG_BOOTARGS "root=/dev/nfs rw mem=128M > console=ttyS0,115200n8 > ip=192.168.116.25:192.168.116.1:192.168.116.1:255.255.255.0:apollon:eth0:off > nfsroot=/tftpboot/nfsroot profile=2" > +# define CONFIG_BOOTARGS "root=/dev/nfs rw mem=128M > console=ttyS0,115200n8 > ip=192.168.116.25:192.168.116.1:192.168.116.1:255.255.255.0:apollon:eth0:off > nfsroot=/tftpboot/nfsroot profile=2 lpj=1646592 ubi.mtd=4" ditto > #endif > > #define CONFIG_EXTRA_ENV_SETTINGS > \ > @@ -151,6 +160,7 @@ > "oneboot=onenand read 0x80008000 0x40000 0x200000; go 0x80008000\0"\ > "onesyncboot=run syncmode oneboot\0" \ > "updateb=tftp 0x80180000 u-boot-onenand.bin; onenand erase 0x0 0x20000; > onenand write 0x80180000 0x0 0x20000\0" \ ditto > + "ubi=setenv bootargs ${bootargs} ubi.mtd=4 ${mtdparts}; run uImage\0" \ > "bootcmd=run uboot\0" > > /* > @@ -228,4 +238,15 @@ > #define CONFIG_ENV_IS_IN_ONENAND 1 > #define CONFIG_ENV_ADDR 0x00020000 > > +#ifdef CONFIG_SYS_USE_UBI > +#define CONFIG_JFFS2_CMDLINE > +#define MTDIDS_DEFAULT "onenand0=onenand" > +#define MTDPARTS_DEFAULT "mtdparts=onenand:128k(bootloader)," \ > + "128k(params)," \ > + "2m(kernel)," \ > + "16m(rootfs)," \ > + "32m(fs)," \ > + "-(ubifs)" > +#endif > + > #endif /* __CONFIG_H */ > -- Best Regards, J. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] [ARM] Apollon UBI support
Jean-Christophe PLAGNIOL-VILLARD Tue, 21 Oct 2008 03:22:02 -0700
- [U-Boot] [PATCH] [ARM] Apollon UBI suppor... Kyungmin Park
- Re: [U-Boot] [PATCH] [ARM] Apollon U... Jean-Christophe PLAGNIOL-VILLARD
- Re: [U-Boot] [PATCH] [ARM] Apollon U... Wolfgang Denk
- Re: [U-Boot] [PATCH] [ARM] Apoll... Kyungmin Park
- Re: [U-Boot] [PATCH] [ARM] A... Ben Warren