Объявление

Свернуть
Пока нет объявлений.

Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

Свернуть
Это закреплённая тема.
X
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

    Дело было так:
    После приобретения ресивера решил сразу обновить прошивку.
    После прошивки в 0.9.4931 (в настройках увидел два новых пункта - выключение вентилятора и аппаратное ускорение, я попробывал аппаратное ускорение - и ресивер завис, минут 5 ждал, а потом сделал ему рестарт и как результат BOOTING) .

    Поисковой системой нашел в форуме тему "Azbox RS232(PC)->TTL(AZ) / USB(PC)->TTL(AZ) & YAMON - побеждаем вечный "BOOTING" с симптомами неисправностей похожими на мои, где loshmanov подробно изложил как и что смотреть с помощью последовательного (СОМ) порта.
    Вскрыв ресивер PREMIUM HD+ я обнаружил разъем похожий на СОМ порт.
    Вложения
    AZBOX PREMIUM HD+ (вечный BOOTING побежден)

  • #2
    Re: Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

    Купил NOKIAвский провод и получил вот такой лог:

    xosPe0 serial#2cee66e587b6925bb3cff53620687750 subid 0x70
    xenv cs2 failed
    xenvxosPe0 serial#2cee66e587b6925bb3cff53620687750 subid 0x70
    xenv cs2 failed
    xenv power supply: ok
    dram0 ok (
    zboot (1) failed

    Посмотрев лог понял, что у меня похоже проблема более серьезная.
    Нашел в форуме тему "Azbox HD FLASH RECOVERY - NOR Flash 8MB (Bootloader) - AZbox hd & JTAG ..." где понял что fc_candido смог решить эту проблему.

    Пришлось делать JTAG интерфейс
    Вложения
    AZBOX PREMIUM HD+ (вечный BOOTING побежден)

    Комментарий


    • #3
      Re: Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

      Так как в домашних условиях из оборудования у меня было только: паяльник, кусачки, пинцет, осцилограф и мультиметр пришлось придумывать как паять на плате да еще и возле процессора.
      Я взял обрезанный конец резистора, облудил его и поставил на контактную плошадку R309. Нагревая обрезанный конец резистора паяльником расплавился припой на контактной площадке и проволочина зафиксировалась.
      Вложения
      AZBOX PREMIUM HD+ (вечный BOOTING побежден)

      Комментарий


      • #4
        Re: Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

        Таким образом интерфейс был собран на материнской плате, но как выяснилось позже не все элементы распаяны - не установлены RP1 и RP2. В нашем городе таких резисторных сборок не найти да мне и не припаять их простым паяльником. Стал изучать печатный монтаж. Главным критерием было минимальное количество паек на материнской плате. В итоге получилась такая схема (в процессе испытаний выяснилось что ограничивающие резисторы между JTAG и LPT не обеспечивают необходимый уровень сигнала и я их исключил)
        PS так как резисторов 103 Ом я найти не мог, то установил разные от 110 до 140 Ом, что оказалось не критичным
        Вложения
        AZBOX PREMIUM HD+ (вечный BOOTING побежден)

        Комментарий


        • #5
          Re: Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

          В итоге получилось нечто не очень привлекательный, но работоспособный интерфейс
          Вложения
          AZBOX PREMIUM HD+ (вечный BOOTING побежден)

          Комментарий


          • #6
            Re: Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

            Аппаратная часть готова.
            Осталось самое трудное - программная компонента (если учесть что все делать надо в Линуксе, а я в нем знаю только команду LS)

            Но об этом завтра...
            AZBOX PREMIUM HD+ (вечный BOOTING побежден)

            Комментарий


            • #7
              Re: Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

              Начал качать все подряд найденные поисковой системой версии линукса запускаемые непосредственно с CD без инсталяции, но все что скачивал было не то, нет утилиты make необходимой для компиляции.

              И опять на помощь мне приходит fc_candido. Все что будет рассказано дальше это его инструкции и софт.

              Линукс на котором все работает UBUNTU 10.04 LTS
              Вложения
              AZBOX PREMIUM HD+ (вечный BOOTING побежден)

              Комментарий


              • #8
                Re: Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

                На флешку были записаны следующие файлы:

                10.06.2010 13:59 1 117 azbox.cfg
                05.03.2010 11:43 8 388 608 cfe.bin
                26.08.2009 19:23 148 Makefile
                13.07.2010 13:35 1 327 295 openocd-0.4.0-azbox.tar.bz2
                10.06.2010 21:20 788 smp8634.cfg
                16.06.2010 20:47 8 272 spi.h
                22.06.2010 23:31 106 788 tjtag.c
                26.08.2009 15:17 22 391 tjtag.h


                Линукс запускался исключительно с CD. Все данные находились только на флешке.

                Дальнейшие действия можно разбить на 3 этапа.
                1. установка ПО для снятия защиты обращения к флэш памяти ресивера;
                2. снятие защиты обращения к флэш памяти ресивера;
                3. программирование флэш памяти ресивера.

                Теперь подробно по этапам, что смогу поясню.

                1. установка ПО для снятия защиты обращения к флэш памяти ресивера.
                1.1. в линуксе запускаем терминал и переходим в каталог на флэшке где записаны выше сказанные файлы
                1.2. набираем команду sudo apt-get install libftdi-dev libftdi1 libusb-dev
                после исполнения этой команды ругается на отсутствие libusb-dev, но это не мешает
                1.3. разархивируем архив командой tar xjvf openocd-0.4.0-azbox.tar.bz2
                1.4. переходим в каталог cd openocd-0.4.0-azbox/
                1.5. набираем команды
                1.5.1 ./configure --enable-dummy --enable-parport --enable-parport_ppdev --enable-amtjtagaccel --enable-verbose
                1.5.2. make
                1.5.3. sudo make install
                1.5.4. sudo ln sf /usr/local/bin/openocd /usr/bin/openocd
                1.6. переходим в каталог на флэшке где записаны и набираем команды
                1.6.1. sudo cp smp8634.cfg /usr/local/share/openocd/scripts/target/smp8634.cfg
                1.6.2. sudo cp azbox.cfg /usr/local/share/openocd/scripts/board/azbox.cfg

                На это инсталяция закончена .
                AZBOX PREMIUM HD+ (вечный BOOTING побежден)

                Комментарий


                • #9
                  Re: Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

                  2. снятие защиты обращения к флэш памяти ресивера

                  2.1. Набираем следующие команды
                  2.1.1. sudo rmmod lp
                  2.1.2.cd /usr/local/share/openocd/scripts
                  2.1.3. sudo openocd -f interface/parport_dlc5.cfg -f board/azbox.cfg

                  2.2. Открываем второе окно терминала и набираем команду
                  2.2.1. sudo telnet localhost 4444
                  2.2.2. На экране видим примерно такое:
                  Trying 127.0.0.1...
                  Connected to localhost.
                  Escape character is '^]'.
                  Open On-Chip Debugger
                  >

                  2.2.3. набираем команы
                  2.2.3.1. halt
                  2.2.3.2. reset
                  2.2.3.3. reset init
                  2.2.3.4. flash protect 0 0 last off
                  2.2.3.5. flash protect_check 0
                  2.2.3.6. flash info 0
                  2.2.3.7. shutdown
                  На этом второй этап закончен.
                  Ниже привожу лог снятия защиты моего ресивера:

                  ubuntu@ubuntu:/media/E0CF-DBCF/azbox$ sudo rmmod lp
                  ubuntu@ubuntu:/media/E0CF-DBCF/azbox$ cd /usr/local/share/openocd/scripts
                  ubuntu@ubuntu:/usr/local/share/openocd/scripts$ sudo openocd -f interface/parport_dlc5.cfg -f board/azbox.cfg
                  Open On-Chip Debugger 0.4.0 (2010-07-13-19:47)
                  Licensed under GNU GPL v2
                  For bug reports, read
                  http://openocd.berlios.de/doc/doxygen/bugs.html
                  parport port = 0x0
                  jtag_nsrst_delay: 100
                  jtag_ntrst_delay: 100
                  trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
                  Warn : smp8634.cpu: nonstandard IR mask
                  Warn : use 'smp8634.cpu' as target identifier, not '0'
                  Info : clock speed 500 kHz
                  Info : JTAG tap: smp8634.cpu tap/device found: 0x08630001 (mfg: 0x000, part: 0x8630, ver: 0x0)
                  Info : accepting 'telnet' connection from 0
                  target state: halted
                  target halted in MIPS32 mode due to debug-request, pc: 0xbfc00000
                  Info : JTAG tap: smp8634.cpu tap/device found: 0x08630001 (mfg: 0x000, part: 0x8630, ver: 0x0)
                  target state: halted
                  target halted in MIPS32 mode due to debug-request, pc: 0xbfc00000
                  Info : JTAG tap: smp8634.cpu tap/device found: 0x08630001 (mfg: 0x000, part: 0x8630, ver: 0x0)
                  target state: halted
                  target halted in MIPS32 mode due to debug-request, pc: 0xbfc00000
                  Info : Flash Manufacturer/Device: 0x007f 0x22cb
                  Error: protect: cfi primary command set 2 unsupported
                  cleared protection for sectors 0 through 134 on flash bank 0
                  successfully checked protect state
                  #0 : cfi at 0xac000000, size 0x00800000, buswidth 2, chipwidth 2
                  # 0: 0x00000000 (0x2000 8kB) not protected
                  здесь скрыты остальные данные
                  Spoiler
                  # 1: 0x00002000 (0x2000 8kB) not protected
                  # 2: 0x00004000 (0x2000 8kB) not protected
                  # 3: 0x00006000 (0x2000 8kB) not protected
                  # 4: 0x00008000 (0x2000 8kB) not protected
                  # 5: 0x0000a000 (0x2000 8kB) not protected
                  # 6: 0x0000c000 (0x2000 8kB) not protected
                  # 7: 0x0000e000 (0x2000 8kB) not protected
                  # 8: 0x00010000 (0x10000 64kB) not protected
                  # 9: 0x00020000 (0x10000 64kB) not protected
                  # 10: 0x00030000 (0x10000 64kB) not protected
                  # 11: 0x00040000 (0x10000 64kB) not protected
                  # 12: 0x00050000 (0x10000 64kB) not protected
                  # 13: 0x00060000 (0x10000 64kB) not protected
                  # 14: 0x00070000 (0x10000 64kB) not protected
                  # 15: 0x00080000 (0x10000 64kB) not protected
                  # 16: 0x00090000 (0x10000 64kB) not protected
                  # 17: 0x000a0000 (0x10000 64kB) not protected
                  # 18: 0x000b0000 (0x10000 64kB) not protected
                  # 19: 0x000c0000 (0x10000 64kB) not protected
                  # 20: 0x000d0000 (0x10000 64kB) not protected
                  # 21: 0x000e0000 (0x10000 64kB) not protected
                  # 22: 0x000f0000 (0x10000 64kB) not protected
                  # 23: 0x00100000 (0x10000 64kB) not protected
                  # 24: 0x00110000 (0x10000 64kB) not protected
                  # 25: 0x00120000 (0x10000 64kB) not protected
                  # 26: 0x00130000 (0x10000 64kB) not protected
                  # 27: 0x00140000 (0x10000 64kB) not protected
                  # 28: 0x00150000 (0x10000 64kB) not protected
                  # 29: 0x00160000 (0x10000 64kB) not protected
                  # 30: 0x00170000 (0x10000 64kB) not protected
                  # 31: 0x00180000 (0x10000 64kB) not protected
                  # 32: 0x00190000 (0x10000 64kB) not protected
                  # 33: 0x001a0000 (0x10000 64kB) not protected
                  # 34: 0x001b0000 (0x10000 64kB) not protected
                  # 35: 0x001c0000 (0x10000 64kB) not protected
                  # 36: 0x001d0000 (0x10000 64kB) not protected
                  # 37: 0x001e0000 (0x10000 64kB) not protected
                  # 38: 0x001f0000 (0x10000 64kB) not protected
                  # 39: 0x00200000 (0x10000 64kB) not protected
                  # 40: 0x00210000 (0x10000 64kB) not protected
                  # 41: 0x00220000 (0x10000 64kB) not protected
                  # 42: 0x00230000 (0x10000 64kB) not protected
                  # 43: 0x00240000 (0x10000 64kB) not protected
                  # 44: 0x00250000 (0x10000 64kB) not protected
                  # 45: 0x00260000 (0x10000 64kB) not protected
                  # 46: 0x00270000 (0x10000 64kB) not protected
                  # 47: 0x00280000 (0x10000 64kB) not protected
                  # 48: 0x00290000 (0x10000 64kB) not protected
                  # 49: 0x002a0000 (0x10000 64kB) not protected
                  # 50: 0x002b0000 (0x10000 64kB) not protected
                  # 51: 0x002c0000 (0x10000 64kB) not protected
                  # 52: 0x002d0000 (0x10000 64kB) not protected
                  # 53: 0x002e0000 (0x10000 64kB) not protected
                  # 54: 0x002f0000 (0x10000 64kB) not protected
                  # 55: 0x00300000 (0x10000 64kB) not protected
                  # 56: 0x00310000 (0x10000 64kB) not protected
                  # 57: 0x00320000 (0x10000 64kB) not protected
                  # 58: 0x00330000 (0x10000 64kB) not protected
                  # 59: 0x00340000 (0x10000 64kB) not protected
                  # 60: 0x00350000 (0x10000 64kB) not protected
                  # 61: 0x00360000 (0x10000 64kB) not protected
                  # 62: 0x00370000 (0x10000 64kB) not protected
                  # 63: 0x00380000 (0x10000 64kB) not protected
                  # 64: 0x00390000 (0x10000 64kB) not protected
                  # 65: 0x003a0000 (0x10000 64kB) not protected
                  # 66: 0x003b0000 (0x10000 64kB) not protected
                  # 67: 0x003c0000 (0x10000 64kB) not protected
                  # 68: 0x003d0000 (0x10000 64kB) not protected
                  # 69: 0x003e0000 (0x10000 64kB) not protected
                  # 70: 0x003f0000 (0x10000 64kB) not protected
                  # 71: 0x00400000 (0x10000 64kB) not protected
                  # 72: 0x00410000 (0x10000 64kB) not protected
                  # 73: 0x00420000 (0x10000 64kB) not protected
                  # 74: 0x00430000 (0x10000 64kB) not protected
                  # 75: 0x00440000 (0x10000 64kB) not protected
                  # 76: 0x00450000 (0x10000 64kB) not protected
                  # 77: 0x00460000 (0x10000 64kB) not protected
                  # 78: 0x00470000 (0x10000 64kB) not protected
                  # 79: 0x00480000 (0x10000 64kB) not protected
                  # 80: 0x00490000 (0x10000 64kB) not protected
                  # 81: 0x004a0000 (0x10000 64kB) not protected
                  # 82: 0x004b0000 (0x10000 64kB) not protected
                  # 83: 0x004c0000 (0x10000 64kB) not protected
                  # 84: 0x004d0000 (0x10000 64kB) not protected
                  # 85: 0x004e0000 (0x10000 64kB) not protected
                  # 86: 0x004f0000 (0x10000 64kB) not protected
                  # 87: 0x00500000 (0x10000 64kB) not protected
                  # 88: 0x00510000 (0x10000 64kB) not protected
                  # 89: 0x00520000 (0x10000 64kB) not protected
                  # 90: 0x00530000 (0x10000 64kB) not protected
                  # 91: 0x00540000 (0x10000 64kB) not protected
                  # 92: 0x00550000 (0x10000 64kB) not protected
                  # 93: 0x00560000 (0x10000 64kB) not protected
                  # 94: 0x00570000 (0x10000 64kB) not protected
                  # 95: 0x00580000 (0x10000 64kB) not protected
                  # 96: 0x00590000 (0x10000 64kB) not protected
                  # 97: 0x005a0000 (0x10000 64kB) not protected
                  # 98: 0x005b0000 (0x10000 64kB) not protected
                  # 99: 0x005c0000 (0x10000 64kB) not protected
                  #100: 0x005d0000 (0x10000 64kB) not protected
                  #101: 0x005e0000 (0x10000 64kB) not protected
                  #102: 0x005f0000 (0x10000 64kB) not protected
                  #103: 0x00600000 (0x10000 64kB) not protected
                  #104: 0x00610000 (0x10000 64kB) not protected
                  #105: 0x00620000 (0x10000 64kB) not protected
                  #106: 0x00630000 (0x10000 64kB) not protected
                  #107: 0x00640000 (0x10000 64kB) not protected
                  #108: 0x00650000 (0x10000 64kB) not protected
                  #109: 0x00660000 (0x10000 64kB) not protected
                  #110: 0x00670000 (0x10000 64kB) not protected
                  #111: 0x00680000 (0x10000 64kB) not protected
                  #112: 0x00690000 (0x10000 64kB) not protected
                  #113: 0x006a0000 (0x10000 64kB) not protected
                  #114: 0x006b0000 (0x10000 64kB) not protected
                  #115: 0x006c0000 (0x10000 64kB) not protected
                  #116: 0x006d0000 (0x10000 64kB) not protected
                  #117: 0x006e0000 (0x10000 64kB) not protected
                  #118: 0x006f0000 (0x10000 64kB) not protected
                  #119: 0x00700000 (0x10000 64kB) not protected
                  #120: 0x00710000 (0x10000 64kB) not protected
                  #121: 0x00720000 (0x10000 64kB) not protected
                  #122: 0x00730000 (0x10000 64kB) not protected
                  #123: 0x00740000 (0x10000 64kB) not protected
                  #124: 0x00750000 (0x10000 64kB) not protected
                  #125: 0x00760000 (0x10000 64kB) not protected
                  #126: 0x00770000 (0x10000 64kB) not protected
                  #127: 0x00780000 (0x10000 64kB) not protected
                  #128: 0x00790000 (0x10000 64kB) not protected
                  #129: 0x007a0000 (0x10000 64kB) not protected
                  #130: 0x007b0000 (0x10000 64kB) not protected
                  #131: 0x007c0000 (0x10000 64kB) not protected
                  #132: 0x007d0000 (0x10000 64kB) not protected
                  #133: 0x007e0000 (0x10000 64kB) not protected

                  #134: 0x007f0000 (0x10000 64kB) not protected

                  cfi information:

                  mfr: 0x007f, id:0x22cb
                  qry: 'QRY', pri_id: 0x0002, pri_addr: 0x0040, alt_id: 0x0000, alt_addr: 0x0000
                  Vcc min: 2.7, Vcc max: 3.6, Vpp min: 0.0, Vpp max: 0.0
                  typ. word write timeout: 16, typ. buf write timeout: 1, typ. block erase timeout: 1024, typ. chip erase timeout: 1
                  max. word write timeout: 512, max. buf write timeout: 1, max. block erase timeout: 16384, max. chip erase timeout: 1
                  size: 0x800000, interface desc: 2, max buffer write size: 1

                  Spansion primary algorithm extend information:
                  pri: 'PRI', version: 1.1
                  Silicon Rev.: 0x0, Address Sensitive unlock: 0x0
                  Erase Suspend: 0x2, Sector Protect: 0x4
                  VppMin: 10.5, VppMax: 12.5

                  shutdown command invoked
                  ubuntu@ubuntu:/usr/local/share/openocd/scripts$

                  AZBOX PREMIUM HD+ (вечный BOOTING побежден)

                  Комментарий


                  • #10
                    Re: Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

                    3. программирование флэш памяти ресивера.
                    Самый легкий этап, но самый продолжительный по времени (у меня прогаммирование заняло почти 24 часа)

                    3.1. Переходим в первое окно терминала
                    3.2. Переходим на флышку где записаны файлы и набираем команды
                    3.2.1. make
                    3.2.2. sudo rmmod lp
                    3.2.3. sudo ./tjtag -flash:cfe /fc:104 /bypass
                    3.3. терпиливо ждем сутки периодически наблюдая за пробегающими адресами, данными

                    У меня это выглядело примерно так (последние секунды работы программы):
                    [ 99% Flashed] ac7fffb0: ffffffff ffffffff ffffffff ffffffff
                    [ 99% Flashed] ac7fffc0: ffffffff ffffffff ffffffff ffffffff
                    [ 99% Flashed] ac7fffd0: ffffffff ffffffff ffffffff ffffffff
                    [ 99% Flashed] ac7fffe0: ffffffff ffffffff ffffffff ffffffff
                    [ 99% Flashed] ac7ffff0: ffffffff ffffffff ffffffff ffffffff
                    Done (CFE.BIN loaded into Flash Memory OK)

                    =========================
                    Flashing Routine Complete
                    =========================
                    elapsed time: 85853 seconds


                    *** REQUESTED OPERATION IS COMPLETE ***

                    ubuntu@ubuntu:/media/E0CF-DBCF/azbox$

                    AZBOX PREMIUM HD+ (вечный BOOTING побежден)

                    Комментарий


                    • #11
                      Re: Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

                      4. Награда за труды
                      4.1. выключаю ресивер, компьютер
                      4.2. снимаю перемычку с R309 в ресивере
                      4.3. записываю на флешку в корень patch.bin
                      4.4. устанавливаю флешку в ресивер, включаю ресивер и вот оно счастье ресивер предлагает установку нового ПО

                      Надпись на дисплее ресивера, которую наблюдал 2 недели, сменяется на проверку, загрузку и т.д.

                      С уважением и благодарностью к fc_candido, Андрей
                      Вложения
                      AZBOX PREMIUM HD+ (вечный BOOTING побежден)

                      Комментарий


                      • #12
                        Re: Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

                        PS Где качал линукс не помню так как качал много и ото всюду что находил поисковик
                        Имя образа дистрибутив линукса - ubuntu-10.04-desktop-i386.iso
                        Поисковиком Яндех находится много ссылок для скачивания
                        AZBOX PREMIUM HD+ (вечный BOOTING побежден)

                        Комментарий


                        • #13
                          Re: Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

                          мегареспект за описалово

                          думау теперь можно задавать вопросы.
                          на мой вопрос про "а где ты надыбал этот линукс?" ответ получил выше. спасибо.

                          теперь вопросы за теми, кто столкнулся с данной проблемой
                          "я попробывал аппаратное ускорение" и азеру пришел звиздец
                          Обсуждение всех нюансов развода в Германии. www.razvod.net

                          Комментарий


                          • #14
                            Re: Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

                            karjavo vse no zapustil process
                            jdem rezultat

                            a voobsche sutki zdat poka zaprogramiruetsja eto nada zyt na severe
                            vu+duo & 2xToro-17sat

                            Комментарий


                            • #15
                              Re: Устранение вечного BOOTINGа прошивкой FLASH 8 MB через JTAG в домашних условиях

                              все заработало
                              сенк
                              vu+duo & 2xToro-17sat

                              Комментарий

                              Обработка...
                              X