03 Nov, 2017

1 commit


05 Apr, 2017

1 commit

  • 1. pass androidboot.storage_type to android, 'init' use it to parse
    different init.freescale.storage.rc.
    2. store new ptable with gpt partition.
    3. we use the last LBA as backup gpt table, there is many warning log
    when boot, change print to debug

    Change-Id: I84070735e9d4c2741b0e240bc1c61b357dabc5b8
    Signed-off-by: Sanshan Zhang
    (cherry picked from commit da0ce2787256a323371641b0764266d386d767a5)
    Signed-off-by: Ye Li

    Sanshan Zhang
     

18 Feb, 2017

1 commit

  • the socfpga bootrom supports mmc booting from either a raw image
    starting at 0x0, or from a partition of type 0xa2. This patch
    adds support for locating the boot image in the first type 0xa2
    partition found.

    Assigned a partition number of -1 will cause a search for a
    partition of type CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_TYPE
    and use it to find the u-boot image

    Signed-off-by: Dalon Westergreen

    Dalon Westergreen
     

09 Feb, 2017

1 commit

  • On some cases the first 440 bytes of MBR are used to keep an additional
    information for ROM boot loader. 'gpt write' command doesn't preserve
    that area and makes boot code gone.

    Preserve boot code area when run 'gpt write' command.

    Signed-off-by: Vincent Tinelli
    Signed-off-by: Brennan Ashton
    Signed-off-by: Andy Shevchenko
    Reviewed-by: Simon Glass

    Vincent Tinelli
     

28 Jan, 2017

8 commits


28 Dec, 2016

1 commit

  • With capacities getting bigger, we can see see messages with negative
    numbers like "Capacity: 1907729.0 MB = 1863.0 GB (-387938128 x 512)".
    Here the printed LBA is -387938128 when it should have been 3907029168.
    To fix this, use the right format when displaying the unsigned integers.

    Signed-off-by: Jean-Jacques Hiblot
    Reported-by: Yan Liu

    Jean-Jacques Hiblot
     

02 Oct, 2016

3 commits

  • In both DOS and ISO partition tables the same code to create partition name
    like "hda1" was repeated.

    Code moved to into a new function part_set_generic_name() in part.c and optimized.
    Added recognition of MMC and SD types, name is like "mmcsda1".

    Signed-off-by: Petr Kulhavy
    Reviewed-by: Tom Rini
    Acked-by: Steve Rae
    Reviewed-by: Simon Glass

    Petr Kulhavy
     
  • Add special target "mbr" (otherwise configurable via CONFIG_FASTBOOT_MBR_NAME)
    to write MBR partition table.
    Partitions are now searched using the generic function which finds any
    partiiton by name. For MBR the partition names hda1, sda1, etc. are used.

    Signed-off-by: Petr Kulhavy
    Reviewed-by: Tom Rini
    Acked-by: Steve Rae
    Reviewed-by: Simon Glass

    Petr Kulhavy
     
  • So far partition search by name has been supported only on the EFI partition
    table. This patch extends the search to all partition tables.

    Rename part_get_info_efi_by_name() to part_get_info_by_name(), move it from
    part_efi.c into part.c and make it a generic function which traverses all part
    drivers and searches all partitions (in the order given by the linked list).

    For this a new variable struct part_driver.max_entries is added, which limits
    the number of partitions searched. For EFI this was GPT_ENTRY_NUMBERS.
    Similarly the limit is defined for DOS, ISO, MAC and AMIGA partition tables.

    Signed-off-by: Petr Kulhavy
    Reviewed-by: Tom Rini
    Acked-by: Steve Rae

    Petr Kulhavy
     

06 Aug, 2016

1 commit

  • The calculation of "dev_desc->lba - 34 - 1 - offset" is not correct for
    size '-', because both fist_usable_lba and last_usable_lba will remain
    34 sectors.

    We can simply use 0 for size '-' because the part_efi module will decode
    the size and auto extend the size to maximum available size.

    Signed-off-by: Kever Yang

    Kever Yang
     

26 Jul, 2016

1 commit


23 Jul, 2016

1 commit


27 May, 2016

