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 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BD7BAC48BF6 for ; Thu, 29 Feb 2024 16:22:36 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 121C110E50C; Thu, 29 Feb 2024 16:22:36 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=collabora.com header.i=@collabora.com header.b="TojEcUc/"; dkim-atps=neutral Received: from madrid.collaboradmins.com (madrid.collaboradmins.com [46.235.227.194]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7F66D10E500 for ; Thu, 29 Feb 2024 16:22:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1709223753; bh=WBj8ccERCRgRenfZhSYIfYPERFjB3DhSwt0JpPaCSLY=; h=From:To:Cc:Subject:Date:From; b=TojEcUc/j/LTjATo9ZUQAn26SLz6ZorU9SJrYgxvrJdA767m1R0o1yuNURl3+Ai/8 klNRuqTnIES6ise27iSI+MD6M1RC2sTZvYMVY8L7bC0DzT0FFlq0DGQad7XOfHeubi A48shm3JDU/aN2R/p7hgPN+We6IolwgEVGzSuP+OMdCkSpHALosIFMA3B1T9Wpmkna KYZi148fGA0LL1tuoTN/50TXlH/WAiZbdslofy6iaeDg2vFzYRRD8LDfNkFjBnmA/R Ki0dHOZu1evUdFBWmlCmTBwQ6EL5mRGeVvti5bruFTJpH6PvKwnsPb76avtS5JUImn 0CLp/Cn8q6ncw== Received: from localhost.localdomain (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: bbrezillon) by madrid.collaboradmins.com (Postfix) with ESMTPSA id F26083782066; Thu, 29 Feb 2024 16:22:31 +0000 (UTC) From: Boris Brezillon To: dri-devel@lists.freedesktop.org Cc: Daniel Vetter , "Marty E . Plummer" , Rob Herring , =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= , Nicolas Boichat , Neil Armstrong , Faith Ekstrand , Daniel Stone , Liviu Dudau , Steven Price , Robin Murphy , kernel@collabora.com, Heiko Stuebner , Tatsuyuki Ishi , Chris Diamand , Ketil Johnsen , Boris Brezillon Subject: [PATCH v6 00/14] drm: Add a driver for CSF-based Mali GPUs Date: Thu, 29 Feb 2024 17:22:14 +0100 Message-ID: <20240229162230.2634044-1-boris.brezillon@collabora.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hello, Basically v5 with 3 extra fixes (bugs found while working with a 32-bit build), and new R-b/A-b collected. I kept the previous R-b because the changes are pretty trivial. A branch based on drm-misc-next is available here[1], and here is another one [2] containing extra patches to have things working on rk3588. The CSF firmware binary is now merged in linux-firmware [3]. The mesa MR adding v10 support on top of panthor is available here [4]. Here is a non-exhaustive changelog, check each commit for a detailed changelog. v6: - Limit IN_VA_BITS on 32-bit builds - Make sure MMU faults report don't cause a NULL pointer deref when the scheduler is not yet initialized (can happen if the FW accesses a region that's not mapped in AS0) - Report the actual BO size (page-aligned) to userspace, as stated in the uAPI spec - Various minor cosmetic changes v5: - No fundamental changes in this v5 - Various bug fixes (see the per-commit changelogs) - Various docs/typos fixes v4: - Fix various bugs in the VM logic - Address comments from Steven, Liviu, Ketil and Chris - Move tiler OOM handling out of the scheduler interrupt handling path so we can properly recover when the system runs out of memory, and panthor is blocked trying to allocate heap chunks - Rework the heap locking to support concurrent chunk allocation. Not sure if this is supposed to happen, but we need to be robust against userspace passing the same heap context to two scheduling groups. Wasn't needed before the tiler_oom rework, because heap allocation base serialized by the scheduler lock. - Make kernel BO destruction robust to NULL/ERR pointers v3; - Quite a few changes at the MMU/sched level to make the fix some race conditions and deadlocks - Addition of the a sync-only VM_BIND operation (to support vkQueueSparseBind with zero commands). - Addition of a VM_GET_STATE ioctl [1]https://gitlab.freedesktop.org/panfrost/linux/-/tree/panthor-v5 [2]https://gitlab.freedesktop.org/panfrost/linux/-/tree/panthor-v5+rk3588 *** BLURB HERE *** Boris Brezillon (13): drm/panthor: Add uAPI drm/panthor: Add GPU register definitions drm/panthor: Add the device logical block drm/panthor: Add the GPU logical block drm/panthor: Add GEM logical block drm/panthor: Add the devfreq logical block drm/panthor: Add the MMU/VM logical block drm/panthor: Add the FW logical block drm/panthor: Add the heap logical block drm/panthor: Add the scheduler logical block drm/panthor: Add the driver frontend block drm/panthor: Allow driver compilation drm/panthor: Add an entry to MAINTAINERS Liviu Dudau (1): dt-bindings: gpu: mali-valhall-csf: Add support for Arm Mali CSF GPUs .../bindings/gpu/arm,mali-valhall-csf.yaml | 147 + Documentation/gpu/driver-uapi.rst | 5 + MAINTAINERS | 11 + drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/panthor/Kconfig | 23 + drivers/gpu/drm/panthor/Makefile | 14 + drivers/gpu/drm/panthor/panthor_devfreq.c | 283 ++ drivers/gpu/drm/panthor/panthor_devfreq.h | 21 + drivers/gpu/drm/panthor/panthor_device.c | 549 +++ drivers/gpu/drm/panthor/panthor_device.h | 394 ++ drivers/gpu/drm/panthor/panthor_drv.c | 1473 +++++++ drivers/gpu/drm/panthor/panthor_fw.c | 1362 +++++++ drivers/gpu/drm/panthor/panthor_fw.h | 503 +++ drivers/gpu/drm/panthor/panthor_gem.c | 230 ++ drivers/gpu/drm/panthor/panthor_gem.h | 142 + drivers/gpu/drm/panthor/panthor_gpu.c | 482 +++ drivers/gpu/drm/panthor/panthor_gpu.h | 52 + drivers/gpu/drm/panthor/panthor_heap.c | 597 +++ drivers/gpu/drm/panthor/panthor_heap.h | 39 + drivers/gpu/drm/panthor/panthor_mmu.c | 2768 +++++++++++++ drivers/gpu/drm/panthor/panthor_mmu.h | 102 + drivers/gpu/drm/panthor/panthor_regs.h | 239 ++ drivers/gpu/drm/panthor/panthor_sched.c | 3502 +++++++++++++++++ drivers/gpu/drm/panthor/panthor_sched.h | 50 + include/uapi/drm/panthor_drm.h | 945 +++++ 26 files changed, 13936 insertions(+) create mode 100644 Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml create mode 100644 drivers/gpu/drm/panthor/Kconfig create mode 100644 drivers/gpu/drm/panthor/Makefile create mode 100644 drivers/gpu/drm/panthor/panthor_devfreq.c create mode 100644 drivers/gpu/drm/panthor/panthor_devfreq.h create mode 100644 drivers/gpu/drm/panthor/panthor_device.c create mode 100644 drivers/gpu/drm/panthor/panthor_device.h create mode 100644 drivers/gpu/drm/panthor/panthor_drv.c create mode 100644 drivers/gpu/drm/panthor/panthor_fw.c create mode 100644 drivers/gpu/drm/panthor/panthor_fw.h create mode 100644 drivers/gpu/drm/panthor/panthor_gem.c create mode 100644 drivers/gpu/drm/panthor/panthor_gem.h create mode 100644 drivers/gpu/drm/panthor/panthor_gpu.c create mode 100644 drivers/gpu/drm/panthor/panthor_gpu.h create mode 100644 drivers/gpu/drm/panthor/panthor_heap.c create mode 100644 drivers/gpu/drm/panthor/panthor_heap.h create mode 100644 drivers/gpu/drm/panthor/panthor_mmu.c create mode 100644 drivers/gpu/drm/panthor/panthor_mmu.h create mode 100644 drivers/gpu/drm/panthor/panthor_regs.h create mode 100644 drivers/gpu/drm/panthor/panthor_sched.c create mode 100644 drivers/gpu/drm/panthor/panthor_sched.h create mode 100644 include/uapi/drm/panthor_drm.h -- 2.43.0