From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0E2A6C4338F for ; Mon, 26 Jul 2021 15:27:55 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B397360F58 for ; Mon, 26 Jul 2021 15:27:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org B397360F58 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=qf8EGL8m7WNpMwBrpuYs5ky9fOSBwpNEZipOd5vkCoI=; b=rlLqoPSrvg/PPm BrlOh2rr6JcnX/UbuldTeEJ/3RCnw+n6MfvugxUMmVa2BLzXrjNDI+Xks4BQN7RFjPkkV+zhC/MI3 yojz9LFU4Zo6G2PnpDeDrrQeG4JjISkATLznd15WJMWdu7z0zhaSSsaD8M4qPMmEJn9WE4KLP+akX YGjlgEj+WR00myB4XHqlTBE1e++s1r2jlIMeEco+xuxP2iKX7nixhbXuIoR0PKBzPplUIAP/dKliN LlTC7gutipk3S5/DcjSd8mZApgApzZEqzUg/WSwgENyy6xMMoPOVaDwybf3gxOGCKY0nMP0ZOfwu9 z281TZZ5hAKrILQZ9phQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m82U8-00BlLI-M5; Mon, 26 Jul 2021 15:25:40 +0000 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m82U4-00BlKh-KW for linux-arm-kernel@lists.infradead.org; Mon, 26 Jul 2021 15:25:38 +0000 Received: by mail-wm1-x32b.google.com with SMTP id k4so5569531wms.3 for ; Mon, 26 Jul 2021 08:25:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=pBVJyA4T0zI+iv2Wp5+oDPu2YIC5yps0Y/fvVSXYEQs=; b=RnK4xS2xaNXBC1CBiO/oGd1xKxTL0S6WNRwcmow7eXMFeFmdNu33WXk/v6Xep9s9nZ 64v9Ia2csL2/A8FBTKvPZK0DhAK/ThX51MTa7yVO8QS4YA/rXZnQhyY3Zke2jR0X4zAY YLdVxuhgOIubIxCv+mT+bIy6J/CRB7TccUyv5MmdxV2UcmJbCN/7ZB9N7i3Ipn47GvfA C6dt7ZaGJmQRJMdYewc26pR9nPPQfq/RZaZfSKY1A3c7FM36HzFxI28UD289MfQmoWg1 bJ6UzKgKfUlNvYknLeFfgTz1SYuo6t9oocOGm03DbhqxhQowxROkeG9Zv4e4i1xWElgw dTog== 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=pBVJyA4T0zI+iv2Wp5+oDPu2YIC5yps0Y/fvVSXYEQs=; b=C7540R8YZBYonmCqbzMTL24jkO0Xx0dg7hybEW4qq/2qHGItl5dGPP2/w14uiXfr/N y7bYCUa8ojehubAnwDAKcH3XWQW8ejWigS9qgEk/tsacqjyziYWGEXN6SrSCCierbOCr dSBGeKJ4SLcVrKZZBPs7NSD1eSX2doR0EKOFeLNGuFS70/KwDoAztBpgONJi78/Ez969 C2jSfjvlED3la6BLJqC6uVQcNebZGz5iSDjZO8Hi28jRVn0rjmJ46rMsVdaagfKXlNQr uUqL6DbuUgh4KsptJOfkceDHyHAfPNEmaIc7Pot8hQhkE4GpZiAGhFi+I+XSpJGnJQ1Q Tatg== X-Gm-Message-State: AOAM530X2Gtx7sCVkgAH3rrbV8dTp6dNq+k9HgV/7X8zSYEnuSVpr4vP mK2uquEZDsW1ZUE8+ruL1sgl0v5dvOohwn275mQTyA== X-Google-Smtp-Source: ABdhPJzuYQvQtZ7k+FKyTKBaI2YR2ciQkN/8HRXE4bbbW5A0TSKqBHbx2bCSzEkGWCwrocKfEjB1riJfvDdy+iRkVYE= X-Received: by 2002:a05:600c:204a:: with SMTP id p10mr17594848wmg.136.1627313134086; Mon, 26 Jul 2021 08:25:34 -0700 (PDT) MIME-Version: 1.0 References: <20210722121757.1944658-1-jens.wiklander@linaro.org> <20210726105400.2li4fj223u3vajly@bogus> In-Reply-To: From: Jens Wiklander Date: Mon, 26 Jul 2021 17:25:23 +0200 Message-ID: Subject: Re: [PATCH v3 0/5] Add FF-A support in OP-TEE driver To: Sumit Garg Cc: Sudeep Holla , Linux Kernel Mailing List , linux-arm-kernel , OP-TEE TrustedFirmware , Marc Bonnici , Jerome Forissier , Sughosh Ganu X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210726_082536_755696_5C303E73 X-CRM114-Status: GOOD ( 46.50 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Sumit, On Mon, Jul 26, 2021 at 1:41 PM Sumit Garg wrote: > > On Mon, 26 Jul 2021 at 16:25, Sudeep Holla wrote: > > > > On Mon, Jul 26, 2021 at 03:59:36PM +0530, Sumit Garg wrote: > > > Hi Jens, > > > > > > On Thu, 22 Jul 2021 at 17:48, Jens Wiklander wrote: > > > > > > > > Hi all, > > > > > > > > This adds supports for the OP-TEE driver to communicate with secure world > > > > using FF-A [1] as transport. > > > > > > > > There is one change to the TEE subsystem with "tee: add sec_world_id to > > > > struct tee_shm" to add support for holding globally unique handle assigned > > > > by the FF-A. This is a field that I believe could useful for the AMDTEE > > > > driver too. > > > > > > > > For communication the OP-TEE message protocol is still used, but with a new > > > > type of memory reference, struct optee_msg_param_fmem, to carry the > > > > information needed by FF-A. The OP-TEE driver is refactored internally with > > > > to sets of callbacks, one for the old SMC based communication and another > > > > set with FF-A as transport. The functions relating to the SMC based ABI > > > > are moved to smc_abi.c while the FF-A based ABI is added in a ffa_abi.c. > > > > > > > > There is also a difference in how the drivers are instantiated. With the > > > > SMC based transport we have a platform driver, module_platform_driver(), > > > > today which we're keeping as is for this configuration. In a FF-A system we > > > > have a FF-A driver, module_ffa_driver(), instead. > > > > > > > > The OP-TEE driver can be compiled for both targets at the same time and > > > > it's up to runtime configuration (device tree or ACPI) to decide how it's > > > > initialized. Note that it's only the old SMC based driver instance that > > > > need device tree or ACPI to initialize. The FF-A based driver relies on the > > > > FF-A bus instead. > > > > > > > > This can be tested QEMU > > > > The repo for SPMC at S-EL1 retrieved by > > > > repo init -u https://github.com/jenswi-linaro/manifest.git -m > > > > qemu_v8.xml -b ffav4_spmc > > > > repo sync > > > > # Then checkout the branch optee_ffa_v3 from > > > > # git://git.linaro.org/people/jens.wiklander/linux-tee.git > > > > # in the linux directory > > > > > > > > To build do: > > > > cd build > > > > make toolchains > > > > make all > > > > > > > > To boot: > > > > make run-only > > > > > > > > Test with xtest, perhaps only with the command "xtest 1004" in case you're > > > > not interested in too many tests. > > > > > > Thanks Jens for sharing instructions to test this feature. So I tried > > > to reproduce using following repo versions: > > > > > > linux-tee, branch: optee_ffa_v3 > > > trusted-firmware-a, branch: ffav4_sel1_spmc > > > build, branch: ffav4_spmc > > > > > > and rest of the repos synced to the latest version as per upstream > > > qemu_v8.xml [1] but I don't see OP-TEE driver being probed during boot > > > [2]. Am I missing something? > > > > > > [1] https://github.com/OP-TEE/manifest/blob/master/qemu_v8.xml > > > [2] > > > Welcome to Buildroot, type root or test to login > > > buildroot login: root > > > # dmesg | grep optee > > > > > > > Do you see ARM FF-A driver initialised successfully ? > > You must see "ARM FF-A Version 1.0 found" or something similar based on > > the actual version supported. > > > > If so, can you check if the partitions are correctly populated by > > the driver using the discover API. > > > > $ grep "" /sys/bus/arm_ffa/devices/*/uuid > > > > If uuid reads zeros, then the devices are populated, just the matching > > driver is not found(due to the workaround for v1.0 spec) > > > > It turns out to be an issue with my build environment, I re-built from > scratch and I could see OP-TEE being probed successfully: > > # dmesg | grep FF-A > [ 0.356382] ARM FF-A: Version 1.0 found > # > # cat /sys/bus/arm_ffa/devices/arm-ffa-8001/uuid > 486178e0-e7f8-11e3-bc5e-0002a5d5c51b > # > # dmesg | grep optee > [ 4.991472] optee: revision 3.14 (49dbb9ef) > [ 5.010110] optee: initialized driver > # That's good. > From xtest logs it looks like the pseudo TA interface isn't working for me: > > * regression_1001 Core self tests > - 1001 - skip test, pseudo TA not found > regression_1001 OK > > * regression_1002 PTA parameters > - 1002 - skip test, pseudo TA not found > regression_1002 OK > > * regression_1003 Core internal read/write mutex > - 1003 - skip test, pseudo TA not found > regression_1003 OK The test PTAs are disabled by default. > > Similarly, pseudo TAs acting as TEE bus devices doesn't work as well > as I see following devices directory being empty: > > # ls /sys/bus/tee/devices/ > # > > As otherwise with OP-TEE SMC ABI, we should have at least the default > pseudo TA [1] kernel device there. > > So is pseudo TA functional with this new FF-A interface? Yes, everything is supposed to work. Cheers, Jens _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel