Например TDA7294

Форум РадиоКот • Просмотр темы - Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср ноя 26, 2025 02:43:54

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Ср сен 10, 2025 18:09:58 
Родился

Зарегистрирован: Пт дек 24, 2021 21:30:52
Сообщений: 16
Рейтинг сообщения: 0
Приветствую, сообщество коллег!

Есть 3 одинаковые платы(из серводрайвера) - 2 рабочие полностью, в третьей отсутствует мсх памяти NOR, и не стартует, естественно.
Изображение
В 2 рабочих платах стоит параллельная NOR flash - Spansion S29AL016J70TFI02. Дампы с обеих слил с помощью XGecu T48, дампы одинаковые байт в байт.
Купил точно такие же новые Spansion S29AL016J70TFI02, залил дамп, верификация ок. Но ни одна плата не стартует с прошитыми новыми флешками. Любая из трёх плат стартует и работает нормально только с любой из двух флешек, которые установили на заводе.
Это навело на мысль, что в новую флешку прошито не все, что должно быть прошито. Изучив даташиты S29AL016J, ее аналогов и предшественников, понял, что в них есть дополнительный OTP-сектор 256 байт, называется "Hidden ROM", "Secured Silicon Sector" или "hi_rom.otp"(в XGecu). Он однократно программируемый(OTP). Судя по всему, в этот сектор записан загрузчик для DSP-контроллера ADSP-21992, и без него он не стартует. Однако в программаторе XGecu нет функционала для доступа к hi_rom.otp для данной nor-флеш.
Изучая дальше, выяснил, что предшественник NOR S29AL016J это S29GL016A, и для него есть функционал чтения hi_rom.otp в XGecu. Однако вычитывает он везде FF все 256 байт (якобы пустой сектор), и неясно-читает он его или же думает, что читает. Из новой пустой флешки так же читается все байты FF в этом секторе.

То есть, получается, что 2 одинаковые мсх, которые одинаково читаются программатором по всем секторам, в итоге при установке в систему на плату и при общении с ADSP-21992 (и 2 шт Lattice) только одна из них выдает дополнительный массив памяти, к которому не удается получить доступ посредством программатора.
Читая даташиты и описание этого Secured Silicon Sector, до конца непонятна логика его работы. Везде написано, что его можно заблокировать после записи, но блокируется не от чтения, а только от записи, модификации, стирания. А прочитать его якобы можно всегда, только нужна правильная последовательность команд для доступа к нему.

Вопросы...:
-Как получить полный доступ к этой NOR флеш?
...через JTAG и ADSP-21992 должен же быть доступ, ведь этот ADSP как-то читает этот сектор в начале выполнения кода программы.

-Можно ли каким-то скриптом поправить алгоритм работы программатора XGecu, задав ему перед чтением 3 цикловую последовательность команд из даташита (AAA AA, 555 55, AAA 88) для "Enter secured silicon sector". Ведь после этой последовательсти чтение происходит обычным образом (256 байт начиная с адреса 0), судя по даташиту на NOR.

PS. ...заказан официальный JTAG-эмулятор Analog Devices "ADZS-ICE-1000" для работы с ADSP-21992 через JTAG и ПО "VisualDSP", придет через неделю. Буду пробовать прочитать hidden ROM средствами DSP-контроллера.

Изображение Изображение Изображение Изображение
Даташит на NOR:
Вложение:
Spansion_s29al016j70tfi02.pdf [2.09 MiB]
Скачиваний: 22

Доп.описание Secured Silicon Sector от Macronix:
Вложение:
AN0205 - Security Silicon Sector Intro.pdf [314.03 KiB]
Скачиваний: 25

Даташит на предшественника NOR:
Вложение:
S29GL-A_datasheet.pdf [3.5 MiB]
Скачиваний: 29


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Вс сен 14, 2025 16:23:18 
Электрический кот

Карма: 1
Рейтинг сообщений: 214
Зарегистрирован: Сб сен 12, 2009 15:43:19
Сообщений: 1011
Рейтинг сообщения: 0
Можно попытаться выэкспортировать старый алгоритм в виде файла ULI через подменю Select IC_ add ic by user. Потом поковыряться в бинарнике ULI. Вроде на гибхабе в проектах самописного софта для XGecu было описание формата файла ULI и тулза для пересчета КС после модификации. Но был ли расшифрован случай доступа к hi_rom и как оно описано в ULI- без понятия.
Вряд ли там загорузчик находится- скорее проверка серийного номера и чексум. Слишком мало места на загорузчик да и кто даст ADSP команду переключить EPROM на hi_rom режим? Можно попытаься поймать логическим анализатором момент доступа к hi_rom и попытаться похакать основную программу.
ps.Иногда надо все таки читать инструкцию
Код:
Only T56 can support reading and writing OTP data.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Чт сен 18, 2025 18:17:04 
Родился

Зарегистрирован: Пт дек 24, 2021 21:30:52
Сообщений: 16
Рейтинг сообщения: 0
khach, благодарю за участие и помощь!
По поводу Т56 и otp видел изначально в разделе о nand. С учётом того, что на Т48 мануала нет, а есть только на Т56/tl866ii, и T48 новее T56, и новый мануал касаемо т48 сделать не соизволили разработчики, сделал вывод, что в мануале имеется в виду отсутствие поддержки otp у tl866ii, но не у т48. Т48 не упоминается в мануале совсем, хотя мануал из посл.версии офиц.приложения. Плюс наличие otp вкладки у s29gl016a и других микросхем доубедило.
Спасибо за новые направления по решению данной задачи! Завтра-послезавтра придет jtag, начну общаться с dsp... Посмотрим на доступный функционал. Нигде описаний никаких. Только на microsin нашел описание работы с dsp blackfinn и jtag... Хоть что-то.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Пт сен 19, 2025 11:28:24 
Электрический кот

Карма: 1
Рейтинг сообщений: 214
Зарегистрирован: Сб сен 12, 2009 15:43:19
Сообщений: 1011
Рейтинг сообщения: 0
Мне программировать OTP пока не требовалось, а вот посмотреть что там находится - было бы желательно. Вот думаю- можно ли оформить алгоритм считывания OTP вообще как отдельную микросхему с обьемом в 100h байт но с нестандартным алгоритмом считывания? У меня только tl866ii в наличии и пока расширяться до T56 не планирую, тем более что он уже снять с производства и новый T76 небюджетный совсем для такой небольшой задачи.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Вс сен 21, 2025 08:58:34 
Родился

Зарегистрирован: Пт дек 24, 2021 21:30:52
Сообщений: 16
Рейтинг сообщения: 0
khach, нашел человека и 2 его видео, в одном из них как раз про добавление микросхемы в один из программаторов. Во втором о защищённых секторах и снятии защиты. Микросхема отличается одним символом, otp нет, в остальном тоже самое. У него, судя по всему, полный набор программаторов. Написал ему...
https://rutube.ru/video/400e083910b5db2 ... 600e5e3f3/

https://rutube.ru/video/9d1103e69f1fde1 ... 8c113fa75/

Добавлено after 28 minutes 37 seconds:
Можно попытаься поймать логическим анализатором момент доступа к hi_rom и попытаться похакать основную программу.[/code]

Логического анализатора на данный момент нет. Осциллографом не вариант. Если только триггером ловить 88hex (10001000bin) при включении на шине данных. Но это только для определения самого факта обращения к otp.
Изображение
Решил заказать лог.анализатор


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Вс сен 21, 2025 11:04:53 
Электрический кот

Карма: 1
Рейтинг сообщений: 214
Зарегистрирован: Сб сен 12, 2009 15:43:19
Сообщений: 1011
Рейтинг сообщения: 0
Спасибо, инитересно. Но по ссылке программатор RT809H а это несколько другая ценовая категория, особенно если еще и со всеми адаптерами типа BGA...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Вт сен 23, 2025 10:21:38 
Родился

Зарегистрирован: Пт дек 24, 2021 21:30:52
Сообщений: 16
Рейтинг сообщения: 0
Выяснил, что Chipprog48 поддерживает Hi-ROM у s29al016j. Попробуем...
Изображение Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Пт сен 26, 2025 20:51:50 
Родился

Зарегистрирован: Пт дек 24, 2021 21:30:52
Сообщений: 16
Рейтинг сообщения: 0
JTAG пришел, результата не принес. Дело в том, что данный контроллер ADSP-21992 поддерживается только в версии VisualDSP++ 3.5, но эта версия старая, не поддерживает данный эмулятор ADZS-ICE-1000. Новая версия VisualDSP++ 5.1.2 поддерживает эмулятор, но не поддерживает контроллер, и добавить нельзя. И даже если бы старая версия 3.5 поддерживала эмулятор, то в ней нельзя было бы слить дамп, поскольку в утилите Flash Programmer отсутствует функционал чтения, только запись есть. Вот такая засада)

