lkml.org 
[lkml]   [2017]   [Jul]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/3] drivers: remoteproc: Make mdt_loader firmware authentication optional
    On Thu 29 Jun 07:17 PDT 2017, Sricharan R wrote:

    > qcom_mdt_load function loads the mdt type firmware and
    > authenticates it as well. Make the authentication only
    > when requested by the caller, so that the function can be used
    > by self-authenticating remoteproc as well.
    >

    This is good, we should be able to save some duplication the current
    MSA PIL as well by this.

    > Signed-off-by: Sricharan R <sricharan@codeaurora.org>
    > ---
    > drivers/remoteproc/qcom_adsp_pil.c | 3 ++-
    > drivers/remoteproc/qcom_wcnss.c | 3 ++-
    > drivers/soc/qcom/mdt_loader.c | 24 ++++++++++++++----------
    > include/linux/soc/qcom/mdt_loader.h | 2 +-

    We have two additional callers being merged, so changing the prototype
    of qcom_mdt_load() will cause issues.

    I think the best approach is to leave all callers untouched, make the
    current implementation of qcom_mdt_load() internal and provide two
    exported wrapper functions: qcom_mdt_load() and qcom_mdt_load_no_init().

    These wrappers would call the internal function with the appropriate
    value of the boolean.

    [..]
    > diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c
    [..]
    > int qcom_mdt_load(struct device *dev, const struct firmware *fw,
    > const char *firmware, int pas_id, void *mem_region,
    > - phys_addr_t mem_phys, size_t mem_size)
    > + phys_addr_t mem_phys, size_t mem_size, bool auth)

    We're not authenticating even with @auth=true, so please name this
    "pas_init".

    > {
    > const struct elf32_phdr *phdrs;
    > const struct elf32_phdr *phdr;
    [..]
    > @@ -142,12 +144,14 @@ int qcom_mdt_load(struct device *dev, const struct firmware *fw,
    > }
    >
    > if (relocate) {
    > - ret = qcom_scm_pas_mem_setup(pas_id, mem_phys, max_addr - min_addr);
    > - if (ret) {
    > - dev_err(dev, "unable to setup relocation\n");
    > - goto out;
    > + if (auth) {
    > + ret = qcom_scm_pas_mem_setup(pas_id, mem_phys,
    > + max_addr - min_addr);
    > + if (ret) {
    > + dev_err(dev, "unable to setup relocation\n");
    > + goto out;
    > + }
    > }
    > -

    I like this empty line, please let me have it.

    > /*
    > * The image is relocatable, so offset each segment based on
    > * the lowest segment address.

    Regards,
    Bjorn

    \
     
     \ /
      Last update: 2017-07-26 20:12    [W:5.924 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site