Armadilloフォーラム

画面のチラつき

okamotoatsushi

2023年11月14日 17時34分

お世話になっております。
岡本です。

https://armadillo.atmark-techno.com/forum/armadillo/11706

上記のフォーラムで相談させていただいていた件に続いての質問です。
担当者が変わりましたのと、時間が経過しましたので、別フォーラムでのご相談とさせていただきます。

現在、Armadillo-G4にてLVDSを用いてLCDへの表示をする際に、LCDの画面にチラつきが発生している状況です。

起動時からの流れとしましては、

①電源ON
②U-BOOTにてLCDにロゴを表示
③Starting kernel ・・・LCDのロゴ消灯
④LCDの画面にチラつき発生
⑤fbsplash表示
⑥containerAPP実行 APP画面表示

となっています。

下記起動時のログです

U-Boot SPL 2020.04-giken_v0107 (Nov 14 2023 - 16:17:33 +0900)
setup_rtc_disarm_alarm: Can't find device id=0x32
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from BOOTROM
image offset 0x0, pagesize 0x200, ivt offset 0x0
NOTICE:  BL31: v2.4(release):
NOTICE:  BL31: Built : 13:15:38, Oct 16 2023
 
 
U-Boot 2020.04-giken_v0107 (Nov 14 2023 - 16:17:33 +0900)
 
CPU:   i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 31C
Model: Atmark-Techno Armadillo X2 Series
DRAM:    Hold key pressed for tests: t (fast) / T (slow)
2 GiB
WDT:   Started with servicing (10s timeout)
MMC:   FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
[*]-Video Link 0mxs_set_lcdclk,set rate to 65002khz, pre = 1, post = 16
 (1024 x 768)
        [0] lcd-controller@32e90000, video
        [1] lvds-channel@0, display
        [2] lvds0_panel, panel
In:    serial
Out:   serial
Err:   serial
 
 BuildInfo:
  - ATF
  - U-Boot 2020.04-giken_v0107
 
first boot since power on
switch to partitions #0, OK
mmc2(part 0) is current device
flash target is MMC:2
Net:   No ethernet found.
Fastboot: Normal
Saving Environment to MMC... Writing to redundant MMC(2)... OK
Normal Boot
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc2(part 0) is current device
32069640 bytes read in 695 ms (44 MiB/s)
Booting from mmc ...
 
## Checking Image at 40480000 ...
Unknown image format!
60139 bytes read in 2 ms (28.7 MiB/s)
Loading fdt boot/armadillo.dtb
## Flattened Device Tree blob at 45000000
   Booting using the fdt blob at 0x45000000
   Loading Device Tree to 0000000051bc3000, end 0000000051bf4fff ... OK
 
Starting kernel ...
 
[    0.078246] imx8mp-pinctrl 30330000.pinctrl: pin MX8MP_IOMUXC_NAND_ALE already requested by 30330000.pinctrl; cannot claim for lvds-reset
[    0.078257] imx8mp-pinctrl 30330000.pinctrl: pin-56 (lvds-reset) status -22
[    0.078267] imx8mp-pinctrl 30330000.pinctrl: could not request pin 56 (MX8MP_IOMUXC_NAND_ALE) from group lvds_reset_grp  on device 30330000.pinctrl
[    0.078275] gpio-reset lvds-reset: Error applying setting, reverse things back
[    1.265427] samsung-hdmi-phy 32fdff00.hdmiphy: failed to get phy apb clk: -517
[    1.265566] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock
[    1.343801] imx-lcdifv3 32e90000.lcd-controller: No pix clock get: -517
[    1.350718] imx-lcdifv3 32fc6000.lcd-controller: No irq get, ret=-517
[    1.360319] imx-hdmi-pavi 32fc4000.hdmi-pai-pvi: No pvi clock get
[    1.534128] fsl-aud2htx 30cb0000.aud2htx: failed to get mem clock
[    1.542002] imx-cdnhdmi sound-hdmi: snd_soc_register_card failed (-517)
[    1.566359] imx8mp-pinctrl 30330000.pinctrl: pin MX8MP_IOMUXC_NAND_ALE already requested by 30330000.pinctrl; cannot claim for lvds-reset
[    1.578740] imx8mp-pinctrl 30330000.pinctrl: pin-56 (lvds-reset) status -22
[    1.585715] imx8mp-pinctrl 30330000.pinctrl: could not request pin 56 (MX8MP_IOMUXC_NAND_ALE) from group lvds_reset_grp  on device 30330000.pinctrl
[    1.598939] gpio-reset lvds-reset: Error applying setting, reverse things back
[    1.628231] rtc-rv8803 1-0032: hctosys: unable to read the hardware clock
[    1.794647] samsung-hdmi-phy 32fdff00.hdmiphy: failed to get phy apb clk: -517
[    1.817171] imx-lcdifv3 32fc6000.lcd-controller: No irq get, ret=-517
[    1.840771] imx6q-pcie 33800000.pcie: invalid resource
[    2.320369] imx-cdnhdmi sound-hdmi: snd_soc_register_card failed (-517)
[    2.838890] imx6q-pcie 33800000.pcie: failed to initialize host
[    2.844827] imx6q-pcie 33800000.pcie: unable to add pcie port.
 
   OpenRC 0.44.7.10dab8bfb7 is starting up Linux 5.10.112-0-at (aarch64)
 
 * Mounting /proc ... [ ok ]
 * Mounting /run ... * /run/openrc: creating directory
 * /run/lock: creating directory
 * /run/lock: correcting owner
 * Caching service dependencies ... [ ok ]
 * Clock skew detected with `(null)'
 * Adjusting mtime of `/run/openrc/deptree' to Wed Apr 27 13:45:48 2022
 
 * WARNING: clock skew detected!
 * Starting rngd ... * Mounting /sys ... * Remounting devtmpfs on /dev ... [ ok ]
 [ ok ]
 * Mounting security filesystem ... [ ok ]
 * Mounting config filesystem ... [ ok ]
 [ ok ]
 * Mounting fuse control filesystem ... [ ok ]
 * Mounting /dev/mqueue ... [ ok ]
 * Mounting /dev/pts ... [ ok ]
 * Mounting /dev/shm ... [ ok ]
 * Mounting cgroup filesystem ... [ ok ]
