Skip to content
Snippets Groups Projects
  1. Aug 16, 2017
  2. Jul 12, 2017
  3. Jul 10, 2017
    • Lothar Waßmann's avatar
      cmd, nand: fix broken output of "nand info" · 66dc09c5
      Lothar Waßmann authored
      
      If the value of either "nand options" or "bbt options" has a zero in
      the most significant nibble, the '0x' prefix will be isolated from the
      value like shown below:
      |Device 0: nand0, sector size 128 KiB
      |  Page size       2048 b
      |  OOB size          64 b
      |  Erase size    131072 b
      |  subpagesize     2048 b
      |  options     0x40000200
      |  bbt options 0x   60000
      
      Change the format string to produce leading zeroes filling the gap.
      
      Signed-off-by: default avatarLothar Waßmann <LW@KARO-electronics.de>
      66dc09c5
  4. Sep 02, 2016
  5. Sep 01, 2016
  6. Aug 26, 2016
    • Tony Lindgren's avatar
      nand: Fix set_dev checks for no device · 1cfce74f
      Tony Lindgren authored
      
      If we do nand device 0 command in u-boot on a device that has NAND support
      enabled but no NAND chip, we can get data abort at least on omaps.
      
      Fix the issue by replacing the check with nand_info[dev] as
      suggested by Scott Wood. The check for name existed before because before
      the array-to-pointer conversion there was no way to directly test
      nand_info[dev] for emptiness.
      
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      1cfce74f
  7. Jul 25, 2016
    • Boris Brezillon's avatar
      cmd, nand: add an option to disable the verification when writing in raw mode · 2dc3c483
      Boris Brezillon authored
      
      Modern NANDs do not guarantee that data written in raw mode will not
      contain bitflips just after writing them. This is fine since the number
      of bitflips should be rather low and thus fixable by the ECC engine,
      but since we are reading data in raw mode to verify if they match the
      input data we cannot prevent failures if some bits are flipped.
      
      The option of using standard mode to verify the data is not acceptable
      either, since one of the usage of raw mode is to allow flashing images
      that do not respect the standard NAND page layout or the default ECC
      config (this is the case on Allwinner platforms, where the ROM code
      tests several hardcoded configs, which are not necessarily matching the
      NAND characteristics).
      
      Add an extension to the nand write.raw command allowing one to disable
      the verification step.
      
      Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
      Reviewed-by: default avatarTom Rini <trini@konsulko.com>
      2dc3c483
  8. Jun 20, 2016
  9. Jun 04, 2016
  10. Jan 25, 2016
  11. Nov 20, 2015
  12. Jun 29, 2015
  13. Apr 23, 2015
  14. Mar 31, 2015
    • Peter Tyser's avatar
      nand: yaffs: Remove the "nand write.yaffs" command · 004a1fdb
      Peter Tyser authored
      This command is only enabled by one board, complicates the NAND code,
      and doesn't appear to have been functioning properly for several
      years.  If there are no bad blocks in the NAND region being written
      nand_write_skip_bad() will take the shortcut of calling nand_write()
      which bypasses the special yaffs handling.  This causes invalid YAFFS
      data to be written. See
      http://lists.denx.de/pipermail/u-boot/2011-September/102830.html
      
       for
      an example and a potential workaround.
      
      U-Boot still retains the ability to mount and access YAFFS partitions
      via CONFIG_YAFFS2.
      
      Signed-off-by: default avatarPeter Tyser <ptyser@xes-inc.com>
      004a1fdb
    • Peter Tyser's avatar
      cmd_nand: Verify writes to NAND · 6b94f118
      Peter Tyser authored
      
      Previously NAND writes were only verified when CONFIG_MTD_NAND_VERIFY_WRITE
      was defined.  On boards without this define writes could fail silently.
      Boards with CONFIG_MTD_NAND_VERIFY_WRITE could prematurely report
      failures which ECC could correct.
      
      Add a verification step after all "nand write[.x]" commands to ensure the
      writes were successful.  The verification uses ECC for for "normal"
      writes, but does not for raw and yaffs writes.  Some test cases which
      inject fake bad bits on a 2K page flash are below.
      
      Test cases with CONFIG_MTD_NAND_VERIFY_WRITE defined:
        Example of an ECC write which previously failed when
        CONFIG_MTD_NAND_VERIFY_WRITE was defined, but now succeeds because ECC
        is used during verification:
            nand erase 0 0x10000
            dhcp /somefile
            mw.b 0x10000 0xff 0x2000
            mw.b 0x10020 0xfe 1
            nand write.raw 0x10000 0x800 1
            mw.b 0x1000020 0x01 1
            nand write 0x1000000 0x800 0x1800
      
      Test cases without CONFIG_MTD_NAND_VERIFY_WRITE defined:
        Example of an ECC write which previously silently failed:
            nand erase 0 0x10000
            dhcp /somefile
            mw.b 0x10000 0xff 0x2000
            mw.b 0x10020 0x00 1
            nand write.raw 0x10000 0x800 1
            mw.b 0x1000020 0xff 1
            nand write 0x1000000 0x800 0x1800
      
        Example of a raw write which previously failed silently due to stuck
        data bit, but now errors out:
            nand erase 0 0x10000
            dhcp /somefile
            mw.b 0x10000 0xff 0x2000
            mw.b 0x10020 0xfe 1
            nand write.raw 0x10000 0x800 1
            mw.b 0x1000020 0x01 1
            nand write.raw 0x1000000 0x800 3
      
        Example of a raw write which previously failed silently due to stuck OOB
        bit, but now errors out:
            nand erase 0 0x10000
            dhcp /somefile
            mw.b 0x10000 0xff 0x2000
            mw.b 0x10810 0xfe 1
            nand write.raw 0x10000 0x800 1
            mw.b 0x1000810 0x01 1
            nand write.raw 0x1000000 0x800 3
      
      Signed-off-by: default avatarPeter Tyser <ptyser@xes-inc.com>
      Tested-by: default avatarHeiko Schocher <hs@denx.de>
      Acked-by: default avatarHeiko Schocher <hs@denx.de>
      6b94f118
  15. Sep 24, 2014
  16. Jun 05, 2014
    • Heiko Schocher's avatar
      bootm: make use of legacy image format configurable · 21d29f7f
      Heiko Schocher authored
      
      make the use of legacy image format configurable through
      the config define CONFIG_IMAGE_FORMAT_LEGACY.
      
      When relying on signed FIT images with required signature check
      the legacy image format should be disabled. Therefore introduce
      this new define and enable legacy image format if CONFIG_FIT_SIGNATURE
      is not set. If CONFIG_FIT_SIGNATURE is set disable per default
      the legacy image format.
      
      Signed-off-by: default avatarHeiko Schocher <hs@denx.de>
      Cc: Simon Glass <sjg@chromium.org>
      Cc: Lars Steubesand <lars.steubesand@philips.com>
      Cc: Mike Pearce <mike@kaew.be>
      Cc: Wolfgang Denk <wd@denx.de>
      Cc: Tom Rini <trini@ti.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      21d29f7f
  17. May 23, 2014
  18. Aug 22, 2013
  19. Jun 21, 2013
    • Scott Wood's avatar
      nand: Don't call adjust_size_for_badblocks for erase · 9b80aa8e
      Scott Wood authored
      
      adjust_size_for_badblocks reduces the operation size to account
      for the block skipping done by the read/write functions when an
      interval (partition name or whole chip) is specified rather than a data
      amount.
      
      Erase does not do block skipping, except for erase.spread which takes
      a data amount rather than an interval (and thus already does not call
      adjust_size_for_badblocks).  Calling adjust_size_for_badblocks when
      block skipping is not done means that if bad blocks are present,
      the "nand erase.part" and "nand erase.chip" commands will fail to erase
      blocks at the end of the interval.
      
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      Cc: Harvey Chapman <hchapman@3gfp.com>
      Acked-by: default avatarHeiko Schocher <hs@denx.de>
      9b80aa8e
  20. May 31, 2013
    • Sergey Lapin's avatar
      mtd: resync with Linux-3.7.1 · dfe64e2c
      Sergey Lapin authored
      
      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: default avatarSergey Lapin <slapin@ossfans.org>
      [scottwood@freescale.com: some eccstrength and build fixes]
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      dfe64e2c
  21. May 22, 2013
  22. Apr 10, 2013
  23. Mar 01, 2013
  24. Feb 23, 2013
  25. Nov 26, 2012
  26. Nov 04, 2012
    • Kim Phillips's avatar
      common/cmd_*.c: sparse fixes · 088f1b19
      Kim Phillips authored
      
      cmd_boot.c:40:5: warning: symbol 'do_go' was not declared. Should it be static?
      cmd_bootm.c:164:6: warning: symbol '__arch_preboot_os' was not declared. Should it be static?
      cmd_bootm.c:477:5: warning: symbol 'do_bootm_subcommand' was not declared. Should it be static?
      cmd_bootm.c:1022:1: error: directive in argument list
      cmd_bootm.c:1028:1: error: directive in argument list
      cmd_bootm.c:1029:1: error: directive in argument list
      cmd_bootm.c:1036:1: error: directive in argument list
      cmd_bootm.c:1042:1: error: directive in argument list
      cmd_bootm.c:1044:1: error: directive in argument list
      cmd_bootm.c:1045:1: error: directive in argument list
      cmd_bootm.c:1047:1: error: directive in argument list
      cmd_bootm.c:1089:5: warning: symbol 'do_iminfo' was not declared. Should it be static?
      cmd_bootm.c:1176:5: warning: symbol 'do_imls' was not declared. Should it be static?
      cmd_bootm.c:1654:1: error: directive in argument list
      cmd_bootm.c:1660:1: error: directive in argument list
      cmd_console.c:32:5: warning: symbol 'do_coninfo' was not declared. Should it be s
      cmd_date.c:46:5: warning: symbol 'do_date' was not declared. Should it be static?
      cmd_echo.c:27:5: warning: symbol 'do_echo' was not declared. Should it be static?
      cmd_exit.c:27:5: warning: symbol 'do_exit' was not declared. Should it be static?
      cmd_fat.c:97:5: warning: symbol 'do_fat_ls' was not declared. Should it be static?
      cmd_fat.c:136:5: warning: symbol 'do_fat_fsinfo' was not declared. Should it be s
      cmd_fdt.c:66:5: warning: symbol 'do_fdt' was not declared. Should it be static?
      cmd_fdt.c:542:43: warning: incorrect type in assignment (different base types)
      cmd_fdt.c:542:43:    expected unsigned int [unsigned] [usertype] <noident>
      cmd_fdt.c:542:43:    got restricted __be32 [usertype] <noident>
      cmd_fdt.c:679:42: warning: cast to restricted __be32
      cmd_fdt.c:820:1: error: directive in argument list
      cmd_fdt.c:822:1: error: directive in argument list
      cmd_flash.c:292:5: warning: symbol 'do_flinfo' was not declared. Should it be static?
      cmd_flash.c:324:5: warning: symbol 'do_flerase' was not declared. Should it be static?
      cmd_flash.c:457:5: warning: symbol 'do_protect' was not declared. Should it be st
      cmd_help.c:27:5: warning: symbol 'do_help' was not declared. Should it be static?
      cmd_i2c.c:136:6: warning: symbol '__def_i2c_init_board' was not declared. Should it be static?
      cmd_i2c.c:144:14: warning: symbol '__def_i2c_get_bus_speed' was not declared. Should it be static?
      cmd_i2c.c:151:5: warning: symbol '__def_i2c_set_bus_speed' was not declared. Should it be static?
      cmd_i2c.c:1322:1: error: directive in argument list
      cmd_i2c.c:1324:1: error: directive in argument list
      cmd_i2c.c:1326:1: error: directive in argument list
      cmd_i2c.c:1328:1: error: directive in argument list
      cmd_i2c.c:1337:1: error: directive in argument list
      cmd_i2c.c:1339:1: error: directive in argument list
      cmd_irq.c:27:5: warning: symbol 'do_interrupts' was not declared. Should it be static?
      cmd_itest.c:133:5: warning: symbol 'binary_test' was not declared. Should it be static?
      cmd_itest.c:158:5: warning: symbol 'do_itest' was not declared. Should it be stat
      cmd_load.c:54:5: warning: symbol 'do_load_serial' was not declared. Should it be static?
      cmd_load.c:431:6: warning: symbol 'his_eol' was not declared. Should it be static?
      cmd_load.c:432:6: warning: symbol 'his_pad_count' was not declared. Should it be static?
      cmd_load.c:433:6: warning: symbol 'his_pad_char' was not declared. Should it be static?
      cmd_load.c:434:6: warning: symbol 'his_quote' was not declared. Should it be static?
      cmd_load.c:436:5: warning: symbol 'do_load_serial_bin' was not declared. Should it be static?
      cmd_load.c:549:6: warning: symbol 'send_pad' was not declared. Should it be static?
      cmd_load.c:558:6: warning: symbol 'ktrans' was not declared. Should it be static?
      cmd_load.c:568:5: warning: symbol 'chk1' was not declared. Should it be static?
      cmd_load.c:578:6: warning: symbol 's1_sendpacket' was not declared. Should it be static?
      cmd_load.c:587:6: warning: symbol 'send_ack' was not declared. Should it be static?
      cmd_load.c:600:6: warning: symbol 'send_nack' was not declared. Should it be static?
      cmd_load.c:614:6: warning: symbol 'os_data_init' was not declared. Should it be static?
      cmd_load.c:615:6: warning: symbol 'os_data_char' was not declared. Should it be static?
      cmd_load.c:657:6: warning: symbol 'k_data_init' was not declared. Should it be static?
      cmd_load.c:663:6: warning: symbol 'k_data_save' was not declared. Should it be static?
      cmd_load.c:669:6: warning: symbol 'k_data_restore' was not declared. Should it be static?
      cmd_load.c:675:6: warning: symbol 'k_data_char' was not declared. Should it be static?
      cmd_load.c:693:6: warning: symbol 'send_parms' was not declared. Should it be static?
      cmd_load.c:694:6: warning: symbol 'send_ptr' was not declared. Should it be static?
      cmd_load.c:698:6: warning: symbol 'handle_send_packet' was not declared. Should i
      cmd_mdio.c:60:5: warning: symbol 'mdio_write_ranges' was not declared. Should it be static?
      cmd_mdio.c:82:5: warning: symbol 'mdio_read_ranges' was not declared. Should it be static?
      cmd_mdio.c:115:5: warning: symbol 'extract_reg_range' was not declared. Should it be static?
      cmd_mdio.c:144:5: warning: symbol 'extract_phy_range' was not declared. Should it
      cmd_mem.c:54:5: warning: symbol 'do_mem_md' was not declared. Should it be static?
      cmd_mem.c:150:5: warning: symbol 'do_mem_mm' was not declared. Should it be static?
      cmd_mem.c:154:5: warning: symbol 'do_mem_nm' was not declared. Should it be static?
      cmd_mem.c:159:5: warning: symbol 'do_mem_mw' was not declared. Should it be static?
      cmd_mem.c:256:5: warning: symbol 'do_mem_cmp' was not declared. Should it be static?
      cmd_mem.c:326:5: warning: symbol 'do_mem_cp' was not declared. Should it be static?
      cmd_mem.c:436:5: warning: symbol 'do_mem_base' was not declared. Should it be static?
      cmd_mem.c:449:5: warning: symbol 'do_mem_loop' was not declared. Should it be static?
      cmd_mem.c:595:5: warning: symbol 'do_mem_mtest' was not declared. Should it be static?
      cmd_mem.c:618:26: warning: Using plain integer as NULL pointer
      cmd_mem.c:1057:5: warning: symbol 'do_mem_crc' was not declared. Should it be static?
      cmd_misc.c:30:5: warning: symbol 'do_sleep' was not declared. Should it be static
      cmd_mmc.c:118:5: warning: symbol 'do_mmcinfo' was not declared. Should it be static?
      cmd_mmc.c:272:32: warning: Using plain integer as NULL pointer
      cmd_mmc.c:150:5: warning: symbol 'do_mmcops' was not declared. Should it be stati
      cmd_mp.c:27:1: warning: symbol 'cpu_cmd' was not declared. Should it be static?
      cmd_mp.c:85:1: error: directive in argument list
      cmd_mp.c:88:1: error: directive in argument list
      cmd_mtdparts.c:150:18: warning: symbol 'mtdids' was not declared. Should it be static?
      cmd_mtdparts.c:153:18: warning: symbol 'devices' was not declared. Should it be static?
      cmd_mtdparts.c:713:5: warning: symbol 'mtd_device_validate' was not declared. Should it be static?
      cmd_mtdparts.c:1887:5: warning: symbol 'do_chpart' was not declared. Should it be static?
      cmd_mtdparts.c:1925:5: warning: symbol 'do_mtdparts' was not declared. Should it be static?
      cmd_mtdparts.c:2060:1: error: directive in argument list
      cmd_mtdparts.c:2063:1: error: directive in argument list
      cmd_mtdparts.c:2066:1: error: directive in argument list
      cmd_mtdparts.c:2071:1: error: directive in argument list
      cmd_mtdparts.c:2073:1: error: directive in argument list
      cmd_nand.c:377:18: error: bad constant expression
      cmd_nand.c:431:5: warning: symbol 'do_nand' was not declared. Should it be static?
      cmd_nand.c:796:1: error: directive in argument list
      cmd_nand.c:801:1: error: directive in argument list
      cmd_nand.c:802:1: error: directive in argument list
      cmd_nand.c:806:1: error: directive in argument list
      cmd_nand.c:819:1: error: directive in argument list
      cmd_nand.c:824:1: error: directive in argument list
      cmd_nand.c:825:1: error: directive in argument list
      cmd_nand.c:831:1: error: directive in argument list
      cmd_nand.c:918:5: warning: symbol 'do_nandboot' was not declared. Should it be static?
      cmd_net.c:33:5: warning: symbol 'do_bootp' was not declared. Should it be static?
      cmd_net.c:107:5: warning: symbol 'do_dhcp' was not declared. Should it be static?
      cmd_net.c:120:5: warning: symbol 'do_nfs' was not declared. Should it be static?
      cmd_nvedit.c:138:5: warning: symbol 'do_env_print' was not declared. Should it be static?
      cmd_nvedit.c:323:5: warning: symbol '_do_env_set' was not declared. Should it be static?
      cmd_nvedit.c:435:5: warning: symbol 'do_env_set' was not declared. Should it be static?
      cmd_nvedit.c:514:5: warning: symbol 'do_env_edit' was not declared. Should it be static?
      cmd_nvedit.c:620:5: warning: symbol 'do_env_save' was not declared. Should it be static?
      cmd_nvedit.c:1016:1: error: directive in argument list
      cmd_nvedit.c:1018:1: error: directive in argument list
      cmd_nvedit.c:1021:1: error: directive in argument list
      cmd_nvedit.c:1023:1: error: directive in argument list
      cmd_nvedit.c:1024:1: error: directive in argument list
      cmd_nvedit.c:1026:1: error: directive in argument list
      cmd_nvedit.c:1027:1: error: directive in argument list
      cmd_nvedit.c:1029:1: error: directive in argument list
      cmd_nvedit.c:1030:1: error: directive in argument list
      cmd_nvedit.c:1032:1: error: directive in argument list
      cmd_nvedit.c:1034:1: error: directive in argument list
      cmd_nvedit.c:1036:1: error: directive in argument list
      cmd_nvedit.c:1037:1: error: directive in argument list
      cmd_nvedit.c:1039:1: error: directive in argument list
      cmd_pci.c:38:17: warning: symbol 'ShortPCIListing' was not declared. Should it be static?
      cmd_pci.c:38:22: warning: 'ShortPCIListing' defined but not used [-Wunused-variable]
      cmd_pci.c:411:5: warning: symbol 'do_pci' was not declared. Should it be static?
      cmd_pci.c:494:1: error: directive in argument list
      cmd_pci.c:497:1: error: directive in argument list
      cmd_reginfo.c:40:5: warning: symbol 'do_reginfo' was not declared. Should it be static?
      cmd_sata.c:31:5: warning: symbol 'sata_curr_device' was not declared. Should it be static?
       note -> ata_piix.c doesn't seem to use 'sata_curr_device'; deleted.
      cmd_sata.c:32:18: warning: symbol 'sata_dev_desc' was not declared. Should it be static?
      cmd_sata.c:70:5: warning: symbol 'do_sata' was not declared. Should it be static?
      cmd_setexpr.c:53:5: warning: symbol 'do_setexpr' was not declared. Should it be static?
      cmd_source.c:186:1: error: directive in argument list
      cmd_source.c:190:1: error: directive in argument list
      cmd_test.c:27:5: warning: symbol 'do_test' was not declared. Should it be static?
      cmd_test.c:153:5: warning: symbol 'do_false' was not declared. Should it be static?
      cmd_test.c:164:5: warning: symbol 'do_true' was not declared. Should it be static
      cmd_usb.c:43:6: warning: symbol 'usb_get_class_desc' was not declared. Should it be static?
      cmd_usb.c:69:6: warning: symbol 'usb_display_class_sub' was not declared. Should it be static?
      cmd_usb.c:151:6: warning: symbol 'usb_display_string' was not declared. Should it be static?
      cmd_usb.c:161:6: warning: symbol 'usb_display_desc' was not declared. Should it be static?
      cmd_usb.c:195:6: warning: symbol 'usb_display_conf_desc' was not declared. Should it be static?
      cmd_usb.c:210:6: warning: symbol 'usb_display_if_desc' was not declared. Should it be static?
      cmd_usb.c:227:6: warning: symbol 'usb_display_ep_desc' was not declared. Should it be static?
      cmd_usb.c:252:6: warning: symbol 'usb_display_config' was not declared. Should it be static?
      cmd_usb.c:283:6: warning: symbol 'usb_show_tree_graph' was not declared. Should it be static?
      cmd_usb.c:343:6: warning: symbol 'usb_show_tree' was not declared. Should it be static?
      cmd_usb.c:356:5: warning: symbol 'do_usbboot' was not declared. Should it be static?
      cmd_usb.c:366:5: warning: symbol 'do_usb' was not declared. Should it be static?
      cmd_version.c:31:5: warning: symbol 'do_version' was not declared. Should it be s
      cmd_ximg.c:46:1: warning: symbol 'do_imgextract' was not declared. Should it be static?
      cmd_ximg.c:272:1: error: directive in argument list
      cmd_ximg.c:276:1: error: directive in argument list
      
      Signed-off-by: default avatarKim Phillips <kim.phillips@freescale.com>
      088f1b19
  27. Sep 17, 2012
  28. Sep 07, 2012
  29. Jun 08, 2012
  30. May 22, 2012
Loading