[U-Boot-Users] [DNX#2006082142000017] [PATCH] NAND feature update
DENX Support System
support at denx.de
Mon Aug 21 00:20:11 CEST 2006
Hello list,
inside the automatic U-Boot patch tracking system a new ticket
[DNX#2006082142000017] was created:
<snip>
> Wolfgang,
>
> this patch implements functionaly I found useful to have and hopefuly
> others can benefit from it too. Please drop all my previous NAND
> related,
> not yet applied patches. Once (if) applied I will rediff the rest.
>
> Now you can do:
>
> # mtdparts
> [snip]
> device nand0 <omapnand.0>, # parts = 5
> #: name size offset
> mask_flags
> 0: kernel0 0x00400000 0x00000000 0
> 1: rootfs0 0x02800000 0x00400000 0
> 2: kernel1 0x00400000 0x02c00000 0
> 3: rootfs1 0x02800000 0x03000000 0
> 4: data 0x02800000 0x05800000 0
>
> # nand write 10400000 kernel1 100000
> NAND write: device 0 offset 0x2c00000, size 0x100000 1048576 bytes
> written: OK
>
> # nboot kernel0
> Loading from NAND 128MiB 3,3V 8-bit, offset 0x0
> ...
>
> # nand era kernel1
> NAND erase: device 0 offset 0x2c00000, size 0x400000 OK
>
> or
>
> # nand era nand0,2
> NAND erase: device 0 offset 0x2c00000, size 0x400000 OK
>
> # chpart rootfs1
> partition changed to nand0,3
> # fsload /boot/uImage
> ### JFFS2 loading '/boot/uImage' to 0x10400000
> ...
>
> etc...
>
> Best regards,
> ladis
>
> Signed-off-by: Ladislav Michl <ladis at linux-mips.org>
>
> CHANGELOG
> * Patch by Ladislav Michl, 18 Aug 2006:
> chpart, nboot and NAND subsystem related commands now accept also
> partition
> name to specify offset.
>
> diff --git a/common/cmd_jffs2.c b/common/cmd_jffs2.c
> index 201c3c1..90b2930 100644
> --- a/common/cmd_jffs2.c
> +++ b/common/cmd_jffs2.c
> @@ -1300,7 +1303,7 @@ static void list_partitions(void)
> * Given partition identifier in form of <dev_type><dev_num>,<part_num>
> find
> * corresponding device and verify partition number.
> *
> - * @param id string describing device and partition
> + * @param id string describing device and partition or partition name
> * @param dev pointer to the requested device (output)
> * @param part_num verified partition number (output)
> * @param part pointer to requested partition (output)
> @@ -1309,11 +1312,23 @@ static void list_partitions(void)
> int find_dev_and_part(const char *id, struct mtd_device **dev,
> u8 *part_num, struct part_info **part)
> {
> + struct list_head *dentry, *pentry;
> u8 type, dnum, pnum;
> const char *p;
>
> DEBUGF("--- find_dev_and_part ---\nid = %s\n", id);
>
> + list_for_each(dentry, &devices) {
> + *part_num = 0;
> + *dev = list_entry(dentry, struct mtd_device, link);
> + list_for_each(pentry, &(*dev)->parts) {
> + *part = list_entry(pentry, struct part_info, link);
> + if (strcmp((*part)->name, id) == 0)
> + return 0;
> + (*part_num)++;
> + }
> + }
> +
> p = id;
> *dev = NULL;
> *part = NULL;
> diff --git a/common/cmd_nand.c b/common/cmd_nand.c
> index 21adb1b..2c9268c 100644
> --- a/common/cmd_nand.c
> +++ b/common/cmd_nand.c
> @@ -36,6 +36,15 @@ #endif
> #include <jffs2/jffs2.h>
> #include <nand.h>
</snip>
Your U-Boot support team
More information about the U-Boot
mailing list