動かなくなったNanoPi M4V2に何が起こっているのかUARTにシリアル接続して確認

Posted by 雅楽斎 on Thursday, March 26, 2020

TOC

NanoPi M4V2が起動しない(安定しない)ので最終手段であるシリアルでの接続をしました。症状としては赤LEDが点滅、赤LED点灯後に緑LEDが1回だけ光ってLED全部消えてしまうの2パターンです。

ピンアサインの確認

NanoPi M4V2をデバッグする場合にどこに繋げばいいか確認します。

NanoPi M4V2 - FriendlyARM WiKi

この「Debug UART Pin Spec」に繋ぎます。場所はUSBポートの間にある「Debug UART」。

接続するケーブル

Amazonでさっくり買いました。PL2303チップに対応できれば使えるそうです。まさか自宅でUARTに繋ぐ日が来るとは思っていなかったんですが。

Amazon | Raspberry Pi ラズベリーパイ用の USB-TTLシリアルコンソールのUSB変換COMケーブルモジュールのケーブル | GAOHOU | USBケーブル 通販

コメントを読むと、黒GND、緑TxD、白RxD、赤5Vだそうなので、これをそれぞれ

  • Pin1 GND - 黒
  • Pin2 VCC5V0_SYS - 赤
  • Pin3 UART2DBG_TX - 白
  • Pin4 UART2DBG_RX - 緑

になるように接続1します。

実際には狭いので4ピン束ねて接続します。

デバッグ用PC(Ubuntu 18.04)のソフトウェアの準備

ケーブル挿してみた

自動で認識されないかなと思い、とりあえずUSBケーブルを挿したところ、dmesgに以下の出力があり、/dev/ttyUSB0として認識されました。なので、追加のモジュールは必要なさそうです。

[  211.142233] usb 2-2: new full-speed USB device number 5 using xhci_hcd
[  211.268921] usb 2-2: New USB device found, idVendor=067b, idProduct=2303
[  211.268930] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  211.268934] usb 2-2: Product: USB-Serial Controller
[  211.268938] usb 2-2: Manufacturer: Prolific Technology Inc.
[  211.843263] usbcore: registered new interface driver usbserial_generic
[  211.843296] usbserial: USB Serial support registered for generic
[  211.846711] usbcore: registered new interface driver pl2303
[  211.846745] usbserial: USB Serial support registered for pl2303
[  211.846772] pl2303 2-2:1.0: pl2303 converter detected
[  211.848683] usb 2-2: pl2303 converter now attached to ttyUSB0

GNU screen

だいたいのケースでminicomかGNU screenのどちらかでシリアル接続することが多いかと思いますが今回はGNU screenをインストールします。

# apt-get install screen

シリアルで接続

4本のピンをNanoPi M4V2に、USBケーブルをPCに接続して、以下のコマンドでscreenで接続します。(ボーレートが1500000bps)

# screen /dev/ttyUSB0 1500000

screen実行後に起動(NanoPiにUSB Type-Cケーブル挿入)すると最初からのメッセージが全て取得できます。なお、以降の出力結果はArmbian Bionic serverのものです。

確認した結果:シリアル接続すると安定して起動する(シリアル接続しないと安定して起動しない)

物凄く変な結果ですが、シリアルを繋いでると普通に起動します。ということで、現時点での推測の結果はシリアルに給電している5Vがあれば安定する…ということはM4V2の給電が不安定?という結論になりました。TypeC共通アダプタ01UではなくXiaomiのAD16TWのType-Aポートから取るようにしてから問題なく動いてます。USB-PDとかの高機能なアダプターは却って使わない方がいいのかもしれません2

以下が起動時のメッセージ(最後の方)になります。「Starting kernel …」の後は次のメッセージが出るまで30秒くらい空白時間があります。

メッセージ全体は本記事の最後に記載します。

## Flattened Device Tree blob at 01f00000
   Booting using the fdt blob at 0x1f00000
   Loading Ramdisk to f574d000, end f5efeeeb ... OK
   Loading Device Tree to 00000000f56d2000, end 00000000f574cfff ... OK

Starting kernel ...

[   53.930694] OF: graph: no port node found in /i2c@ff3d0000/typec-portc@22
[   54.202493] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4356-sdio for chip BCM4356/2
[   54.326636] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4356-sdio for chip BCM4356/2
[   54.327450] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[   54.334273] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4356/2 wl0: May 14 2014 19:51:52 version 7.35.17 (r477908) FWID 01-2ed3ee81
^M
Armbian 20.02.1 Bionic ttyS2

nanopim4v2 login:

不安定だった時は↓の行の出力後に電源が切れました。このタイミングで緑LEDが一瞬光ってLEDが全部消えてしまっていました。

[   54.334273] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4356/2 wl0: May 14 2014 19:51:52 version 7.35.17 (r477908) FWID 01-2ed3ee81

起動時のメッセージ(全部)

DDR Version 1.24 20191016
In
channel 0
CS = 0
MR0=0x98
MR4=0x1
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x1
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 416MHz 0,1
Channel 0: LPDDR4,416MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
Channel 1: LPDDR4,416MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
256B stride
channel 0
CS = 0
MR0=0x98
MR4=0x1
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x81
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x82
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x1
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
channel 0, cs 0, advanced training done
channel 0, cs 1, advanced training done
channel 1, cs 0, advanced training done
channel 1, cs 1, advanced training done
change freq to 856MHz 1,0
ch 0 ddrconfig = 0x101, ddrsize = 0x2020
ch 1 ddrconfig = 0x101, ddrsize = 0x2020
pmugrf_os_reg[2] = 0x3AA1FAA1, stride = 0xD
ddr_set_rate to 328MHZ
ddr_set_rate to 666MHZ
ddr_set_rate to 928MHZ
channel 0, cs 0, advanced training done
channel 0, cs 1, advanced training done
channel 1, cs 0, advanced training done
channel 1, cs 1, advanced training done
channel 1, cs 0, dq 31 RISK!!! TdiVW_total violate spec
 channel 1, cs 1, dq 31 RISK!!! TdiVW_total violate spec
 ddr_set_rate to 416MHZ, ctl_index 0
