Приколы с амлогиками

  • Автор темы Автор темы monobogdan
  • Дата начала Дата начала

monobogdan

Гость
Есть хардбрик консоль jxd s601 на aml m3, через сд карту нет результата. Нужно ли замыкая нанд нажимать какие то еще кнопки? Пока у пк реакции нет... навряд ли проц труп, т.к. вроде включается, но загрузки нет, как и подсветки (значит упороли у-бут каким то макаром), алсо проц греется но не калится.

Так, все, увидел. Только вот burntool пишет write data to ram failed, чет бред :(
Прошивка есть только для рекавери(без usb_spl.bin), usb_spl в пределах девайса работает или в пределах чипсета?

Эффект один имеем: при попытке с сд карты загрузится с закороченными пинами на нанде получаем едва горящий светодиод, при попытке берном получаем write data to ram failed на этапе usb_spl. Мое подозрение что usb_spl скорее всего не подходит, и bootorm возвращает ошибку. Какие еще варианты есть?

К uart'у нечем подпаятся, ардуинкой чет не рискую.

Память микроновская, 29f32g08cbaca

Никак не дает покоя площадка под распайки колодки, это же вылитый uart, не? С обратной стороны есть еще группа из 4х контактов, но вероятно это usb, т.к на этой плате wifi реализован припаянныи usb донглом.

Алсо где-то читал что проц по разному реагирует на замыкание разных IO ножек нанда, т.е 5-6 это режим прошивки с кабеля, а 30-31 это режим прошивки с сд. Есть какие то идеи?

Upd: aml_autoscript не отрабатывает почему-то тоже

Nxtzzvg.png


Пошел спать, голова болела, девайс так и лежал влкюченным - проц горячий(градусов 60), значит кварц отрабатывает и проц рабоатет на макс частотах. Память тоже теплая, знач проц живой. Нанд чуть чуть греется. Короче 100% бутрум выполняется и при замыкании дата линий на нанде он пытается искать что то на сд/становится worldcup device, а значит проблема не хардварная. Так же отметаем нерабочий дисплей - проц горячий а значит не во сне, загружался бы дроид - уходил бы в сон.

Нанд подкинуть нет :(
Если я правильно понял, регистр выдачи ID нанда тоже не читается если сама флешка сдохла.
 
Последнее редактирование модератором:
Нашел UART, подцепил через uart to usb esp32 напрямую:
wait pll02target is0320 now it is0x0000031f
wait pll04target is0320 now it is0x00000320

0x000000c8
00=0x00000000
01=0x00000000
02=0x00000320
03=0x00000180
04=0x00000320
05=0x00000000
06=0x00000000
07=0x000000c8
08=0x00000000
09=0x00000000
0a=0x00000000
0b=0x00000000
0c=0x00000000
0d=0x00000000
0e=0x00000000
0f=0x00000000
10=0x00000000
11=0x00000000
12=0x00000000
13=0x00000000
14=0x00000018
15=0x00000000
16=0x00000000
17=0x00000000
18=0x00000000
19=0x00000000
1a=0x00000000
1b=0x00000000
1c=0x00000000
1d=0x00000000
1e=0x00000180
1f=0x00000320
20=0x00000000
21=0x00000000
22=0x00000000
23=0x00000000
24=0x00000000
25=0x00000000
26=0x00000000
27=0x00000000
28=0x00000000
29=0x00000000
2a=0x004x00029f1e

wait pll03target is0210 now it is0x00000211
wait pll1etarget is0210 now it is0x00000210

ddr3 : 00000210 MHz
Jun 4 201212:21:53
lane00 Success07
lane01 Fail

Training result:
RSLR0=00000001
RDGR0=00000003
DLLCR0=00000000
DLLCR1=00000000
DLLCR2=00000000
DLLCR3=00000000
DQTR0=ffffffff
DQTR1=ffffffff
DQTR2=ffffffff
DQTR3=ffffffff
DQSTR=000006db
DQSNTR=000006db

Stage 00 Result 00000000
Stage 01 Result 000000010x00000000
0x000000c8
Systemp Started
enable LED
pages_in_block=0x00aaaaaa
ucl decompress
0x8f800000
decompress false
rc=0x00000001
0x000000ac
0x00015fe2
0x00000000
sdio init
0x00000000
sdio read
ucl decompress
decompress finished
0x00000001
Enter Debugrom mode at /home/samty/work/amlogic_m3/p4300-jxd/uboot/arch/arm/cpu/aml_meson/m3/firmware/relocate_init.c:0x0000003a
r c1107d54
OK:Read c1107d54=000003be

и дальше реакции ноль, видно что со флешки что то читает, но про нанд ни слова. И про lane1 смущает - чип памяти подох чтоль? Или как там организован контроллер памяти?

0x8f800000 - адрес юбута в ОЗУ без релокаций, как есть(можно посмотреть в маппинге для burntool), decompress false говорит о том что либо шаловливые ручки ушатали бут, либо нанд полетела.

Upd: бутрум вообще ничего не пишет если замкнуть ножки нанда. Чудеса да и только.
Upd2: Ан нет, все таки enter debugrom это следствие ошибки загрузки с сдхи. Я искал исходники бутрума но не нашел, но смею предположить что 0x01 эт что то типа bad crc или bad header, а знач на эту ревизию какой то другой бут нужен
 
Последнее редактирование модератором:
Кароч я смотрю тут наблюдают за этой эпопеей. По итогу загрузка с сд не отрабатывает по причине дохлой нанд - 8f800000 это похоже именно NAND, а попытки писать/читать туда возвращает один и тот же результат даже после записи(а значит флешка подохла). Если более просто:
Первичный загрузчик находит загрузчик на сд карте и распаковывает его в 8f800000
8f800000 - это область nand, но так как nand померла в районе загрузчика то там остаются те же самые данные, и при проверке чексуммы первичный первичный загрузчик фейлится(т.к данные остались те же, никакого бута там нет).
По итогу получаем кирпич который невозможно восстановить софтовыми средствами.

На этом софтовый реверс заканчивается и начинается хардварный ремонт, господа мастера, подскажите можно ли подкидывать NAND другого производителя? Корпус tsop48, сейчас стоит микрон, но не факт что в донорах будет тоже микрон. Погуглил, вроде распиновка у всех tsop48 нанд одинаковая, был у кого опыт перепайки? Спасибо!
 
Короче дело не в нанде было)
Смотрим внимательно:
> lane01 Fail

Я сначала подумал что мб это из за особенностей контроллера памяти - возможно он считает одну банку частью одной "плашки" ОЗУ, на самом деле отвалом страдал один из чипов памяти, прогрев оживил приставку без проблем. Довод выше неверный - исходники бута все таки есть, там используется компрессия ucl - это inplace алгоритм компрессии(для распаковки не нужно выделять ОЗУ), поэтому в нанде он никак не может быть, да и сам нанд не в одном адресном пространстве с ОЗУ.

У меня оборудования для перекатки пока нет(занимаюсь ремонтами для себя и постольку-поскольку) поэтому проблему решу тонкими медными пластинами на проц и память + высверлю отверстия в корпусе.

Алгоритм лечения

Я надеюсь кому-то эта инфа пригодится! Сам удохал на эту консоль 4 дня, инфу почти всю собирал чтением исходников бута :)
https://github.com/Pivosgroup/build.../arch/arc/cpu/aml_meson/a3/firmware/romboot.c если кому интересно.
 
