[U-Boot] [PATCH] [ARM] Apollon UBI support v3
Magnus Lilja
lilja.magnus at gmail.com
Wed Oct 29 20:10:29 CET 2008
Dear Kyungmin Park,
2008/10/28 Kyungmin Park <kmpark at infradead.org>:
> Now you can use the UBI at apollon board
>
> Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>
> ---
> 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..10dd6e7
> --- /dev/null
> +++ b/board/apollon/ubi.c
> @@ -0,0 +1,48 @@
> +/*
> + * board/apollon/ubi.c
> + *
> + * Copyright (C) 2008 Samsung Electronics
> + * Kyungmin Park <kyungmin.park at samsung.com>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#include <common.h>
> +#include <linux/mtd/mtd.h>
> +#include <linux/mtd/partitions.h>
> +#include <jffs2/load_kernel.h>
> +#include <ubi_uboot.h>
> +
> +int ubi_board_scan(void)
> +{
> + struct mtd_device *dev;
> + struct part_info *part;
> + struct mtd_partition mtd_part;
> + char buffer[32];
> + u8 pnum;
> + int err;
> +
> + if (mtdparts_init() != 0)
> + return 1;
> +
> + if (find_dev_and_part("onenand0,4", &dev, &pnum, &part) != 0)
> + return 1;
> +
> + sprintf(buffer, "mtd=%d", pnum);
> + mtd_part.name = buffer;
> + mtd_part.size = part->size;
> + mtd_part.offset = part->offset;
> + add_mtd_partitions(&onenand_mtd, &mtd_part, 1);
> +
> + err = ubi_mtd_param_parse(buffer, NULL);
> + if (err)
> + return err;
> +
> + err = ubi_init();
> + if (err)
> + return err;
> +
> + return 0;
> +}
> diff --git a/include/configs/apollon.h b/include/configs/apollon.h
> index d71ed44..c694989 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
Seems like the #define has been uncommented already.
Also, a doc/README.ubi or something similar would be nice. Something
that contains info on how to enable UBI support for a new board. The
board/apollon/ubi.c could perhaps be used as an example but with more
comments in it.
Regards, Magnus
More information about the U-Boot
mailing list