ddr_set_rate to 856MHZ, ctl_index 1
support 416 856 328 666 928 MHz, current 856MHz
OUT
Boot1: 2019-03-14, version: 1.19
CPUId = 0x0
ChipType = 0x10, 250
mmc: ERROR: SDHCI ERR:cmd:0x102,stat:0x18000
mmc: ERROR: Card did not respond to voltage select!
emmc reinit
mmc: ERROR: SDHCI ERR:cmd:0x102,stat:0x18000
mmc: ERROR: Card did not respond to voltage select!
emmc reinit
mmc: ERROR: SDHCI ERR:cmd:0x102,stat:0x18000
mmc: ERROR: Card did not respond to voltage select!
SdmmcInit=2 1
mmc0:cmd5,20
SdmmcInit=0 0
BootCapSize=0
UserCapSize=7595MB
FwPartOffset=2000 , 0
StorageInit ok = 44911
SecureMode = 0
SecureInit read PBA: 0x4
SecureInit read PBA: 0x404
SecureInit read PBA: 0x804
SecureInit read PBA: 0xc04
SecureInit read PBA: 0x1004
SecureInit read PBA: 0x1404
SecureInit read PBA: 0x1804
SecureInit read PBA: 0x1c04
SecureInit ret = 0, SecureMode = 0
atags_set_bootdev: ret:(0)
GPT 0x3380ec0 signature is wrong
recovery gpt...
GPT 0x3380ec0 signature is wrong
recovery gpt fail!
LoadTrust Addr:0x4000
No find bl30.bin
No find bl32.bin
Load uboot, ReadLba = 2000
hdr 0000000003380880 + 0x0:0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

Load OK, addr=0x200000, size=0xc8a14
RunBL31 0x40000
^ANOTICE:  BL31: v1.3(debug):42583b6
NOTICE:  BL31: Built : 07:55:13, Oct 15 2019
NOTICE:  BL31: Rockchip release version: v1.1
INFO:    GICv3 with legacy support detected. ARM GICV3 driver initialized in EL3
INFO:    Using opteed sec cpu_context!
INFO:    boot cpu mask: 0
INFO:    plat_rockchip_pmu_init(1190): pd status 3e
INFO:    BL31: Initializing runtime services
WARNING: No OPTEE provided by BL2 boot loader, Booting device without OPTEE initialization. SMC`s destined for OPTEE will return SMC_UNK
ERROR:   Error initializing runtime service opteed_fast
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x200000
INFO:    SPSR = 0x3c9


U-Boot 2020.01-armbian (Feb 17 2020 - 06:56:25 +0100)

Model: FriendlyElec NanoPi M4V2
DRAM:  3.9 GiB
PMIC:  RK808
MMC:   dwmmc@fe320000: 1, sdhci@fe330000: 0
Loading Environment from MMC... Card did not respond to voltage select!
*** Warning - No block device, using default environment

In:    serial@ff1a0000
Out:   serial@ff1a0000
Err:   serial@ff1a0000
Model: FriendlyElec NanoPi M4V2
rockchip_dnl_key_pressed: adc_channel_single_shot fail!
Net:   eth0: ethernet@fe300000
Hit any key to stop autoboot:  0
Card did not respond to voltage select!
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:1...
Found U-Boot script /boot/boot.scr
2940 bytes read in 9 ms (318.4 KiB/s)
## Executing script at 00500000
Boot script loaded from mmc 1
151 bytes read in 8 ms (17.6 KiB/s)
8068907 bytes read in 517 ms (14.9 MiB/s)
20722176 bytes read in 1310 ms (15.1 MiB/s)
73749 bytes read in 19 ms (3.7 MiB/s)
2698 bytes read in 13 ms (202.1 KiB/s)
Applying kernel provided DT fixup script (rockchip-fixup.scr)
## Executing script at 39000000
## Loading init Ramdisk from Legacy Image at 06000000 ...
   Image Name:   uInitrd
   Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
   Data Size:    8068843 Bytes = 7.7 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 01f00000
   Booting using the fdt blob at 0x1f00000
   Loading Ramdisk to f574d000, end f5efeeeb ... OK
   Loading Device Tree to 00000000f56d2000, end 00000000f574cfff ... OK

Starting kernel ...

[   53.930694] OF: graph: no port node found in /i2c@ff3d0000/typec-portc@22
[   54.202493] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4356-sdio for chip BCM4356/2
[   54.326636] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4356-sdio for chip BCM4356/2
[   54.327450] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[   54.334273] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4356/2 wl0: May 14 2014 19:51:52 version 7.35.17 (r477908) FWID 01-2ed3ee81
^M
Armbian 20.02.1 Bionic ttyS2

nanopim4v2 login:

スポンサーリンク


  1. ケーブルのTXとボードのRX、ケーブルのRXとボードのTXを繋ぐのでこの2つは逆になる [return]
  2. NanoPi M4V2自体は給電ポートはUSB Type-CですがUSB-PDに対応していません。 [return]

comments powered by Disqus