LINUX.ORG.RU

u-boot не может определить таблицу разделов

 ,


0

1

Добрый день. Может быть у кого-то есть опыт работы с u-boot? У меня возникла проблема на одноплатнике (кастомном): uboot не может определить таблицу разделов на emmc (в то же время загруженный дистрибутив без проблем работает с этой же emmc).

* U-Boot > mmc dev 2
...
CMD_TRACE:
...
CMD_SEND:8
                ARG                      0x000001AA
                RET: -19 , 0xffffffed
                MMC_RSP_R1,5,6,7         0x2FF67610
CMD_SEND:55
                ARG                      0x00000000
                RET: -19 , 0xffffffed
                MMC_RSP_R1,5,6,7         0x2FF67610
...
CMD_SEND:8
                ARG                      0x00000000
                RET: -19 , 0xffffffed
                MMC_RSP_R1,5,6,7         0x00000900
...
===> mmc_bread: buff start=0, cur=1, value=0x2ef575e0
===> mmc_bread: blkcnt=1
===> test_block_type error 1: (buffer[DOS_PART_MAGIC_OFFSET + 0] != 0x55) || (buffer[DOS_PART_MAGIC_OFFSET + 1] != 0xaa)
bad MBR sector signature: 0x9966
===> test_part_dos error: test_block_type(buffer) != DOS_MBR
switch to partitions #0, OK
mmc2(part 0) is current device

Паспорт устройства читается без каких-либо проблем:

* U-Boot > mmc info
Device: FSL_SDHC
Manufacturer ID: 90
OEM: 14a
Name: H8G1e
Tran Speed: 52000000
Rd Block Len: 512
MMC version 5.0
High Capacity: Yes
Capacity: 7.3 GiB
Bus Width: 1-bit
Erase Group Size: 512 KiB
HC WP Group Size: 8 MiB
User Capacity: 7.3 GiB WRREL
Boot Capacity: 4 MiB ENH
RPMB Capacity: 512 KiB ENH

Загруженный дистрибутив нормально определяет память и работает с ней:

# fdisk -l /dev/mmcblk3
Disk /dev/mmcblk3: 7.3 GiB, 7818182656 bytes, 15269888 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3f1bef1e
Device         Boot Start    End Sectors Size Id Type
/dev/mmcblk3p1       2048 133119  131072  64M 83 Linux

Может быть у кого-нибдуь есть идеи, почему такое с uboot может быть? Что за ошибка -19 (не могу нигде найти описание кода ошибки)? Благодарю.


Ответ на: комментарий от CYB3R

не секретная, конечно.

mmc dev 0 и mmc dev 1: https://pastebin.com/SfkZE7qA слоты пустые, поэтому всё верно.

emmc стоит на dev 2. у eMMC есть 4 физических раздела:

  • mmcblk3 - userspace ~7.xGB
  • mmcblk3boot0
  • mmcblk3boot1
  • mmcblk3rpmb

вот попытки открыть 0 и 1 разделы:

v01
() автор топика

Какая версия u-boot и какой процессор ? судя по логу что-то из i.mx

anonymous
()

Дык вроде ему все понравилось. Подампь таблицу разделов (mmc part)?

slapin ★★★★★
()
Ответ на: комментарий от slapin
  • проц imx.6
  • uboot-2015.4, так же я обновлял подсистему disk и drivers/mmc до версии uboot-2015.10 (последняя в ветке 2015 от freescale)
  • mmc part выдаёт Unknown partition table, собссно в этом и весь вопрос
  • по логам видны ошибки -19 на команды 8 и 55, найти что это значит пока что не могу, чтобы понять что ж ему не нравится
  • по логам так же видно, что он в итоге не может определить, что таблица разделов в памяти DOS, так что работает он совсем не как положено
  • в то же время если загрузиться с внешнего накопителя и прочитать emmc через fdisk - он видит и таблицу разделов DOS, и все разделы, и вообще всё прекрано.
  • что такое с u-boot товрится - для меня пока что загадка :-( инетересно, что же за код ошибки -19 во время инициализации и что за странное значение 0x2ef575e0 читаемого сектора (изза чего uboot не может определить тип таблицы)
v01
() автор топика
Ответ на: комментарий от v01

uboot-2015.10

убут древний, не пробовал свежие версии ? там дофига ошибок исправлено в плане emmc, я даже не уверен что он знает про

MMC version 5.0

хотя они и обратно совместимы - в линуксе например этот идиотский баг совсем недавно исправили

Bus Width: 1-bit

почему она в однобитном режиме ?

anonymous
()
Ответ на: комментарий от v01

А если сдампить первый сектор из u-boot и под Linux, есть разница?

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

убут древний, не пробовал свежие версии ? там дофига ошибок исправлено в плане emmc, я даже не уверен что он знает про

это да, но к сожалению не могу новее

хотя они и обратно совместимы - в линуксе например этот идиотский баг совсем недавно исправили

в этой версии uboot патчи уже поправлено

почему она в однобитном режиме ?

потому что подключена была по 1 биту, но даже так не работала сейчас подключены 4 биты - разницы никакой

А если сдампить первый сектор из u-boot и под Linux, есть разница?

пробовал через mmc read, вроде бы читает, но какую-то хрень может быть я не так делаю.

как правильно сдампить первый сектор?

v01
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.