udev              | * Starting udev ... [ ok ]fsck_atlog        | * Checking at-log filesystem /dev/mmcblk2gp1 ...
 * Clearing dirty bit of mmcblk2gp1. This is sign of unclean shutdown
fsck_atlog        | [ ok ]
overlayfs         | * Preparing overlayfs over / ... [ ok ]
 * WARNING: clock skew detected!
udev-trigger      | * Generating a rule to create a /dev/root symlink ... [ ok ]
udev-trigger      | * Populating /dev with existing devices through uevents ...hostname          | * Setting hostname ... [ ok ]
 [ ok ]
fsck              | * Checking local filesystems  ... [ ok ]
root              | * Remounting filesystems ... [ ok ]
localmount        | * Mounting local filesystems ... [ ok ]
urandom           | * Saving 4096 bits of creditable seed for next boot
bootmisc          | * Migrating /var/lock to /run/lock ... [ ok ]
bootmisc          | * Creating user login records ... [ ok ]
bootmisc          | * Wiping /var/tmp directory ... [ ok ]
dbus              | * /run/dbus: creating directory
dbus              | * /run/dbus: correcting owner
syslog            | * Starting busybox syslog ... [ ok ]
dbus              | * Starting System Message Bus ... [ ok ]
micron-emmc-reten | * Starting micron-emmc-reten
networkmanager    | * Starting networkmanager ... [ ok ]
 * Cowardly refusing to concatenate a logfile into itself.
 * Please change rc_log_path to something other than /run/openrc/rc.log to get rid of this message
 * WARNING: clock skew detected!
buttond           | * Starting button watching daemon ... [ ok ]
reset_bootcount   | * Resetting bootcount in bootloader env ...podman-atmark     | * Starting configured podman containers ...Environment OK, copy 1
reset_bootcount   | [ ok ]
chronyd           | * Starting chronyd ...Starting 'qt-auto'
podman-atmark     |2bafbdff899713116ab3fe1d826165efd918b2818266f98f36330c944a83a976
podman-atmark     | [ ok ]
 [ ok ]
local             | * Starting local ... [ ok ]
 * Cowardly refusing to concatenate a logfile into itself.
 * Please change rc_log_path to something other than /run/openrc/rc.log to get rid of this message
 
Welcome to Alpine Linux 3.15
Kernel 5.10.112-0-at on an aarch64 (/dev/ttymxc1)
 
armadillo login:

以前この件についてメールで相談させていただいたところ、マルティネ様より以下内容の返信をいただいています。

動画を確認しました。
そうですね、u-boot から電源を切らない (lcdifv3_power_down / video_remove
を呼ばないようにする) 対応を入れても、linux での初期化処理に適合性が
なければこういうチラつきがある可能性を考えれます。
 
例えば、framebuffer が同じメモリアドレスでなければ、linux を起動した
瞬間に違うアドレスに切り替えて画面が fbsplash を実行するまで黒くなります。
(u-boot の drivers/video/nxp/imx/imx_lcdifv3.c の fb_start が
分かりやすいですが、linux では atomic update のために fb のアドレスが
固定されていませんので、簡単には調整できないかもしれません)
 
このアドレスを引き継いで同じ framebuffer を使うのと、
init の処理で適合性のあるイメージフォーマットがない限りでは
一時的に黒くなることを回避できないと思いますが、
チラつきの方は init 処理に気をつければ修正できると思います。
例えば、framebuffer を初期化して黒くされてないかもしれません。
(それでしたら、ram のゴミ状態によって動作が変わることも
説明できます)

フレイムバッファーを初期化するには、どのような対処を行えばよいでしょうか?
また、その他の対処法などがあればご教授いただければ幸いです。

ご対応の程よろしくお願いいたします。

コメント

at_dominique.m…

2023年11月14日 18時24分

岡本さん、

お世話になっています、
マルティネです。

> フレイムバッファーを初期化するには、どのような対処を行えばよいでしょうか?
> また、その他の対処法などがあればご教授いただければ幸いです。

安田さんにも伝えていましたが、u-boot での splash はそもそもサポートしていません(弊社の u-boot では lcdifv3 のドライバが入ってないので、再現しようと思っても確認することもできない状態です)
そのため、助言程度の回答しかできません。

コードの再確認してませんので記憶違いかもしれませんが、コピーしてくださったメールでは u-boot での framebuffer のアドレスと linux が framebuffer として使ってるアドレスが違い認識なので、二つのところでチラつきが出ると思います:
* u-boot の停止から linux のドライバが呼ばえるまでに u-boot が使っていた framebuffer 領域に別のデーターが書き込まれる可能性があります。u-boot 側のドライバでアドレスを linux の起動時に使われない領域に変更してみるといいと思います。
* ドライバの初期化処理としては電源が入ってない想定で書いてますので、linux 側の最初の framebuffer の設定するまでに化けた物を表示している可能性もあります。簡単な対処は何ともいえませんので、linux カーネルの drivers/gpu/drm/imx/lcdifv3 を確認して調整を試すしかないです。

よろしくお願いします

マルティネ様

お世話になっています、
岡本です。

> 安田さんにも伝えていましたが、u-boot での splash はそもそもサポートしていません(弊社の u-boot では lcdifv3 のドライバが入ってないので、再現しようと思っても確認することもできない状態です)
> そのため、助言程度の回答しかできません。

> コードの再確認してませんので記憶違いかもしれませんが、コピーしてくださったメールでは u-boot での framebuffer のアドレスと linux が framebuffer として使ってるアドレスが違い認識なので、二つのところでチラつきが出ると思います:
> * u-boot の停止から linux のドライバが呼ばえるまでに u-boot が使っていた framebuffer 領域に別のデーターが書き込まれる可能性があります。u-boot 側のドライバでアドレスを linux の起動時に使われない領域に変更してみるといいと思います。
> * ドライバの初期化処理としては電源が入ってない想定で書いてますので、linux 側の最初の framebuffer の設定するまでに化けた物を表示している可能性もあります。簡単な対処は何ともいえませんので、linux カーネルの drivers/gpu/drm/imx/lcdifv3 を確認して調整を試すしかないです。

承知しました、 framebuffer 領域を変更する方向性で進めたいと思います。
サポート外の質問をしてしまい申し訳ありません、ご回答ありがとうございます。