А у меня для вас новая информация: поднимал приставку из своего детства, на 8726-m3, но принципы схожи для всех чипсетов amlogic, в т.ч для тв боксов s905. У меня был запорот загрузчик, а консоль совсем нонейм - на нее НИЧЕГО нет, совсем. Поэтому я нашел исходники u-boot, взял под основу референсную плату, пропатчил конфиги, на поддержку "больших" , NAND - заработал юбут(хотя он все еще не видит spi флеши). После селф апдейта обнаружил неприятную особенность - в юбуте, первые 32кб - это первичный загрузчик(который иницализирует память), а т.к тайминги ОЗУ я не трогал и компилировал со стандартными - он затер первичный бут, и память перестала иницализироваться. Открыв даташит на память(h5tq2g83efr), попытался настроить EMI под них - но все равно он почему-то фейлился. Поэтому я взял от схожей приставки первичный загрузчик и hex редактором подменил в своем юбуте его - консолька завелась до этапа юбута. Уже можно было загрузить ядро через uart консоль, однако у него были неправильные цвета(надо патчить ядро, там в драйвере дисплея хранятся временные отрезки стробов и пиксельформат). Я хотел изначально переделать загрузку на сд карту(поскольку ядро на старых чипсетах - это просто сжатый zImage, а не целый раздел с рамдиском, как на мтк например), поскольку во внутрянке нет ничего совсем.
 
Вот вам FAQ по amlogic:
1. Консоль ВСЕГДА, даже с ушатанным загрузчиком может загрузится с SD карты, для этого замыкать ножки на нанд не нужно!
2. Если консоль валится на lane fail, то варианта два - либо вы прошили не тот бут, либо у вас отвал чипсета.
3. Для переделки загрузки на флеху, надо писать кастомный aml_autoscript, а "компилировать" его - специальной утилитой mkimage из u-boot.
4. uImage_recovery - полноценный раздел, на манер рекавери из других смартфонов/планшетов. А вот uImage(ядро основной системы) - просто zImage, и чтобы манипулировать его загрузкой, нужно редактировать aml_autoscript.
 
Назад
Верх Низ