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 -
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 -
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
17 May, 2016
9 commits
-
Add support for enabling CONFIG_BLK with MMC. This involves changing a
few functions to use struct udevice and adding a MMC block device driver.Signed-off-by: Simon Glass
-
This is now handled by the legacy block driver. The get_dev() method is
no-longer used. Drop it.Signed-off-by: Simon Glass
-
This function is implemented by the legacy block functions now. Drop it.
Signed-off-by: Simon Glass
-
This function is implemented by the legacy block functions now. Drop it.
Signed-off-by: Simon Glass
-
This function is implemented by the legacy block functions now. Drop it.
We cannot yet make sata_dev_desc[] private to common/sata.c as it is used by
the SATA drivers. This will require the SATA interface to be reworked.Signed-off-by: Simon Glass
-
This function is implemented by the legacy block functions now. Drop it.
Signed-off-by: Simon Glass
-
This function is implemented by the legacy block functions now. Drop it.
Signed-off-by: Simon Glass
-
This function is implemented by the legacy block functions now. Drop it.
Signed-off-by: Simon Glass
-
This function is implemented by the legacy block functions now. Drop it.
Signed-off-by: Simon Glass
12 Apr, 2016
1 commit
-
The patch "dm: part: Convert partition API use to linker lists"
(sha1: 96e5b03c8ab749b6547f6a3ceb4d4b9f274211aa) is adding new
dependency for enabling SPL_EXT_SUPPORT to be able to get
information about DOS partition.
get_info is also required for FAT support only which is used on Xilinx
Zynq boards.Reported-by: Nathan Rossi
Signed-off-by: Michal Simek
Reviewed-by: Tom Rini
Reviewed-by: Simon Glass
16 Mar, 2016
1 commit
-
We have a pretty nice and generic interface to ask for a specific block
device. However, that one is still based around the magic notion that
we know the driver name.In order to be able to write fully generic disk access code, expose the
currently internal list to other source files so that they can scan through
all available block drivers.Signed-off-by: Alexander Graf
Reviewed-by: Simon Glass
Tested-by: Simon Glass
15 Mar, 2016
9 commits
-
Rename three partition functions so that they start with part_. This makes
it clear what they relate to.Signed-off-by: Simon Glass
Tested-by: Stephen Warren -
We can use linker lists instead of explicitly declaring each function.
This makes the code shorter by avoiding switch() statements and lots of
header file declarations.While this does clean up the code it introduces a few code issues with SPL.
SPL never needs to print partition information since this all happens from
commands. SPL mostly doesn't need to obtain information about a partition
either, except in a few cases. Add these cases so that the code will be
dropped from each partition driver when not needed. This avoids code bloat.I think this is still a win, since it is not a bad thing to be explicit
about which features are used in SPL. But others may like to weigh in.Signed-off-by: Simon Glass
Reviewed-by: Tom Rini
Tested-by: Stephen Warren -
Rename this function to blk_get_device_part_str(). This is a better name
because it makes it clear that the function returns a block device and
parses a string.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested-by: Stephen Warren -
The current name is too generic. The function returns a block device based
on a provided string. Rename it to aid searching and make its purpose
clearer. Also add a few comments.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested-by: Stephen Warren -
The current name is too generic. Add a 'blk_' prefix to aid searching and
make its purpose clearer.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested-by: Stephen Warren -
The block interface is not well documented in the code. Pick two important
functions and add comments.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested-by: Stephen Warren -
At present block devices are tied up with partitions. But not all block
devices have partitions within them. They are in fact separate concepts.Create a separate blk.h header file for block devices.
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested-by: Stephen Warren -
We should not include in header files. Each C file should include
it if needed.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested-by: Stephen Warren -
Use 'struct' instead of a typdef. Also since 'struct block_dev_desc' is long
and causes 80-column violations, rename it to struct blk_desc.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested-by: Stephen Warren
25 Jan, 2016
1 commit
-
This is already defined in ide.h, which part.h includes. So we don't need
the duplicate typedef. At least with my old blackfin gcc 4.3.5 tool chain,
this causes an error.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Reviewed-by: Andreas Bießmann
14 Jan, 2016
2 commits
-
This will allow us to have multiple block device structs each referring
to the same eMMC device, yet different HW partitions.For now, there is still a single block device per eMMC device. As before,
this block device always accesses whichever HW partition was most recently
selected. Clients wishing to make use of multiple block devices referring
to different HW partitions can simply take a copy of this block device
once it points at the correct HW partition, and use each one as they wish.
This feature will be used by the next patch.In the future, perhaps get_device() could be enhanced to return a
dynamically allocated block device struct, to avoid the client needing to
copy it in order to maintain multiple block devices. However, this would
require all users to be updated to free those block device structs at some
point, which is rather a large change.Most callers of mmc_switch_part() wish to permanently switch the default
MMC block device's HW partition. Enhance mmc_switch_part() so that it does
this. This removes the need for callers to do this. However,
common/env_mmc.c needs to save and restore the current HW partition. Make
it do this more explicitly.Replace use of mmc_switch_part() with mmc_select_hwpart() in order to
remove duplicate code that skips the call if that HW partition is already
selected.Signed-off-by: Stephen Warren
Reviewed-by: Tom Rini -
This will allow the implementation to make use of data in the block_dev
structure beyond the base device number. This will be useful so that eMMC
block devices can encompass the HW partition ID rather than treating this
out-of-band. Equally, the existence of the priv field is crying out for
this patch to exist.Signed-off-by: Stephen Warren
Reviewed-by: Tom Rini
24 Nov, 2015
1 commit
-
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
variable.Signed-off-by: Lukasz Majewski
Reviewed-by: Tom Rini
Reviewed-by: Przemyslaw Marczak
13 Nov, 2015
1 commit
-
code under flag CONFIG_PARTITION_TYPE_GUID
add parameter "type" to select partition type guidexample 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}, \
type=0fc63daf-8483-4772-8e79-3d69d8477de4;gpt write mmc 0 $partitions
Signed-off-by: Patrick Delaunay
18 Dec, 2014
1 commit
-
Implement a feature to allow fastboot to write the downloaded image
to the space reserved for the Protective MBR and the Primary GUID
Partition Table.
Additionally, prepare and write the Backup GUID Partition Table.Signed-off-by: Steve Rae
Tested-by: Lukasz Majewski
[Test HW: Exynos4412 - Trats2]
06 Jun, 2014
1 commit
-
Add function to find a GPT table entry by name.
Tested on little endian ARMv7 and ARMv8 configurations
Signed-off-by: Steve Rae
23 May, 2014
1 commit
-
This enables specifying which eMMC HW partition to target for any U-Boot
command that uses the generic get_partition() function to parse its
command-line arguments.Acked-by: Pantelis Antoniou
Signed-off-by: Stephen Warren
05 May, 2014
1 commit
-
Implementation made use of types defined in common.h, even though it
wasn't #included. It worked in circumstances when .c files included
every needed header (all).Signed-off-by: Mateusz Zalega
Cc: Tom Rini
Cc: Minkyu Kang
09 Jan, 2014
1 commit
-
Provide a way to use any host file or device as a block device in U-Boot.
This can be used to provide filesystem access within U-Boot to an ext2
image file on the host, for example.The support is plumbed into the filesystem and partition interfaces.
We don't want to print a message in the driver every time we find a missing
device. Pass the information back to the caller where a message can be printed
if desired.Signed-off-by: Henrik Nordström
Signed-off-by: Simon Glass
- Removed change to part.c get_device_and_partition()Signed-off-by: Simon Glass
Reviewed-by: Simon Glass
15 Oct, 2013
1 commit
-
Signed-off-by: Wolfgang Denk
24 Jul, 2013
1 commit
-
Signed-off-by: Wolfgang Denk
[trini: Fixup common/cmd_io.c]
Signed-off-by: Tom Rini
16 Jul, 2013
1 commit
-
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 drivesWe 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: Frédéric Leroy
26 Jun, 2013
1 commit
-
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.For some obscure reason, the current U-Boot code uses lbaint_t for the
number of blocks to read (a rather optimistic estimation of how RAM
sizes will evolve), but not for the starting address. Trying to access
blocks beyond the 2TiB boundary will simply wrap around and read a
block within the 0..2TiB range.We now use lbaint_t for block start addresses, too. This required
changes to all block drivers as the signature of block_read(),
block_write() and block_erase() in block_dev_desc_t changed.Signed-off-by: Sascha Silbe
02 May, 2013
2 commits
-
log2 of the device block size serves as the shift value used to calculate
the block number to read in file systems when implementing avaiable block
sizes.
It is needed quite often in file systems thus it is pre-calculated and
stored in the block device descriptor.Signed-off-by: Egbert Eich
-
Disks beyond 2T in size use blocksizes of 4096 bytes. However a lot of
code in u-boot still assumes a 512 byte blocksize.
This patch fixes the handling of GPTs.Signed-off-by: Egbert Eich
14 Dec, 2012
1 commit
-
The restoration of GPT table (both primary and secondary) is now possible.
Function 'gpt_restore' presents example of partition restoration process.Signed-off-by: Lukasz Majewski
Signed-off-by: Piotr Wilczek
Signed-off-by: Kyungmin Park