Merge tag 'fsl-qoriq-2023-7-13' of https://source.denx.de/u-boot/custodians/u-boot...
[platform/kernel/u-boot.git] / include / fs_loader.h
1 /*
2  * Copyright (C) 2018 Intel Corporation <www.intel.com>
3  *
4  * SPDX-License-Identifier:    GPL-2.0
5  */
6 #ifndef _FS_LOADER_H_
7 #define _FS_LOADER_H_
8
9 struct udevice;
10
11 /**
12  * struct phandle_part - A place for storing phandle of node and its partition
13  *
14  * This holds information about a phandle of the block device, and its
15  * partition where the firmware would be loaded from.
16  *
17  * @phandle: Phandle of storage device node
18  * @partition: Partition of block device
19  */
20 struct phandle_part {
21         u32 phandle;
22         u32 partition;
23 };
24
25 /**
26  * struct phandle_part - A place for storing all supported storage devices
27  *
28  * This holds information about all supported storage devices for driver use.
29  *
30  * @phandlepart: Attribute data for block device.
31  * @mtdpart: MTD partition for ubi partition.
32  * @ubivol: UBI volume-name for ubifsmount.
33  */
34 struct device_plat {
35         struct phandle_part phandlepart;
36         char *mtdpart;
37         char *ubivol;
38 };
39
40 /**
41  * request_firmware_into_buf - Load firmware into a previously allocated buffer.
42  * @dev: An instance of a driver.
43  * @name: Name of firmware file.
44  * @buf: Address of buffer to load firmware into.
45  * @size: Size of buffer.
46  * @offset: Offset of a file for start reading into buffer.
47  *
48  * The firmware is loaded directly into the buffer pointed to by @buf.
49  *
50  * Return: Size of total read, negative value when error.
51  */
52 int request_firmware_into_buf(struct udevice *dev,
53                               const char *name,
54                               void *buf, size_t size, u32 offset);
55
56 /**
57  * get_fs_loader() - Get the chosen filesystem loader
58  * @dev: Where to store the device
59  *
60  * This gets a filesystem loader device based on the value of
61  * /chosen/firmware-loader. If no such property exists, it returns a
62  * firmware loader which is configured by environmental variables.
63  *
64  * Return: 0 on success, negative value on error
65  */
66 int get_fs_loader(struct udevice **dev);
67 #endif