Received: by 2002:a89:d88:0:b0:1fa:5c73:8e2d with SMTP id eb8csp1312114lqb; Sat, 25 May 2024 16:08:51 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXyPlBie+/Omhrm904MQ2MGNKBuO7ds1FFlBI1OQD3OegovCVKAwHigEGMbMlmWF0FvevQ5DUM/c22DzIDI3iMCIHLlaWPb0n78Oa2XZQ== X-Google-Smtp-Source: AGHT+IEo+AkoCIbE6BSkYO9vY0EdVjsVWfvYWvhGKb0XRwO8n61YCFyhpbFY20ucUVEGtlZE1T2T X-Received: by 2002:a05:6358:c601:b0:193:f809:e933 with SMTP id e5c5f4694b2df-197e50c2342mr562577355d.2.1716678530891; Sat, 25 May 2024 16:08:50 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1716678530; cv=pass; d=google.com; s=arc-20160816; b=wme1KFaxDDVwEDBm0R3JbT34yChmmhXalWRLOsh+Lda+GkKehwxIfkJ2v306p4YQaT csoGH3q40bkoIb1d311SjBhtPezaJ79g1FK88PwNb6LFhdhTYZejUqtWDg14p/nJdp58 +eiBhX4mso9fXNPzygRcFg5qWlgE77qIJAWerz9kGxHn9xy1Rt2xk9yGahYqQOji/rrp 0LVV5gONHBcmZzBmHyGYZEEEBCI8Vh6uARBaXaalkS5J58ycVxDlE7HkTO8WqJTpCJHP RJOsAOa0m6BPDQ3CqGta+MVa7hgdIJuDt/DXdpTdn+DD4dWv0wRnxPiovGzhvqx/Wm53 opgQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :message-id:date:subject:cc:to:from:dkim-signature; bh=B8rLV0HeBn69eRaQfJMzJjbq3WYSpLpvqrC1Q0pSsCA=; fh=fS3JzosyS4Ysuoh8u6LdPpdKKviIcMt2kZ2A9zCY5J4=; b=NDuu9AyC+stSNrfJQwRvaf1tBwLXaIeiUw5lX3TIdoqPxGswtMLzZIita8ErE7Tx4H 24DlUDgSwhrADtoQ4iO6W0mEYYa7zWMN36YAB9nyEK6dvg7wCTaBu8ajfS4UAWuoESop q9ieg7xJELAzGNfkLWdPUzahlQCzMrK++XVqlGHTDXGE+W8FGpqeHsnYKPQRYzgvHAmB IpoebkQQxwIJ3KTYJOjbsJYM1meGtkQaKBv8bMRC1JuCGXESXiw+jm38uKAQeP8C5K7h rcUqc0VN7yrMb7GKK17XMs8YGsOltVc5BwDkzFdHA2mlQQ24bObtM/WX4jS3uUGgiWGe yedw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=bxib8nGO; arc=pass (i=1 spf=pass spfdomain=mediatek.com dkim=pass dkdomain=mediatek.com dmarc=pass fromdomain=mediatek.com); spf=pass (google.com: domain of linux-kernel+bounces-189561-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-189561-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id d75a77b69052e-43fb17ed60asi48734031cf.184.2024.05.25.16.08.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 25 May 2024 16:08:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-189561-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=bxib8nGO; arc=pass (i=1 spf=pass spfdomain=mediatek.com dkim=pass dkdomain=mediatek.com dmarc=pass fromdomain=mediatek.com); spf=pass (google.com: domain of linux-kernel+bounces-189561-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-189561-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 8BCE71C20EBA for ; Sat, 25 May 2024 23:08:50 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 87E8E12A160; Sat, 25 May 2024 23:08:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="bxib8nGO" Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 513E842AA9; Sat, 25 May 2024 23:08:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=60.244.123.138 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716678507; cv=none; b=FPw9DOHZwc/hq+pviA6+B5zd2jPUsb73Zk0NMbG+Fm/7X4YB+/kPccs6lP0yQM2zs9GYcPXdj5tRgZEaMz6ZA0GBLK79Yv4t/0cqb23EqV9PvYMymBEIMWpNpuatOzk/Jl3vJ6yrQgSTd6P9DsvvpxhNJ9UBuRkwsBWDvkDoSnI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716678507; c=relaxed/simple; bh=KuxwgnxpkTBE1s2EjO4AS1uttpmw+m2gpJs53jqjupE=; h=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type; b=DG2DyrNbu1/YDyTSegVD8Ec1RzAuwD2jDQC4gyokg+tz0hZSvyrQ3DXAx4hlahzLOa0YlqbjqdKCmMh5VP+tAIG4gJPEnA5FW8skV4s9fovlsxxwEUNW19BKe0xuZR8hdqFbhVZPL1ZBRWvli838tjVutFam3GkORO7PJCCxEMQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=mediatek.com; spf=pass smtp.mailfrom=mediatek.com; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b=bxib8nGO; arc=none smtp.client-ip=60.244.123.138 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=mediatek.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mediatek.com X-UUID: a9743be61aeb11ef8c37dd7afa272265-20240526 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Type:MIME-Version:Message-ID:Date:Subject:CC:To:From; bh=B8rLV0HeBn69eRaQfJMzJjbq3WYSpLpvqrC1Q0pSsCA=; b=bxib8nGOGrFxYg5faEzXumTHLbLaFo/eYvoH+4oZ8OeNro/UQNWEC2rHfD7nqT0YAgSWOLxg9dN2ALGrK3c7q5mDQu2sbatWb3vamG7EoNihkihZelYzPn63ni/yIr+UZMDuewsQ49y1+jzj1whvu/5FymPvHjenPsKPJkhNrss=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.38,REQID:f4e72cdf-cbe0-46f8-ae1d-ff19ce0b4dea,IP:0,U RL:0,TC:0,Content:100,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTIO N:release,TS:100 X-CID-META: VersionHash:82c5f88,CLOUDID:f84dcd43-4544-4d06-b2b2-d7e12813c598,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:801|102,TC:nil,Content:3,EDM:-3,IP:n il,URL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LE S:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: a9743be61aeb11ef8c37dd7afa272265-20240526 Received: from mtkmbs14n2.mediatek.inc [(172.21.101.76)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 2133953594; Sun, 26 May 2024 07:08:13 +0800 Received: from mtkmbs13n2.mediatek.inc (172.21.101.108) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Sun, 26 May 2024 07:08:10 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkmbs13n2.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Sun, 26 May 2024 07:08:10 +0800 From: Jason-JH.Lin To: Jassi Brar , Krzysztof Kozlowski , Rob Herring , Matthias Brugger , Chun-Kuang Hu , AngeloGioacchino Del Regno CC: Conor Dooley , Jason-ch Chen , "Jason-JH . Lin" , Singo Chang , Nancy Lin , Shawn Sung , , , , , , , Jason-jh Lin Subject: [PATCH v6 0/8] Add CMDQ secure driver for SVP Date: Sun, 26 May 2024 07:08:02 +0800 Message-ID: <20240525230810.24623-1-jason-jh.lin@mediatek.com> X-Mailer: git-send-email 2.18.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-AS-Result: No-10--9.574600-8.000000 X-TMASE-MatchedRID: HhL2K2fGQMRsLX/Zy50gf4QnnAFRgjn9OlW1BAebvzBzwVmY5TMrNmSQ gJ6pnW8lfTfiNIO3sGjdzcJEB3Zs4SgoulOyr3u8/4ToWehCRQUZKp0SZ4P+dcUmcSma304TOGj 73Ju1zWPhNoChA1M9WA7VVWr/VuT8LSTGw1g/Kd4SEYfcJF0pRbLiLKO9VZOiGNAPebYwJ/uYAj JavrGfnw/OeYZBTj6CEdcBbrgDa8DHGs1A87wEZt35+5/2RxqmiK5qg1cmsr+na6U74e0+qLZVh 39LD7EPfRvCo8kOueMuDzNTHYi3Lf4zNVp6ir9FA9lly13c/gEraL2mh8ZVK0k7tZaD19NMo8WM kQWv6iXBcIE78YqRWo6HM5rqDwqtux1CiS1LpJ8yNvWrkZnUKmwBl3cPmzc+NaSmy0CtSX8vwdI o2/jpWg== X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--9.574600-8.000000 X-TMASE-Version: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-SNTS-SMTP: B488D17A83804E6D2B18BFC25267F78324440A50A8DE9971BC9C55B18A0ED2162000:8 X-MTK: N From: Jason-jh Lin For the Secure Video Path (SVP) feature, inculding the memory stored secure video content, the registers of display HW pipeline and the HW configure operations are required to execute in the secure world. So using a CMDQ secure driver to make all display HW registers configuration secure DRAM access permision settings execute by GCE secure thread in the secure world. We are landing this feature on mt8188 and mt8195 currently. --- TODO: 1) Squash cmdq_sec_task_exec_work() into cmdq_sec_mbox_send_data() 2) Call into TEE to query cookie instead of using shared memory in cmdq_sec_get_cookie() 3) Register shared memory as command buffer instead of copying normal command buffer to IWC shared memory 4) Use SOFTDEP to make cmdq_sec_probe later than OPTEE loaded and then move cmdq_sec_session_init into cmdq_sec_probe() 5) Remove timeout detection in cmdq_sec_session_send() --- Changes in v6: 1. Rebase to linux-next 2. Change the way to add gce-events prop into dt-binding and add more commit message 3. Remove unused parameters in secure mailbox driver 4. Move cmdq_sec_XXX APIs from secure mailbox driver to helper to fix the build cycle dependency error 5. Remove finalize loop API and write_s_reg API patch 6. Add cmdq secure helper API patch Changes in v5: 1. Sync the local changes Changes in v4: 1. Rebase on mediatek-drm-next(278640d4d74cd) and fix the conflicts 2. This series is based on 20240307013458.23550-1-jason-jh.lin@mediatek.com Changes in v3: 1. separate mt8188 driver porting patches to another series 2. separate adding 'mediatek,gce-events' event prop to another series 3. sepatate mailbox helper and controller driver modification to a single patch for adding looping thread 4. add kerneldoc for secure mailbox related definition 5. add moving reuseable definition patch before adding secure mailbox driver patch 6. adjust redundant logic in mtk-cmdq-sec-mailbox Changes in v2: 1. adjust dt-binding SW event define patch before the dt-binding patch using it 2. adjust dt-binding patch for secure cmdq driver 3. remove the redundant patches or merge the patches of modification for the same API --- Jason-JH.Lin (8): dt-bindings: gce: mt8195: Add CMDQ_SYNC_TOKEN_SECURE_THR_EOF event id dt-bindings: mailbox: Add property for CMDQ secure driver soc: mediatek: cmdq: Add cmdq_pkt_logic_command to support math operation mailbox: mtk-cmdq: Support GCE loop packets in interrupt handler mailbox: mediatek: Move reuseable definition to header for secure driver mailbox: mediatek: Add CMDQ secure mailbox driver mailbox: mediatek: Add secure CMDQ driver support for CMDQ driver soc: mediatek: mtk-cmdq: Add secure cmdq_pkt APIs .../mailbox/mediatek,gce-mailbox.yaml | 8 +- drivers/mailbox/Makefile | 2 +- drivers/mailbox/mtk-cmdq-mailbox.c | 113 ++- drivers/mailbox/mtk-cmdq-sec-mailbox.c | 932 ++++++++++++++++++ drivers/mailbox/mtk-cmdq-sec-tee.c | 195 ++++ drivers/soc/mediatek/mtk-cmdq-helper.c | 191 ++++ include/dt-bindings/gce/mt8195-gce.h | 6 + include/linux/mailbox/mtk-cmdq-mailbox.h | 35 + .../linux/mailbox/mtk-cmdq-sec-iwc-common.h | 342 +++++++ include/linux/mailbox/mtk-cmdq-sec-mailbox.h | 106 ++ include/linux/mailbox/mtk-cmdq-sec-tee.h | 105 ++ include/linux/soc/mediatek/mtk-cmdq.h | 113 +++ 12 files changed, 2118 insertions(+), 30 deletions(-) create mode 100644 drivers/mailbox/mtk-cmdq-sec-mailbox.c create mode 100644 drivers/mailbox/mtk-cmdq-sec-tee.c create mode 100644 include/linux/mailbox/mtk-cmdq-sec-iwc-common.h create mode 100644 include/linux/mailbox/mtk-cmdq-sec-mailbox.h create mode 100644 include/linux/mailbox/mtk-cmdq-sec-tee.h -- 2.18.0