Нашел человека с ChipProg 48, который поддерживает SecSi Hi-Rom, считали, сектор пустой, везде FF. Значит, дело не в этом секторе. Зато теперь ясно, что в XGecu T48 может работать с этим скрытым OTP-сектором флешки s29al016j (и аналогов с id 2249h, которых много) (чтение, однократная запись), нужно выбрать в программе s29al016M90tfi02, будет вкладка hi_rom.otp. Проверили и сравнили с ChipProg 48.
Вывод такой-в скрытом секторе нет ни загрузчика, ни серийного номера, ничего.

Заказал аналоги флешки:
-MX29LV160DBTI-70G
-s29al016D70tfi02 (без secsi)
Буду пробовать записать в них дамп. Может, с ними заработает.

Добавлено after 7 minutes 1 second:
PS Добавлю принцип работы с этим сектором. Изначально в новой флешке этот сектор 256 байт пустой, все байты FF, т.е. все биты равны 1. Если вы прошили в какой-то бит 0, то вернуть его в 1 нельзя, однократно программируемый. Если же вы прошили 1, т.е. по сути ничего не прошили в этот бит(ячейку), оставили его без изменений, то позже вы можете прошить в него 0.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Сб сен 27, 2025 17:32:18 
Родился

Зарегистрирован: Пт дек 24, 2021 21:30:52
Сообщений: 16
Рейтинг сообщения: 0
У меня только tl866ii в наличии.


TL866ii Plus тоже поддерживает этот сектор, посмотрел в демо-режиме. Так что, можете попробовать, выбрав S29AL016M90TFI02(Bottom boot), ...TFI01(Top boot)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Сб сен 27, 2025 18:34:50 
Электрический кот

Карма: 1
Рейтинг сообщений: 214
Зарегистрирован: Сб сен 12, 2009 15:43:19
Сообщений: 1011
Рейтинг сообщения: 0
В демо режиме я это видел, а вот в реале хотел снять протокл обращения хотя бы на чтение к OTP сектору, чтобы по мотивам написать потом свою тулзу на запись ( подменив заголовки команд ) и облом. Возможно это от версии фирмвари зависит.
PS в последней версии проги 13.04 для TL866 этот вариант в демке убрали, только для Т56 открывается закладка Hi-ROM, хотя если выбрать в демке Т56, выбрать микросхему, закрыть демку и конфиг запомнит выбор, а потом открыть демку для TL866 то hi-rom сохранится. Но будет ли это работать с реальным железом- без понятия. Снять бы протокол записи-чтения на Т56 по USB у кого есть возможность.
PS2. Искал инфу по hi-rom тут https://gitlab.com/DavidGriffith/minipro/ но ничего пока не нашел.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Сб сен 27, 2025 23:29:42 
Родился

Зарегистрирован: Пт дек 24, 2021 21:30:52
Сообщений: 16
Рейтинг сообщения: 0
khach, Если в windows 7 это возможно-снять лог протокола обмена-то я могу. На Т48. В Linux никогда не работал, к сожалению.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Вс сен 28, 2025 13:25:12 
Электрический кот

Карма: 1
Рейтинг сообщений: 214
Зарегистрирован: Сб сен 12, 2009 15:43:19
Сообщений: 1011
Рейтинг сообщения: 0
Я уже нашел кое какую инфу в репо minipro. Там все сложно- Т56 грузит профивку FPGA на каждый алгоритм. Для наших S29AL016 вроде алгоритм номер 12 используется
protocol_id="0x12"
Код:
      <ic
          name="S29AL016D70MAI01@SOP44,S29AL016D70MAN01@SOP44,S29AL016D70MFI01@SOP44,S29AL016D70MFN01@SOP44,S29AL016D90MAI01@SOP44,S29AL016D90MAN01@SOP44,S29AL016D90MFI01@SOP44,S29AL016D90MFN01@SOP44"
          type="1"
          protocol_id="0x12"
          variant="0xd618"
          read_buffer_size="0x1000"
          write_buffer_size="0x100"
          code_memory_size="0x200000"
          data_memory_size="0x00"
          data_memory2_size="0x00"
          page_size="0x0000"
          pages_per_block="0x0000"
          chip_id="0x0100c422"
          voltages="0xff08"
          pulse_delay="0x000a"
          flags="0x01002078"
          chip_info="0x0000"
          pin_map="0x90002e55"
          package_details="0x00000002"
          config="NULL"
      />

