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

  • Автор темы Автор темы monobogdan
  • Дата начала Дата начала
Добро пожаловать! Вас пригласил rapsody89 присоединиться к нашему сообществу. Пожалуйста, нажмите сюда зарегистрироваться.

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.
 
Назад
Верх Низ