он как-бы вроде на usb флэхах стоит.. или я ошибаюсь?
Да, но алгоритм вычисления ECC полностью аналогичен нашему (проверено)!
Сергей из soft-center.ru говорит, что если "изменить ECC на один байт (в предалах кооректирующей способности кода), то контроллер возможно пересчитает его на верный", кто первый проверит? gregorio куда то пропал.
Последний раз редактировалось Yoti; 23.11.2011 в 15:54.
Другие консоли: XBOX 360, PlayStation®3 500Gb 3.55
Регистрация: 30.01.2007
Адрес: Москва
Возраст: 34
Сообщений: 623
Вы сказали Спасибо: 205
Поблагодарили 157 раз(а) в 115 сообщениях
Сила репутации: 1
Репутация: 159 
(весьма и весьма положительная личность)
Yokel, карта как карта работает, мсид правильный выдаёт, но как сервисная не работает(ошибку выдаёт)
gregorio добавил 24.11.2011 в 19:47
почти полностью уверен что с известным всем значением msid она всё-равно будет работать, и прошивать консоль. но для моих целей вариант не подходит.
Последний раз редактировалось Yoti; 24.11.2011 в 20:31.
Причина: добавил, подумав
Я думаю, что смена ECC ни к чему не приведёт. Это равнозначно, что смена MSID, как и смена ECC.
И в том и в другом случае ECC будет неадекватна.
Поэтому контроллёр занесёт такой блок в bad-block.
Я считаю, что ECC должен подсчитать сам контроллёр или научиться подсчитывать его самостоятельно.
А чтобы контроллёр подсчитывал ECC, нужно логически через него записывать этот блок/сектор. Тогда контроллёр сам подсчитает контролку всем переданным через него секторам.
Это можно сделать, только если ему разрешить запись в защищённую сервисную область.
Но, как мы знаем, эта область защищена от перезаписи.
Чтобы разрешить запись, нужно замкнуть ножку протектора на землю.
Последний раз редактировалось ErikPshat; 25.11.2011 в 01:47.
Кто в Си шарит? Вот исходники Рида-Соломона http://www.schifra.com/downloads/schifra.zip надо их курить! По екзамплу получается для 249 байт данных рассчитать 6 байт ECC, по котором можно потом опять данные восстановить!
Yokel, так... там каличный оутпут получается... Вылетает тот-жэ файл с 6-тибайтным смещением, походу и есть ващ ЕСС. Щас попробую сделать почеловечески, если нет, то научу патологоанатомии)
Ммм... карочи нет тайма жевать... Вот енкодер, как я сказал ужё, каличный (атач).
Как его кушать разобраться несложно. Прикол в другом. В оутпутном файле выдаётся тот же инпут, но со смещением в 6-байт: с 0x9F по 0xFE - сместитель (сместитель = ваш ЕСС). Тот файл, что я кинул для теста в инпут, мне первым подруку попался, заменяйте на свои... удачной паталогоанатомии... надеюсь - это то что вы хотели. Если то, то скажите я сделаю нормальный енкодер... а так, нет времени.
Последний раз редактировалось frostegater; 25.11.2011 в 16:41.
Простите, что вмешиваюсь.
Вот еще занятная штука, хотя может уже видели. http://www.elnec.com/sw/an_elnec_nand_flash.pdf http://www.elnec.com/sw/samsung_ecc_...m_for_512b.pdf
В последнем документе расписывается структура 16-байтного ECC для 512-байт блоков.
1,2,3 байты - номер блока
4, 5 - зарезервировано
6 - метка бэд-блока
7,8,9 - ECC code for Main area data, алгоритм вычисления тоже описан
10, 11 - ECC code for LSN data (ECC для номера блока) - заметьте, вычисляется отдельно и независимо от основных данных. Здесь уже предлагалось записать на карточку блок с нужными данными и подсмотреть его ECC, не прокатило - но что если здесь так же, то есть надо заменять не весь ECC а часть отвечающую за именно данные в блоке?
12-16 - зарезервировано.
с другой стороны, это только пример, и то от самсунга. Еще там написано что это для 64м-1гб нандов, для 2гб алгоритм может быть другим.
Простите, что вмешиваюсь.
Вот еще занятная штука, хотя может уже видели. http://www.elnec.com/sw/an_elnec_nand_flash.pdf http://www.elnec.com/sw/samsung_ecc_...m_for_512b.pdf
В последнем документе расписывается структура 16-байтного ECC для 512-байт блоков.
1,2,3 байты - номер блока
4, 5 - зарезервировано
6 - метка бэд-блока
7,8,9 - ECC code for Main area data, алгоритм вычисления тоже описан
10, 11 - ECC code for LSN data (ECC для номера блока) - заметьте, вычисляется отдельно и независимо от основных данных. Здесь уже предлагалось записать на карточку блок с нужными данными и подсмотреть его ECC, не прокатило - но что если здесь так же, то есть надо заменять не весь ECC а часть отвечающую за именно данные в блоке?
12-16 - зарезервировано.
с другой стороны, это только пример, и то от самсунга. Еще там написано что это для 64м-1гб нандов, для 2гб алгоритм может быть другим.
это не наш формат!
Yokel добавил 25.11.2011 в 18:16
Сообщение от Frostegater
Yokel, так... там каличный оутпут получается... Вылетает тот-жэ файл с 6-тибайтным смещением, походу и есть ващ ЕСС. Щас попробую сделать почеловечески, если нет, то научу патологоанатомии)
Ммм... карочи нет тайма жевать... Вот енкодер, как я сказал ужё, каличный (атач).
Как его кушать разобраться несложно. Прикол в другом. В оутпутном файле выдаётся тот же инпут, но со смещением в 6-байт: с 0x9F по 0xFE - сместитель (сместитель = ваш ЕСС). Тот файл, что я кинул для теста в инпут, мне первым подруку попался, заменяйте на свои... удачной паталогоанатомии... надеюсь - это то что вы хотели. Если то, то скажите я сделаю нормальный енкодер... а так, нет времени.
Ты просто откомпилил что было. в примере он обрабатывает 255 байт данных а нам надо 518, и ECC нам надо не 6 байт, а 10!
Последний раз редактировалось Yokel; 25.11.2011 в 18:16.
Причина: добавил, подумав