1. 20 Jan, 2016 1 commit
    • Erik Tideman's avatar
      mmc: emmc and hw partitions partition table id bugfix. · 99e7fc8a
      Erik Tideman authored
      On bootup the emmc's hw partition is always set to 0 and the partition
      table is read from it. When switching to another hw partition the
      partition table's id is not updated but instead the old one from
      hw partition 0 is used. If there is no partition table on hw partition 0
      then the code will terminate and return error even if the desired hw
      partition contains a perfectly fine partition table. This fix updates
      the partition table struct to correspond to the specified hw partition
      before testing if the partition table is valid or not.
      Signed-off-by: default avatarErik Tideman <erik.tideman@faltcom.se>
      Reviewed-by: default avatarTom Rini <trini@konsulko.com>
      [trini: Squash the patch that corrected whitespace in the original into
      this one, wrap with HAVE_BLOCK_DEVICE test]
      Signed-off-by: default avatarTom Rini <trini@konsulko.com>
  2. 15 Jan, 2016 1 commit
  3. 14 Jan, 2016 1 commit
  4. 13 Jan, 2016 1 commit
  5. 23 Nov, 2015 2 commits
    • Patrick Delaunay's avatar
      part:efi: add bootable parameter in gpt command · cfdaf4ca
      Patrick Delaunay authored
      The optional parameter bootable is added in gpt command to set the
      partition attribute flag "Legacy BIOS bootable"
      This flag is used in extlinux and so in with distro to select
      the boot partition where is located the configuration file
      (please check out doc/README.distro for details).
      With this parameter, U-Boot can be used to create the boot partition
      needed for device using distro.
      example of use:
      setenv partitions "name=u-boot,size=60MiB;name=boot,size=60Mib,bootable;\
      > gpt write mmc 0 $partitions
      > part list mmc 0
      Partition Map for MMC device 0  --   Partition Type: EFI
      Part	Start LBA	End LBA		Name
      	Type GUID
      	Partition GUID
        1	0x00000022	0x0001e021	"u-boot"
      	attrs:	0x0000000000000000
      	type:	ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
      	guid:	cceb0b18-39cb-d547-9db7-03b405fa77d4
        2	0x0001e022	0x0003c021	"boot"
      	attrs:	0x0000000000000004
      	type:	ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
      	guid:	d4981a2b-0478-544e-9607-7fd3c651068d
        3	0x0003c022	0x003a9fde	"rootfs"
      	attrs:	0x0000000000000000
      	type:	ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
      	guid:	6d6c9a36-e919-264d-a9ee-bd00379686c7
      > part list mmc 0 -bootable devplist
      > printenv devplist
      Then the distro scripts will search extlinux in partition 2
      and not in the first partition.
      Signed-off-by: default avatarPatrick Delaunay <patrick.delaunay73@gmail.com>
    • Lukasz Majewski's avatar
      gpt: part: Definition and declaration of GPT verification functions · cef68bf9
      Lukasz Majewski authored
      This commit provides definition and declaration of GPT verification
      functions - namely gpt_verify_headers() and gpt_verify_partitions().
      The former is used to only check CRC32 of GPT's header and PTEs.
      The latter examines each partition entry and compare attributes such as:
      name, start offset and size with ones provided at '$partitions' env
      Signed-off-by: default avatarLukasz Majewski <l.majewski@majess.pl>
      Reviewed-by: default avatarTom Rini <trini@konsulko.com>
      Reviewed-by: default avatarPrzemyslaw Marczak <p.marczak@samsung.com>
  6. 12 Nov, 2015 2 commits
    • Patrick Delaunay's avatar
      uuid: add selection by string for known partition type GUID · bcb41dca
      Patrick Delaunay authored
      short strings can be used in type parameter of gpt command
      to replace the guid string for the types known by u-boot
            partitions = name=boot,size=0x6bc00,type=data; \
            gpt write mmc 0 $partitions
      and they are also used to display the type of partition
      in "part list" command
        Partition Map for MMC device 0  --   Partition Type: EFI
        Part	Start LBA	End LBA		Name
      	Type GUID
      	Partition GUID
          1	0x00000022	0x0000037f	"boot"
      	attrs:	0x0000000000000000
      	type:	ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
      	type:	data
      	guid:	d117f98e-6f2c-d04b-a5b2-331a19f91cb2
          2	0x00000380	0x003a9fdc	"root"
      	attrs:	0x0000000000000000
      	type:	0fc63daf-8483-4772-8e79-3d69d8477de4
      	type:	linux
      	guid:	25718777-d0ad-7443-9e60-02cb591c9737
      Signed-off-by: default avatarPatrick Delaunay <patrick.delaunay73@gmail.com>
    • Patrick Delaunay's avatar
      gpt: add optional parameter type in gpt command · 7561b258
      Patrick Delaunay authored
      code under flag CONFIG_PARTITION_TYPE_GUID
      add parameter "type" to select partition type guid
      example of use with gpt command :
        partitions = uuid_disk=${uuid_gpt_disk}; \
            name=boot,size=0x6bc00,uuid=${uuid_gpt_boot}; \
            name=root,size=0x7538ba00,uuid=${uuid_gpt_root}, \
        gpt write mmc 0 $partitions
      Signed-off-by: default avatarPatrick Delaunay <patrick.delaunay73@gmail.com>
  7. 24 Oct, 2015 2 commits
  8. 11 Sep, 2015 1 commit
  9. 08 Jan, 2015 1 commit
    • Maxime Ripard's avatar
      gpt: Fix the protective MBR partition size · b349abbf
      Maxime Ripard authored
      According to the UEFI Spec (Table 16, section 5.2.3 of the version 2.4 Errata
      B), the protective MBR partition record size must be set to the size of the
      disk minus one, in LBAs.
      However, the current code was setting the size as the total number of LBAs on
      the disk, resulting in an off-by-one error.
      This confused the AM335x ROM code, and will probably confuse other tools as
      Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
  10. 18 Dec, 2014 2 commits
  11. 27 Nov, 2014 1 commit
  12. 25 Oct, 2014 1 commit
  13. 24 Sep, 2014 1 commit
  14. 22 Jul, 2014 1 commit
  15. 23 Jun, 2014 1 commit
    • Stephen Warren's avatar
      sandbox: restore ability to access host fs through standard commands · 4d907025
      Stephen Warren authored
      Commit 95fac6ab "sandbox: Use os functions to read host device tree"
      removed the ability for get_device_and_partition() to handle the "host"
      device type, and redirect accesses to it to the host filesystem. This
      broke some unit tests that use this feature. So, revert that change. The
      code added back by this patch is slightly different to pacify checkpatch.
      However, we're then left with "host" being both:
      - A pseudo device that accesses the hosts real filesystem.
      - An emulated block device, which accesses "sectors" inside a file stored
        on the host.
      In order to resolve this discrepancy, rename the pseudo device from host
      to hostfs, and adjust the unit-tests for this change.
      The "help sb" output is modified to reflect this rename, and state where
      the host and hostfs devices should be used.
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Tested-by: default avatarJosh Wu <josh.wu@atmel.com>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      Tested-by: default avatarSimon Glass <sjg@chromium.org>
  16. 12 Jun, 2014 1 commit
    • Stephen Warren's avatar
      disk: default to HW partition 0 if not specified · ecdd57e2
      Stephen Warren authored
      Currently, get_device()/get_dev_hwpart() for MMC devices does not select
      an explicit HW partition unless the user explicitly requests one, i.e. by
      requesting device "mmc 0.0" rather than just "mmc 0". I think it makes
      more sense if the default is to select HW partition 0 (main data area)
      if the user didn't request a specific partition. Otherwise, the following
      happens, which feels wrong:
      Select HW partition 1 (boot0):
      mmc dev 0 1
      Attempts to access SW partition 1 on HW partition 1 (boot0), rather than
      SW partition 1 on HW partition 0 (main data area):
      ls mmc 0:1 /
      With this patch, the second command above re-selects the main data area.
      Many device types don't support HW partitions at all, so if HW partition
      0 is selected (either explicitly or as the default) and there's no
      select_hwpart function, we simply skip attempting to select a HW
      Some MMC devices (i.e. SD cards) don't support HW partitions. However,
      this patch still works, since mmc_start_init() sets the current
      partition number to 0, and mmc_select_hwpart() succeeds if the requested
      partition is already selected.
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Acked-by: default avatarPantelis Antoniou <panto@antoniou-consulting.com>
  17. 11 Jun, 2014 1 commit
    • Darwin Dingel's avatar
      disk: part_dos.c: Add a PBR check when MBR checking fails · 4a36be9b
      Darwin Dingel authored
      Bug: SDCard with a messed up partition but still has a FAT signature
      intact is readable in Linux but unreadable in uboot with 'fatls'.
      Fix: When partition info checking fails, there is no checking for a
      FAT signature (DOS_PBR) which will fail 'fatls'. FAT signature checking
      is done when no valid partition is found in partition table. If FAT
      signature is found, the disk will be read as PBR and continue
      Signed-off-by: default avatarDarwin Dingel <darwin.dingel@alliedtelesis.co.nz>
  18. 05 Jun, 2014 3 commits
  19. 23 May, 2014 2 commits
  20. 12 May, 2014 1 commit
  21. 02 Apr, 2014 2 commits
    • Przemyslaw Marczak's avatar
      lib: uuid: code refactor for proper maintain between uuid bin and string · d718ded0
      Przemyslaw Marczak authored
      Changes in lib/uuid.c to:
      - uuid_str_to_bin()
      - uuid_bin_to_str()
      New parameter is added to specify input/output string format in listed functions
      This change allows easy recognize which UUID type is or should be stored in given
      string array. Binary data of UUID and GUID is always stored in big endian, only
      string representations are different as follows.
      String byte: 0                                  36
      String char: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      string UUID:    be     be   be   be       be
      string GUID:    le     le   le   be       be
      This patch also updates functions calls and declarations in a whole code.
      Signed-off-by: default avatarPrzemyslaw Marczak <p.marczak@samsung.com>
      Cc: Stephen Warren <swarren@nvidia.com>
      Cc: Lukasz Majewski <l.majewski@samsung.com>
      Cc: trini@ti.com
    • Przemyslaw Marczak's avatar
      part_efi: move uuid<->string conversion functions into lib/uuid.c · a96a0e61
      Przemyslaw Marczak authored
      This commit introduces cleanup for uuid library.
      - move uuid<->string conversion functions into lib/uuid.c so they can be
        used by code outside part_efi.c.
      - rename uuid_string() to uuid_bin_to_str() for consistency with existing
      - add an error return code to uuid_str_to_bin()
      - update existing code to the new library functions.
      Signed-off-by: default avatarPrzemyslaw Marczak <p.marczak@samsung.com>
      Cc: Stephen Warren <swarren@nvidia.com>
      Cc: Lukasz Majewski <l.majewski@samsung.com>
      Cc: trini@ti.com
  22. 18 Mar, 2014 1 commit
    • Simon Glass's avatar
      sandbox: Use os functions to read host device tree · 95fac6ab
      Simon Glass authored
      At present we use U-Boot's filesystem layer to read the sandbox device tree,
      but this is problematic since it relies on a temporary feauture added
      there. Since we plan to implement proper block layer support for sandbox,
      change this code to use the os layer functions instead. Also use the new
      fdt_create_empty_tree() instead of our own code.
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
  23. 24 Feb, 2014 1 commit
  24. 19 Feb, 2014 1 commit
    • Masahiro Yamada's avatar
      kbuild: use Linux Kernel build scripts · 6825a95b
      Masahiro Yamada authored
      Now we are ready to switch over to real Kbuild.
      This commit disables temporary scripts:
        scripts/{Makefile.build.tmp, Makefile.host.tmp}
      and enables real Kbuild scripts:
      This switch is triggered by the line in scripts/Kbuild.include
        -build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build.tmp obj
        +build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj
      We need to adjust some build scripts for U-Boot.
      But smaller amount of modification is preferable.
      Additionally, we need to fix compiler flags which are
      locally added or removed.
      In Kbuild, it is not allowed to change CFLAGS locally.
      Instead, ccflags-y, asflags-y, cppflags-y,
      CFLAGS_$(basetarget).o, CFLAGS_REMOVE_$(basetarget).o
      are prepared for that purpose.
      Signed-off-by: default avatarMasahiro Yamada <yamada.m@jp.panasonic.com>
      Tested-by: default avatarGerhard Sittig <gsi@denx.de>
  25. 09 Jan, 2014 1 commit
  26. 31 Oct, 2013 1 commit
  27. 14 Oct, 2013 1 commit
  28. 20 Sep, 2013 1 commit
    • Mark Langsdorf's avatar
      part_efi: make sure the gpt_pte is freed · 6d2ee5a3
      Mark Langsdorf authored
      the gpt_pte wasn't being freed if it was checked against an invalid
      partition. The resulting memory leakage could make it impossible
      to repeatedly attempt to load non-existent files in a script.
      Also, downgrade the message for not finding an invalid partition
      from a printf() to a debug() so as to minimize message spam in
      perfectly normal situations.
      Signed-off-by: default avatarMark Langsdorf <mark.langsdorf@calxeda.com>
  29. 24 Jul, 2013 1 commit
  30. 22 Jul, 2013 1 commit
    • Lan Yixun (dlan)'s avatar
      fs/ext4: fix log2blksz un-initialized error, by cacaulating its value from blksz · 50ffc3b6
      Lan Yixun (dlan) authored
      The problem here is that uboot can't mount ext4 filesystem with
      commit "50ce4c07" applied. We use hard-coded "SECTOR_SIZE"(512)
      before this commit, now we introduce (block_dev_desc_t *)->log2blksz
      to replace this macro. And after we calling do_ls()->fs_set_blk_dev(),
      the variable log2blksz is not initialized, which it's not correct.
      And this patch try to solve the problem by caculating the value of
      log2blksz from variable blksz.
  31. 15 Jul, 2013 1 commit
    • Frederic Leroy's avatar
      Fix ext2/ext4 filesystem accesses beyond 2TiB · 04735e9c
      Frederic Leroy authored
      With CONFIG_SYS_64BIT_LBA, lbaint_t gets defined as a 64-bit type,
      which is required to represent block numbers for storage devices that
      exceed 2TiB (the block size usually is 512B), e.g. recent hard drives
      We now use lbaint_t for partition offset to reflect the lbaint_t change,
      and access partitions beyond or crossing the 2.1TiB limit.
      This required changes to signature of ext4fs_devread(), and type of all
      variables relatives to block sector.
      ext2/ext4 fs uses logical block represented by a 32 bit value. Logical
      block is a multiple of device block sector. To avoid overflow problem
      when calling ext4fs_devread(), we need to cast the sector parameter.
      Signed-off-by: default avatarFrédéric Leroy <fredo@starox.org>
  32. 04 Jun, 2013 1 commit
    • Marek Vasut's avatar
      disk: Fix possible out-of-bounds access in part_efi.c · 67cd4a63
      Marek Vasut authored
      Make sure to never access beyond bounds of either EFI partition name
      or DOS partition name. This situation is happening:
      part.h:     disk_partition_t->name is 32-byte long
      part_efi.h: gpt_entry->partition_name is 36-bytes long
      The loop in part_efi.c copies over 36 bytes and thus accesses beyond
      the disk_partition_t->name .
      Fix this by picking the shortest of source and destination arrays and
      make sure the destination array is cleared so the trailing bytes are
      zeroed-out and don't cause issues with string manipulation.
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Tom Rini <trini@ti.com>
      Cc: Simon Glass <sjg@chromium.org>