Здесь сначала просто лирика. Изложение по сути начинается с изображения.
Никогда подобным не занимался, но тут назрела необходимость. Помимо всех операций, что можно сделать только при помощи софта, а так же Glitch платы, которая, по сути, стоит дешево и является расходным материалом, есть еще две не самые тривиальные задачи:
— считывание и запись прошивки NAND самого Xbox 360
— запись прошивки CPLD.
Для этого можно использовать и стандартный LPT порт компьютера, но это медленно, не надежно, не красиво, да и просто не современно. Я начал пересматривать свои запасы различной электроники в поисках того, что бы использовать для этой задачи. Нужно было найти что-то, на чем можно было бы создать устройство, которое подключалось бы к компьютеру по USB, выполняло необходимы задачи, стоило достаточно дешево и было у в моих запасах.
Конечно самое известное, что кидается в глаза из разряда DIY — это PICFlash, но микроконтроллеров PIC у меня нет, стоят они достаточно дорого, да и дела я с ними никогда не имел.
Я даже думал начать сам писать программу для STM32, но нюансов очень много, да и лень. Хотелось уже готовое решение.
У меня было несколько различных микроконтроллеров AVR, я стал искать решение на них.
Первое, что попалось мне на глаза, был порт PICFlash под AVR микроконтроллеры серии at90usb. У порта есть только github https://github.com/G33KatWork/XBox-360-AVR-flasher. Я с ним долго бился. Писался он под плату USBKEY и контроллер at90usb1287. По идеи, должен работать с nandpro, но с какой версией непонятно. Так же находил на немецких форумах доправленную версию для nandpro 3.0. Все пересобирал, пробовал, но все равно nandpro не видит программатора. Грустно. Пока отложил эту затею, позже еще раз буду пробовать, но уже Windows XP.
Дальнейшие поиски привели меня на какой-то немецкий форум, который, в свою очередь, привел меня на сайт blackcatusbjtag.com и на форум blackcatusb.net. Данное устройство основано на имеющемся у меня контроллере at90usb162 и может как работать с NAND, так и с CPLD. Добрые люди уже даже написали специальный скрипт, позволяющий записывать Xell а так же работать с Jasper. А прошивка микроконтроллера оказалась включена в поставку ПО.
Все, что мне оставалось сделать — развести свою платочку и… узнать как разведен разъем на blackcatusb, не имея последнего на руках.
Разводка по типовой схеме. Питается микросхема от встроенного стабилизатора на 3.3В (требуется для USB). Выведена перемычка для вывода HWB. Ни reset, ни какие либо индикаторы за ненадобностью я не выводил.
Плата имеет два режима работы:
— режим USB DFU — позволяет прошить микроконтроллер без какого либо дополнительного оборудования;
— нормальный режим — выполняется программа, прошитая в микроконтроллер, функционал зависит от прошивки.
Как ввести микроконтроллер в режим DFU:
1. Замкнуть перемычку DFU
2. Подключить устройство к порту USB
В нормальном режиме устройство запускается если перемычка DFU разомкнута.
Для начала нам нужно скачать родное приложение Atmel FLIP по ссылке ниже. Устанавливаете приложение, замыкаете перемычку, подключаете устройство, при поиске драйверов указывайте папку C:\Program Files\Atmel\Flip 3.4.2\usb.
Я не знаю, чем отличается FlashCatUSB от BlackCatUSB, но у меня прошивается прошивка только первого. Архив с ПО можно скачать ниже.
Распаковываем архив, в папке Software/Firmware лежат нужные нам прошивки. А именно:
— FCUSB.1.07.NAND.hex — для прошвки NAND (тысячи разных по SPI, в том числе и Xbox 360)
— FCUSB.7.05.EJTAG_16K.hex — для прошивки CPLD (а именно XC2C64A, который повсеместно используется в Xbox 360)
Запускаем приложение FLIP, выбираем интересующую прошивку, прошиваем в контроллер. Все! Отключаем устройство от компьютера, убираем перемычку.
Теперь подключаем устройство к плате с CPLD или к материнской плате Xbox 360 в соответствии с диаграммой, запускаем FlashCatUSB.exe. Для прошивки Jasper и заливки Xell потребуется в папку Scripts записать соответствующий скрипт.
Работа с NAND
1. Микроконтроллер нужно прошить FCUSB.1.07.NAND.hex через FLIP или через FlashCatUSB (если не в первый раз).
2. После прошивки необходимо припаять плату к Xbox 360. Расположение контактов платы приводилось на изображении немного выше.
KSK — не обязательно. GND берется с большого полигона.
3. Подается питание на Xbox, подключается плата к компьютеру. Драйвера устанавливаются из папки FlashCatUSB.
4. Запускаем FlashCatUSB. Программа определяет тип флеш-памяти и читает ее. Теперь можно считать и записать полный дамп кнопками Read/Write.
Я делал три дампа. Скорость считывания 80 Кбайт/сек, полный дам делается за 205 секунд, это меньше 4 минут. Все три дампа совпали, ни одной ошибки.
5. Для работы с Jasper и записи ecc (Xell, Xellous) потребуется специальный скрипт.
При определении NAND Xbox 360 появится специальная вкладка (XBOX-NAND). В ней Вы найдете кнопки для чтения/записи 64Мб для Jasper, а так же кнопку для записи XeLL.
Прошивка CPLD Xilinx XC2C64A (а возможно и других CPLD Xilinx серии Coolrunner-II)
1. В микроконтроллер прошивается FCUSB.7.05.EJTAG_16K.hex
2. К плате припаивается провода, у CPLD либо припаиваются провода, либо подключаются разъемы. Расположение контактов на плате указаны на первом изображении. Расположение контактов на вашей плате с CPLD смотрите сами.
Землю взял с полигона, 3,3 Вольта с конденсатора, напрямую паять не стал, использовал маленькую перемычку до макетного поля. На макетном поле так же можно установить полноценный стабилизатор и больше не мучить микроконтроллер.
3. Запускаем FlashCatUSB. На последней вкладке будет всего одна кнопка. Она позволяет «воспроизвести» xvfs «дергая» выводами, тем самым прошивая ПЛИС.
Я пробовал две платы:
— Китайская подделка Team Xecuter Сoolrunner Rev. D
— Похожая на оригинал Team Xecuter Сoolrunner Rev. B
Обе сходу прошились и работают без проблем.
Ну а что касается прошивки новых Xbox 360 Corona v2 4gb
Собрать Xell, считать 4gb nand, собрать freeboot dash всегда поможет J-Runner.
Успехов!
UPD Для тех, что захочет создать вой NANDpro — снял лог. анализатором saleae logic процесс инициализации контроллера. К программатору ничего не было подключено. На MISO не смотреть, там мусор (наводки).
у контроллера расстояние между ног какое? на макетке смогу сделать?
0.3мм. На макетке — можно)
схему можно?
Сразу рисовалась разводка на основе вот этой схемы
https://www.olimex.com/Products/AVR/Proto/AVR-USB-162/resources/AVR-USB-162-sch.gif
Одно отличие — все питается от плюса UCAP.
ну а готовой разводки нет?
Китайский клон шил какой прошивкой? Добавлял ли на него перемычки какие либо или убирал???? Проблема с запуском именно у этих клонов на короне 4гб так и не смог запустить, если можно выложи распайку и укладку проводов. Интересует именно китаец рев д
В этой теме есть все. Осталось только осилить:
http://www.hackfaq.net/community/index.php?threads/2288/