Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp16730625ybl; Wed, 1 Jan 2020 12:15:34 -0800 (PST) X-Google-Smtp-Source: APXvYqxKfwGRqdkowI2gzNpRj/GklJYVR0q8zyHgTVGeoRBlf5vh7QEw4VL4o2c/Z/KRH7DZIK70 X-Received: by 2002:a9d:70cb:: with SMTP id w11mr71680836otj.230.1577909734252; Wed, 01 Jan 2020 12:15:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1577909734; cv=none; d=google.com; s=arc-20160816; b=SGRlCAQUE0m0SRJykqiGKiG8guLaHhW4DZnq9zqMBwPx2V7z3v9nyP+JSTl966yS+s aM3pALViiGLXPMIMqOUCO8Ze0JQvNta7E2O+HBy/i1m8re6kzjgm+JnMyc+D7aZFLQTV TS7yanAfA7TahjqrlFjF10pwBMRezY6Th/0S/JenGcIfV1aVKdI32FFbWwREgJlR3TVO GZyoppgIdy4HwdRLkxPwH6Bo1I/GjfhPJWQ7SUwslDJ8OyUp1k4jQwMmBpPb5e4zL0Ns mp0uyNv8scYkygQFPU3FNHIiD7/ka73Y+pVGfT4MdOAOt35Fg+x1ZNo6fcqEP6J7+AFY 4x+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=dA7p3SwLAkRQTTiidDN3D+F+xkhlU3b/35cKZOnXouk=; b=P3k5tKOxHJNv3Gh2473vW9WCDmBO4JMRNupwOsWqFdzRjnOqhlVL0HliDnwJBmvXTv YO1W565IBiawBWBTF/plDnhQyaLfG2zoCRfzzXTasHncCYi3UkvC1S4CH3nVz9ddHmXe VZmraWbsxIRSYiUg8hK8LV+5km60XY6NTW7vRCPFSeqynvc4F5whUbEjoUWqlGXLOPWT fzuPzDxW5+T5q0/HXQwbEDJqF2M79FhX+P0r6aukVngS1b1Fbx6o1jg9LUMDBd0TeKHT Y9UPp2IH2PDbhP8PIFzZGOK24cojZ25bdc9lzP/66iwOpQE1fM2iET6eb+3zFXqXUXv8 x/gw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=nTOYZsyv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h9si24093004oia.97.2020.01.01.12.15.21; Wed, 01 Jan 2020 12:15:34 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=nTOYZsyv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727235AbgAAUOb (ORCPT + 99 others); Wed, 1 Jan 2020 15:14:31 -0500 Received: from mail-ed1-f66.google.com ([209.85.208.66]:33131 "EHLO mail-ed1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725871AbgAAUOb (ORCPT ); Wed, 1 Jan 2020 15:14:31 -0500 Received: by mail-ed1-f66.google.com with SMTP id r21so37583625edq.0; Wed, 01 Jan 2020 12:14:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=dA7p3SwLAkRQTTiidDN3D+F+xkhlU3b/35cKZOnXouk=; b=nTOYZsyvitbb3ruPWXF0wLFs8CKRD1vCOR3PKmN/ci3dkmraINCkHqEAwb4S40jSLp gDNtrgzTvV8gQcHKUaAEKUXXEQWOpfK69wDRTAX9tabBRgSetlS9GM7C1fbj1Cw2nWL6 +wxjVznDjsOiLH0YQJdC3g43LX++D3Ujm98wusNoV56LuVFDQT3ptnOJQ50Zdx06R9eY huU0W+FMFxuND/j7WoBA25bL+NzPjmLq0MaqIzWAuZXhDN8tLCtcwCnkkjwpogc1EF4V LDulo106EM202PSDj2y1mbMlDi7oSypIhPM1ip1f+/W0PnAAdsK2wfDSGPbeqhGtt18A S4/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=dA7p3SwLAkRQTTiidDN3D+F+xkhlU3b/35cKZOnXouk=; b=eupe7eE87co6lGyIcb1ezSG/EC79ZShfLi+/AktCmccIprsXos7bW8gq7OuDDxtv1V agjZADQfJ//C4Cc76ovHRYopHmzQhWa/x343/BHMrsdEcaUFIkTLBpjMFK2q6gVF8TRU xZUrgu0jt1kvLjcpsxdBkSICrXZcJbhxLKCYTz0HJeclCwiJw1Y937jb/bUJHsiIvAFf PO6yj6haNEwTf7dnaHiizaUSc9jOyZxJQLJUx0el2S35wNWz0CY97cDvnBq1P36Yc06Q 0BJO9bj7h3TcxJ6/TWoUJbpSXUf95Nsyejf9br70ubh3GTJkpML+aLIR7D43chr/oAmO CKsw== X-Gm-Message-State: APjAAAUZzw1uFlKIWEITNb541eRAkK3yL+ufOP3nruypih9pfa6+JTST pjv+0Qto6RGpWhry/2wz/FMBrkfKMWgW23jLRwY= X-Received: by 2002:a17:906:34d7:: with SMTP id h23mr6207833ejb.90.1577909669737; Wed, 01 Jan 2020 12:14:29 -0800 (PST) MIME-Version: 1.0 References: <20200101033704.32264-1-masneyb@onstation.org> <20200101111521.GA67534@gerhold.net> In-Reply-To: <20200101111521.GA67534@gerhold.net> From: Rob Clark Date: Wed, 1 Jan 2020 12:14:35 -0800 Message-ID: Subject: Re: [PATCH] firmware: qcom: scm: add 32 bit iommu page table support To: Stephan Gerhold Cc: Brian Masney , Bjorn Andersson , Andy Gross , linux-arm-msm , Linux Kernel Mailing List , Stephen Boyd Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jan 1, 2020 at 3:16 AM Stephan Gerhold wrote: > > On Tue, Dec 31, 2019 at 10:37:04PM -0500, Brian Masney wrote: > > Add 32 bit implmentations of the functions > > __qcom_scm_iommu_secure_ptbl_size() and > > __qcom_scm_iommu_secure_ptbl_init() that are required by the qcom_iommu > > driver. > > > > Signed-off-by: Brian Masney > > --- > > drivers/firmware/qcom_scm-32.c | 32 ++++++++++++++++++++++++++++++-- > > 1 file changed, 30 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/firmware/qcom_scm-32.c b/drivers/firmware/qcom_scm-32.c > > index 48e2ef794ea3..f149a85d36b0 100644 > > --- a/drivers/firmware/qcom_scm-32.c > > +++ b/drivers/firmware/qcom_scm-32.c > > @@ -638,13 +638,41 @@ int __qcom_scm_restore_sec_cfg(struct device *dev, u32 device_id, > > int __qcom_scm_iommu_secure_ptbl_size(struct device *dev, u32 spare, > > size_t *size) > > { > > - return -ENODEV; > > + int psize[2] = { 0, 0 }; > > I would use an explicit size (i.e. __le32) here. > > > + int ret; > > + > > + ret = qcom_scm_call(dev, QCOM_SCM_SVC_MP, > > + QCOM_SCM_IOMMU_SECURE_PTBL_SIZE, > > + &spare, sizeof(spare), &psize, sizeof(psize)); > > + if (ret || psize[1]) > > + return ret ? ret : -EINVAL; > > + > > + *size = psize[0]; > > + > > + return 0; > > } > > > > int __qcom_scm_iommu_secure_ptbl_init(struct device *dev, u64 addr, u32 size, > > u32 spare) > > { > > - return -ENODEV; > > + struct msm_scm_ptbl_init { > > + __le32 paddr; > > + __le32 size; > > + __le32 spare; > > + } req; > > + int ret, scm_ret = 0; > > + > > + req.paddr = addr; > > + req.size = size; > > + req.spare = spare; > > I'm not sure if there is actually anyone using qcom in BE mode (does > that even work?), but all the other methods in this file explicitly > convert using cpu_to_le32(), so this method should do the same :) sboyd used to occasionally fix things related to qcom in BE back in the day.. not sure if modern snapdragons still support BE. (I'm willing to just pretend that they don't.. that lessens the chance that someday someone gets far enough to try the GPU in BE mode, and realizes they've wasted their time getting that far ;-)) BR, -R > > + > > + ret = qcom_scm_call(dev, QCOM_SCM_SVC_MP, > > + QCOM_SCM_IOMMU_SECURE_PTBL_INIT, > > + &req, sizeof(req), &scm_ret, sizeof(scm_ret)); > > + if (ret || scm_ret) > > + return ret ? ret : -EINVAL; > > + > > + return 0; > > } > > > > int __qcom_scm_io_readl(struct device *dev, phys_addr_t addr, > > -- > > 2.21.0 > >