milk-V Duo でシリアルコンソール

milk-V Duo でシリアルコンソール、楽勝! と思っていたら意外と手こずったお話。

# 環境

- 母艦 Ubuntu 22.04 LTS
- milk-V Duo
- USBシリアルモジュール CP2102

「usb_serial のエラー on Ubuntu Linux」
https://qiita.com/nanbuwks/items/d193fa8bb69937dd01ef

で使っているものです。

# はんだづけ

まず、以下のようにはんだづけをします。

![IMG_20240126_230017.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/f7ffa5bc-1900-2c88-8b72-9efd846090a7.jpeg)

はんだ付けする箇所は GP12,GP13,GND です。 
![IMG_20240126_225951.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/cbb3f876-928a-c1f0-a4c2-3f79c004af5a.jpeg)

また、このようにVBUS または VSYS にピンを立てて、電源供給しようとしてみました。

![IMG_20240126_230657.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/2d45ac6f-5a36-854f-f764-04dd080a55d9.jpeg)

ただしここからの電源供給は制限があるため、要注意。

# 配線

このように接続します。


![IMG_20240126_234418.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/3d9e8ae5-1893-c357-885b-450c85a1ec5d.jpeg)


| Milk-V Duo   | 写真でのケーブル色 | USBシリアル |
|:------------:|:----:|:----------:|
| GPIO12(TX)  | 青 | RXD |
| GPIO13(RX)  | 白 | TXD |
| GND  | 黒 | GND |
| VSYS または VBUS| 赤 | +5V |

# 接続

USBシリアルを母艦のUSBポートに接続します。
その後、ターミナルを立ち上げます。
今回は、picocom を使いました。

```
$ picocom -b 115200 /dev/ttyUSB0

```
picocom を立ち上げるのが早ければ、起動メッセージが流れます。

```
   Decompressing 6437376 bytes used 1054ms
   Loading Device Tree to 0000000081be5000, end 0000000081becd04 ... OK

Starting kernel ...

[    0.000000] Linux version 5.10.4-tag- (root@7c521a5198ef) (riscv64-unknown-linux-musl-gcc (Xuantie-900 linux-5.10.4 musl gcc Toolchain V2.6.1 B-20220906) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 PREEMPT Sat Dec 23 12:29:13 CST 2023
[    0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
[    0.000000] printk: bootconsole [sbi0] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] Ion: Ion memory setup at 0x0000000082473000 size 26 MiB

.
.
.

[    2.526668] cv180x-cooling cv180x_cooling: dev_freqs[2]: 425000000 300000000
[    2.534407] cv180x-cooling cv180x_cooling: Cooling device registered: cv180x_cooling
[    2.571872] jpu ctrl reg pa = 0xb030000, va = (____ptrval____), size = 256
[    2.579908] end jpu_init result = 0x0
[    2.695983] cvi_vc_drv_init result = 0x0
[    2.710817] sh (166): drop_caches: 3
Starting app...

[root@milkv-duo]~# 
```

タイミングが遅ければ何も出てきませんが、エンターを押すと最後の

```
[root@milkv-duo]~# 

```
が出てきます。



# 最初からログを取る



上記は起動してからUSBシリアルをつなぎました。

USBシリアルをつなげてから、起動する順序にできないでしょうか。

手っ取り早いのはハードウェアリセットをかける方法ですが、リセット信号を入力するところは無いようです。

なのでUSBシリアルをつないだ状態で電源を外しておき、ターミナルを起動してから電源をつなぐことになります。


しかしながら5V電源を外しても、milk-V DUo のランプが点いてますね。

![IMG_20240127_010727.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/a35e4619-d2b7-38db-1b7f-9967a604f850.jpeg)

これは USBシリアルのTX信号にかかっている電圧が、 milk-V Duo の駆動に使われてしまっているためです。
省電力はいいのですが、こんなことが起こるのですね。

USBシリアルのTX信号を外すとランプが消えました。

![IMG_20240127_010740.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/e00fa3d6-dcd9-82cb-7b31-39adf6e717b9.jpeg)

さて、ここで5V 供給をすれば、起動するかな・・・うまくいきませんでした。

