LINUX.ORG.RU

Сообщения kriptonus

 

Зависание RK3568 U-boot на Starting kernel...

 , , ,

Добрый день. Пытаюсь сделать сборку под Inmys SOM на RK3568, чтобы ьыла возможность грузиться с разных разделов, через extlinux.conf. Сами разделы созданы, файлы разложены. Проблема даже не в этом. Не удается загрузить ОС даже просто расположив образ ядра и dtb в памяти, зависает на Starting kernel… Подскажите, как можно попытаться отладить этот момент? Ядро версия 6.6

Лог загрузки:

U-Boot 2024.01 (Apr 16 2026 - 10:17:51 +0300)

Model: NMS-SM-EVM with NMS-SM-RK3568
DRAM:  4 GiB (effective 3.7 GiB)
PMIC:  RK8090 (on=0x40, off=0x00)
Core:  314 devices, 30 uclasses, devicetree: separate
MMC:   mmc@fe2b0000: 1, mmc@fe310000: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial@fe660000
Out:   serial@fe660000
Err:   serial@fe660000
Model: NMS-SM-EVM with NMS-SM-RK3568
Net:   eth1: ethernet@fe010000, eth0: ethernet@fe2a0000
Hit any key to stop autoboot:  0 
=> ext4load mmc 0:1 $fdt_addr_r /rk3568-inmys-smarc-evm.dtb
60359 bytes read in 12 ms (4.8 MiB/s)
=> ext4load mmc 0:1 $kernel_addr_r /Image                  
30867968 bytes read in 677 ms (43.5 MiB/s)
=> printenv bootargs
## Error: "bootargs" not defined
=> setenv bootargs earlycon=uart8250,mmio32,0xfe660000,115200n8 console=ttyFIQ0 root=/dev/mmcblk0p2 rw rootwait debug        
=> booti $kernel_addr_r - $fdt_addr_r
Moving Image from 0x2080000 to 0x2200000, end=4010000
## Flattened Device Tree blob at 0a100000
   Booting using the fdt blob at 0xa100000
Working FDT set to a100000
   Loading Device Tree to 00000000eceb8000, end 00000000ecec9bc6 ... OK
Working FDT set to eceb8000

Starting kernel ...

kriptonus
()

Периодическая перезагрузка Rockchip RK3568

 , , , ,

Добрый день. Собрано ядро и минимальная rootfs с busybox (через buildroot) для SOM Rockchip RK3568. Загружается, но существует периодическая перезагрузка. В логах uboot причиной перезагрузки стоит

boot reason : watchdog boot

На борту SOM существует два watchdog’а, в дереве устройств описаны. Собственно, вопрос: как обычно реализован сброс watchdog’а в Linux? Это ядро делае, или что-то из busybox (в моем случае) или какой-то внешний сервис?

kriptonus
()

Загрузка RK3568 из памяти

 , , ,

Добрый день. Пытаюсь на существующей железяке, построенной на RK3568, запустить ядро, дерево устройств и корневую ФС из памяти (чтобы не тереть и не сносить существующую систему на SPI NOR флеш). Собрал при помощи buildroot новую rootfs, новое ядро. Дерево устройств взял от старой системы (вытянул бинарник из FIT). Пытаюсь загрузиться, но возникает ошибка:

=> bootm $kernel_addr $rootfs_addr $fdt_addr_r

No misc partition

## Booting kernel from Legacy Image at 002a0000 ...

   Image Name:   

   Image Type:   AArch64 Linux Kernel Image (uncompressed)

   Data Size:    10218103 Bytes = 9.7 MiB

   Load Address: 002a0000

   Entry Point:  002a0000

   Verifying Checksum ... OK

## Loading init Ramdisk from Legacy Image at 00ca0000 ...

   Image Name:   

   Image Type:   AArch64 Linux RAMDisk Image (uncompressed)

   Data Size:    14050216 Bytes = 13.4 MiB

   Load Address: 00000000

   Entry Point:  00000000

   Verifying Checksum ... OK

ERROR: Did not find a cmdline Flattened Device Tree

Could not find a valid device tree

Я загрузил файлы по указанным адресам по tftp. Вывод printenv

=> printenv

arch=arm

autoload=no

baudrate=115200

bootaddr=0x04080000

bootargs=console=ttyFIQ0,115200n8 storagemedia=mtd earlycon=uart8250,mmio32,0xfe660000 root=/dev/mtdblock4 rootfstype=squashfs

bootcmd=run spi_bootcmd 

bootdelay=3

console=ttyFIQ0

cpu=armv8

devnum=2

devtype=mtd

eth1addr=92:6f:83:fe:c2:a3

ethact=ethernet@fe010000

ethaddr=00:00:01:00:00:01

ethprime=eth1

fdt_addr_r=0x08300000

fdtcontroladdr=0x3b9e5d80

fileaddr=0xca0000

filesize=0xd663e8

gatewayip=10.5.5.1

ipaddr=10.5.5.30

kernel_addr=0x002a0000

kernel_addr_r=0x00280000

kernel_name="kernel"

kernel_size=0x00a00000

loadaddr=0x00c00800

netmask=255.255.255.0

rkloader_addr=0x00000000

rkloader_name="rkloader"

rootfs_addr=0x00ca0000

rootfs_name="rootfs"

serverip=10.5.5.1

soc=rockchip

spi_bootcmd=echo Trying load from spi..;sf probe && sf read $bootaddr $kernel_addr $kernel_size; bootm $bootaddr"

tftpkernel=tftp $loadaddr $serverip:$kernel_name

tftploader=tftp $loadaddr $serverip:$rkloader_name

tftprootfs=tftp $loadaddr $serverip:$rootfs_name

tftpuboot=tftp $loadaddr $serverip:$uboot_name

uboot_addr=0x00080000

uboot_name="uboot"

uboot_version="U-Boot " "2017.09-svn489" " (" "Jun 02 2023" " - " "17:38:35" " " "+0800" ")" "uboot_20230602.173820"

upkernel=run tftpkernel;sf probe;sf erase $kernel_addr +$filesize;sf write $fileaddr $kernel_addr $filesize

uploader=run tftploader;sf probe;sf erase $rkloader_addr +$filesize;sf write $fileaddr $rkloader_addr $filesize

uprootfs=run tftprootfs;sf probe;sf erase $rootfs_addr +$filesize;sf write $fileaddr $rootfs_addr $filesize

upuboot=run tftpuboot;sf probe;sf erase $uboot_addr +$filesize;sf write $fileaddr $uboot_addr $filesize

vendor=rockchip

ver=U-Boot 2017.09-svn489 (Jun 02 2023 - 17:38:35 +0800)uboot_20230602.173820

version="uboot_20230602.173820"

Я не сосвем понимаю, как происходит загрузка в существующей системе. вроде бы, bootm должны передаваться три адреса: ядро, rootfs и dtb. Но в команде spi_bootcmd чтение из флеш только образа ядра.

kriptonus
()

RSS подписка на новые темы