summaryrefslogtreecommitdiff
path: root/include/part.h
AgeCommit message (Collapse)Author
2024-11-20disk: expose partition type flagsCaleb Connolly
GPT partition tables include two bytes worth of vendor defined attributes, per partition. ChromeOS and Qualcomm both use these (with different encoding!) to handle A/B slot switching with a retry counter. Expose these via the disk_partition struct so that they can be parsed by the relevant board code. This will be used on Qualcomm boards to determine which slot we're booting on so that we can flash capsule updates to the correct one. Reviewed-by: Ilias Apalodimas <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-10-11include: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILDSimon Glass
Use the new symbol to refer to any 'SPL' build, including TPL and VPL Signed-off-by: Simon Glass <[email protected]>
2024-09-12include: export uuid.hCaleb Connolly
Move this header to include/u-boot/ so that it can be used by external tools. Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-08-08disk: support UBI partitionsAlexey Romanov
UBI partition is abstraction over UBI volumes. Can be used by UBI block device. Signed-off-by: Alexey Romanov <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Signed-off-by: Michael Trimarchi <[email protected]>
2024-08-08disk: support MTD partitionsAlexey Romanov
Add new MTD partition driver, which can be useful with mtdblock driver combination. Signed-off-by: Alexey Romanov <[email protected]> Signed-off-by: Michael Trimarchi <[email protected]>
2024-07-29include: Remove duplicate newlinesMarek Vasut
Drop all duplicate newlines. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-01-21part: correct documentation of part_get_bootable()Heinrich Schuchardt
We have to use 'Return:' to render the description of the return value in the HTML documentation. Fixes: f55aa4454ac3 ("part: Add a fallback for part_get_bootable()") Fixes: dcffa4428d03 ("part: Add a function to find the first bootable partition") Signed-off-by: Heinrich Schuchardt <[email protected]>
2023-09-11part: rename disk_partition_type_uuid()Heinrich Schuchardt
Rename disk_partition_type_uuid to disk_partition_type_guid. Provide function descriptions for the getter and setter. Fixes: bcd645428c34 ("part: Add accessors for struct disk_partition type_uuid") Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-08-25part: Add a fallback for part_get_bootable()Simon Glass
This function can be called when partition support is disabled. Add a static inline to handle this. Signed-off-by: Simon Glass <[email protected]>
2023-08-25part: Add an accessor for struct disk_partition sys_indSimon Glass
This field is only present when a CONFIG is set. To avoid annoying #ifdefs in the source code, add an accessor. Update the only usage. Note that the accessor is optional. It can be omitted if it is known that the option is enabled. Signed-off-by: Simon Glass <[email protected]>
2023-08-25part: Add accessors for struct disk_partition type_uuidSimon Glass
This field is only present when a CONFIG is set. To avoid annoying #ifdefs in the source code, add accessors. Update all code to use it. Note that the accessor is optional. It can be omitted if it is known that the option is enabled. Signed-off-by: Simon Glass <[email protected]>
2023-08-25part: Add accessors for struct disk_partition uuidSimon Glass
This field is only present when a CONFIG is set. To avoid annoying #ifdefs in the source code, add accessors. Update all code to use it. Note that the accessor is optional. It can be omitted if it is known that the option is enabled. Signed-off-by: Simon Glass <[email protected]>
2023-08-25part: Use desc instead of dev_descSimon Glass
The dev_ prefix is a hangover from the pre-driver model days. The device is now a different thing, with driver model. Update the partition code to just use 'desc', as is done with driver model. Signed-off-by: Simon Glass <[email protected]>
2023-08-22disk: Move part_create_block_devices() to blk uclassMarek Vasut
Move part_create_block_devices() to blk uclass and unexpose the function. This can now be internal to the block uclass. Signed-off-by: Marek Vasut <[email protected]>
2023-08-15doc: add partition API to HTML documentationHeinrich Schuchardt
* Convert comments in part.h to Sphinx style. * Create documentation page for the partition API. * Add the partition API page to the API index page. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-07-25part: eliminate part_get_info_by_name_type()Heinrich Schuchardt
Since commit 56670d6fb83f ("disk: part: use common api to lookup part driver") part_get_info_by_name_type() ignores the part_type parameter used to restrict the partition table type. omap_mmc_get_part_size() and part_get_info_by_name() are the only consumers. omap_mmc_get_part_size() calls with part_type = PART_TYPE_EFI because at the time of implementation a speed up could be gained by passing the partition table type. After 5 years experience without this restriction it looks safe to keep it that way. part_get_info_by_name() uses PART_TYPE_ALL. Move the logic of part_get_info_by_name_type() to part_get_info_by_name() and replace the function in omap_mmc_get_part_size(). Fixes: 56670d6fb83f ("disk: part: use common api to lookup part driver") Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-07-17disk: part: Add API to get partitions with specific driverJoshua Watt
Adds part_driver_get_type() API which can be used to force a specific driver to be used when getting partition information instead of relying on auto detection. Signed-off-by: Joshua Watt <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-07-17part: Allow setting the partition-table typeSimon Glass
Some devices have multiple partition types available on the same media. It is sometimes useful to see these to check that everything is working correctly. Provide a way to manually set the partition-table type, avoiding the auto-detection process. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2023-01-23part: Add a function to find the first bootable partitionSimon Glass
If a disk has a bootable partition we are expected to use it to locate the boot files. Add a function to find it. To test this, update mmc1 to have two paritions, fixing up other tests accordingly. Signed-off-by: Simon Glass <[email protected]>
2022-10-31disk: Rename block functionsSimon Glass
Use the uclass type as the first part of the function name, to be consistent with the methods in other block drivers. Signed-off-by: Simon Glass <[email protected]>
2022-05-06disk: part_efi: add support to repair gpt tablePhilippe Reynes
If a gpt table is corrupted (after a power cut for example), then the gpt table should repaired. The function gpt_repair_headers check if at least one gpt table is valid, and then only write the corrupted gpt table. Signed-off-by: Philippe Reynes <[email protected]>
2022-04-23dm: disk: add read/write interfaces with udeviceAKASHI Takahiro
In include/blk.h, Simon suggested: ===> /* * These functions should take struct udevice instead of struct blk_desc, * but this is convenient for migration to driver model. Add a 'd' prefix * to the function operations, so that blk_read(), etc. can be reserved for * functions with the correct arguments. */ unsigned long blk_dread(struct blk_desc *block_dev, lbaint_t start, lbaint_t blkcnt, void *buffer); unsigned long blk_dwrite(struct blk_desc *block_dev, lbaint_t start, lbaint_t blkcnt, const void *buffer); unsigned long blk_derase(struct blk_desc *block_dev, lbaint_t start, lbaint_t blkcnt); <=== So new interfaces are provided with this patch. They are expected to be used everywhere in U-Boot at the end. The exceptions are block device drivers, partition drivers and efi_disk which should know details of blk_desc structure. Signed-off-by: AKASHI Takahiro <[email protected]>
2022-04-23dm: disk: add UCLASS_PARTITIONAKASHI Takahiro
NOTE: probably we have to update config dependencies, in particular, SPL/TPL_PRINTF? With this new function, UCLASS_PARTITION devices will be created as child nodes of UCLASS_BLK device. Signed-off-by: AKASHI Takahiro <[email protected]>
2022-04-23sandbox: move a function prototypeAKASHI Takahiro
Since host_get_dev_errr() is defined in drivers/block/sandbox.c, the associated function prototype should be in a more appropriate header file. Fixes: commit 4101f6879256 ("dm: Drop the block_dev_desc_t typedef") Signed-off-by: AKASHI Takahiro <[email protected]>
2022-04-23disk: define nullified functions for !PARTITIONSAKASHI Takahiro
Some defconfig enables CMD_PART even if none of any partition table types (CONFIG_*_PARTITION) are enabled. This will lead to the size growth in SPL/TPL code since disk/part.c will be compiled in any way. We will change disk/Kconfig later so that CONFIG_PARTITIONS is only enabled when, at least, one of CONFIG_*_PARTITION is enabled. To make the build work (in particular, "part" command) correctly, a few functions should be defined as void functions in case of !CONFIG_PARTITIONS. Signed-off-by: AKASHI Takahiro <[email protected]>
2022-04-23disk: enable function prototypes in part.h for SPL/TPLAKASHI Takahiro
Since CONFIG_[SPL|TPL]_PARTITIONS were introduced, part.h has not been updated. Due to this, while the build won't fail, some functionality may possibly break as some partition-related functions are nullified even though some partition table types are enabled for SPL/TPL. Fixes: commit 88ca8e26958b ("disk: Add an option for partitions in SPL") Signed-off-by: AKASHI Takahiro <[email protected]>
2022-04-23disk: include errno.h explicitly in part.hAKASHI Takahiro
Some errno numbers are used in defining inline functions. So "errno.h" should be explicitly included to avoid possible build errors. Signed-off-by: AKASHI Takahiro <[email protected]>
2022-01-19doc: replace @return by Return:Heinrich Schuchardt
Sphinx expects Return: and not @return to indicate a return value. find . -name '*.c' -exec \ sed -i 's/^\(\s\)\*\(\s*\)@return\(\s\)/\1*\2Return:\3/' {} \; find . -name '*.h' -exec \ sed -i 's/^\(\s\)\*\(\s*\)@return\(\s\)/\1*\2Return:\3/' {} \; Signed-off-by: Heinrich Schuchardt <[email protected]>
2022-01-15cmd: part: list all 128 GPT partitionsHeinrich Schuchardt
A GPT partition table typically has 128 entries. If a partition table contains a partition 128 'part list' should be able to list it. Signed-off-by: Heinrich Schuchardt <[email protected]>
2021-09-30WS cleanup: remove SPACE(s) followed by TABWolfgang Denk
Signed-off-by: Wolfgang Denk <[email protected]>
2021-04-22cmd: fs: Use part_get_info_by_dev_and_name_or_num to parse partitionsSean Anderson
This allows using dev#partlabel syntax. Signed-off-by: Sean Anderson <[email protected]>
2021-02-26part: Support getting whole disk from part_get_info_by_dev_and_name_or_numSean Anderson
This adds an option to part_get_info_by_dev_and_name_or_num to allow callers to specify whether whole-disk partitions are fine. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2021-01-16cmd: gpt: add eMMC and GPT supportCorneliu Doban
Add eMMC and GPT support. - GPT partition list and command to create the GPT added to u-boot environment - eMMC boot commands added to u-boot environment - new gpt commands (enumarate and setenv) that are used by broadcom update scripts and boot commands - eMMC specific u-boot configurations with environment saved in eMMC and GPT support Signed-off-by: Corneliu Doban <[email protected]> Signed-off-by: Rayagonda Kokatanur <[email protected]> [trini: Make gpt_setenv initialize ret to -1, given relevant return error values] Signed-off-by: Tom Rini <[email protected]>
2021-01-15disk: dos: add code for creating MBR partition layoutMarek Szyprowski
Add a code for creating and writing MBR partition layout. The code generates similar layout of EBRs (Exteneded Block Records) and logical volumes as Linux's fdisk utility. Signed-off-by: Marek Szyprowski <[email protected]>
2021-01-15disk: dos: rename write_mbr_partition to write_mbr_sectorMarek Szyprowski
write_mbr_partition() function name is a bit misleading, so rename it to write_mbr_sector(). This is a preparation for adding code for writing a complete MBR partition layout. Signed-off-by: Marek Szyprowski <[email protected]>
2020-05-18part: Drop disk_partition_t typedefSimon Glass
We should not be using typedefs and these make it harder to use forward declarations (to reduce header file inclusions). Drop the typedef. Signed-off-by: Simon Glass <[email protected]>
2020-04-30part: detect EFI system partitionHeinrich Schuchardt
Up to now for MBR and GPT partitions the info field 'bootable' was set to 1 if either the partition was an EFI system partition or the bootable flag was set. Turn info field 'bootable' into a bit mask with separate bits for bootable and EFI system partition. This will allow us to identify the EFI system partition in the UEFI sub-system. Signed-off-by: Heinrich Schuchardt <[email protected]>
2019-07-24disk: part: Extend API to get partition infoRuslan Trofymenko
This patch adds part_get_info_by_dev_and_name_or_num() function which allows us to get partition info from its number or name. Partition of interest is specified by string like "device_num:partition_number" or "device_num#partition_name". The patch was extracted from [1]. [1] https://android-review.googlesource.com/c/platform/external/u-boot/+/729880/2 Signed-off-by: Ruslan Trofymenko <[email protected]> Signed-off-by: Igor Opaniuk <[email protected]> Reviewed-by: Alistair Strachan <[email protected]> Reviewed-by: Sam Protsenko <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2019-02-01spl: Kconfig: Replace CONFIG_SPL_EXT_SUPPORT to CONFIG_SPL_FS_EXT4Tien Fong Chee
Replace CONFIG_SPL_EXT_SUPPORT to CONFIG_SPLY_FS_EXT4 so both obj-$(CONFIG_$(SPL_)FS_EXT4) and CONFIG_IS_ENABLED(FS_EXT4) can be used to control the build in both SPL and U-Boot. Signed-off-by: Tien Fong Chee <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2019-02-01spl: Kconfig: Replace CONFIG_SPL_FAT_SUPPORT with CONFIG_SPL_FS_FATTien Fong Chee
Replace CONFIG_SPL_FAT_SUPPORT with CONFIG_SPL_FS_FAT so obj-$(CONFIG_$(SPL_)FS_FAT) can be used to control the build in both SPL and U-Boot. Signed-off-by: Tien Fong Chee <[email protected]> Reviewed-by: Simon Goldschmidt <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2018-05-07SPDX: Convert all of our single license tags to Linux Kernel styleTom Rini
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <[email protected]>
2017-10-06disk: Provide API to get partition by name for specific typeSam Protsenko
There is already existing function part_get_info_by_name(). But sometimes user is particularly interested in looking for only specific partition type. This patch implements such an API that provides partition searching by name for specified partition type. Signed-off-by: Sam Protsenko <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2017-09-20part: move efi_guid_tRob Clark
Prep work for next patch. Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Alexander Graf <[email protected]>
2017-09-15fs: add fs_readdir()Rob Clark
Needed to support efi file protocol. The fallback.efi loader wants to be able to read the contents of the /EFI directory to find an OS to boot. Modelled after POSIX opendir()/readdir()/closedir(). Unlike the other fs APIs, this is stateful (ie. state is held in the FS_DIR "directory stream"), to avoid re-traversing of the directory structure at each step. The directory stream must be released with closedir() when it is no longer needed. Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Ɓukasz Majewski <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2017-09-03part: efi: make gpt_fill_pte take the device descriptorMaxime Ripard
The gpt_fill_pte will need to access the device block size. Let's pass the device descriptor as an argument. Signed-off-by: Maxime Ripard <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2017-08-04GPT: read partition table from device into a data structureAlison Chaiken
Make the partition table available for modification by reading it from the user-specified device into a linked list. Provide an accessor function for command-line testing. Signed-off-by: Alison Chaiken <[email protected]> [trini: Make this depend on CMD_GPT_RENAME, as it is the user of this code] Signed-off-by: Tom Rini <[email protected]>
2017-08-04GPT: add accessor function for disk GUIDAlison Chaiken
In order to read the GPT, modify the partition name strings, and then write out a new GPT, the disk GUID is needed. While there is an existing accessor for the partition UUIDs, there is none yet for the disk GUID. Changes since v6: none. Signed-off-by: Alison Chaiken <[email protected]>
2017-08-04partitions: increase MAX_SEARCH_PARTITIONS and move to part.hAlison Chaiken
Move MAX_SEARCH_PARTITIONS to part.h so that functions in cmd directory can find it. At the same time, increase the value to 64 since some operating systems use many, and the resources consumed by a larger value are minimal. Changes since v6: none. Signed-off-by: Alison Chaiken <[email protected]>
2017-08-04disk_partition: introduce macros for description string lengthsAlison Chaiken
Changes since v6: none. Signed-off-by: Alison Chaiken <[email protected]>
2017-08-04EFI: replace number with UUID_STR_LEN macroAlison Chaiken
Changes since v6: none. Signed-off-by: Alison Chaiken <[email protected]>