起動はするのですが、USBシリアルから信号を受信できなくなってしまいます。

母艦側の dmesg では以下のようなエラーが出ていました。

```
[1044841.120242] usb 1-5: USB disconnect, device number 85
[1044841.120475] cp210x ttyUSB0: failed set request 0x7 status: -19
[1044841.120486] cp210x ttyUSB0: failed set request 0x12 status: -19
[1044841.120490] cp210x ttyUSB0: failed set request 0x0 status: -19
```

やむをえず、milk-V DUo のUSBから電源を供給し、USBシリアルはGNDとTXだけつなぐことにしました。


最初からの起動メッセージが無事取得できました。

```
BC.SCS/0/0.WD.URPL.SDI/25000000/6000000.BS/SD.PS.SD/0x0/0x1000/0x1000/0.PE.BS.SD/0x1000/0xba00/0xba00/0.BE.J.
FSBL Jb28g9:gdd82b6819-dirty:2023-12-23T12:29:09+08:00
st_on_reason=d0000
st_off_reason=0
P2S/0x1000/0x3bc0da00.
SD/0xca00/0x1000/0x1000/0.P2E.
DPS/0xda00/0x2000.
SD/0xda00/0x2000/0x2000/0.DPE.
DDR init.
.
.
.
```

# 起動メッセージ

取得した起動メッセージの全文を掲せておきます。
 