お世話になっています、
岡本です。

LCD画面のチラつきなのですが、Starting kernel 後の下記エラー部分で発生しているということが分かりました。

Starting kernel ...
 
[    0.078090] imx8mp-pinctrl 30330000.pinctrl: pin MX8MP_IOMUXC_NAND_ALE already requested by 30330000.pinctrl; cannot claim for lvds-reset
[    0.078100] imx8mp-pinctrl 30330000.pinctrl: pin-56 (lvds-reset) status -22
[    0.078112] imx8mp-pinctrl 30330000.pinctrl: could not request pin 56 (MX8MP_IOMUXC_NAND_ALE) from group lvds_reset_grp  on device 30330000.pinctrl
[    0.078121] gpio-reset lvds-reset: Error applying setting, reverse things back
[    1.265451] samsung-hdmi-phy 32fdff00.hdmiphy: failed to get phy apb clk: -517
[    1.265598] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock
[    1.343886] imx-lcdifv3 32e90000.lcd-controller: No pix clock get: -517
[    1.350791] imx-lcdifv3 32fc6000.lcd-controller: No irq get, ret=-517
[    1.360257] imx-hdmi-pavi 32fc4000.hdmi-pai-pvi: No pvi clock get
[    1.533338] fsl-aud2htx 30cb0000.aud2htx: failed to get mem clock
[    1.541211] imx-cdnhdmi sound-hdmi: snd_soc_register_card failed (-517)
[    1.566139] imx8mp-pinctrl 30330000.pinctrl: pin MX8MP_IOMUXC_NAND_ALE already requested by 30330000.pinctrl; cannot claim for lvds-reset
[    1.578516] imx8mp-pinctrl 30330000.pinctrl: pin-56 (lvds-reset) status -22
[    1.585490] imx8mp-pinctrl 30330000.pinctrl: could not request pin 56 (MX8MP_IOMUXC_NAND_ALE) from group lvds_reset_grp  on device 30330000.pinctrl
[    1.598711] gpio-reset lvds-reset: Error applying setting, reverse things back
[    1.627476] rtc-rv8803 1-0032: hctosys: unable to read the hardware clock
[    1.786292] samsung-hdmi-phy 32fdff00.hdmiphy: failed to get phy apb clk: -517
[    1.807877] imx-lcdifv3 32fc6000.lcd-controller: No irq get, ret=-517
[    1.834526] imx6q-pcie 33800000.pcie: invalid resource
[    2.308039] imx-cdnhdmi sound-hdmi: snd_soc_register_card failed (-517)
[    2.845214] imx6q-pcie 33800000.pcie: failed to initialize host
[    2.851160] imx6q-pcie 33800000.pcie: unable to add pcie port.

LCD画面のチラつきに関してはエラー内の
[ 0.078090] imx8mp-pinctrl 30330000.pinctrl: pin MX8MP_IOMUXC_NAND_ALE already requested by 30330000.pinctrl; cannot claim for lvds-reset
にてlvds-resetが行えていないことが原因ではないかと考えております。

ピンの競合が起こっていると考え、boot側を確認したのですがlvds-resetのピンであるMX8MP_IOMUXC_NAND_ALEは使用しておりませんでした。

どういった内容のエラーなのか、どのような解決方法があるかなど、ご教授いただけないでしょうか?

よろしくお願いいたします。

at_dominique.m…

2023年11月21日 15時26分

岡本さん、

マルティネです。

> [    0.078090] imx8mp-pinctrl 30330000.pinctrl: pin MX8MP_IOMUXC_NAND_ALE already requested by 30330000.pinctrl; cannot claim for lvds-reset
> [    0.078100] imx8mp-pinctrl 30330000.pinctrl: pin-56 (lvds-reset) status -22
> [    0.078112] imx8mp-pinctrl 30330000.pinctrl: could not request pin 56 (MX8MP_IOMUXC_NAND_ALE) from group lvds_reset_grp  on device 30330000.pinctrl

このエラーは uboot と関係なく、linux 側の dtb 内の pinctrl で MX8MP_IOMUXC_NAND_ALE が二回設定されているということです。
弊社が提供しているカーネルの dtb では、lvds-reset の pinctrl_lvds_reset で「MX8MP_IOMUXC_NAND_ALE__GPIO3_IO00」設定しているだけですので、どこかで同じ pin (MX8MP_IOMUXC_NAND_ALE__*) を別の pinctrl 設定で設定されているように見えます。

このエラーを解決しても、lvds-reset の設定で reset-on-init が設定されているので、初期処理で lvds を切っていますね。overlay に &lvds-reset { status = "broken"; } で lvds-reset ごとに無効化してみるといいかもしれません。

よろしくおねがいします。

マルティネ様
お世話になっております。
岡本です。

> このエラーを解決しても、lvds-reset の設定で reset-on-init が設定されているので、初期処理で lvds を切っていますね。overlay に &lvds-reset { status = "broken"; } で lvds-reset ごとに無効化してみるといいかもしれません。

ご回答ありがとうございます。
助言いただいたとおりにoverlay で &lvds-reset { status = "broken"; }を実行しようとしたのですが、
dtboファイルを作成する段階でエラーが出てしまいます。

dtboファイル作成時のエラー

atmark@atde9:~/linux-5.10-5.10.199-r0$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dtbs
  DTC     arch/arm64/boot/dts/freescale/armadillo_iotg_g4-customize.dtbo
Error: arch/arm64/boot/dts/freescale/armadillo_iotg_g4-customize.dts:21.6-12 syntax error
FATAL ERROR: Unable to parse input tree
make[2]: *** [scripts/Makefile.lib:331: arch/arm64/boot/dts/freescale/armadillo_iotg_g4-customize.dtbo] エラー 1
make[1]: *** [scripts/Makefile.build:503: arch/arm64/boot/dts/freescale] エラー 2
make: *** [Makefile:1390: dtbs] エラー 2

dts(armadillo_iotg_g4-customize.dts)の内容

// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright (C) 2022 Atmark Techno, Inc. All Rights Reserved.
 */
 
/dts-v1/;
/plugin/;
 
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/clock/imx8mp-clock.h>
#include <dt-bindings/input/input.h>
 
