Message ID | 20230827211408.689076-1-luzmaximilian@gmail.com |
---|---|
Headers | show |
Series | firmware: Add support for Qualcomm UEFI Secure Application | expand |
On 8/27/23 23:26, Trilok Soni wrote: > On 8/27/2023 2:14 PM, Maximilian Luz wrote: >> >> +config QCOM_QSEECOM_UEFISECAPP >> + bool "Qualcomm SEE UEFI Secure App client driver" > > Why not "tristate"? This driver can be a loadable module, right? As I understand, modular efivars have still not been fully sorted out in the kernel. For example, userspace could try and mount efivarfs before the module has been loaded and by that erroneously determine that the system doesn't support efivars. So requiring it to be built in for now is more of a workaround (which has been suggested by Johan Hovold). There is no technical limitation in this part of the code itself, so enabling it (and QCOM_QSEECOM for that matter) to be built as module should be fairly straightforward once that's been sorted out. >> + depends on QCOM_QSEECOM >> + depends on EFI >> + help > >
On 8/27/2023 2:53 PM, Maximilian Luz wrote: > On 8/27/23 23:26, Trilok Soni wrote: >> On 8/27/2023 2:14 PM, Maximilian Luz wrote: >>> +config QCOM_QSEECOM_UEFISECAPP >>> + bool "Qualcomm SEE UEFI Secure App client driver" >> >> Why not "tristate"? This driver can be a loadable module, right? > > As I understand, modular efivars have still not been fully sorted out in > the kernel. For example, userspace could try and mount efivarfs before > the module has been loaded and by that erroneously determine that the > system doesn't support efivars. So requiring it to be built in for now > is more of a workaround (which has been suggested by Johan Hovold). > > There is no technical limitation in this part of the code itself, so > enabling it (and QCOM_QSEECOM for that matter) to be built as module > should be fairly straightforward once that's been sorted out. If not this application I would atleast like the QSEECOM driver to be a loadable module due to GKI (Generic Kernel Image) needs. Can we mark QSEECOM as "tristate" please? If not then there is a problem which we are not solving right now as you are documenting above and just moving it it for future and downstream vendors will keep having their additional changes to make it fit for loadable module needs.
On Sun, Aug 27, 2023 at 11:53:08PM +0200, Maximilian Luz wrote: > On 8/27/23 23:26, Trilok Soni wrote: > > On 8/27/2023 2:14 PM, Maximilian Luz wrote: > > > +config QCOM_QSEECOM_UEFISECAPP > > > + bool "Qualcomm SEE UEFI Secure App client driver" > > > > Why not "tristate"? This driver can be a loadable module, right? > > As I understand, modular efivars have still not been fully sorted out in > the kernel. For example, userspace could try and mount efivarfs before > the module has been loaded and by that erroneously determine that the > system doesn't support efivars. So requiring it to be built in for now > is more of a workaround (which has been suggested by Johan Hovold). > > There is no technical limitation in this part of the code itself, so > enabling it (and QCOM_QSEECOM for that matter) to be built as module > should be fairly straightforward once that's been sorted out. > Afaict without resolving the efivars issue this is boolean in practice anyways. As such, I intend to pick this for v6.7, and we can transition to modular support incrementally from here. Many thanks for sticking to the effort, Maximilian. Regards, Bjorn
On 8/27/23 23:59, Trilok Soni wrote: > On 8/27/2023 2:53 PM, Maximilian Luz wrote: >> On 8/27/23 23:26, Trilok Soni wrote: >>> On 8/27/2023 2:14 PM, Maximilian Luz wrote: >>>> +config QCOM_QSEECOM_UEFISECAPP >>>> + bool "Qualcomm SEE UEFI Secure App client driver" >>> >>> Why not "tristate"? This driver can be a loadable module, right? >> >> As I understand, modular efivars have still not been fully sorted out in >> the kernel. For example, userspace could try and mount efivarfs before >> the module has been loaded and by that erroneously determine that the >> system doesn't support efivars. So requiring it to be built in for now >> is more of a workaround (which has been suggested by Johan Hovold). >> >> There is no technical limitation in this part of the code itself, so >> enabling it (and QCOM_QSEECOM for that matter) to be built as module >> should be fairly straightforward once that's been sorted out. > > If not this application I would atleast like the QSEECOM driver to be a loadable module due to GKI (Generic Kernel Image) needs. Can we mark QSEECOM as "tristate" please? If not then there is a problem which we are not solving right now as you are documenting above and just moving it it for future and downstream vendors will keep having their additional changes to make it fit for loadable module needs. Could you elaborate a bit on why/how switching to a tristate would help here? I'm afraid I don't quite follow. Do you mean that this would make it easier for downstream vendors to patch the module as opposed to create their own new thing? IMHO if they already need to patch it they can just as well modify it to be buildable as a module. Generally I'm not opposed to have both loadable as modules, but I don't quite see the point as it would not be usable as such in upstream at the moment (at least not reliably, so to avoid those headaches I think it's better to just stick to bool for now). Regards, Max
On 9/7/2023 1:52 PM, Maximilian Luz wrote: > On 8/27/23 23:59, Trilok Soni wrote: >> On 8/27/2023 2:53 PM, Maximilian Luz wrote: >>> On 8/27/23 23:26, Trilok Soni wrote: >>>> On 8/27/2023 2:14 PM, Maximilian Luz wrote: >>>>> +config QCOM_QSEECOM_UEFISECAPP >>>>> + bool "Qualcomm SEE UEFI Secure App client driver" >>>> >>>> Why not "tristate"? This driver can be a loadable module, right? >>> >>> As I understand, modular efivars have still not been fully sorted out in >>> the kernel. For example, userspace could try and mount efivarfs before >>> the module has been loaded and by that erroneously determine that the >>> system doesn't support efivars. So requiring it to be built in for now >>> is more of a workaround (which has been suggested by Johan Hovold). >>> >>> There is no technical limitation in this part of the code itself, so >>> enabling it (and QCOM_QSEECOM for that matter) to be built as module >>> should be fairly straightforward once that's been sorted out. >> >> If not this application I would atleast like the QSEECOM driver to be a loadable module due to GKI (Generic Kernel Image) needs. Can we mark QSEECOM as "tristate" please? If not then there is a problem which we are not solving right now as you are documenting above and just moving it it for future and downstream vendors will keep having their additional changes to make it fit for loadable module needs. > > Could you elaborate a bit on why/how switching to a tristate would help > here? I'm afraid I don't quite follow. Do you mean that this would make > it easier for downstream vendors to patch the module as opposed to > create their own new thing? IMHO if they already need to patch it they > can just as well modify it to be buildable as a module. > > Generally I'm not opposed to have both loadable as modules, but I don't > quite see the point as it would not be usable as such in upstream at > the moment (at least not reliably, so to avoid those headaches I think > it's better to just stick to bool for now). I just want to be clear that it is not about downstream patches. That is not the intention. Not having the tristate the shows the real problem somewhere in the framework. It means such drivers won't be much usable without hacks on the configuration like GKI - so problem needs to be solved at upstream someday. > > Regards, > Max
On Sun, 27 Aug 2023 23:14:03 +0200, Maximilian Luz wrote: > This series adds basic support for the QSEECOM interface used to > communicate with secure applications running in the TrustZone on certain > Qualcomm devices. In addition to that, it also provides a driver for > "uefisecapp", the secure application managing access to UEFI variables > on such platforms. > > For a more detailed description, see the blurb of v1. > > [...] Applied, thanks! [1/3] lib/ucs2_string: Add UCS-2 strscpy function commit: e4c89f9380017b6b2e63836e2de1af8eb4535384 [2/3] firmware: qcom_scm: Add support for Qualcomm Secure Execution Environment SCM interface commit: 00b1248606ba3979ccae30ed11df8cdc1a84245a [3/3] firmware: Add support for Qualcomm UEFI Secure Application commit: 759e7a2b62eb3ef3c93ffeb5cca788a09627d7d9 Best regards,