```
 BC.SCS/0/0.WD.URPL.SDI/25000000/6000000.BS/SD.PS.SD/0x0/0x1000/0x1000/0.PE.BS.SD/0x1000/0xba00/0xba00/0.BE.J.
FSBL Jb28g9:gdd82b6819-dirty:2023-12-23T12:29:09+08:00
st_on_reason=d0000
st_off_reason=0
P2S/0x1000/0x3bc0da00.
SD/0xca00/0x1000/0x1000/0.P2E.
DPS/0xda00/0x2000.
SD/0xda00/0x2000/0x2000/0.DPE.
DDR init.
ddr_param[0]=0x78075562.
pkg_type=3
D3_1_4
DDR2-512M-QFN68
Data rate=1333.
DDR BIST PASS
PLLS.
PLLE.
C2S/0xfa00/0x83f40000/0x3600.
[2RET.: 0/0x3600/0x3600/0.RSC.
.1M.S/4075x715340]00P/re0 xs8y0s00t0em0 0i0n/i0xt1 dbo0n0e0

RT: [1.481620]CVIRTOS Build Date:Dec 23 2023  (Time :12:29:09) 
RT: [1.487194]Post system init done
RT: [1.490272]create cvi task
RT: [1.492901][cvi_spinlock_init] succeess
RT: [1.496512]prvCmdQuRunTask run
SD/0x13000/0x1b000/0x1b000/0.ME.
L2/0x2e000.
SD/0x2e000/0x200/0x200/0.L2/0x414d3342/0xcafeb2ad/0x80200000/0x1fa00/0x1fa00
COMP/1.
SD/0x2e000/0x1fa00/0x1fa00/0.DCP/0x80200020/0x1000000/0x81500020/0x1fa00/1.
DCP/0x42c05/0.
Loader_2nd loaded.
Use internal 32k
Jump to monitor at 0x80000000.
OPENSBI: next_addr=0x80200020 arg1=0x80080000
OpenSBI v0.9
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |
        |_|

Platform Name             : Cvitek. CV180X ASIC. C906.
Platform Features         : mfdeleg
Platform HART Count       : 1
Platform IPI Device       : clint
Platform Timer Device     : clint
Platform Console Device   : uart8250
Platform HSM Device       : ---
Platform SysReset Device  : ---
Firmware Base             : 0x80000000
Firmware Size             : 132 KB
Runtime SBI Version       : 0.3

Domain0 Name              : root
Domain0 Boot HART         : 0
Domain0 HARTs             : 0*
Domain0 Region00          : 0x0000000074000000-0x000000007400ffff (I)
Domain0 Region01          : 0x0000000080000000-0x000000008003ffff ()
Domain0 Region02          : 0x0000000000000000-0xffffffffffffffff (R,W,X)
Domain0 Next Address      : 0x0000000080200020
Domain0 Next Arg1         : 0x0000000080080000
Domain0 Next Mode         : S-mode
Domain0 SysReset          : yes

Boot HART ID              : 0
Boot HART Domain          : root
Boot HART ISA             : rv64imafdcvsux
Boot HART Features        : scounteren,mcounteren,time
Boot HART PMP Count       : 16
Boot HART PMP Granularity : 4096
Boot HART PMP Address Bits: 38
Boot HART MHPM Count      : 8
Boot HART MHPM Count      : 8
Boot HART MIDELEG         : 0x0000000000000222
Boot HART MEDELEG         : 0x000000000000b109


U-Boot 2021.10 (Dec 23 2023 - 12:29:03 +0800)cvitek_cv180x

DRAM:  63.3 MiB
gd->relocaddr=0x82435000. offset=0x2235000
MMC:   cv-sd@4310000: 0
Loading Environment from <NULL>... OK
In:    serial
Out:   serial
Err:   serial
Net:   
Warning: ethernet@4070000 (eth0) using random MAC address - a6:c6:34:81:38:8b
eth0: ethernet@4070000
Hit any key to stop autoboot:  0 
Boot from SD ...
switch to partitions #0, OK
mmc0 is current device
2886632 bytes read in 130 ms (21.2 MiB/s)
## Loading kernel from FIT Image at 81400000 ...
   Using 'config-cv1800b_milkv_duo_sd' configuration
   Trying 'kernel-1' kernel subimage
   Verifying Hash Integrity ... crc32+ OK
## Loading fdt from FIT Image at 81400000 ...
   Using 'config-cv1800b_milkv_duo_sd' configuration
   Trying 'fdt-cv1800b_milkv_duo_sd' fdt subimage
   Verifying Hash Integrity ... sha256+ OK
   Booting using the fdt blob at 0x816bb980
   Uncompressing Kernel Image
   Decompressing 6437376 bytes used 1053ms
   Loading Device Tree to 0000000081be5000, end 0000000081becd04 ... OK

Starting kernel ...

[    0.000000] Linux version 5.10.4-tag- (root@7c521a5198ef) (riscv64-unknown-linux-musl-gcc (Xuantie-900 linux-5.10.4 musl gcc Toolchain V2.6.1 B-20220906) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 PREEMPT Sat Dec 23 12:29:13 CST 2023
[    0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
[    0.000000] printk: bootconsole [sbi0] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] Ion: Ion memory setup at 0x0000000082473000 size 26 MiB
[    0.000000] OF: reserved mem: initialized node ion, compatible id ion-region
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000080000000-0x0000000083f3ffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x0000000083f3ffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x0000000083f3ffff]
[    0.000000] On node 0 totalpages: 16192
[    0.000000]   DMA32 zone: 222 pages used for memmap
[    0.000000]   DMA32 zone: 0 pages reserved
[    0.000000]   DMA32 zone: 16192 pages, LIFO batch:3
[    0.000000] SBI specification v0.3 detected
[    0.000000] SBI implementation ID=0x1 Version=0x9
[    0.000000] SBI v0.2 TIME extension detected
[    0.000000] SBI v0.2 IPI extension detected
[    0.000000] SBI v0.2 RFENCE extension detected
[    0.000000] riscv: ISA extensions acdfimsuv
[    0.000000] riscv: ELF capabilities acdfimv
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 15970
[    0.000000] Kernel command line: root=/dev/mmcblk0p2 rootwait rw console=ttyS0,115200 earlycon=sbi riscv.fwsz=0x80000 loglevel=9
[    0.000000] Dentry cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.000000] Inode-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.000000] Sorting __ex_table...
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 29040K/64768K available (3882K kernel code, 486K rwdata, 1704K rodata, 152K init, 210K bss, 35728K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU event tracing is enabled.
[    0.000000] 	Trampoline variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] riscv-intc: 64 local interrupts mapped
[    0.000000] plic: interrupt-controller@70000000: mapped 101 interrupts with 1 handlers for 2 contexts.
[    0.000000] random: get_random_bytes called from start_kernel+0x2e0/0x41c with crng_init=0
[    0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]
[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns
[    0.000008] sched_clock: 64 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns
[    0.008425] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=100000)
[    0.019132] pid_max: default: 4096 minimum: 301
[    0.024038] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.031460] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.041066] ASID allocator initialised with 65536 entries
[    0.046777] rcu: Hierarchical SRCU implementation.
[    0.052145] EFI services will not be available.
[    0.057216] devtmpfs: initialized
[    0.065250] early_time_log: do_initcalls: 4720575us
[    0.070869] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.080922] futex hash table entries: 16 (order: -4, 384 bytes, linear)
[    0.087914] pinctrl core: initialized pinctrl subsystem
[    0.093815] NET: Registered protocol family 16
[    0.098851] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[    0.106179] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.115000] thermal_sys: Registered thermal governor 'step_wise'
[    0.130317] OF: /gpio@03020000/gpio-controller@0: could not find phandle
[    0.143544] OF: /gpio@03021000/gpio-controller@1: could not find phandle
[    0.150533] OF: /gpio@03022000/gpio-controller@2: could not find phandle
[    0.157520] OF: /gpio@03023000/gpio-controller@3: could not find phandle
[    0.164505] OF: /gpio@05021000/gpio-controller@4: could not find phandle
[    0.173402] clk reset: nr_reset=64 resource_size=8
[    0.178961] get audio clk=24576000
[    0.182501] cvitek-i2s-subsys 4108000.i2s_subsys: Set clk_sdma_aud0~3 to 24576000
[    0.202220] dw_dmac 4330000.dma: CVITEK DMA Controller, 8 channels, probe done!
[    0.210750] SCSI subsystem initialized
[    0.215046] usbcore: registered new interface driver usbfs
[    0.220794] usbcore: registered new interface driver hub
[    0.226367] usbcore: registered new device driver usb
[    0.234952] Ion: ion_parse_dt_heap_common: id 0 type 2 name carveout align 1000
[    0.242833] Ion: rmem_ion_device_init: heap carveout base 0x0000000082473000 size 0x0000000001acd000 dev (____ptrval____)
[    0.254113] ion_carveout_heap_create, size=0x1acd000
[    0.259439] cvi_get_rtos_ion_size, rtos ion_size get:0x0
[    0.394569] platform carveout: [ion] add heap id 0, type 2, base 0x82473000, size 0x1acd000
[    0.403560] Advanced Linux Sound Architecture Driver Initialized.
[    0.411103] clocksource: Switched to clocksource riscv_clocksource
[    0.419614] NET: Registered protocol family 2
[    0.425283] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.433995] TCP established hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.441790] TCP bind hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.449060] TCP: Hash tables configured (established 512 bind 512)
[    0.455664] UDP hash table entries: 128 (order: 0, 4096 bytes, linear)
[    0.462432] UDP-Lite hash table entries: 128 (order: 0, 4096 bytes, linear)
[    0.469874] NET: Registered protocol family 1
[    0.475002] RPC: Registered named UNIX socket transport module.
[    0.481141] RPC: Registered udp transport module.
[    0.486002] RPC: Registered tcp transport module.
[    0.490924] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.500189] Initialise system trusted keyrings
[    0.505085] workingset: timestamp_bits=62 max_order=13 bucket_order=0
[    0.517912] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.524888] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.532037] Key type asymmetric registered
[    0.536252] Asymmetric key parser 'x509' registered
[    0.547205] cvi_rtos_cmdqu_init
[    0.550621] cvi_rtos_cmdqu_probe start ---
[    0.554821] name=1900000.rtos_cmdqu
[    0.558685] res-reg: start: 0x1900000, end: 0x1900fff, virt-addr(ffffffd005c60000).
[    0.566589] RTOS_CMDQU_INIT
[    0.569499] mbox_reg=(____ptrval____)
[    0.573346] mbox_done_reg=(____ptrval____)
[    0.577646] mailbox_context=(____ptrval____)
[    0.582164] cvi_rtos_cmdqu_probe DONE
[    0.586126] cvi_rtos_cmdqu_init done
[    0.589791] [cvi_spinlock_init] success
[    0.593999] Serial: 8250/16550 driver, 5 ports, IRQ sharing disabled
[    0.602486] printk: console [ttyS0] disabled
[    0.607018] 4140000.serial: ttyS0 at MMIO 0x4140000 (irq = 15, base_baud = 1562500) is a 16550A
[    0.616142] printk: console [ttyS0] enabled
[    0.616142] printk: console [ttyS0] enabled
[    0.624745] printk: bootconsole [sbi0] disabled
[    0.624745] printk: bootconsole [sbi0] disabled
[    0.634994] 41c0000.serial: ttyS4 at MMIO 0x41c0000 (irq = 16, base_baud = 1562500) is a 16550A
[    0.647612] cvi-spif 10000000.cvi-spif: unrecognized JEDEC id bytes: 00 00 00 00 00 00
[    0.655869] cvi-spif 10000000.cvi-spif: device scan failed
[    0.661574] cvi-spif 10000000.cvi-spif: unable to setup flash chip
[    0.674427] libphy: Fixed MDIO Bus: probed
[    0.679350] bm-dwmac 4070000.ethernet: IRQ eth_wake_irq not found
[    0.685712] bm-dwmac 4070000.ethernet: IRQ eth_lpi not found
[    0.691701] bm-dwmac 4070000.ethernet: Hash table entries set to unexpected value 0
[    0.699781] bm-dwmac 4070000.ethernet: no reset control found
[    0.706013] bm-dwmac 4070000.ethernet: User ID: 0x10, Synopsys ID: 0x37
[    0.712935] bm-dwmac 4070000.ethernet: 	DWMAC1000
[    0.717838] bm-dwmac 4070000.ethernet: DMA HW capability register supported
[    0.725064] bm-dwmac 4070000.ethernet: RX Checksum Offload Engine supported
[    0.732290] bm-dwmac 4070000.ethernet: COE Type 2
[    0.737183] bm-dwmac 4070000.ethernet: TX Checksum insertion supported
[    0.743960] bm-dwmac 4070000.ethernet: Normal descriptors
[    0.749571] bm-dwmac 4070000.ethernet: Ring mode enabled
[    0.755112] bm-dwmac 4070000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[    0.762915] bm-dwmac 4070000.ethernet: device MAC address a6:c6:34:81:38:8b
[    0.796793] libphy: stmmac: probed
[    0.801655] bm-dwmac 4070000.ethernet: Cannot get clk_500m_eth!
[    0.808101] bm-dwmac 4070000.ethernet: Cannot get gate_clk_axi4!
[    0.815638] dwc2 4340000.usb: axi clk installed
[    0.820412] dwc2 4340000.usb: apb clk installed
[    0.825140] dwc2 4340000.usb: 125m clk installed
[    0.829953] dwc2 4340000.usb: 33k clk installed
[    0.834675] dwc2 4340000.usb: 12m clk installed
[    0.839490] dwc2 4340000.usb: EPs: 8, dedicated fifos, 3072 entries in SPRAM
[    0.847405] dwc2 4340000.usb: DWC OTG Controller
[    0.852280] dwc2 4340000.usb: new USB bus registered, assigned bus number 1
[    0.859554] dwc2 4340000.usb: irq 37, io mem 0x04340000
[    0.865904] hub 1-0:1.0: USB hub found
[    0.869928] hub 1-0:1.0: 1 port detected
[    0.875366] usbcore: registered new interface driver usb-storage
[    0.882010] i2c /dev entries driver
[    0.887794] sdhci: Secure Digital Host Controller Interface driver
[    0.894234] sdhci: Copyright(c) Pierre Ossman
[    0.898765] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.904906] cvi:sdhci_cvi_probe
[    0.955120] mmc0: SDHCI controller on 4310000.cv-sd [4310000.cv-sd] using ADMA 64-bit
[    0.963289] cvi_proc_init cvi_host 0x(____ptrval____)
[    0.969271] usbcore: registered new interface driver usbhid
[    0.979133] usbhid: USB HID core driver
[    0.984958] cvitek-i2s 4100000.i2s: cvi_i2s_probe
[    0.995392] cvitek-i2s 4120000.i2s: cvi_i2s_probe
[    1.000859] cvitek-i2s 4130000.i2s: cvi_i2s_probe
[    1.006721] cviteka-adc sound_adc: cviteka_adc_probe, dev name=sound_adc
[    1.019168] cviteka-adc sound_adc: cviteka_adc_probe start devm_snd_soc_register_card
[    1.027761] cvitekaadc 300a100.adc: cvitekaadc_probe
[    1.033878] cviteka-dac sound_dac: cviteka_dac_probe, dev name=sound_dac
[    1.041351] cvitekadac 300a000.dac: cvitekadac_probe
[    1.046808] cvitekadac_probe gpio_is_valid mute_pin_l
[    1.053458] NET: Registered protocol family 10
[    1.059987] Segment Routing with IPv6
[    1.064055] NET: Registered protocol family 17
[    1.069006] Loading compiled-in X.509 certificates
[    1.103188] mmc0: new high speed SDHC card at address aaaa
[    1.111864] cviteka-adc sound_adc: cviteka_adc_probe, dev name=sound_adc
[    1.119436] mmcblk0: mmc0:aaaa SC16G 14.8 GiB 
[    1.124118] cviteka-adc sound_adc: cviteka_adc_probe start devm_snd_soc_register_card
[    1.137573]  mmcblk0: p1 p2 p3
[    1.144629] cviteka-dac sound_dac: cviteka_dac_probe, dev name=sound_dac
[    1.157721] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    1.168667] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    1.175786] cfg80211: failed to load regulatory.db
[    1.180976] ALSA device list:
[    1.184508] dw-apb-uart 4140000.serial: forbid DMA for kernel console
[    1.198085] EXT4-fs (mmcblk0p2): warning: maximal mount count reached, running e2fsck is recommended
[    1.226933] EXT4-fs (mmcblk0p2): recovery complete
[    1.231974] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.240436] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.250372] devtmpfs: mounted
[    1.253678] Freeing unused kernel memory: 152K
[    1.258312] Kernel memory protection not selected by kernel config.
[    1.264833] Run /sbin/init as init process
[    1.269115]   with arguments:
[    1.272254]     /sbin/init
[    1.275056]   with environment:
[    1.278336]     HOME=/
[    1.280804]     TERM=linux
[    1.283634] early_time_log: run_init_process: 5938965us
[    1.349080] EXT4-fs (mmcblk0p2): re-mounted. Opts: errors=remount-ro
Starting syslogd: OK
Starting klogd: OK
Running sysctl: [    1.468670] random: fast init done
OK
Initializing random number generator: OK
Saving random seed: [    1.524057] random: dd: uninitialized urandom read (512 bytes read)
OK
Starting network: OK
Starting dhcpcd...
dhcpcd-9.4.0 starting
[    1.656792] random: dhcpcd: uninitialized urandom read (112 bytes read)
DUID 00:01:00:01:c7:92:bc:81:26:1a:03:25:be:8f
dhcp_vendor: Invalid argument
forked to background, child pid 130
Bad system call
[    1.754184] bm-dwmac 4070000.ethernet eth0: PHY [stmmac-0:00] driver [Generic PHY] (irq=POLL)
Starting ntpd: [    1.779175] dwmac1000: Master AXI performs any burst length
[    1.786232] bm-dwmac 4070000.ethernet eth0: No Safety Features support found
[    1.794785] bm-dwmac 4070000.ethernet eth0: IEEE 1588-2002 Timestamp supported
[    1.803673] bm-dwmac 4070000.ethernet eth0: configuring for phy/rmii link mode
OK
Starting dropbear sshd: OK
Starting dnsmasq: [    2.013864] random: dnsmasq: uninitialized urandom read (128 bytes read)
OK
init mpp system...
[    2.049316] cv180x_sys: bad vermagic: kernel tainted.
[    2.054606] Disabling lock debugging due to kernel taint
[    2.060522] cv180x_sys: loading out-of-tree module taints kernel.
[    2.086386] res-reg: start: 0xa0c8000, end: 0xa0c801f, virt-addr(ffffffd0040cd000).
[    2.094831] CVITEK CHIP ID = 22
[    2.111636] cif a0c2000.cif: cam0 clk installed
[    2.116449] cif a0c2000.cif: cam1 clk installed
[    2.121912] cif a0c2000.cif: vip_sys_2 clk installed
[    2.127436] cif a0c2000.cif: clk_mipimpll clk installed (____ptrval____)
[    2.134710] cif a0c2000.cif: clk_disppll clk installed (____ptrval____)
[    2.141983] cif a0c2000.cif: clk_fpll clk installed (____ptrval____)
[    2.148903] cif a0c2000.cif: (0) res-reg: start: 0xa0c2000, end: 0xa0c3fff.
[    2.156400] cif a0c2000.cif:  virt-addr((____ptrval____))
[    2.162281] cif a0c2000.cif: (1) res-reg: start: 0xa0d0000, end: 0xa0d0fff.
[    2.169762] cif a0c2000.cif:  virt-addr((____ptrval____))
[    2.175641] cif a0c2000.cif: (2) res-reg: start: 0xa0c4000, end: 0xa0c5fff.
[    2.183163] cif a0c2000.cif:  virt-addr((____ptrval____))
[    2.189033] cif a0c2000.cif: (3) res-reg: start: 0x3001c30, end: 0x3001c5f.
[    2.196513] cif a0c2000.cif:  virt-addr((____ptrval____))
[    2.202375] cif a0c2000.cif: no pad_ctrl for cif
[    2.207508] cif a0c2000.cif: request irq-27 as cif-irq0
[    2.213278] cif a0c2000.cif: request irq-28 as cif-irq1
[    2.219024] cif a0c2000.cif: rst_pin = 424, pol = 1
[    2.232764] snsr_i2c snsr_i2c: i2c:-------hook 0
[    2.237835] snsr_i2c snsr_i2c: i2c:-------hook 1
[    2.243299] snsr_i2c snsr_i2c: i2c:-------hook 2
[    2.248240] snsr_i2c snsr_i2c: i2c:-------hook 3
[    2.253565] snsr_i2c snsr_i2c: i2c:-------hook 4
[    2.301934] vi_core_probe:203(): res-reg: start: 0xa000000, end: 0xa07ffff, virt-addr(ffffffd004380000).
[    2.311835] vi_core_probe:216(): irq(29) for isp get from platform driver.
[    2.319936] vi_tuning_buf_setup:253(): tuning fe_addr[0]=0x81c9f490, be_addr[0]=0x81c97290, post_addr[0]=0x81c80000
[    2.331221] vi_tuning_buf_setup:253(): tuning fe_addr[1]=0x81c5f490, be_addr[1]=0x81c57290, post_addr[1]=0x81c40000
[    2.342134] vi_tuning_buf_setup:253(): tuning fe_addr[2]=0x81c7f490, be_addr[2]=0x81c77290, post_addr[2]=0x81c60000
[    2.353345] sync_task_init:177(): sync_task_init vi_pipe 0
[    2.359332] sync_task_init:177(): sync_task_init vi_pipe 1
[    2.365278] sync_task_init:177(): sync_task_init vi_pipe 2
[    2.371680] vi_core_probe:252(): isp registered as cvi-vi
[    2.429186] cvi_dwa_probe:487(): done with rc(0).
[    2.459958] cv180x-cooling cv180x_cooling: elems of dev-freqs=6
[    2.466232] cv180x-cooling cv180x_cooling: dev_freqs[0]: 850000000 500000000
[    2.474004] cv180x-cooling cv180x_cooling: dev_freqs[1]: 425000000 375000000
[    2.481661] cv180x-cooling cv180x_cooling: dev_freqs[2]: 425000000 300000000
[    2.489357] cv180x-cooling cv180x_cooling: Cooling device registered: cv180x_cooling
[    2.526662] jpu ctrl reg pa = 0xb030000, va = (____ptrval____), size = 256
[    2.534342] end jpu_init result = 0x0
[    2.650596] cvi_vc_drv_init result = 0x0
[    2.665470] sh (166): drop_caches: 3
Starting app...

[root@milkv-duo]~# 
```

OPENSBI や U-Boot のログもばっちり取れてますね。