#include "imx8mp-pinfunc.h"
 
// Replace this empty section by your configuration
&lvds-reset { 
		status = "broken"; 
		} ;

エラーの原因を教えていただきたいです。
よろしくお願いいたします。

at_dominique.m…

2023年11月22日 8時57分

マルティネです。
> 助言いただいたとおりにoverlay で &lvds-reset { status = "broken"; }を実行しようとしたのですが、
> dtboファイルを作成する段階でエラーが出てしまいます。

すみません、「lvds_reset」でした(overlay のキーは前者です)

/dts-v1/;
/plugin/;
 
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/clock/imx8mp-clock.h>
#include <dt-bindings/input/input.h>
 
#include "imx8mp-pinfunc.h"
 
 
&lvds_reset {
	status = "broken";
};

をビルドできて lvds-reset のドライバがロードされてないことも確認しました。

よろしくお願いします

お世話になっております。
岡本です。

>
>

> /dts-v1/;
> /plugin/;
> 
> #include <dt-bindings/gpio/gpio.h>
> #include <dt-bindings/clock/imx8mp-clock.h>
> #include <dt-bindings/input/input.h>
> 
> #include "imx8mp-pinfunc.h"
> 
> 
> &lvds_reset {
> 	status = "broken";
> };
> 

>
> をビルドできて lvds-reset のドライバがロードされてないことも確認しました。

上記のコードに書き換えると、dtboファイルを作成することができました。
ありがとうございます。

https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…

次に上記の内容に従って、出力したdtboファイルでの overlayを実行しました。
下記はoverlayを実行した際のコードです。

armadillo:/boot# ls
Image                                 armadillo_iotg_g4-nousb.dtbo
armadillo.dtb                         armadillo_iotg_g4-sw1-wakeup.dtbo
armadillo_iotg_g4-at-dtweb.dtb        armadillo_iotg_g4.dtb
armadillo_iotg_g4-con10-arducam.dtbo  giken_splash.ppm
armadillo_iotg_g4-con10-imx219.dtbo   imx8mp-evk.dtb
armadillo_iotg_g4-con10-ox01f10.dtbo  overlays.txt
armadillo_iotg_g4-customize.dtbo      yakushima-eva.dtb
armadillo_iotg_g4-lte-ext-board.dtbo
armadillo:/boot# cat overlays.txt
fdt_overlays=armadillo_iotg_g4-customize.dtbo
armadillo:/boot# persist_file -vp overlays.txt armadillo_iotg_g4-customize.dtbo
'/boot/overlays.txt' -> '/mnt/boot/overlays.txt'
Added "/boot/overlays.txt" to /etc/swupdate_preserve_files
'/boot/armadillo_iotg_g4-customize.dtbo' -> '/mnt/boot/armadillo_iotg_g4-customize.dtbo'
Added "/boot/armadillo_iotg_g4-customize.dtbo" to /etc/swupdate_preserve_files
armadillo:/boot# reboot

ここでrebootを行うと、再起動が始まり、Starting kernel ...まで進んでは、
また再起動をするというループが起こってしまいます。
下記はその際のlogです。

U-Boot SPL 2020.04-at19 (Nov 21 2023 - 19:40:58 +0900)
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from BOOTROM
image offset 0x0, pagesize 0x200, ivt offset 0x0
NOTICE:  BL31: v2.4(release):2020.04-at19
NOTICE:  BL31: Built : 19:44:44, Nov 21 2023
 
 
U-Boot 2020.04-at19 (Nov 21 2023 - 19:40:58 +0900)
 
CPU:   i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 50C
Model: Atmark-Techno Armadillo X2 Series
DRAM:    Hold key pressed for tests: t (fast) / T (slow)
2 GiB
WDT:   Started with servicing (10s timeout)
MMC:   FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial
 
 BuildInfo:
  - ATF 2020.04
  - U-Boot 2020.04-at19
 
reset cause: watchdog
log_wdt_reset() reset by wdt
### Warning: temperature compensation has stopped
### Warning: Voltage low, data is invalid
Could not get time: invalid date will be used in logs
switch to partitions #0, OK
mmc2(part 0) is current device
flash target is MMC:2
Net:   eth0: ethernet@30be0000 [PRIME], eth1: ethernet@30bf0000
Fastboot: Normal
Saving Environment to MMC... Writing to MMC(2)... OK
Normal Boot
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc2(part 0) is current device
32069640 bytes read in 695 ms (44 MiB/s)
Booting from mmc ...
60139 bytes read in 3 ms (19.1 MiB/s)
Loading fdt boot/armadillo.dtb
45 bytes read in 1 ms (43.9 KiB/s)
229 bytes read in 1 ms (223.6 KiB/s)
Applying fdt overlay: armadillo_iotg_g4-customize.dtbo
failed on fdt_overlay_apply(): FDT_ERR_NOTFOUND
base fdt does did not have a /__symbols__ node
make sure you've compiled with -@
ERROR: Did not find a cmdline Flattened Device Tree
 
Starting kernel ...
 
 
U-Boot SPL 2020.04-at19 (Nov 21 2023 - 19:40:58 +0900)
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from BOOTROM
image offset 0x0, pagesize 0x200, ivt offset 0x0
NOTICE:  BL31: v2.4(release):2020.04-at19
NOTICE:  BL31: Built : 19:44:44, Nov 21 2023
 
 
U-Boot 2020.04-at19 (Nov 21 2023 - 19:40:58 +0900)
 
CPU:   i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 50C
Model: Atmark-Techno Armadillo X2 Series
DRAM:    Hold key pressed for tests: t (fast) / T (slow)
2 GiB
WDT:   Started with servicing (10s timeout)
MMC:   FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial
 
 BuildInfo:
  - ATF 2020.04
  - U-Boot 2020.04-at19
 
