01 Jun, 2013

1 commit

  • This patch is essentially an update of u-boot MTD subsystem to
    the state of Linux-3.7.1 with exclusion of some bits:

    - the update is concentrated on NAND, no onenand or CFI/NOR/SPI
    flashes interfaces are updated EXCEPT for API changes.

    - new large NAND chips support is there, though some updates
    have got in Linux-3.8.-rc1, (which will follow on top of this patch).

    To produce this update I used tag v3.7.1 of linux-stable repository.

    The update was made using application of relevant patches,
    with changes relevant to U-Boot-only stuff sticked together
    to keep bisectability. Then all changes were grouped together
    to this patch.

    Signed-off-by: Sergey Lapin
    [scottwood@freescale.com: some eccstrength and build fixes]
    Signed-off-by: Scott Wood

    Sergey Lapin
     

30 Apr, 2012

1 commit


07 Mar, 2012

1 commit


18 Dec, 2010

1 commit

  • Yaffs image require to use the oob to store some info, so when we
    burn the yaffs image, we need to also write the image's oob part
    into flash.

    This patch add addition suffix to onenand write to give the uboot
    the power to directly burn the yaffs image to onenand.

    Signed-off-by: Lei Wen

    Lei Wen
     

08 Dec, 2010

1 commit

  • Seems original implementation forget to set the pointer to point
    to the oobbuf, so when we want to see oob buf, we see nothing...
    Fix it by get pointer as the oobbuf set.

    Signed-off-by: Lei Wen

    Lei Wen
     

30 Oct, 2010

1 commit

  • By now, the majority of architectures have working relocation
    support, so the few remaining architectures have become exceptions.
    To make this more obvious, we make working relocation now the default
    case, and flag the remaining cases with CONFIG_NEEDS_MANUAL_RELOC.

    Signed-off-by: Wolfgang Denk
    Tested-by: Heiko Schocher
    Tested-by: Reinhard Meyer

    Wolfgang Denk
     

28 Oct, 2010

1 commit


24 Oct, 2010

1 commit


25 Jul, 2010

1 commit

  • Lots of code use this construct:

    cmd_usage(cmdtp);
    return 1;

    Change cmd_usage() let it return 1 - then we can replace all these
    ocurrances by

    return cmd_usage(cmdtp);

    This fixes a few places with incorrect return code handling, too.

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     

05 Jul, 2010

1 commit

  • The hush shell dynamically allocates (and re-allocates) memory for the
    argument strings in the "char *argv[]" argument vector passed to
    commands. Any code that modifies these pointers will cause serious
    corruption of the malloc data structures and crash U-Boot, so make
    sure the compiler can check that no such modifications are being done
    by changing the code into "char * const argv[]".

    This modification is the result of debugging a strange crash caused
    after adding a new command, which used the following argument
    processing code which has been working perfectly fine in all Unix
    systems since version 6 - but not so in U-Boot:

    int main (int argc, char **argv)
    {
    while (--argc > 0 && **++argv == '-') {
    /* ====> */ while (*++*argv) {
    switch (**argv) {
    case 'd':
    debug++;
    break;
    ...
    default:
    usage ();
    }
    }
    }
    ...
    }

    The line marked "====>" will corrupt the malloc data structures and
    usually cause U-Boot to crash when the next command gets executed by
    the shell. With the modification, the compiler will prevent this with
    an
    error: increment of read-only location '*argv'

    N.B.: The code above can be trivially rewritten like this:

    while (--argc > 0 && **++argv == '-') {
    char *arg = *argv;
    while (*++arg) {
    switch (*arg) {
    ...

    Signed-off-by: Wolfgang Denk
    Acked-by: Mike Frysinger

    Wolfgang Denk
     

06 May, 2010

1 commit

  • On the fly also fixed the following things:
    - write help talked about a parameter oob, but that one was not used, so
    removed it from the help message.
    - the test command also allowed a force subcommand but didn't use it.
    eliminated the code.
    - do_onenand made static
    - do_onenand contained
    int blocksize;
    ...
    mtd = &onenand_mtd;
    this = mtd->priv;
    blocksize = (1 << this->erase_shift);
    As blocksize was not used the last two statements were unneeded so
    removed them.
    The first statement (mtd = ....) assigns to a global. Not sure if it
    is needed, and since I could not test this, left the line for now

    Signed-off-by: Frans Meulenbroeks

    Frans Meulenbroeks
     

09 Dec, 2009

1 commit


08 Jul, 2009

1 commit

  • The "nand markbad" and "onenand markbad" commands did not check if an
    argument was passed; if this was forgotten, no error was raised but
    block 0 was marked as bad.

    While fixing this bug, clean up the code a bit and allow to pass more
    than one block address, thus allowing to mark several blocks as bad
    in a single command invocation.

    Signed-off-by: Wolfgang Denk
    Signed-off-by: Scott Wood

    Wolfgang Denk
     

13 Jun, 2009

2 commits

  • Many of the help messages were not really helpful; for example, many
    commands that take no arguments would not print a correct synopsis
    line, but "No additional help available." which is not exactly wrong,
    but not helpful either.

    Commit ``Make "usage" messages more helpful.'' changed this
    partially. But it also became clear that lots of "Usage" and "Help"
    messages (fields "usage" and "help" in struct cmd_tbl_s respective)
    were actually redundant.

    This patch cleans this up - for example:

    Before:
    => help dtt
    dtt - Digital Thermometer and Thermostat

    Usage:
    dtt - Read temperature from digital thermometer and thermostat.

    After:
    => help dtt
    dtt - Read temperature from Digital Thermometer and Thermostat

    Usage:
    dtt

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     
  • This patch brings the U-Boot MTD infrastructure in sync with the current
    Linux MTD version (2.6.30-rc3). Biggest change is the 64bit device size
    support and a resync of the mtdpart.c file which has seen multiple fixes
    meanwhile.

    Signed-off-by: Stefan Roese
    Cc: Scott Wood
    Cc: Kyungmin Park

    Stefan Roese
     

28 Jan, 2009

2 commits


24 Jan, 2009

1 commit


22 Aug, 2008

1 commit


13 Aug, 2008

2 commits


11 Aug, 2008

1 commit

  • While locally preparing some U-Boot patches for ARM based OMAP3 boards, some
    using OneNAND and some using NAND, we found some differences in OneNAND and
    NAND command address handling.

    As this might confuse users (it already confused us), we like to align OneNAND
    and NAND address handling.

    The issue is that cmd_onenand.c subtracts the onenand base address from the
    addresses you type into the u-boot command line so, unlike nand, you can't
    use addresses relative to the start of the onenand part e.g. this won't work:

    onenand read 82000000 280000 400000

    you have to use:

    onenand read 82000000 20280000 400000

    Looking at recent git, the only board currently using OneNAND is Apollon, and
    for this the OneNAND base address is 0 (apollon.h)

    #define CFG_ONENAND_BASE 0x00000000

    so patch below won't break any existing boards and will align OneNAND and NAND
    handling on boards where OneNAND base address is != 0.

    Signed-off-by: Steve Sakoman
    Signed-off-by: Manikandan Pillai
    Signed-off-by: Dirk Behme

    dirk.behme@googlemail.com
     

13 Jul, 2008

1 commit


14 Apr, 2008

1 commit


17 Sep, 2007

1 commit