Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+7 -2
+7 -2
drivers/soc/microchip/mpfs-sys-controller.c
··· 118 118 { 119 119 .name = "mpfs-generic-service", 120 120 .id = -1, 121 - } 121 + }, 122 + { 123 + .name = "mpfs-auto-update", 124 + .id = -1, 125 + }, 122 126 }; 123 127 124 128 static int mpfs_sys_controller_probe(struct platform_device *pdev) ··· 164 160 165 161 platform_set_drvdata(pdev, sys_controller); 166 162 167 - dev_info(&pdev->dev, "Registered MPFS system controller\n"); 168 163 169 164 for (i = 0; i < ARRAY_SIZE(subdevs); i++) { 170 165 subdevs[i].dev.parent = dev; 171 166 if (platform_device_register(&subdevs[i])) 172 167 dev_warn(dev, "Error registering sub device %s\n", subdevs[i].name); 173 168 } 169 + 170 + dev_info(&pdev->dev, "Registered MPFS system controller\n"); 174 171 175 172 return 0; 176 173 }