1 commit

  • the last value acceptable value for offset is last_usable_lba + 1
    and not last_usable_lba - 1

    issue found with SDCARD partition commands on u-boot 2015.10
    but this part of code don't change

    1- create GPT partion on all the card
    > gpt write mmc 0 name=test,start=0,size=0
    > part list mmc 0

    Partition Map for MMC device 0 -- Partition Type: EFI

    Part Start LBA End LBA Name
    Attributes
    Type GUID
    Partition GUID
    1 0x00000022 0x003a9fde "test"
    attrs: 0x0000000000000000
    type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
    type: data
    guid: b710eb04-45b9-e94a-8d0b-21458d596f54

    => Start = 0x22*512 = 0x4400
    => Size = (0x003a9fde-0x22+1) * 512 = 0x753F7A00

    2- try to recreate the same partition with the next command
    (block size:512 bytes = 0x200)

    > gpt write mmc 0 name=test,start=0x4400,size=0x753F7A00
    Writing GPT: Partitions layout exceds disk size

    > gpt write mmc 0 name=test,start=0x4400,size=0x753F7800
    Writing GPT: Partitions layout exceds disk size

    > gpt write mmc 0 name=test,start=0x4400,size=0x753F7600
    Writing GPT: success!

    Partition Map for MMC device 0 -- Partition Type: EFI

    Part Start LBA End LBA Name
    Attributes
    Type GUID
    Partition GUID
    1 0x00000022 0x003a9fdc "test"
    attrs: 0x0000000000000000
    type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
    type: data
    guid: 36ec30ef-7ca4-cd48-97cd-ea9fb95185d0

    the max LBA when the size is indicated (0x003a9fdc) is lower than
    when u-boot compute the max allowed value with size=0 (0x003a9fde)

    in the code :

    /* partition ending lba */
    if ((i == parts - 1) && (partitions[i].size == 0))
    /* extend the last partition to maximuim */
    gpt_e[i].ending_lba = gpt_h->last_usable_lba;
    else
    gpt_e[i].ending_lba = cpu_to_le64(offset - 1);

    so offset = gpt_h->last_usable_lba + 1 is acceptable !
    but the test (offset >= last_usable_lba) cause the error

    END

    Signed-off-by: Patrick Delaunay disk: part_efi: fix check of the max partition size
    the last value acceptable value for offset is (last_usable_lba + 1)
    and not (last_usable_lba - 1)

    issue found with SDCARD partition commands on u-boot 2015.10
    but this part of code don't change

    1- I create GPT partion on all the card (start and size undefined)

    > gpt write mmc 0 name=test,start=0,size=0
    > part list mmc 0

    Partition Map for MMC device 0 -- Partition Type: EFI

    Part Start LBA End LBA Name
    Attributes
    Type GUID
    Partition GUID
    1 0x00000022 0x003a9fde "test"
    attrs: 0x0000000000000000
    type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
    type: data
    guid: b710eb04-45b9-e94a-8d0b-21458d596f54

    => Start = 0x22*512 = 0x4400
    => Size = (0x003a9fde-0x22+1) * 512 = 0x753F7A00

    2- I try to recreate the same partition with the command gpt write
    and with start and size values (block size:512 bytes = 0x200)

    > gpt write mmc 0 name=test,start=0x4400,size=0x753F7A00
    Writing GPT: Partitions layout exceds disk size

    > gpt write mmc 0 name=test,start=0x4400,size=0x753F7800
    Writing GPT: Partitions layout exceds disk size

    > gpt write mmc 0 name=test,start=0x4400,size=0x753F7600
    Writing GPT: success!

    I check the partition created :

    > part list mmc 0

    Partition Map for MMC device 0 -- Partition Type: EFI

    Part Start LBA End LBA Name
    Attributes
    Type GUID
    Partition GUID
    1 0x00000022 0x003a9fdc "test"
    attrs: 0x0000000000000000
    type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
    type: data
    guid: 36ec30ef-7ca4-cd48-97cd-ea9fb95185d0

    => but the max LBA when the size is indicated (0x003a9fdc) is lower than
    when u-boot compute the max allowed value with size=0 (0x003a9fde)

    3- in the code, just after my patch, line 446

    /* partition ending lba */
    if ((i == parts - 1) && (partitions[i].size == 0))
    /* extend the last partition to maximuim */
    gpt_e[i].ending_lba = gpt_h->last_usable_lba;
    else
    gpt_e[i].ending_lba = cpu_to_le64(offset - 1);

    so offset = gpt_h->last_usable_lba + 1 is acceptable !
    (it the value used when size is 0)

    but today the test (offset >= last_usable_lba) cause the error
    my patch only solve this issue

    END

    Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     

17 May, 2016

12 commits


19 Apr, 2016

3 commits


15 Apr, 2016

1 commit


02 Apr, 2016

1 commit

  • Add a block device cache to speed up repeated reads of block devices by
    various filesystems.

    This small amount of cache can dramatically speed up filesystem
    operations by skipping repeated reads of common areas of a block
    device (typically directory structures).

    This has shown to have some benefit on FAT filesystem operations of
    loading a kernel and RAM disk, but more dramatic benefits on ext4
    filesystems when the kernel and/or RAM disk are spread across
    multiple extent header structures as described in commit fc0fc50.

    The cache is implemented through a minimal list (block_cache) maintained
    in most-recently-used order and count of the current number of entries
    (cache_count). It uses a maximum block count setting to prevent copies
    of large block reads and an upper bound on the number of cached areas.

    The maximum number of entries in the cache defaults to 32 and the maximum
    number of blocks per cache entry has a default of 2, which has shown to
    produce the best results on testing of ext4 and FAT filesystems.

    The 'blkcache' command (enabled through CONFIG_CMD_BLOCK_CACHE) allows
    changing these values and can be used to tune for a particular filesystem
    layout.

    Signed-off-by: Eric Nelson

    Eric Nelson
     

23 Mar, 2016

3 commits