reset cause: watchdog
log_wdt_reset() reset by wdt
### Warning: temperature compensation has stopped
### Warning: Voltage low, data is invalid
Could not get time: invalid date will be used in logs
switch to partitions #0, OK
mmc2(part 0) is current device
flash target is MMC:2
Net:   eth0: ethernet@30be0000 [PRIME], eth1: ethernet@30bf0000
Fastboot: Normal
Saving Environment to MMC... Writing to redundant MMC(2)... OK
Normal Boot
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc2(part 0) is current device
32069640 bytes read in 695 ms (44 MiB/s)
Booting from mmc ...
60139 bytes read in 3 ms (19.1 MiB/s)
Loading fdt boot/armadillo.dtb
45 bytes read in 0 ms
229 bytes read in 1 ms (223.6 KiB/s)
Applying fdt overlay: armadillo_iotg_g4-customize.dtbo
failed on fdt_overlay_apply(): FDT_ERR_NOTFOUND
base fdt does did not have a /__symbols__ node
make sure you've compiled with -@
ERROR: Did not find a cmdline Flattened Device Tree
 
Starting kernel ...
以下同じループ

また、何度かループが起こった後に、SWUpdateの内容が初期化されてしまう現象を確認しています。
何か原因、解決方法が分かるようでしたらご教授願います。
よろしくお願いいたします。

at_dominique.m…

2023年11月24日 7時56分

岡本さん

お世話になっています、
マルティネです。

> Applying fdt overlay: armadillo_iotg_g4-customize.dtbo
> failed on fdt_overlay_apply(): FDT_ERR_NOTFOUND
> base fdt does did not have a /__symbols__ node
> make sure you've compiled with -@
> ERROR: Did not find a cmdline Flattened Device Tree

手順としてはあってますが、使用されている dtb は symbols 無しの物と入れ替えられましたそうです。

Armadillo Base OS (ABOS) の設計として、カーネルに変更が不要の場合に弊社が提供している ABOS のカーネルと dtb を使用したままに、ハードウェアの構成を overlay (dtbo) で調整する想定ですが、dtbo を使うにはエラーメッセージのとおりに dtb を -@ オプションでビルドする必要があります。
(デフォルトの armadillo_iotg_g4.dtb は、カーネルディレクトリの arch/arm64/boot/dts/freescale/Makefile に「DTC_FLAGS_armadillo_iotg_g4 := -@」で指定しています)

今回は標準の armadillo_iotg_g4.dtb を使用していませんので、dtbo より直接に変更を取り入れた方がいいかもしれません。
dtb の置き換えを把握しておらず、紛らわしい案内になってしまってすみませんでした。

復帰方法ですが、本来なら三回失敗した後に rollback が行うはずですが、それも無効化していますね。
少しややっこしいですが、u-boot で「Hit any key to stop autoboot」のメッセージにキー入力すれば u-boot=> prompt に入ります。そこで、順番に「run loadimage」「run mmcargs」「run loadfdt」「booti ${loadaddr} - ${fdt_addr}」を実行すれば起動できるはずです。

起動した後に 「persist_file -d /boot/overlays.txt」で overlay の設定を無効化するか、dtb を -@ でビルドされた物に入れ替えてください。

よろしくお願いします。

マルティネ様

お世話になっております。
岡本です。

> Armadillo Base OS (ABOS) の設計として、カーネルに変更が不要の場合に弊社が提供している ABOS のカーネルと dtb を使用したままに、ハードウェアの構成を overlay (dtbo) で調整する想定ですが、dtbo を使うにはエラーメッセージのとおりに dtb を -@ オプションでビルドする必要があります。
> (デフォルトの armadillo_iotg_g4.dtb は、カーネルディレクトリの arch/arm64/boot/dts/freescale/Makefile に「DTC_FLAGS_armadillo_iotg_g4 := -@」で指定しています)
>
> 今回は標準の armadillo_iotg_g4.dtb を使用していませんので、dtbo より直接に変更を取り入れた方がいいかもしれません。
> dtb の置き換えを把握しておらず、紛らわしい案内になってしまってすみませんでした。
>
ご回答ありがとうございます。
助言いただいたように、armadillo_iotg_g4.dtbを直接変更しに行ったのですが、下記エラーを消すことができませんでした。

 [    0.078090] imx8mp-pinctrl 30330000.pinctrl: pin MX8MP_IOMUXC_NAND_ALE already requested by 30330000.pinctrl; cannot claim for lvds-reset
 [    0.078100] imx8mp-pinctrl 30330000.pinctrl: pin-56 (lvds-reset) status -22
 [    0.078112] imx8mp-pinctrl 30330000.pinctrl: could not request pin 56 (MX8MP_IOMUXC_NAND_ALE) from group lvds_reset_grp  on device 30330000.pinctrl

変更手順としましては下記のようになっております。

①armadillo_iotg_g4.dtsのlvds_reset記述箇所にstatus = "broken";を追加

	lvds_reset: lvds-reset {
		compatible = "gpio-reset";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_lvds_reset>;
		reset-gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
		reset-delay-us = <50>;
		reset-on-init;
		#reset-cells = <0>;
		status = "broken";
	};

②armadillo_iotg_g4.dtbをビルド

atmark@atde9:~/linux-5.10-5.10.112-r0$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dtbs
  DTC     arch/arm64/boot/dts/freescale/armadillo_iotg_g4.dtb

③リナックスボード内のarmadillo_iotg_g4.dtbを書き換え

armadillo:~# cd ../
armadillo:/# ls
bin   dev  home  live        mnt  proc  run   sys     tmp  var
boot  etc  lib   lost+found  opt  root  sbin  target  usr
armadillo:/# cd boot
armadillo:/boot# ls
Image                                 armadillo_iotg_g4-nousb.dtbo
armadillo.dtb                         armadillo_iotg_g4-sw1-wakeup.dtbo
armadillo_iotg_g4-at-dtweb.dtb        armadillo_iotg_g4.dtb
armadillo_iotg_g4-con10-arducam.dtbo  giken_splash.ppm
armadillo_iotg_g4-con10-imx219.dtbo   imx8mp-evk.dtb
armadillo_iotg_g4-con10-ox01f10.dtbo  yakushima-eva.dtb
armadillo_iotg_g4-lte-ext-board.dtbo
armadillo:/boot# persist_file -d armadillo_iotg_g4.dtb
armadillo:/boot# mount -t vfat /dev/sda1 /mnt
armadillo:/boot# cdp -r /mnt/armadillo_iotg_g4.dtb /boot
armadillo:/boot# persist_file armadillo_iotg_g4.dtb

④下記はrebootの結果です。

