Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
Майнстримные драйверы GPU и VPU в ядре linux-5.10.9 для i.mx8m mini
sasamy
Добавлено 14.01.2022 16:50
0
Сообщение: 1
sasamy
4.71

Пункты: 83012
Регистрация: 14.08.2009
В ядре linux-5.10.9 есть реализации драйверов развиваемые сообществом.

http://starterkit.ru/html/index.php?name=forum&op=view&id=30887

Чтобы их использовать нужно исправить DTS своей платы, например

SK-iMX8Mini-MOD + SK-iMX8Mini-MB c MIPI DSI дисплеем

buildroot-2021.05-sk/output/build/linux-custom/arch/arm64/boot/dts/freescale/sk-imx8mm-mb-mipi.dts

Добавить описание для майнстримных драйверов

Цитата

.......

/ {
model = "Starterkit SK-iMX8Mini-MB board";
compatible = "fsl,imx8mm-evk", "fsl,imx8mm";

chosen {
bootargs = "console=ttymxc1,115200 earlycon=ec_imx6q,0x30890000,115200";
stdout-patch = &uart2;
};

gpu_3d {
compatible = "vivante,gc";
reg = <0x0 0x38000000 0x0 0x8000>;
reg-names = "iobase_3d";
interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "irq_3d";
clocks = <&clk IMX8MM_CLK_GPU3D_ROOT>,
<&clk IMX8MM_CLK_DUMMY>,
<&clk IMX8MM_CLK_GPU_BUS_ROOT>,
<&clk IMX8MM_CLK_GPU_AHB>;
clock-names = "core", "shader", "bus", "reg";
assigned-clocks = <&clk IMX8MM_CLK_GPU3D_SRC>,
<&clk IMX8MM_CLK_GPU2D_SRC>,
<&clk IMX8MM_CLK_GPU_AXI>,
<&clk IMX8MM_CLK_GPU_AHB>,
<&clk IMX8MM_GPU_PLL_OUT>;
assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>,
<&clk IMX8MM_GPU_PLL_OUT>,
<&clk IMX8MM_SYS_PLL1_800M>,
<&clk IMX8MM_SYS_PLL1_800M>;
assigned-clock-rates = <0>, <0>, <0>, <400000000>, <1000000000>;
power-domains = <&gpumix_pd>;
status = "okay";
};

gpu_2d {
compatible = "vivante,gc";
reg = <0x0 0x38008000 0x0 0x8000>;
reg-names = "iobase_2d";
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "irq_2d";
clocks = <&clk IMX8MM_CLK_GPU2D_ROOT>,
<&clk IMX8MM_CLK_DUMMY>,
<&clk IMX8MM_CLK_GPU_BUS_ROOT>,
<&clk IMX8MM_CLK_GPU_AHB>;
clock-names = "core", "shader", "bus", "reg";
power-domains = <&gpumix_pd>;
status = "okay";
};

vpu: video-codec@38300000 {
compatible = "nxp,imx8mq-vpu";
reg = <0x0 0x38300000 0x0 0x10000>,
<0x0 0x38330000 0x0 0x10000>;
reg-names = "g1", "ctrl";
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "g1";
clocks = <&clk IMX8MM_CLK_VPU_G1_ROOT>, <&clk IMX8MM_CLK_VPU_DEC_ROOT>;
clock-names = "g1", "bus";
assigned-clocks = <&clk IMX8MM_CLK_VPU_G1>, <&clk IMX8MM_CLK_VPU_BUS>;
assigned-clock-parents = <&clk IMX8MM_VPU_PLL_OUT>, <&clk IMX8MM_SYS_PLL1_800M>;
assigned-clock-rates = <600000000>, <800000000>;
power-domains = <&vpu_g1_pd>;
status = "okay";
};

pcie0_refclk: pcie0-refclk {
.......


и отключить драйверы NXP для GPU и VPU

Цитата

.......

&gpu {
status = "disabled";
};

&vpu_g1 {
status = "disabled";
};

&vpu_g2 {
status = "disabled";
};

&vpu_h1 {
status = "disabled";
};


Драйверы пока в экспериментальном состоянии, но можно например использовать с готовыми дистрибутивами.

Для эксперимента сделал образ 4 Гигабайта с минимальным конфигом, скопировал корневую PostmarketOS

http://postmarketos.org

от смартфона Purism librem5 с оболочкой Phosh

title
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux