LINUX.ORG.RU

U-boot на RK3318, mmc_load_image_raw_sector: mmc block read error

 ,


0

1

Здравия! Собираю бутлоадер на чип RK3318 на тв-боксе. Инструкция эта: https://u-boot.readthedocs.io/en/latest/board/rockchip/rockchip.html Получаю ошибку:

U-Boot TPL 2022.07-rc6-00006-g2d2c61ff04 (Jul 23 2022 - 00:45:42)
DDR3, 333MHz
BW=32 Col=11 Bk=8 CS0 Row=16 CS=1 Die BW=16 Size=4096MB
Trying to boot from BOOTROM
Returning to boot ROM...

U-Boot SPL 2022.07-rc6-00006-g2d2c61ff04 (Jul 23 2022 - 00:45:42 +0300)
Trying to boot from MMC2
mmc_load_image_raw_sector: mmc block read error
Trying to boot from MMC1
mmc_load_image_raw_sector: mmc block read error
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###
Знающие, подскажите, что надо делать и как правильно.

★★★★★

Ля, ну ты хоть пиши какие команды вводил, с чего грузишься и т.п.

Если грузишься с sdcard попробуй поменять в arch/arm/dts/rk3328-u-boot.dtsi:

< u-boot,spl-boot-order = &emmc, &sdmmc;
> u-boot,spl-boot-order = &sdmmc, &emmc;

Похоже на какой-то глюк, после пробы eMMC не может загрузиться с SD.
Мне помогло.

P.S. 2022.07 уже релизнулся. И документация в нем нормальная (см. doc/)

arson ★★★★★
()
Последнее исправление: arson (всего исправлений: 1)
Ответ на: комментарий от arson
uboot:#reset
resetting ...
System reset not supported on this platform
### ERROR ### Please RESET the board ###

А это как вылечить не знаешь?

uboot:#usb start
starting USB...
Bus usb@ff5c0000: ehci_generic usb@ff5c0000: Failed to get clocks (ret=-19)
Port not available.
Bus usb@ff5d0000: USB OHCI 1.0
Bus usb@ff580000: USB DWC2
scanning bus usb@ff5d0000 for devices... 1 USB Device(s) found
scanning bus usb@ff580000 for devices... 

И это, со вставленной флешкой виснет.

burato ★★★★★
() автор топика
Последнее исправление: burato (всего исправлений: 1)
Ответ на: комментарий от burato

System reset not supported on this platform

Скорее всего связано с кривой dts. Где взял dts для своего tb-box-а?
Я для своего так и не доделал, хотя надо бы. Даже в linux usb устройства не видит, хотя саму шину видит.
В uboot-е usb я вообще отключаю, нафиг не нужен, только тормозит.

P.S. на rock-pi-e (rk3328) и с reset-ом, и с usb все нормально. Так что платформа в принципе ‘supported’.
P.P.S. dts нужна и для spl (обрезанная, см. выше, т.к. uboot загрузил то значит сойдет существующая), и для uboot-а, и для linux-а.

arson ★★★★★
()
Ответ на: комментарий от burato

Нигде не брал, убут сам)

Ну defconfig какой?! evb-rk3328_defconfig ? Это плата разработчика.

Кстати, на rock-pi-e есть pmic (чип управления питанием), может reset на него завязан (чисто предположение).

arson ★★★★★
()
Ответ на: комментарий от arson

Используй правильные команды из правильной документации.

Для моего варианта нет документации. Чип у меня rk3318, на него вобще ничего нет).

TV-box у тебя какой?

H96max

burato ★★★★★
() автор топика
Ответ на: комментарий от burato

rk3318

Тот же RK3328 с каким-то фиксом (не помню где читал)

H96max

Сеть 100Mb… Разбери, посмотри на микросхемы. Подозреваю, что pmic там тоже нет (как и на моем T9 / RK3318).
Подозреваю, что из-за использования dts для платы с pmic, система считает что в системе авария по питанию: ни reset-а, ни usb.
Android прошивка осталась? Раздербань, вытащи dtb/dts, адаптируй.

arson ★★★★★
()
Ответ на: комментарий от arson

Android прошивка осталась?

Это не проблема, её в инете как ховна за баней.

Раздербань, вытащи dtb/dts, адаптируй

Пока не очень умею. Считаю, что dtb для ядра и для убута вещи разные, как ядро андроид и линукс.

burato ★★★★★
() автор топика
Ответ на: комментарий от arson

Подозреваю, что из-за использования dts для платы с pmic, система считает что в системе авария по питанию

А в ветке убута что, нет ни одной платы без pmic-а?

burato ★★★★★
() автор топика
Ответ на: комментарий от burato

Считаю, что dtb для ядра и для убута вещи разные

Ну сравни!
Например u-boot-2022.07/arch/arm/dts/rk3328-rock-pi-e.dts с linux-5.18.11/arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts ;)

Это версии для SPL обрезанные (в названии u-boot).

arson ★★★★★
()
Ответ на: комментарий от arson

Ну сравни!

Если сравнивать rk3328.dtsi, то небольшие отличия в названиях есть.

А в ветке убута что, нет ни одной платы без pmic-а?

Не вижу.

arson ★★★★★
()
Последнее исправление: arson (всего исправлений: 1)
Ответ на: комментарий от arson

Всё, резет победил. Что делал?

Взял из сорсов ядра arch/arm64/boot/dts/rockchip/rk3318-a95x-z2.dts в сорсы убута u-boot/arch/arm/dts/rk3328-evb.dts. Но оно стало ругаться на рекурсию, взял ещё из сорсов ядра линукса /usr/src/linux-5.14.0-gentoo/arch/arm64/boot/dts/rockchip/rk3328.dtsi в uboot/arch/arm/dts/rk3328.dtsi. Но оно стало ругаться на отсутствующую позицию

arch/arm/dts/rk3328-evb.dtb: ERROR (phandle_references): /ethernet@ff540000: Reference to non-existent node or label "
vcc_phy"
, потому взял из rk3328-evb.dts эту функцию, прописал её в заменённом первом файле. Всё собралось и заработало.

USB так и не заработало, делает старт, виснет, висит и ребутается.

burato ★★★★★
() автор топика
Последнее исправление: burato (всего исправлений: 1)
Ответ на: комментарий от arson

У меня ядро с этим dtb работает и видео есть, но мне видео не нужно. Всё, кроме вайфая есть, вайфай особо не нужен, но может попробую сделать. Это очень трудно, так как не известно, поддерживает ли его ядро.

burato ★★★★★
() автор топика