armadillo:/boot# reboot
armadillo:/boot#  * WARNING: clock skew detected!
local             | * Stopping local ... [ ok ]
podman-atmark     | * Stopping all podman containers ...urandom           | * Seeding 4096 bits and crediting
urandom           | * Saving 4096 bits of creditable seed for next boot
syslog            | * Stopping busybox syslog ... [ ok ]
chronyd           | * Stopping chronyd ...rngd              | * Stopping rngd ...buttond           | * Stopping button watching daemon ... [ ok ]
 [ ok ]
 [ ok ]
udev              | * Stopping udev ... [ ok ]
networkmanager    | * Stopping networkmanager ... [ ok ]
dbus              | * Stopping System Message Bus ...nm-dispatcher: System bus stopped. Exiting
 [ ok ]
 [ ok ]
localmount        | * Unmounting loop devices
localmount        | * Unmounting filesystems
localmount        | *   Unmounting /mnt ... [ ok ]
localmount        | *   Unmounting /opt/firmware ... [ ok ]
localmount        | *   Unmounting /var/at-log ... [ ok ]
localmount        | *   Unmounting /var/tmp ... [ ok ]
localmount        | *   Unmounting /var/app/volumes ... [ ok ]
localmount        | *   Unmounting /var/app/rollback/volumes ... [ ok ]
localmount        | *   Unmounting /var/lib/containers/storage_readonly ... [ ok ]
localmount        | *   Unmounting /var/log ... [ ok ]
localmount        | *   Unmounting /tmp ... [ ok ]
 * Cowardly refusing to concatenate a logfile into itself.
 * Please change rc_log_path to something other than /run/openrc/rc.log to get rid of this message
killprocs         | * Terminating remaining processes ...mount-ro          | * Remounting remaining filesystems read-only ... *   Remounting / read only ... [ ok ]
mount-ro          | [ ok ]
indicator_signals | * Signaling external devices we are shutting down .../lib/rc/sh/openrc-run.sh: line 11: can't create /sys/class/leds/PWR_IND/brightness: nonexistent directory
indicator_signals |/lib/rc/sh/openrc-run.sh: line 12: can't create /sys/class/leds/STDWN_IND/brightness: nonexistent directory
indicator_signals | [ ok ]
The system is going down NOW!
Sent SIGTERM to all processes
Sent SIGKILL to all processes
Requesting system reboot
[  672.931760] imx2-wdt 30280000.watchdog: Device shutdown: Expect reboot!
[  672.939092] reboot: Restarting system
 
U-Boot SPL 2020.04-at19 (Nov 21 2023 - 19:40:58 +0900)
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from BOOTROM
image offset 0x0, pagesize 0x200, ivt offset 0x0
NOTICE:  BL31: v2.4(release):2020.04-at19
NOTICE:  BL31: Built : 19:44:44, Nov 21 2023
 
 
U-Boot 2020.04-at19 (Nov 21 2023 - 19:40:58 +0900)
 
CPU:   i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 48C
Model: Atmark-Techno Armadillo X2 Series
DRAM:    Hold key pressed for tests: t (fast) / T (slow)
2 GiB
WDT:   Started with servicing (10s timeout)
MMC:   FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial
 
 BuildInfo:
  - ATF 2020.04
  - U-Boot 2020.04-at19
 
reset cause: normal reboot
switch to partitions #0, OK
mmc2(part 0) is current device
flash target is MMC:2
Net:   eth0: ethernet@30be0000 [PRIME], eth1: ethernet@30bf0000
Fastboot: Normal
Saving Environment to MMC... Writing to redundant MMC(2)... OK
Normal Boot
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc2(part 0) is current device
32069640 bytes read in 695 ms (44 MiB/s)
Booting from mmc ...
60139 bytes read in 3 ms (19.1 MiB/s)
Loading fdt boot/armadillo.dtb
## Flattened Device Tree blob at 45000000
   Booting using the fdt blob at 0x45000000
   Loading Device Tree to 0000000052bc3000, end 0000000052bf4fff ... OK
 
Starting kernel ...
 
[    0.078318] imx8mp-pinctrl 30330000.pinctrl: pin MX8MP_IOMUXC_NAND_ALE already requested by 30330000.pinctrl; cannot claim for lvds-reset
[    0.078328] imx8mp-pinctrl 30330000.pinctrl: pin-56 (lvds-reset) status -22
[    0.078339] imx8mp-pinctrl 30330000.pinctrl: could not request pin 56 (MX8MP_IOMUXC_NAND_ALE) from group lvds_reset_grp  on device 30330000.pinctrl
[    0.078347] gpio-reset lvds-reset: Error applying setting, reverse things back
[    1.265846] samsung-hdmi-phy 32fdff00.hdmiphy: failed to get phy apb clk: -517
[    1.265990] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock
[    1.345362] imx-lcdifv3 32e90000.lcd-controller: No pix clock get: -517
[    1.352277] imx-lcdifv3 32fc6000.lcd-controller: No irq get, ret=-517
[    1.362379] imx-hdmi-pavi 32fc4000.hdmi-pai-pvi: No pvi clock get
[    1.386448] imx-dwmac 30bf0000.ethernet: Cannot register the MDIO bus
[    1.392911] imx-dwmac 30bf0000.ethernet: stmmac_dvr_probe: MDIO bus (id: 1) registration failed
[    1.555593] fsl-aud2htx 30cb0000.aud2htx: failed to get mem clock
[    1.563521] imx-cdnhdmi sound-hdmi: snd_soc_register_card failed (-517)
[    1.587533] imx8mp-pinctrl 30330000.pinctrl: pin MX8MP_IOMUXC_NAND_ALE already requested by 30330000.pinctrl; cannot claim for lvds-reset
[    1.599921] imx8mp-pinctrl 30330000.pinctrl: pin-56 (lvds-reset) status -22
[    1.606893] imx8mp-pinctrl 30330000.pinctrl: could not request pin 56 (MX8MP_IOMUXC_NAND_ALE) from group lvds_reset_grp  on device 30330000.pinctrl
[    1.620114] gpio-reset lvds-reset: Error applying setting, reverse things back
[    1.652514] rtc-rv8803 1-0032: hctosys: unable to read the hardware clock
[    1.830572] samsung-hdmi-phy 32fdff00.hdmiphy: failed to get phy apb clk: -517
[    1.851584] imx-lcdifv3 32fc6000.lcd-controller: No irq get, ret=-517
[    1.877770] imx6q-pcie 33800000.pcie: invalid resource
[    2.355794] imx-cdnhdmi sound-hdmi: snd_soc_register_card failed (-517)
[    2.882099] imx6q-pcie 33800000.pcie: failed to initialize host
[    2.888064] imx6q-pcie 33800000.pcie: unable to add pcie port.
 
   OpenRC 0.44.7.10dab8bfb7 is starting up Linux 5.10.112-0-at (aarch64)
 
 * Mounting /proc ... [ ok ]
 * Mounting /run ... * /run/openrc: creating directory
 * /run/lock: creating directory
 * /run/lock: correcting owner
 * Caching service dependencies ... [ ok ]
 * Clock skew detected with `(null)'
 * Adjusting mtime of `/run/openrc/deptree' to Wed Apr 27 13:45:48 2022
 
 * WARNING: clock skew detected!
 * Remounting devtmpfs on /dev ... * Mounting /sys ... * Starting rngd ... [ ok ]
 [ ok ]
 * Mounting security filesystem ... [ ok ]
 * Mounting config filesystem ... * Mounting /dev/mqueue ... [ ok ]
 [ ok ]
 * Mounting fuse control filesystem ... [ ok ]
 [ ok ]
 * Mounting /dev/pts ... [ ok ]
 * Mounting /dev/shm ... [ ok ]
