Jump to content
Калькуляторы

Прошивка CWDM, образы SFP прошивка и образы SFP

Здравствуйте.

 

Поделитесь пожалуйста образами для:

HP J4859C (Мне нужно больше, чем десять)

Share this post


Link to post
Share on other sites

alexianov напиши в личку почту, штук 8 есть вроде

Share this post


Link to post
Share on other sites

День добрый, Господа фрумчани!

Спасите, помогите! Нужна прошивка Cisco GLC-FE-100BX-D. Буду очень признателен!

Share this post


Link to post
Share on other sites

Есть у кого-нибудь код от Extreme SFP SX?

Share this post


Link to post
Share on other sites

Есть у кого-нибудь код от Extreme SFP SX?

 

Ни у кого нет ? =(

Share this post


Link to post
Share on other sites

Подскажите, кто знает, как рассчитывается контрольная сумма в прошивке SFP?

И есть-ли какой-либо материал, чтобы разобраться в структуре прошивки?

Share this post


Link to post
Share on other sites

Добрый день. Приобрел NAGовский программатор SFP - пробую считать Dlink DEM-310GT - получаю ошибку "Ancknoledge". По совету на форуме попробовал ножку 1-ю на землю посадить - без результата. CISCO SFP прочитал без проблем. Не подскажите в чем может быть дело . Заранее спасибо

Share this post


Link to post
Share on other sites

Подскажите, кто знает, как рассчитывается контрольная сумма в прошивке SFP?

И есть-ли какой-либо материал, чтобы разобраться в структуре прошивки?

Контрольная сумма в байте 63 равна младшему октету суммы байт 0 - 62 включительно.

Контрольная сумма в байте 95 равна младшему октету суммы байт 64 - 94 включительно.

В документе SFF-8472 каждый байт расписан.

Edited by evil-man

Share this post


Link to post
Share on other sites

Всем привет.

Приобрели указанный программатор, а вот прошивок к нему под джунипер нигде не нашел.

В частности, интересует cwdm-1570.

Никто не поделится?

 

 

http://shop.nag.ru/catalog/00007.Avtomatizatsiya-i-monitoring/05629.Mikrokontrollery/08255.Prog-miniUSB

Share this post


Link to post
Share on other sites

Добрый день,

 

Аналогично - наговский программатор, пытаюсь сделать из SFP, которые cisco не читает, такие, которые она примет за compatible :)

Прочитал:

байты 0060....007F заполняются на усмотрение вендора, их и нужно записать правильно, для cisco.

 

у cisco тут записан:

1) байт идентификатора производителя (0x0062: 0x0E это Method, видел еще 0x02 для Finisar)

2) уникальный серийный номер, 0x0063 - обычный md5 от сложения

- один идентифиатора производителя (0x0E, или какой другой) +

- имени производителя (0x10 байт ) +

- серийного номера SFP (0x10 байт )+

- и cisco key для производителя (0x10 байт, всего 0x40 вендоров, при желании можно найти все 0x400 байт,

а для моих Method 0x0E это 4AF86716ED1E2F347CA13C9978AD8CA0, Finisar 0x02 - 8DDAE6A46EC9DEF6100BF185059C3DAB)

 

тоесть вендор, имя, серийник, ключ вендора:

CODE

0000: 0E 43 49 53 43 4F 2D 4D │ 45 54 48 4F 44 45 20 20 ♫CISCO-METHODE

0010: 20 30 30 30 30 30 4D 54 │ 43 31 31 33 38 30 31 53 00000MTC113801S

0020: 53 4A F8 67 16 ED 1E 2F │ 34 7C A1 3C 99 78 AD 8C SJшg■н▲/4|Ў<Tx-_

0030: A0 │

с нее и получается наш уникальный ID имени циско C45D79AB9699E37C20A0CBFBFBA23D70

3) чексумма 0x007С, обычный CRC32 от 0x0С байтов, в дамп токо пишем байты в обратном порядке,

