diff options
author | Conor Dooley <conor.dooley@microchip.com> | 2023-10-20 16:18:42 +0300 |
---|---|---|
committer | Conor Dooley <conor.dooley@microchip.com> | 2023-12-06 15:06:18 +0300 |
commit | fad13b5b73e0689d19316e5d62341d8396bb261e (patch) | |
tree | b4b11ea4ac51253039ceba59ad0af5122de4fab3 | |
parent | a8f00589be7b9dfeae801bd3087ec7da57c1913e (diff) | |
download | linux-fad13b5b73e0689d19316e5d62341d8396bb261e.tar.xz |
soc: microchip: mpfs: add auto-update subdev to system controller
The PolarFire SoC's system controller offers the ability to re-program
the FPGA from a user application via two, related, mechanisms.
In-Application Programming (IAP) is not ideal for use in Linux, as it
will immediately take down the system when requested. Auto Update is
preferred, as it will only take affect at device power up*, allowing the
OS (and potential applications in AMP) to be shut down gracefully.
* Auto Update occurs at device initialisation, which can also be
triggered by device reset - possible with the v2023.02 version of the
Hart Software Services (HSS) and reference design.
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
-rw-r--r-- | drivers/soc/microchip/mpfs-sys-controller.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/soc/microchip/mpfs-sys-controller.c b/drivers/soc/microchip/mpfs-sys-controller.c index d438efde3278..7a4936019329 100644 --- a/drivers/soc/microchip/mpfs-sys-controller.c +++ b/drivers/soc/microchip/mpfs-sys-controller.c @@ -118,7 +118,11 @@ static struct platform_device subdevs[] = { { .name = "mpfs-generic-service", .id = -1, - } + }, + { + .name = "mpfs-auto-update", + .id = -1, + }, }; static int mpfs_sys_controller_probe(struct platform_device *pdev) @@ -160,7 +164,6 @@ no_flash: platform_set_drvdata(pdev, sys_controller); - dev_info(&pdev->dev, "Registered MPFS system controller\n"); for (i = 0; i < ARRAY_SIZE(subdevs); i++) { subdevs[i].dev.parent = dev; @@ -168,6 +171,8 @@ no_flash: dev_warn(dev, "Error registering sub device %s\n", subdevs[i].name); } + dev_info(&pdev->dev, "Registered MPFS system controller\n"); + return 0; } |