cgroups           | * Mounting cgroup filesystem ...fsck_atlog        | * Checking at-log filesystem /dev/mmcblk2gp1 ... [ ok ]
udev              | * Starting udev ... [ ok ]
 [ ok ]
overlayfs         | * Preparing overlayfs over / ... [ ok ]
 * WARNING: clock skew detected!
udev-trigger      | * Generating a rule to create a /dev/root symlink ...hostname          | * Setting hostname ... [ ok ]
 [ ok ]
udev-trigger      | * Populating /dev with existing devices through uevents ... [ ok ]
fsck              | * Checking local filesystems  ... [ ok ]
root              | * Remounting filesystems ... [ ok ]
localmount        | * Mounting local filesystems ... [ ok ]
urandom           | * Saving 4096 bits of creditable seed for next boot
bootmisc          | * Migrating /var/lock to /run/lock ... [ ok ]
bootmisc          | * Creating user login records ... [ ok ]
bootmisc          | * Wiping /var/tmp directory ... [ ok ]
dbus              | * /run/dbus: creating directory
dbus              | * /run/dbus: correcting owner
micron-emmc-reten | * Starting micron-emmc-reten
syslog            | * Starting busybox syslog ...dbus              | * Starting System Message Bus ... [ ok ]
 [ ok ]
networkmanager    | * Starting networkmanager ... [ ok ]
 * Cowardly refusing to concatenate a logfile into itself.
 * Please change rc_log_path to something other than /run/openrc/rc.log to get rid of this message
 * WARNING: clock skew detected!
buttond           | * Starting button watching daemon ...reset_bootcount   | * Resetting bootcount in bootloader env ... [ ok ]
podman-atmark     | * Starting configured podman containers ...Environment OK, copy 1
reset_bootcount   | [ ok ]
chronyd           | * Starting chronyd ...Starting 'qt-auto'
podman-atmark     |a4ef092d996aef303537012a8bf9b75138f41748a7b995b5d39d826b15d43c0a
podman-atmark     | [ ok ]
 [ ok ]
local             | * Starting local ... [ ok ]
 * Cowardly refusing to concatenate a logfile into itself.
 * Please change rc_log_path to something other than /run/openrc/rc.log to get rid of this message
 
Welcome to Alpine Linux 3.15
Kernel 5.10.112-0-at on an aarch64 (/dev/ttymxc1)

またカーネルディレクトリの arch/arm64/boot/dts/freescale/Makefile に「DTC_FLAGS_armadillo_iotg_g4 := -@
を追加した状態でarmadillo_iotg_g4.dtbをビルドして、overlayによる変更を試しましたが、
前回と同じく下記表示が出力され、再起動のループが起こってしまいました。

Applying fdt overlay: armadillo_iotg_g4-customize.dtbo
failed on fdt_overlay_apply(): FDT_ERR_NOTFOUND
base fdt does did not have a /__symbols__ node
make sure you've compiled with -@
ERROR: Did not find a cmdline Flattened Device Tree

下記はMakefileに「DTC_FLAGS_armadillo_iotg_g4 := -@」を追加した箇所になります。

# SPDX-License-Identifier: GPL-2.0
 
# required for overlay support
DTC_FLAGS_fsl-ls1028a-qds := -@
DTC_FLAGS_fsl-ls1028a-qds-13bb := -@
DTC_FLAGS_fsl-ls1028a-qds-65bb := -@
DTC_FLAGS_fsl-ls1028a-qds-7777 := -@
DTC_FLAGS_fsl-ls1028a-qds-85bb := -@
DTC_FLAGS_fsl-ls1028a-qds-899b := -@
DTC_FLAGS_fsl-ls1028a-qds-9999 := -@
DTC_FLAGS_armadillo_iotg_g4 := -@

何か助言頂ければ幸いです。
よろしくお願いいたします。

at_dominique.m…

2023年11月27日 13時42分

岡本さん

マルティネです。

> Loading fdt boot/armadillo.dtb

/boot/armadillo.dtb を確認していただけますか?
デフォルト状態では armadillo.dtb は armadillo_iot_g4.dtb への symbolic link ですが、見せていただいたエラーでは更新した dtb がロードされてないように見えますのでもしかしたら変更されたかと思いました。

また、ロードされた dtb+dtbo の内容は /sys/firmware/fdt で確認できます
```
armadillo:~# apk add dtc
armadillo:~# dtc -Idtb -Odts < /sys/firmware/fdt | less
...
lvds-reset {
compatible = "gpio-reset";
pinctrl-names = "default";
pinctrl-0 = <0x8c>;
reset-gpios = <0x8d 0x00 0x01>;
reset-delay-us = <0x32>;
reset-on-init;
#reset-cells = <0x00>;
phandle = <0x110>;
status = "broken";
};
...
```

よろしくお願いします。

マルティネ様

