“Vivante GCNANO GPU overview”的版本间的差异

来自百问网嵌入式Linux wiki
 
(未显示同一用户的12个中间版本)
第1行: 第1行:
== Article purpose ==
 
This article explains how to configure the ''DSI'' <ref name="DSI">[[DSI internal peripheral]]</ref> ''' when the peripheral is assigned to the Linux<sup>&reg;</sup> OS'''.
 
  
The configuration is performed using the '''device tree mechanism''' <ref> [[Device tree]]</ref>.
 
  
The [[Device tree]] provides a hardware description of the DSI <ref name="DSI"/> used by the STM32 ''DSI Linux driver''.
 
  
== DT bindings documentation ==
 
The DSI is represented by the STM32 DSI device tree bindings <ref>{{CodeSource | Linux kernel | Documentation/devicetree/bindings/display/st,stm32-ltdc.txt | st,stm32-ltdc.txt Linux kernel bindings (including dsi)}}</ref>.
 
  
== DT configuration ==
 
This hardware description is a combination of the '''STM32 microprocessor''' device tree files (''.dtsi'' extension) and '''board''' device tree files (''.dts'' extension). See the [[Device tree]] for an explanation of the device tree file split.
 
  
'''STM32CubeMX''' can be used to generate the board device tree. Refer to [[#How_to_configure_the_DT_using_STM32CubeMX|How to configure the DT using STM32CubeMX]] for more details.
 
  
===DT configuration (STM32 level) ===
 
The DSI device tree node is declared in stm32mp157c.dtsi <ref name="stm32mp157c_dtsi">{{CodeSource | Linux kernel | arch/arm/boot/dts/stm32mp157c.dtsi | Linux kernel STM32MP157C device tree (stm32mp157c.dtsi)}}</ref>. The declaration (shown below) defines the hardware registers base address, the clocks and the reset.
 
<pre>
 
dsi: dsi@5a000000 {
 
compatible = "st,stm32-dsi";
 
reg = <0x5a000000 0x800>;
 
clocks = <&rcc DSI_K>, <&clk_hse>, <&rcc DSI_PX>;
 
clock-names = "pclk", "ref", "px_clk";
 
resets = <&rcc DSI_R>;
 
reset-names = "apb";
 
status = "disabled";
 
};
 
</pre>
 
  
{{Warning|This device tree part is related to STM32 microprocessors. It must be kept as is, without being modified by the end-user.}}
+
==Introduction==
  
=== DT configuration (board level) ===
+
STMicroelectronics STM32MP1平台具有基于'''Vivante Gcnano GPU''''''OpenGLES'''硬件IP。.<br>
The DSI device tree related to a particular board may have the following nodes, depending on the board hardware:
+
您可以在'''Vivante GCNANO网页'''上找到更多信息。<ref> http://www.vivantecorp.com/index.php/en/media-article/news/281-20140602-vivante-intros-worlds-first-complete-line-of-gpus-for-wearables-and-iot.html </ref> <ref> http://www.vivantecorp.com/index.php/en/technology/3d.html </ref>
* '''dsi''' node: containing the in/out port descriptions and a '''panel''' sub-node.
 
* '''ltdc''' node: containing the in/out port description related to the dsi node.
 
* '''panel_backlight''' node: related to the panel node.
 
 
A full example of the [[STM32MP157x-EV1 - hardware description | STM32MP157 Evaluation board]] device tree is available in stm32mp157c-ev1.dts <ref name="stm32mp157c_ev1_dts">{{CodeSource | Linux kernel | arch/arm/boot/dts/stm32mp157c-ev1.dts | Linux kernel STM32MP157 Evaluation board device tree (stm32mp157c-ev1.dts)}}</ref>.
 
  
<pre>
+
==Features==
&dsi {
+
===Supported open standards===
#address-cells = <1>;
+
'''Vivante Gcnano GPU''' 与以下'''Khronos的开放标准3D图形'''<ref> http://www.khronos.org/ </ref>:
#size-cells = <0>;
+
* OpenGLES 2.0
status = "okay";
+
* OpenGLES 1.1
 +
* OpenVG 1.1
 +
* EGL 1.4
  
ports {
+
===Vivante Gcnano GPU configuration===
#address-cells = <1>;
 
#size-cells = <0>;
 
  
port@0 {
+
* '''Core Clock''' 264MHz
reg = <0>;
+
* '''Shader Clock''' 264MHz
dsi_in: endpoint {
+
* '''Pixel Rate''' 264 MPixel/sec
remote-endpoint = <&ltdc_ep0_out>;
+
* '''Triangle Rate''' 26.4 M tri/sec
};
+
* '''Vertex rate''' 66 M vtx/sec
};
+
* '''1 shader core (Vec 4)'''
 +
* '''2.112 GFLOPS shader'''
  
port@1 {
+
==GPU softwares==
reg = <1>;
 
dsi_out: endpoint {
 
remote-endpoint = <&panel_in>;
 
};
 
};
 
};
 
  
panel@0 {
+
[[File:GPU_software_structure.png|center|800px|link=]]
compatible = "raydium,rm68200";
 
reg = <0>;
 
reset-gpios = <&gpiof 15 GPIO_ACTIVE_LOW>;
 
backlight = <&panel_backlight>;
 
status = "okay";
 
  
port {
+
===Vivante Gcnano GPU userland libraries===
panel_in: endpoint {
+
除非客户与Vivante签署了保密协议(如果需要这些库源代码,请联系Vivante)。 Gcnano库(用户)是:
remote-endpoint = <&dsi_out>;
 
};
 
};
 
};
 
};
 
  
&ltdc {
+
* OpenGLES 1.1 library
status = "okay";
+
* OpenGLES 2.0 library
 +
* EGL 1.4 library
 +
* gbm library
 +
* GAL library
 +
* GLSLC and VSC libraries
 +
* VDK library
  
port {
+
===Vivante Gcnano kernel driver===
#address-cells = <1>;
+
'''{{Green|Source code is available for all customers}}''' 在所有OpenSTLinux基准中。 <br>
#size-cells = <0>;
+
<br>
 +
要访问源代码,请执行以下操作:
 +
devtool修改gcnano-driver-stm32mp
  
ltdc_ep0_out: endpoint@0 {
+
然后在此处下载源代码:
reg = <0>;
+
*'''<your_view>/build*/workspace/sources/gcnano-driver-stm32mp'''
remote-endpoint = <&dsi_in>;
+
<br>
};
+
请参阅 [[OpenEmbedded - devtool]] 以了解有关devtool的更多信息。
};
 
};
 
  
...
+
===Additional information===
panel_backlight: panel-backlight {
+
* 意法半导体(ST)根据任何基准版本提供'''调试Vivante Gcnano库''','''允许客户使用Vivante工具套件(VTK)'''对应用进行调试/分析。 请查看文章 [[How to debug the Gcnano GPU with VTK]]了解更多详细信息。
compatible = "gpio-backlight";
 
gpios = <&gpiod 13 GPIO_ACTIVE_LOW>;
 
default-on;
 
status = "okay";
 
};
 
};
 
  
</pre>
+
==Useful links==
  
==How to configure the DT using STM32CubeMX==
+
* Vivante网站: http://www.vivantecorp.com/
The [[STM32CubeMX]] tool can be used to configure the STM32MPU device and get the corresponding [[Device_tree#STM32|platform configuration device tree]] files.<br />
+
 
The STM32CubeMX may not support all the properties described in the above [[#DT bindings documentation|DT bindings documentation]] paragraph. If so, the tool inserts '''user sections''' in the generated device tree. These sections can then be edited to add some properties and they are preserved from one generation to another. Refer to [[STM32CubeMX]] user manual for further information.
+
==EGL==
 +
===Supported EGL backend===
 +
从VIVANTE交付的VIVANTE_GAL3D_Unified_Src_drv_6.1.x开始,Vivante Gcnano库支持'''DRM / GBM'''和'''Wayland'''后端。<br>
 +
有关详细信息,请参见[[EGL backends]] 文章。
 +
 
 +
===EGL texture 0-copy===
 +
Gcnano支持EGL纹理0副本扩展。
 +
 
 +
EGL纹理0副本扩展允许EGL应用程序避免通过将纹理从应用程序复制到GPU来与GPU共享纹理缓冲区。
 +
 
 +
有关更多详细信息,请参见 [[EGL texture 0-copy]] 文章。
 +
 
 +
==Graphic Benchmarks==
 +
请参考 [[How to test and benchmark OpenGLES]]文章。
 +
 
 +
==Debugging==
 +
请看以下文章:
 +
* [[How to activate the Gcnano GPU debug mode]]
 +
* [[How to debug the Gcnano GPU with VTK]]
  
 
==References==
 
==References==
Please refer to the following links for additional information:
 
 
 
<references />
 
<references />
  
 
<noinclude>
 
<noinclude>
{{ArticleBasedOnModel | Peripheral or framework device tree configuration model}}
+
[[Category:GPU]]
{{PublicationRequestId | 9161| 2018-10-11 | BrunoB}}
 
[[Category:Device tree configuration]]
 
[[Category:DRM KMS]]
 
 
</noinclude>
 
</noinclude>

2020年11月10日 (二) 09:48的最新版本




Introduction

STMicroelectronics STM32MP1平台具有基于Vivante Gcnano GPUOpenGLES硬件IP。.
您可以在Vivante GCNANO网页上找到更多信息。[1][2]

Features

Supported open standards

Vivante Gcnano GPU 与以下Khronos的开放标准3D图形[3]:
  • OpenGLES 2.0
  • OpenGLES 1.1
  • OpenVG 1.1
  • EGL 1.4

Vivante Gcnano GPU configuration

  • Core Clock 264MHz
  • Shader Clock 264MHz
  • Pixel Rate 264 MPixel/sec
  • Triangle Rate 26.4 M tri/sec
  • Vertex rate 66 M vtx/sec
  • 1 shader core (Vec 4)
  • 2.112 GFLOPS shader

GPU softwares

GPU software structure.png

Vivante Gcnano GPU userland libraries

除非客户与Vivante签署了保密协议(如果需要这些库源代码,请联系Vivante)。 Gcnano库(用户)是:

  • OpenGLES 1.1 library
  • OpenGLES 2.0 library
  • EGL 1.4 library
  • gbm library
  • GAL library
  • GLSLC and VSC libraries
  • VDK library

Vivante Gcnano kernel driver

Source code is available for all customers 在所有OpenSTLinux基准中。

要访问源代码,请执行以下操作:

devtool修改gcnano-driver-stm32mp

然后在此处下载源代码:

  • <your_view>/build*/workspace/sources/gcnano-driver-stm32mp


请参阅 OpenEmbedded - devtool 以了解有关devtool的更多信息。

Additional information

  • 意法半导体(ST)根据任何基准版本提供调试Vivante Gcnano库允许客户使用Vivante工具套件(VTK)对应用进行调试/分析。 请查看文章 如何使用VTK调试Gcnano GPU了解更多详细信息。

Useful links

EGL

Supported EGL backend

从VIVANTE交付的VIVANTE_GAL3D_Unified_Src_drv_6.1.x开始,Vivante Gcnano库支持DRM / GBMWayland后端。
有关详细信息,请参见EGL backends 文章。

EGL texture 0-copy

Gcnano支持EGL纹理0副本扩展。

EGL纹理0副本扩展允许EGL应用程序避免通过将纹理从应用程序复制到GPU来与GPU共享纹理缓冲区。

有关更多详细信息,请参见 EGL texture 0-copy 文章。

Graphic Benchmarks

请参考 How to test and benchmark OpenGLES文章。