summaryrefslogtreecommitdiff
path: root/drivers/fpga/socfpga_arria10.c
diff options
context:
space:
mode:
authorSean Anderson <sean.anderson@seco.com>2022-12-29 11:52:59 -0500
committerTom Rini <trini@konsulko.com>2023-01-12 14:06:15 -0500
commit0998a20cfc6b57e271d597153e39439c37034206 (patch)
tree50be8922cdae23a9385e4c0b04ffe36d4267ec9c /drivers/fpga/socfpga_arria10.c
parent7fb4aa14d4e8435e149b560bed33a8ad78897463 (diff)
downloadu-boot-0998a20cfc6b57e271d597153e39439c37034206.tar.gz
u-boot-0998a20cfc6b57e271d597153e39439c37034206.tar.bz2
u-boot-0998a20cfc6b57e271d597153e39439c37034206.zip
misc: fs_loader: Add function to get the chosen loader
The fs_loader device is used to pull in settings via the chosen node. However, there was no library function for this, so arria10 was doing it explicitly. This function subsumes that, and uses ofnode_get_chosen_node instead of navigating the device tree directly. Because fs_loader pulls its config from the environment by default, it's fine to create a device with nothing backing it at all. Doing this allows enabling CONFIG_FS_LOADER without needing to modify the device tree. Signed-off-by: Sean Anderson <sean.anderson@seco.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Diffstat (limited to 'drivers/fpga/socfpga_arria10.c')
-rw-r--r--drivers/fpga/socfpga_arria10.c28
1 files changed, 3 insertions, 25 deletions
diff --git a/drivers/fpga/socfpga_arria10.c b/drivers/fpga/socfpga_arria10.c
index 3b785e67d0..96b195063e 100644
--- a/drivers/fpga/socfpga_arria10.c
+++ b/drivers/fpga/socfpga_arria10.c
@@ -777,42 +777,20 @@ int socfpga_loadfs(fpga_fs_info *fpga_fsinfo, const void *buf, size_t bsize,
{
struct fpga_loadfs_info fpga_loadfs;
struct udevice *dev;
- int status, ret, size;
+ int status, ret;
u32 buffer = (uintptr_t)buf;
size_t buffer_sizebytes = bsize;
size_t buffer_sizebytes_ori = bsize;
size_t total_sizeof_image = 0;
ofnode node;
- const fdt32_t *phandle_p;
- u32 phandle;
node = get_fpga_mgr_ofnode(ofnode_null());
-
- if (ofnode_valid(node)) {
- phandle_p = ofnode_get_property(node, "firmware-loader", &size);
- if (!phandle_p) {
- node = ofnode_path("/chosen");
- if (!ofnode_valid(node)) {
- debug("FPGA: /chosen node was not found.\n");
- return -ENOENT;
- }
-
- phandle_p = ofnode_get_property(node, "firmware-loader",
- &size);
- if (!phandle_p) {
- debug("FPGA: firmware-loader property was not");
- debug(" found.\n");
- return -ENOENT;
- }
- }
- } else {
+ if (!ofnode_valid(node)) {
debug("FPGA: FPGA manager node was not found.\n");
return -ENOENT;
}
- phandle = fdt32_to_cpu(*phandle_p);
- ret = uclass_get_device_by_phandle_id(UCLASS_FS_FIRMWARE_LOADER,
- phandle, &dev);
+ ret = get_fs_loader(&dev);
if (ret)
return ret;