2018-07-06 08:28:03 +00:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2018 Intel Corporation <www.intel.com>
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: GPL-2.0
|
|
|
|
*/
|
|
|
|
#ifndef _FS_LOADER_H_
|
|
|
|
#define _FS_LOADER_H_
|
|
|
|
|
2020-07-19 16:15:38 +00:00
|
|
|
struct udevice;
|
2018-07-06 08:28:03 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* struct phandle_part - A place for storing phandle of node and its partition
|
|
|
|
*
|
|
|
|
* This holds information about a phandle of the block device, and its
|
|
|
|
* partition where the firmware would be loaded from.
|
|
|
|
*
|
|
|
|
* @phandle: Phandle of storage device node
|
|
|
|
* @partition: Partition of block device
|
|
|
|
*/
|
|
|
|
struct phandle_part {
|
|
|
|
u32 phandle;
|
|
|
|
u32 partition;
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* struct phandle_part - A place for storing all supported storage devices
|
|
|
|
*
|
|
|
|
* This holds information about all supported storage devices for driver use.
|
|
|
|
*
|
|
|
|
* @phandlepart: Attribute data for block device.
|
|
|
|
* @mtdpart: MTD partition for ubi partition.
|
|
|
|
* @ubivol: UBI volume-name for ubifsmount.
|
|
|
|
*/
|
2020-12-03 23:55:23 +00:00
|
|
|
struct device_plat {
|
2018-07-06 08:28:03 +00:00
|
|
|
struct phandle_part phandlepart;
|
|
|
|
char *mtdpart;
|
|
|
|
char *ubivol;
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* request_firmware_into_buf - Load firmware into a previously allocated buffer.
|
2018-12-10 13:29:44 +00:00
|
|
|
* @dev: An instance of a driver.
|
2018-07-06 08:28:03 +00:00
|
|
|
* @name: Name of firmware file.
|
|
|
|
* @buf: Address of buffer to load firmware into.
|
|
|
|
* @size: Size of buffer.
|
|
|
|
* @offset: Offset of a file for start reading into buffer.
|
|
|
|
*
|
2018-12-10 13:29:44 +00:00
|
|
|
* The firmware is loaded directly into the buffer pointed to by @buf.
|
2018-07-06 08:28:03 +00:00
|
|
|
*
|
|
|
|
* Return: Size of total read, negative value when error.
|
|
|
|
*/
|
2018-12-10 13:29:44 +00:00
|
|
|
int request_firmware_into_buf(struct udevice *dev,
|
2018-07-06 08:28:03 +00:00
|
|
|
const char *name,
|
2018-12-10 13:29:44 +00:00
|
|
|
void *buf, size_t size, u32 offset);
|
2022-12-29 16:52:59 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* get_fs_loader() - Get the chosen filesystem loader
|
|
|
|
* @dev: Where to store the device
|
|
|
|
*
|
|
|
|
* This gets a filesystem loader device based on the value of
|
|
|
|
* /chosen/firmware-loader. If no such property exists, it returns a
|
|
|
|
* firmware loader which is configured by environmental variables.
|
|
|
|
*
|
|
|
|
* Return: 0 on success, negative value on error
|
|
|
|
*/
|
|
|
|
int get_fs_loader(struct udevice **dev);
|
2018-07-06 08:28:03 +00:00
|
|
|
#endif
|