Расшифровка полей фич тоже в коде есть. Но если это повторять на TL866 то алгоритм фирмвари просто не отработает, т.к там нет реализации чтения- записи OTP сектора. Можно к этому сектору добраться наврено дрыгоножеством (bit-bang) режимом который используется для теста логики ТТЛ. Но через адаптер TSOP48 как это делать и возможно ли это- я примеров не нашел. Интефейс обмена TL866 более-менее описан в файле tl866iiplus.md в корне репо, а остальные фичи можно найти в коде.
Есть еще проект для работы с железом программатора на низком уровне https://gitlab.com/snhenson/mprom дрыгоножеством с записью алгоритма программирования в XML
ps. Есть еще проект https://github.com/JohnDMcMaster/open-tl866 где есть исходники переписанной фирмвари, но имеет ли смысл копать в этом направлении- без понятия.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Пн сен 29, 2025 00:13:57 
Родился

Зарегистрирован: Пт дек 24, 2021 21:30:52
Сообщений: 16
Рейтинг сообщения: 0
khach, но ведь в al016d нет отп сектора(по факту из даташита). В 16j, 16m есть по факту. Но, касаемо программатора xgecu, только в алгоритме s29al016m он функционален, как я писал выше. При выборе s29al016j вкладка hi_rom.otp не появляется.

Добавлено after 14 minutes 17 seconds:
chip_id="0x0100c422"

Это для top boot, судя по id. Адреса secsi для s29al016j(m) будут у верхней границы памяти 1FFF00h–1FFFFFh(x8). Название МСХ заканчивается на 01, r1.
Для bottom boot id будет равен 0x10004922, и адрес secsi начинается с нуля: 000000h–0000FFh(x8). А название микросхемы для bottom boot будет заканчиваться на 02, r2.

Вложение:

Вложение:

Вложение:


Добавлено after 8 minutes 50 seconds:
Кстати, у al016j, m и d одинаковые chip id. Странно. Отличается же микросхема с d отсутствием этого сектора.
Вложение:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Пн сен 29, 2025 23:28:57 
Электрический кот

Карма: 1
Рейтинг сообщений: 214
Зарегистрирован: Сб сен 12, 2009 15:43:19
Сообщений: 1011
Рейтинг сообщения: 0
Я цитировал название протокола с репозитория опенсоурсной линуховой оболочки программатора. Судя по исходникам там вообще поддежка OTP не реализована, что не отменяет того, что фирмварь программатора остается официальной и следовательно OTP поддерживается железом того же T56. Мне пока бы разобраться как работать c микросхемой через TQFP48 адаптер, если уж смотреть в сторону самодельной фирмвари для OTP на базе 866A или 866II.
Потому что я пока не разобрался, можно ли как то выслать набор команд на микросхему флеша для разблокировки доступа к ОТР через стандартный протокол 866II. Например дрыгоножеством, или модифицируя команду стирания сектора иил флеша целиком.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дампинг S29AL016J, Hidden ROM (Secured Silicon Sector)
СообщениеДобавлено: Сб окт 04, 2025 22:30:09 
Родился

Зарегистрирован: Пт дек 24, 2021 21:30:52
Сообщений: 16
Рейтинг сообщения: 0
Проблема решена :))

Дело было вот в чем... Дампы двух рабочих плат отличались на 1 бит. Изначально видел это. Решив, что это было сделано случайно кем-то до меня(копали, паяли, прошивали плату уже многие люди на тот момент), я не придал этому значения, ведь обе платы работали, и раз нет ошибок, то данный бит не влияет на работоспособность-не участвует в программе или используется в каких-то особых условиях, режимах. Поэтому решил использовать первый попавшийся дамп, от первой платы. В первой плате этот дамп работал. А вот в остальных платах, как оказалось, не работает! А вот дамп от второй платы с отличающимся битом позволил третьей плате заработать. В итоге я залил этот дамп во все платы, и все они работают. Плюс, поменял все флешки, причем две из них взял без SecSi сектора: S29AL016D70tfi02 и MX29LV160DBTI. А третью просто новую той же модели(с SecSi-сектором).

Вывод такой. SecSi тут не используется, никакой защиты нет. Проблема решена, но вообще не ясно почему все именно так. Все 3 платы идентичны, в том числе по принту на них, выполняют одну и ту же функцию, только с разной конфигурацией из EEPROM. Где зарыта собака-выяснить, видимо, не удастся.

Сильно зарылся в решение этой задачи, изучил кучу даташитов на другие мсх с SecSi, и даже завел обсуждение с поддержкой Infineon, который правопреемник Spansion, и они даже отвечают и пытаются помочь. Это было интересно-воевать с данной платой, атаковать ее с разных сторон. Еще до момента создания данной темы восстанавливал эту плату по железу, было одно незаметное КЗ между ножками одной из ПЛИСин, нашел прозвонкой, увидеть нереально было. Это уже последствия чьих-то безуспешных попыток ремонта (бездумная пропайка всего и вся).

Спасибо участвующим в обсуждении! :)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y