お世話になっております。
岡本です。

> > Loading fdt boot/armadillo.dtb
>
> /boot/armadillo.dtb を確認していただけますか?
> デフォルト状態では armadillo.dtb は armadillo_iot_g4.dtb への symbolic link ですが、見せていただいたエラーでは更新した dtb がロードされてないように見えますのでもしかしたら変更されたかと思いました。
>
> また、ロードされた dtb+dtbo の内容は /sys/firmware/fdt で確認できます
> ```
> armadillo:~# apk add dtc
> armadillo:~# dtc -Idtb -Odts < /sys/firmware/fdt | less
> ...
> lvds-reset {
> compatible = "gpio-reset";
> pinctrl-names = "default";
> pinctrl-0 = <0x8c>;
> reset-gpios = <0x8d 0x00 0x01>;
> reset-delay-us = <0x32>;
> reset-on-init;
> #reset-cells = <0x00>;
> phandle = <0x110>;
> status = "broken";
> };
> ...
> ```

/sys/firmware/fdtで確認したところlvds-resetが更新されておりませんでした。

 armadillo:~# dtc -Idtb -Odts < /sys/firmware/fdt  | less
 ...
        lvds-reset {
                compatible = "gpio-reset";
                pinctrl-names = "default";
                pinctrl-0 = <0x8f>;
                reset-gpios = <0x90 0x00 0x01>;
                reset-delay-us = <0x32>;
                reset-on-init;
                #reset-cells = <0x00>;
        };
 ...

また、armadillo.dtbをdtsに変換し中を確認したのですが、 更新されていないlvds-resetの表記がございました。

armadillo:/tmp# cat armadillo.dts
/dts-v1/;
 ...
     lvds-reset {
                compatible = "gpio-reset";
                pinctrl-names = "default";
                pinctrl-0 = <0x8f>;
                reset-gpios = <0x90 0x00 0x01>;
                reset-delay-us = <0x32>;
                reset-on-init;
                #reset-cells = <0x00>;
        };
 ...

lvds-resetの内容を更新するにはどのようにすればよいでしょうか?
armadillo.dtbを変更する必要があるのでしょうか?
dtbへの変更ですが、at-dtwebにてピンの設定のみ行っている状況です。
対応の程よろしくお願いいたします。

マルティネ様

連続での投稿失礼します。
岡本です。

armadillo.dtbについてですが、下記内容のdescファイルにてSWUpdateを行っておりました。

# armadillo.dtb link send 
swdesc_files --version extra_os.giken_kernel 1.01  --dest /boot \
	armadillo.dtb armadillo_iotg_g4-at-dtweb.dtb
 
# add the kernel to files to be preserved on OS update
swdesc_command --version extra_os.giken_dtb 1.01 \
        'echo /boot/armadillo_iotg_g4-at-dtweb.dtb >> /etc/swupdate_preserve_files'

at_dominique.m…

2023年11月27日 16時46分

岡本さん、

> また、armadillo.dtbをdtsに変換し中を確認したのですが、 更新されていないlvds-resetの表記がございました。
> [...]
> lvds-resetの内容を更新するにはどのようにすればよいでしょうか?
> armadillo.dtbを変更する必要があるのでしょうか?
> dtbへの変更ですが、at-dtwebにてピンの設定のみ行っている状況です。

当時の at-dtweb はまだ dtb を上書きする仕様で、マニュアルに特にどの dtb を上書きすればいいかは案内していませんでしたね…おそらく armadillo.dtb を直接に上書きしていただけですので、armadillo_iotg_g4.dtbだけ更新しても armadillo.dtb に反映されないことになります。
at-dtweb の dtb はカーネル 5.10.109-r1 までに -@ でビルドされていたが、dtbo式に切り替えた際に -@ を外したのでちょっとおかしいですが、現在使用中の 5.10.112 で同じ名前でリビルドされたかもしれません。仕様の変更でご迷惑をかけました。

カーネルを更新する予定がなければ、このまま生成した dtb を armadillo.dtb に上書きして、起動時に使用されます。試す分にもこれでいいと思います。
更新を考慮している場合は ATDE で 「apt install at-dtweb」で at-dtweb 2.6.2 (2022年4月)以降のバージョンに更新すれば dtbo が生成されますので、切り替えた方がいいと思いますが、すぐじゃなくてもいいですね。 armadillo.dtb を armadillo_iotg_g4.dtb への symbolic link としてもどして(「cd /boot && ln -fvs armadillo_iotg_g4.dtb armadillo.dtb && persist_file -v armadillo.dtb」)、デフォルトの armadillo_iotg_g4.dtb で overlay を使えます。

よろしくお願いします。

マルティネ様

お世話になっております。
岡本です。

>
> 当時の at-dtweb はまだ dtb を上書きする仕様で、マニュアルに特にどの dtb を上書きすればいいかは案内していませんでしたね…おそらく armadillo.dtb を直接に上書きしていただけですので、armadillo_iotg_g4.dtbだけ更新しても armadillo.dtb に反映されないことになります。
> at-dtweb の dtb はカーネル 5.10.109-r1 までに -@ でビルドされていたが、dtbo式に切り替えた際に -@ を外したのでちょっとおかしいですが、現在使用中の 5.10.112 で同じ名前でリビルドされたかもしれません。仕様の変更でご迷惑をかけました。
>
> カーネルを更新する予定がなければ、このまま生成した dtb を armadillo.dtb に上書きして、起動時に使用されます。試す分にもこれでいいと思います。

armadillo.dtbを書き換えると、lvds_reset関係のエラーが無くなりました。ありがとうございます。

> 更新を考慮している場合は ATDE で 「apt install at-dtweb」で at-dtweb 2.6.2 (2022年4月)以降のバージョンに更新すれば dtbo が生成されますので、切り替えた方がいいと思いますが、すぐじゃなくてもいいですね。 armadillo.dtb を armadillo_iotg_g4.dtb への symbolic link としてもどして(「cd /boot && ln -fvs armadillo_iotg_g4.dtb armadillo.dtb && persist_file -v armadillo.dtb」)、デフォルトの armadillo_iotg_g4.dtb で overlay を使えます。
>
> よろしくお願いします。

承知いたしました。更新の際は参考にさせていただきます。
ご対応ありがとうございました。