From patchwork Tue Jan 23 08:51:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Armstrong X-Patchwork-Id: 765420 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 436A657313 for ; Tue, 23 Jan 2024 08:51:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705999873; cv=none; b=m/05eOptoAZl79101tm7k+dDll6CSxkRAizD03T0CCT++ihmwCVb2nx31vwEqjJmZUJ3XP7ZRmtAhAdXngkWzQGjK2aVAsWNV+snTbwDh/FLY/ejOPrH4pFR0G094xmTgBIjj9GNAoRlYSewJsw9PBi1i2lriOXWa2dl+IHrTU4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705999873; c=relaxed/simple; bh=6tP3GEq2Ve4cLs93me+k9WTbdX84fhRNdG/MoJ4h/4o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KFymS7Ljm2g7xbFeTRTEGSZITTSBOdqQ4GNKZyjLHADtHqdAu8xhyWiXyUl06jMAVvwKTs2Ad/luL+uW+0K6aQchFDMLFrap8mNUpYZ6BsPGpkZNQokArS2ZMOeKXR3ongmqVnlpCYfd3K8hEVo+Xyip4bx/FHgKhjznLDL0OAw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=BDOGDZ3/; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="BDOGDZ3/" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-40e7065b692so44194275e9.3 for ; Tue, 23 Jan 2024 00:51:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1705999870; x=1706604670; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=JDxzhnSCzMAdjTp5nizeiwv0z0TnxWP23yye4+yaoRc=; b=BDOGDZ3/I/cicSBgdOiHeAxeCWDILGBEHX08I0ZgGINuFWBavg3pmE8mzgF+ll0EXy bQ/84WIfE4P4i5hU2Zk79Ex4NbZFFGBHZRkYZ8pUJ16nVnE/E700DcvIcgmYmUy2yF+o PSVinWYLs3jFnn0C0hRcJeWGRxzE75jzsMBi6FIgmaIFoIImcvaT8ngFhpDEzQVzO4qb 2iyObp82CZpiur9Ih7Q3w67VlZhlIRTdv6I4YEWYWTIkaYS0Domq8vgHioRpeJN9Tb5b xGYyW0Qx8jow6O79bYbAwfPc+tnTnFMqAwFNHuYxD7mYnrkAvvmT77JVRM6gtLH6qqn/ CY7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705999870; x=1706604670; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JDxzhnSCzMAdjTp5nizeiwv0z0TnxWP23yye4+yaoRc=; b=RbF2PwnKYeAOPvElIQbO4ONzPdf0N6/9wOugH81Q/6SGr43sGjDPwRhXbHedRE36mp EA90+I0mzXb/Kxjs7fStv9neWc2tb9rqqE0vE77GFqRTIObztA+xl4Q0T33e58vKJrAi 3oZOFUgmEynBnBewKzHyw34WO1cYX5JeSbuVDhHWe8VDaSoAw5MXYHGyUEtNMFUFNz6j IaMdugtGW7bXMufEZD5k/pIwpIfx69orJymC+XJd9/5D078wl3ZYMhTw8HBSTHJ+4ETM 6yrhIIUW7hv54/Y9Q7NmgUktHdei+VhNGNBEGlHL6+v3j2ZhdL0t3W+01F0bvaYCjFS2 BsmA== X-Gm-Message-State: AOJu0YyVB/TMbuNAT0cPmOgrfFIpIZD+2xTveTLwAZZIIDBpK343CAIE M6A6y8uTnUR2Y3I04uvunRNB/OBEogzQFvQDu6eU6bsDUeSdP6973Ch9mZ2aJQR1of0iCCkHtJd 7gUgR2Q== X-Google-Smtp-Source: AGHT+IGK51WoVVF1wYW+09HTCHhVT/YnPIrkvj38To4fa8PmatYVnBZ3NKE5/aCXyGyOW7CN/ChLxA== X-Received: by 2002:a05:600c:44e:b0:40e:5181:63e4 with SMTP id s14-20020a05600c044e00b0040e518163e4mr330570wmb.165.1705999870626; Tue, 23 Jan 2024 00:51:10 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:8261:5fff:fe11:bdda]) by smtp.gmail.com with ESMTPSA id m35-20020a05600c3b2300b0040e541ddcb1sm41847342wms.33.2024.01.23.00.51.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jan 2024 00:51:10 -0800 (PST) From: Neil Armstrong Date: Tue, 23 Jan 2024 09:51:02 +0100 Subject: [PATCH v7 1/4] dt-bindings: remoteproc: qcom,sm8550-pas: document the SM8650 PAS Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240123-topic-sm8650-upstream-remoteproc-v7-1-61283f50162f@linaro.org> References: <20240123-topic-sm8650-upstream-remoteproc-v7-0-61283f50162f@linaro.org> In-Reply-To: <20240123-topic-sm8650-upstream-remoteproc-v7-0-61283f50162f@linaro.org> To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong , Krzysztof Kozlowski X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=openpgp-sha256; l=3139; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=6tP3GEq2Ve4cLs93me+k9WTbdX84fhRNdG/MoJ4h/4o=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBlr336f5bZc2dau7P56UrMfZR9KZD4vnrOKYaDE5Vd wk/M4qSJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZa99+gAKCRB33NvayMhJ0VGHEA CILpEecVo6t9e5XMcI16Rt2/JDQUrMFxteN3WaGg0gnIpBfrca4otpd+PtSzuNG8zCDWliGj+RnWPi Pkr/XgRHF8t/mMhv0u8ghCLjJmQ1vln2szFBqHbOK+Qt4sqdDZixaJ2QR1SlcKnNrv881Hm3a4XT1b R4rzMgY9hAEUJdTxfWlzhUK68/44P0Teb5RDZdF9xFhFc80YOrBrsLr8lXCigwrndoDIsUgFRR6wZ8 RStbDAr3A9rwq1tpmoAv2p6vhIhGMawP4S/ok/0oSq0MCa4dXFT8VutUVRDXOF346krs7nCHSIMpfc LZRTBob6QCrb47AOCLZ0oWEOy1LcS7HaBn6LLj/xO0XBvtO/ErXVIKpjytUf9ye7KaYd4l5OhPZAfS dEqIt6lhmHjdwJLXjyMLdXOIb52+EenM/7q4XAsiXA6pjs+QLM/ciCWk0v1Z3NMGizmgBDySgg+ysw AL/JfYiUalPowRuG12cfvPSCuYMTIeFZNzw1yZgetAbJ2wNnVRQpwsM0SOtVVEspHbR/9QFgQXALwQ nTtdNzDTbW/c8rRUUfDTkJLZpijqXY0no4gdvUmoqdfMZZCwuB4YOT2M3GvDRp6s5uFR1Mjir4V3z1 R0w87sGfytguoVZ3QaCSxrQlBY0j5rB5K4b7d9y2wAZ9JZ9Yw496C3uAFeVg== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE Document the DSP Peripheral Authentication Service on the SM8650 Platform. Reviewed-by: Krzysztof Kozlowski Signed-off-by: Neil Armstrong --- .../bindings/remoteproc/qcom,sm8550-pas.yaml | 45 +++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml index 58120829fb06..5f63b6b9a8f5 100644 --- a/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml +++ b/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml @@ -19,6 +19,9 @@ properties: - qcom,sm8550-adsp-pas - qcom,sm8550-cdsp-pas - qcom,sm8550-mpss-pas + - qcom,sm8650-adsp-pas + - qcom,sm8650-cdsp-pas + - qcom,sm8650-mpss-pas reg: maxItems: 1 @@ -49,6 +52,8 @@ properties: - description: Memory region for main Firmware authentication - description: Memory region for Devicetree Firmware authentication - description: DSM Memory region + - description: DSM Memory region 2 + - description: Memory region for Qlink Logging required: - compatible @@ -63,6 +68,7 @@ allOf: enum: - qcom,sm8550-adsp-pas - qcom,sm8550-cdsp-pas + - qcom,sm8650-adsp-pas then: properties: interrupts: @@ -71,7 +77,26 @@ allOf: maxItems: 5 memory-region: maxItems: 2 - else: + - if: + properties: + compatible: + enum: + - qcom,sm8650-cdsp-pas + then: + properties: + interrupts: + maxItems: 5 + interrupt-names: + maxItems: 5 + memory-region: + minItems: 3 + maxItems: 3 + - if: + properties: + compatible: + enum: + - qcom,sm8550-mpss-pas + then: properties: interrupts: minItems: 6 @@ -79,12 +104,28 @@ allOf: minItems: 6 memory-region: minItems: 3 + maxItems: 3 + - if: + properties: + compatible: + enum: + - qcom,sm8650-mpss-pas + then: + properties: + interrupts: + minItems: 6 + interrupt-names: + minItems: 6 + memory-region: + minItems: 5 + maxItems: 5 - if: properties: compatible: enum: - qcom,sm8550-adsp-pas + - qcom,sm8650-adsp-pas then: properties: power-domains: @@ -101,6 +142,7 @@ allOf: compatible: enum: - qcom,sm8550-mpss-pas + - qcom,sm8650-mpss-pas then: properties: power-domains: @@ -116,6 +158,7 @@ allOf: compatible: enum: - qcom,sm8550-cdsp-pas + - qcom,sm8650-cdsp-pas then: properties: power-domains: From patchwork Tue Jan 23 08:51:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Armstrong X-Patchwork-Id: 765419 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 762B95733D for ; Tue, 23 Jan 2024 08:51:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705999875; cv=none; b=qnffUrcnXYHc1o5F92w6WcQSPD9oYnoU95SsSRy0/RR/AD43tn03Sjx222yTxAWv8vBFOjT0A5IB/h/jGNoBa7P1fVcEufZDs1s/Fczg2fKEv3sXpQlbX+NremEoSN3GDBDSoWaSKJX8FfIr4hVaaFVQnWutW5NvztMaomyUJbI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705999875; c=relaxed/simple; bh=XZNmKCtadz6Da1EJYKYhkd9L3yCpOcZpiG8dscR01jg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UMZ3+miph6imVvd3p9yk1WT55Wls1SwbTO3B7TrLUHa2LFHMiqwUhNXJB097vQOAv7muouQ79vhN7LhAw2reAHHAfFChrftUsIBNGDVBgqAhDURGtQGjipn9fSfJaipN9y2LRhaXWOX33JZPZqpSbpL0ZSmxcwlKEnUBG0O2u74= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=QlsUM/jC; arc=none smtp.client-ip=209.85.221.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="QlsUM/jC" Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-337d90030bfso3512892f8f.2 for ; Tue, 23 Jan 2024 00:51:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1705999871; x=1706604671; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=XmUpAWI8T+ze0G7hpuFtNifMRc2sjFc92lz4GE1/R0M=; b=QlsUM/jChPKD50nWqSV9ZkKHlHMxXeY8VxdNHg4DWOssDXNbVlR3ArzYfv8yyWFPBc MjvmzwTYhyeh/wNZK9sAcXJa6ZJ1fsnjNW/O+Mk150QvB+9nh7eTZ6eaRlNsT94HqwAT oczv4JDXA2eMfCmcFsKPSHllLqUXndcF4hJ/qwWtD531g+4+i72EM1Q+6U4D6wOJgRzv IHBuwd5mxSbv1QYdwfIMPlaZXJcPEt/SHuTnq21YEThMnD7C+wgzhidZJPiUIQpGmf9Z 4lFekblmaBnGpCt8MFVKPrIsq9tQKBzdKD+H0izFn6Dr9HNj9U5MRc3KNTM5Cz74l5LD KsUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705999871; x=1706604671; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XmUpAWI8T+ze0G7hpuFtNifMRc2sjFc92lz4GE1/R0M=; b=LLSe61scXVbakfeXl6eM9wjJqJ+dtRw+V3W3Zs+Qy8NgLPiC1SlKeasredzJhMhVG+ zoU7JddKET/Jz9e3D0KyHES3x1/qs63i5brL9gtenUzLhmrCiYKrmXsCMY/p4jvTS4dA HvF4VZ+SUB+ogi/jGpiwE7bHaOiwicD9mp5HUgMQnXm/i4GWu8677eUnn9dqJA8AGfrc clhxYIVb5URiaHmJsU7lpxj9qLANH32QqwWHck9CoFmG9ofdce17fi4bFadFE1DOmv4C S5Ccj1PBXm++qaeGAW7TyFXvw5VBsDtNz9Xbp6leFEl6Nj3PZS5vAV6PlKVwFlXOyXxa tYGA== X-Gm-Message-State: AOJu0Ywn9h88bf/ZI5GQyCBZIUvwgzqCMkorF17wWiq0pq5kR3ZU6VNH hwS4HiT/LZOiwTniAXtqOQbU5Q+cpgcDK/5MWmFTDJZoHT61QIr/fGRot18IOUyDLhn77wq+nfQ c4qp8Vg== X-Google-Smtp-Source: AGHT+IElIgvxZtWWU51XwImAiLbgvr9q8YNtZrMtz1qSs4V4/yBri0iky4HaaiuoVkxqzulXD/BMUw== X-Received: by 2002:a05:600c:4f47:b0:40d:5aaa:a2d5 with SMTP id m7-20020a05600c4f4700b0040d5aaaa2d5mr154163wmq.201.1705999871669; Tue, 23 Jan 2024 00:51:11 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:8261:5fff:fe11:bdda]) by smtp.gmail.com with ESMTPSA id m35-20020a05600c3b2300b0040e541ddcb1sm41847342wms.33.2024.01.23.00.51.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jan 2024 00:51:11 -0800 (PST) From: Neil Armstrong Date: Tue, 23 Jan 2024 09:51:03 +0100 Subject: [PATCH v7 2/4] remoteproc: qcom: pas: make region assign more generic Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240123-topic-sm8650-upstream-remoteproc-v7-2-61283f50162f@linaro.org> References: <20240123-topic-sm8650-upstream-remoteproc-v7-0-61283f50162f@linaro.org> In-Reply-To: <20240123-topic-sm8650-upstream-remoteproc-v7-0-61283f50162f@linaro.org> To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong , Mukesh Ojha X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=openpgp-sha256; l=6221; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=XZNmKCtadz6Da1EJYKYhkd9L3yCpOcZpiG8dscR01jg=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBlr337kqvj3vmvlvwF75uVHYEm1H9JiBT+J9gAZZyN B2iOUHuJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZa99+wAKCRB33NvayMhJ0QxxEA CezeoXDS+NZXO7Jnofjpm9owx92hR3GNvB26t3YIUKINAEoBzeMlPoVHE+rBKdZqK3dWLeBS1AR183 R0QHWSE6NT9rDOKyHrgTxLxWG4iuTTcgbnwe1PgJiae0joiv3GoC1XUCrnDe+XCUJJ8VWwai/9eknc SoRRgwR3AXmgUXMeAFzqKpGe47K6xGDhspOPGpr8edN3LQVdWDulxjt+Wg3J+d5Em/oENwamt3Io2t fXFwL/37oPAyxy/CzOrl3oCKt8WNihDjaSGWqjq5Oco7LRw6GPgjXj7STDjfHtQM67uxlHFm4J33Fc d00/xWS1fL6/Vl+sgGKfTlmSjlNMbRMiDBzpcLo1oeJCzqgGXCCPsdwfutSL1rcO6MMJSktly16Zme EZU2xNumvY1CPSsoYZCYgs3FI7Q3fbmcUk+0dqKyl/5YYlfE5yp0MXX0guV6do+YYODkRO7AdwUQsL dfxca94sBraJhfcj+jF/87bCIfj0EwkH3/48rsRBbUl0rl3LR3PhYfQEGNHq3935n8rYi0xBHeB6OV hU4oQ92ioMdgC3dvW3XbLZ4q1W7YO3XUmbhidSXaZSillqaRq+PC0Mbz6Xemq8mWDfbTtmcA2IH1mg VM/HI2gsaOSEnVfCMnsvpZCMJR2+AcU4LBD6wmgtGgXuolI79oJiSDeaT7IA== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE The current memory region assign only supports a single memory region. But new platforms introduces more regions to make the memory requirements more flexible for various use cases. Those new platforms also shares the memory region between the DSP and HLOS. To handle this, make the region assign more generic in order to support more than a single memory region and also permit setting the regions permissions as shared. Reviewed-by: Mukesh Ojha Signed-off-by: Neil Armstrong --- drivers/remoteproc/qcom_q6v5_pas.c | 100 ++++++++++++++++++++++++------------- 1 file changed, 66 insertions(+), 34 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c index a9dd58608052..09e8ad9f08c4 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -33,6 +33,8 @@ #define ADSP_DECRYPT_SHUTDOWN_DELAY_MS 100 +#define MAX_ASSIGN_COUNT 3 + struct adsp_data { int crash_reason_smem; const char *firmware_name; @@ -51,6 +53,9 @@ struct adsp_data { int ssctl_id; int region_assign_idx; + int region_assign_count; + bool region_assign_shared; + int region_assign_vmid; }; struct qcom_adsp { @@ -87,15 +92,18 @@ struct qcom_adsp { phys_addr_t dtb_mem_phys; phys_addr_t mem_reloc; phys_addr_t dtb_mem_reloc; - phys_addr_t region_assign_phys; + phys_addr_t region_assign_phys[MAX_ASSIGN_COUNT]; void *mem_region; void *dtb_mem_region; size_t mem_size; size_t dtb_mem_size; - size_t region_assign_size; + size_t region_assign_size[MAX_ASSIGN_COUNT]; int region_assign_idx; - u64 region_assign_perms; + int region_assign_count; + bool region_assign_shared; + int region_assign_vmid; + u64 region_assign_owners[MAX_ASSIGN_COUNT]; struct qcom_rproc_glink glink_subdev; struct qcom_rproc_subdev smd_subdev; @@ -590,37 +598,53 @@ static int adsp_alloc_memory_region(struct qcom_adsp *adsp) static int adsp_assign_memory_region(struct qcom_adsp *adsp) { - struct reserved_mem *rmem = NULL; - struct qcom_scm_vmperm perm; + struct qcom_scm_vmperm perm[MAX_ASSIGN_COUNT]; struct device_node *node; + unsigned int perm_size; + int offset; int ret; if (!adsp->region_assign_idx) return 0; - node = of_parse_phandle(adsp->dev->of_node, "memory-region", adsp->region_assign_idx); - if (node) - rmem = of_reserved_mem_lookup(node); - of_node_put(node); - if (!rmem) { - dev_err(adsp->dev, "unable to resolve shareable memory-region\n"); - return -EINVAL; - } + for (offset = 0; offset < adsp->region_assign_count; ++offset) { + struct reserved_mem *rmem = NULL; + + node = of_parse_phandle(adsp->dev->of_node, "memory-region", + adsp->region_assign_idx + offset); + if (node) + rmem = of_reserved_mem_lookup(node); + of_node_put(node); + if (!rmem) { + dev_err(adsp->dev, "unable to resolve shareable memory-region index %d\n", + offset); + return -EINVAL; + } - perm.vmid = QCOM_SCM_VMID_MSS_MSA; - perm.perm = QCOM_SCM_PERM_RW; + if (adsp->region_assign_shared) { + perm[0].vmid = QCOM_SCM_VMID_HLOS; + perm[0].perm = QCOM_SCM_PERM_RW; + perm[1].vmid = adsp->region_assign_vmid; + perm[1].perm = QCOM_SCM_PERM_RW; + perm_size = 2; + } else { + perm[0].vmid = adsp->region_assign_vmid; + perm[0].perm = QCOM_SCM_PERM_RW; + perm_size = 1; + } - adsp->region_assign_phys = rmem->base; - adsp->region_assign_size = rmem->size; - adsp->region_assign_perms = BIT(QCOM_SCM_VMID_HLOS); + adsp->region_assign_phys[offset] = rmem->base; + adsp->region_assign_size[offset] = rmem->size; + adsp->region_assign_owners[offset] = BIT(QCOM_SCM_VMID_HLOS); - ret = qcom_scm_assign_mem(adsp->region_assign_phys, - adsp->region_assign_size, - &adsp->region_assign_perms, - &perm, 1); - if (ret < 0) { - dev_err(adsp->dev, "assign memory failed\n"); - return ret; + ret = qcom_scm_assign_mem(adsp->region_assign_phys[offset], + adsp->region_assign_size[offset], + &adsp->region_assign_owners[offset], + perm, perm_size); + if (ret < 0) { + dev_err(adsp->dev, "assign memory %d failed\n", offset); + return ret; + } } return 0; @@ -629,20 +653,23 @@ static int adsp_assign_memory_region(struct qcom_adsp *adsp) static void adsp_unassign_memory_region(struct qcom_adsp *adsp) { struct qcom_scm_vmperm perm; + int offset; int ret; - if (!adsp->region_assign_idx) + if (!adsp->region_assign_idx || adsp->region_assign_shared) return; - perm.vmid = QCOM_SCM_VMID_HLOS; - perm.perm = QCOM_SCM_PERM_RW; + for (offset = 0; offset < adsp->region_assign_count; ++offset) { + perm.vmid = QCOM_SCM_VMID_HLOS; + perm.perm = QCOM_SCM_PERM_RW; - ret = qcom_scm_assign_mem(adsp->region_assign_phys, - adsp->region_assign_size, - &adsp->region_assign_perms, - &perm, 1); - if (ret < 0) - dev_err(adsp->dev, "unassign memory failed\n"); + ret = qcom_scm_assign_mem(adsp->region_assign_phys[offset], + adsp->region_assign_size[offset], + &adsp->region_assign_owners[offset], + &perm, 1); + if (ret < 0) + dev_err(adsp->dev, "unassign memory %d failed\n", offset); + } } static int adsp_probe(struct platform_device *pdev) @@ -696,6 +723,9 @@ static int adsp_probe(struct platform_device *pdev) adsp->info_name = desc->sysmon_name; adsp->decrypt_shutdown = desc->decrypt_shutdown; adsp->region_assign_idx = desc->region_assign_idx; + adsp->region_assign_count = min_t(int, MAX_ASSIGN_COUNT, desc->region_assign_count); + adsp->region_assign_vmid = desc->region_assign_vmid; + adsp->region_assign_shared = desc->region_assign_shared; if (dtb_fw_name) { adsp->dtb_firmware_name = dtb_fw_name; adsp->dtb_pas_id = desc->dtb_pas_id; @@ -1163,6 +1193,8 @@ static const struct adsp_data sm8550_mpss_resource = { .sysmon_name = "modem", .ssctl_id = 0x12, .region_assign_idx = 2, + .region_assign_count = 1, + .region_assign_vmid = QCOM_SCM_VMID_MSS_MSA, }; static const struct adsp_data sc7280_wpss_resource = { From patchwork Tue Jan 23 08:51:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Armstrong X-Patchwork-Id: 765418 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 543225820F for ; Tue, 23 Jan 2024 08:51:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705999877; cv=none; b=DBWljNvDIYOibB9N1gs9B7D05oO79u4TRpk/TEIencZfiVdoXANOacs9g6bRqdEaGsW27qEgzU4HXvCnphZY8kuUwmY6DJO1ija76lsO5vALFmkYhN9edZA0vNg3vmYYtG0Ylnnj5Yv5j2Ij7iOWMMQ1r50lAbs+rHbl28h99xU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705999877; c=relaxed/simple; bh=yYDIxCgQjILCWDIszMswpsFyQFY+wDMVlcloNET2XWw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sHtgb79OT32IioHVPy5wD4VtS3ifVoGlBzqlCMd/eEAQRKmkhbWRzu2k0Bm1SFsyvWWoY62UAFeISvdrzCxxkGo8E5vBmxSJGynykpEJayBOvh/yx42+AGiCJEBN0G44UAG31+TXd8kzVNNcVvrbGLohpIr46PuW29htal5vo+0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=azsUhl4s; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="azsUhl4s" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-40e7e2e04f0so44798375e9.1 for ; Tue, 23 Jan 2024 00:51:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1705999873; x=1706604673; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=d2ksQJlWEggjhFecVmc9x24iF2N4B56opUimISYFAaM=; b=azsUhl4sbHs0Rid/UBUDPGRsP11jc7N+IsCUWiOzuffl1uNYzg//oItskKBWYEnaeu Qf/T3+x/ycbticmuTAQGico0ogHiE5uJw2X53zvd2BPmPCHysS+N/hmOl709n7ssfLRj /YwOEjS3yKV/pLKcIaYcKvZmoGHjxx5SAvPZhblfDpkQ2GRQnx80R2Wiq7+ex0w2HbVp zr3Sdnl0kDWOzskLOcejZURUxn4ErZBbf315PHqLUUSuww2cy/blZs78LqMbzyL7UHHw bC5qH/RjjI9/ivna+Aqx1hDDR+jIDbNivi2W/WK6kPm1H5SoRq/lmKrDtgjITRwQ8mRe X1tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705999873; x=1706604673; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=d2ksQJlWEggjhFecVmc9x24iF2N4B56opUimISYFAaM=; b=r7su6MV7KDVSRjQgZYlpsppMwAe8vuU6NkIBgvUuZK19U5+Vh6zL8H4wJTwjiI7Lhb VaQNMO0yx42M69LKUoOZK6df7CsIx0gkkwMsuPXTsi1z2+oPZ26rwd2k4DZPb7I8ab9h 3iBAZZrDG9PiACdh2BqNBbm0OG2q6veBNGHh8Lw45I1SwhpJkVGJDuAKRXTIkxeDI6kz TfGDaLxTqy0Lb5zKXpp0IQVWRk2C+n8Lo/uu+5/tfViIc2LRKtGrggUQvqYO3cD50C91 gZjOibBk9m4Y7NJLOqYNn7SM6SAt0M1BVWzSGh48hW0zNHGIMBUWFKzWZReN8ZcYvRRC K7OQ== X-Gm-Message-State: AOJu0Yz1vh54QIxKHREZc+N9ebgQiztWyCPU+eXhJWRKgLh5iIf7A5Kj OaBfn48HjGFGaB4m/jCxrLAI29TyLeE0pz1GI+y4YuOxtGSFpI0+ZZ3KulM8/p7fecB8rzlC7Gc XnVzf8g== X-Google-Smtp-Source: AGHT+IGfnJKojIc5LQGtXm1zt5MBCt8OE7HJeyr9GQM3CnMyCdGe5KU2VKNpBTG+93TKBix3ahroOA== X-Received: by 2002:a05:600c:1f05:b0:40e:49c6:3eb0 with SMTP id bd5-20020a05600c1f0500b0040e49c63eb0mr304204wmb.114.1705999873756; Tue, 23 Jan 2024 00:51:13 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:8261:5fff:fe11:bdda]) by smtp.gmail.com with ESMTPSA id m35-20020a05600c3b2300b0040e541ddcb1sm41847342wms.33.2024.01.23.00.51.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jan 2024 00:51:13 -0800 (PST) From: Neil Armstrong Date: Tue, 23 Jan 2024 09:51:05 +0100 Subject: [PATCH v7 4/4] arm64: dts: qcom: sm8650: add missing qlink_logging reserved memory for mpss Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240123-topic-sm8650-upstream-remoteproc-v7-4-61283f50162f@linaro.org> References: <20240123-topic-sm8650-upstream-remoteproc-v7-0-61283f50162f@linaro.org> In-Reply-To: <20240123-topic-sm8650-upstream-remoteproc-v7-0-61283f50162f@linaro.org> To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=openpgp-sha256; l=1101; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=yYDIxCgQjILCWDIszMswpsFyQFY+wDMVlcloNET2XWw=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBlr338Df2YVIz3cMlmwBY8GIAJXRwjWh+oUcQcDHm/ wG1pkFyJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZa99/AAKCRB33NvayMhJ0W0+D/ wM1bks4PhCjijqQCwzmOhI8/4YbqqNxrUv4n+KAfrbiU6Z4VDHrppH1IKm2CDNZkBpXS1Y5paaJ0Ow DQpcWot2ifIV7oZO8wA5uVVLwxuUar1Nce1KJM8KIFaUYkeG08Txv0X2GYT4A9Hp8OZGlVmTqsmPby VI37hyMd6+FAQYwubgiR2l1SUZoFqkq4fPGMC18Db9iW1F3ClenMZd63iUA9PSn81E9Mpt3doqyc/p 3Xi40YW8Vpaw6PgWRh1rf5YiVwYat1ONLI3PmJGffS2F8OZ43tEzddIn1zc+F1sIHv+b3NLsRAGVIj sNGKMFVC15G7RMQ84EMZkBL4QvM8xLGM1eqwCyo1R6fKFr6evATwhisN+JaijYwSBT7fUWy6dvqVia pFB2VyctSaFuW4qk9mpO/lvHrwaXnZXYhjYSTq2ftNTVAT0eGqfuaYFCSMwnCCpDccgu2s3aIFED2f EhjxIwd+sxWI7xyE2XTnOVMpR3ehSu2ZMUKsng2qrR7RwKQzft+WClIfD81FwINU23PwReDQOhzHMC 2NfrWrT8KvcnUGkPaHpwoyZnp7sbbEW+aaUJuoL0x9peYu0ToaFL+n34QCmO39IV8VRdh5KsuU3/pB 16r9+ZXjcINowFfqLFroSDpIyuRZA5Yn7ACSCOVQgglYfI/4antX1Xm5WYcQ== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE The qlink_logging memory region is also used by the modem firmware, add it to the reserved memories and add it to the MPSS memory regions. Signed-off-by: Neil Armstrong --- arch/arm64/boot/dts/qcom/sm8650.dtsi | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi index 2df77123a8c7..7a1cbc823306 100644 --- a/arch/arm64/boot/dts/qcom/sm8650.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi @@ -525,6 +525,11 @@ qdss_mem: qdss@82800000 { no-map; }; + qlink_logging_mem: qlink-logging@84800000 { + reg = <0 0x84800000 0 0x200000>; + no-map; + }; + mpss_dsm_mem: mpss-dsm@86b00000 { reg = <0 0x86b00000 0 0x4900000>; no-map; @@ -2627,7 +2632,8 @@ remoteproc_mpss: remoteproc@4080000 { "mss"; memory-region = <&mpss_mem>, <&q6_mpss_dtb_mem>, - <&mpss_dsm_mem>, <&mpss_dsm_mem_2>; + <&mpss_dsm_mem>, <&mpss_dsm_mem_2>, + <&qlink_logging_mem>; qcom,qmp = <&aoss_qmp>;