если посчитало 0x12345678, записываем 78 56 34 12

CODE

0060: 00 00 0E C4 5D 79 AB 96 │ 99 E3 7C 20 A0 CB FB FB ♫Д]y<-Tг| Лыы

0070: A2 3D 70 00 00 00 00 00 │ 00 00 00 00

 

и продолжение:

у меня от этого значения, тоесть не от самой Hex строки, а от ее бинарного значения

0E434953434F2D4D4554484F444520202030303030304D544331313338303153534AF86716ED1E2F

347CA13C9978AD8CA0

и выходит C45D79AB9699E37C20A0CBFBFBA23D70

 

cisco key - не знаю как правильно он называется, но это тот ключ - что передается cisco каждому производителю sfp.

его можно найти путем медитации над прошивкой 3560.

 

не совсем так, нужно брать все 12 байт, но не сначала eeprom, а тот md5 что мы токошо расчитали,

ну и вначале производитель и нули вконце, тоесть

00 00 0E C4 5D 79 AB 96 99 E3 7C 20 A0 CB FB FB A2 3D 70 00 00 00 00 00 00 00 00 00

и считать от них. (обрати внимание, что расчитанный crc в eeprom записывается в обратном порядке)

 

3) чексумма 0x007С, обычный CRC32 от 0x0С байтов, в дамп токо пишем байты в обратном порядке

на самом деле должно быть написано

Цитата

3) чексумма 0x007С, обычный CRC32 от 0x1С байтов, в дамп токо пишем байты в обратном порядке

Мелочь, но голову поломали :)

 

У меня SFP: 10/100/1000BaseT. Прочитал прошивку с рабочего SFP:

...
60:30303032303230323032303030323032
70:30323035333436353032443534323032
...

 

1) итак, байт производителя у меня (по адресу 0x0062) это 0x0030.

 

2) для md5 нужно:

a) байт идентификатора производителя: 30

b) имя производителя, пусть будет как в примере: 43 49 53 43 4F 2D 4D 45 54 48 4F 44 45 20 20 20, т.е. - CISCO-METHODE

c) серийный номер SFP, пусть будет 32 30 31 33 30 38 32 33 31 33 34 32 30 30 30 31, т.е. - 2013082313420001

в) cisco key производителя, пусть будет как в примере: 4A F8 67 16 ED 1E 2F 34 7C A1 3C 99 78 AD 8C A0

 

итого 30434953434F2D4D4554484F4445202020323031333038323331333432303030314AF86716ED1E2F347CA13C9978AD8CA0

md5 будет 2e2a7f0ba193902ee1dd9c529e2f27ca, вписываем это значение (заменяя текущие значения) начиная с позиции 0x063 и получаем:

60: 3030302E2A7F0BA193902EE1DD9C529E
70: 2F27CA35333436353032443534323032

 

3) нужно crc32 всех новых 0x1C байтов начиная с 0x060 (включительно) и до 0x07B (включительно), т.е. строка: 3030302E2A7F0BA193902EE1DD9C529E2F27CA353334363530324435

crc32 будет: 0x9cfbe420, меняем байты наоборот и получаем: 20e4fb9c, вписываем значение по адресу 0x07C (затирая текущие значения) и получаем:

60: 3030302E2A7F0BA193902EE1DD9C529E
70: 2F27CA35333436353032443520E4FB9C

 

Все? Сохраняю файл, пытаюсь открыть IcProg... получаю Error: "Checksum error on line 0020h. The checksum read is 26h but it should be 95h"

Что это такое? Я вообще не редактировал эту строку! И на ней нет hex значения 26! Бррр... и откуда IcProg знает что в этом файле crc должен лежать по этому адресу? Ведь для него это просто файл с данными. И crc чего именно он там ищет?

Edited by survivor

Share this post


Link to post
Share on other sites

Почитал ftp://ftp.seagate.com/sff/SFF-8472.PDF там нет никакого crc для всего файла. Только те, о которых упомянул evil-man:

Контрольная сумма в байте 63 равна младшему октету суммы байт 0 - 62 включительно.

Контрольная сумма в байте 95 равна младшему октету суммы байт 64 - 94 включительно.

но я то те байты не трогал.

 

Получается что IcProg не принимает файл, в котором в любом месте что-то изменено. Но как он об этом узнает - crc то нету!

Share this post


Link to post
Share on other sites

Похоже на баг... если исправить первый байт 0x3A на 0x31 (не спрашивайте как я до этого дошел) то все изменения IcProg принимаются на ура... Версия 1.06C (последняя). Попробовал 1.05 - то же самое.

Но первый байт мне нужно оставить неизмененным, вообщем ничего не понимаю. Если у кого получалось - помогите плз, чего не так делаю?

Edited by survivor

Share this post


Link to post
Share on other sites

я делал еще в начале топика, и больше к этой тем не возвращался.

писал сначала chipprog+/beeprog, через ISP - но как-то напряжно выходило,

в итоге - собрал на LPT - намного удобнее. счас бы USB канешно.

 

может IcProg или ты - пытаешься засунуть BIN вместо HEX, или наоборот.

 

я всегда писал только бинарники, HEX файлы - просто так не пишутся,

они должны быть в интел-моторола-етс формате, и там действительно - есть чексума.

но это чексумма, HEX файла, в флешки - она не попадает.

Share this post


Link to post
Share on other sites

carver Спасибо за ответ :)

Я читаю IcProg'ом прошивку с SFP (так что формат должен быть верный), затем winhex'ом правлю какой-нибудь один байт и... все - IcProg больше этот файл не открывает. Причем если первый байт (двоеточие) изменить - все ok, IcProg принимает любые изменения. Программатор у меня наговский.

Застрял на вот такой фигне.

Share this post


Link to post
Share on other sites

может твое двоеточие - это как-раз HEX формат, не имеючий никакого отношения к SFP.

там свои чексуммы, которые нужно пересчитывать.

 

формат файла с двоеточиями есть тут http://ru.wikipedia.org/wiki/Intel_HEX

 

попробуй читать в обычный BIN, там чистый дамп с SFP, без HEX-мусора.

Share this post


Link to post
Share on other sites

carver спасибо большое! Сохранил из IcProg как bin, редактирую winhex'ом - IcProg принимает любые изменения. Про hex формат не знал, думал что имеется ввиду просто отображение бинарных данных ввиде их hex значений, а оно вот как оказывается...

Share this post


Link to post
Share on other sites

Теперь немного по существу :) первая прошивка дала следующее: cisco показывает SFP как unknown, show idprom вообще ничего не читает...

У меня в бине прошивка с рабочего SFP выглядит так:

00:0304070000000800000000010D000000
10:000064004F454D202020202020202020
20:20202020002020205346502D54202020
30:202020202020202031312E30000000F3
40:000000004E3130393038313332202020
50:2020202030393132323620200000003A
60:000011E899C6EE8ADB500573157A00D3
70:B27C2600000000000000000037D3F236

соответственно, код производителя - 0x011, по видимому его нужно поменять на что-то знакомое циске? тот же 0x0e?

насчет других значений (имя производителя, SFP serial, cisco key производителя) - пишется же в прошивку только их md5 хеш, откуда циска узнает какие значения я там использовал (cisco key или имя еще допустим она может узнать по коду производителя, который идет в открытом виде, но серийник?!) чтобы самой составить хеш и сравнить с тем что я прошил? Значит в прошивку нужно в открытом виде куда-то вписать и эти значения? Посмотрел: ftp://ftp.seagate.com/sff/SFF-8472.PDF

 

20-35  SFP vendor name (ASCII)
27-39  SFP vendor IEEE company ID
40-55  Part number provided by SFP vendor (ASCII)

Это?

Edited by survivor

Share this post


Link to post
Share on other sites

я бы взял несколько дампов с этого топика,

у которых 0x0062 байт 0xE или 0x2, взял соответствующий ключ,

и пересчитал подпись, шоб вышла такая-же как в дампе.

 

для новых - будет тогда проще считать.

 

но, это только подпись, на каких-то SFP и прошивках - ее достаточно,

но если чайна-SFP работает не по стандарту, или индусы не дописаль ту часть стандарта в прошивку,

то вполне возможно что некоторым модулям - подись не поможет.

Share this post


Link to post
Share on other sites

Ok, логично, взял дамп (работающий, проверил) с methode вендором. В принципе единственное что мне нужно - это поменять серийник.

Еще до того как править хеш и crc в диапазоне 0x063-0x7f я правлю серийник по адресу 68-83 (адреса - decimal как я понимаю). Потом нужно по адресу 95 (decimal) вписать 1 байт (low order 8 bit) crc, полученного от значений по адресам 64-94 (decimal). Вот неизмененный дамп:

64: 000000004D3832333534352020202020
80: 20202020303331303137303100000035

т.е. crc = 35 от строки 000000004D3832333534352020202020202020203033313031373031000000

Как они это получили?

 

http://crc32-checksum.waraxe.us/ дает 0x9B2DDEFA

http://www.codenet.ru/services/crc32/ дает 0x9b2ddefa

http://www.lammertbies.nl/comm/info/crc-calculation.html дает для hex вводных данных

1 byte checksum 28 
CRC-16 0x970F 
CRC-16 (Modbus) 0x3C0E 
CRC-16 (Sick) 0x7BA6 
CRC-CCITT (XModem) 0xA72B 
CRC-CCITT (0xFFFF) 0x6EF0 
CRC-CCITT (0x1D0F) 0x71F1 
CRC-CCITT (Kermit) 0x6C80 
CRC-DNP 0x5ED7 
CRC-32 0x9B2DDEFA 

и для ASCII строки:

1 byte checksum 28 
CRC-16 0x970F 
CRC-16 (Modbus) 0x3C0E 
CRC-16 (Sick) 0x7BA6 
CRC-CCITT (XModem) 0xA72B 
CRC-CCITT (0xFFFF) 0x6EF0 
CRC-CCITT (0x1D0F) 0x71F1 
CRC-CCITT (Kermit) 0x6C80 
CRC-DNP 0x5ED7 
CRC-32 0x9B2DDEFA 

 

 

35 не получается!

Edited by survivor

Share this post


Link to post
Share on other sites

Вот картинка из IC-Prog. На синем фоне у меня информация о серийнике, жёлтым подчёркнут сам серийник, в красной рамочке - контрольная сумма серийника. Контрольную сумму можно посчитать виндовсовским калькулятором, выставить HEX и 1 байт. Но можно вспомнить математику :) - от перемены мест слагаемых сумма не меняется. То есть, в данном случае серийник ABLBDS00D. Такая же контрольная сумма будет у ABLBDS0D0 и ABLBDSD00. Можно поменять местами значения 30 и 44 (подчёркнутые зелёным). На калькуляторе пересчитывать лучше вдвоём, ибо можно пропустить какой-то байт или посчитать его два раза.

 

600x6001379318747599.png

Share this post


Link to post
Share on other sites

Ищется дамп SFP+ для Extreme, который не будет по sh ports conf писать, что воткнут Unsupported optic module. (знак !)

 

UPD. Разобрался с прошивкой, чтобы Extreme считал модуль родным.

Edited by nashvill

Share this post


Link to post
Share on other sites

Можете скинуть десяток прошивок с разными серийниками для GBIC для циски?

Share this post


Link to post
Share on other sites

Коллеги, поделитесь дампами HP J4859C, а лучше расскажите способ самому расчитать байты верификации 124-127, пожалуйста.

 

Все, помог доблестный саппорт SNR, спасибо ему за это.

Edited by almuerto

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now