Восстановление SUN IDPROM

NB! Данный текст справедлив только для OBP 1.x/2.x/3.x, для OBP 4.x нужно другое решение, т.к. команды mkp там нет.

Многие любители старого железа сталкивались с необходимостью реставрации «Далласа». Суть которой сводится к очистке двух контактов, отключении вышедшей из строя батарейки и подключения новой. С SUN IDPROM (EEPROM, NVRAM, ИППОДРОМ….) ситуация с технической точки зрения почти такая же, а с программной — совсем не такая. И так, начнем с технической.

Часть первая, техническая
Если в типичном «Далласе» обычно имеет место быть стандартная микросхема в корпусе DIP24, две ножки которой (16 и 20 вроде) просто загнуты вверх, к ним припаян источник питания и всё это залито компаундом, поверх которого надет корпус, то в обсуждаемой нами микросхеме (например, ST M48T08-100PC1) тоже есть батарейка под компаундом, и она тоже припаяна, но не к загнутым вверх ногам, а к специальным клеммам, причем клеммы эти на торце микросхемы. А на другом торце тоже клеммы, и к ним припаян кварц. Так что, если не разобраться и начать «пилить» корпус не с той стороны, то возможно, придётся еще и кварц заменить, благо, он не редкий.

Схема объекта такова:

Микросхема «часов» с завода установлена в специальном корытце с ушками, что тем не менее, не мешает её установке в стандартный DIP28 разъём. Ключ на корытце совпадает с ключом на микросхеме и, внимание, со стороны ключа и первого контакта находится кварц. Ничего «спереди» пилить не надо. С «задней» же стороны, находятся клеммы источника питания. Я видел в сети много фотографий аналогичного мода, и все те, что выполнены не бор-машинкой/дремелем, обычно очень грубые. У меня подобных инструментов нет, но есть надфили. Получилось как-то так:


Т.е. я просто спилил надфилем часть компаунда и лака, получив доступ к контактам, и выбрал в одном месте чуть больше материала, чтобы гарантированно перебить проводники до севшего источника питания. Далее, контакты лудятся каким-нибудь активным флюсом, и всё это легко паяется. Разъём для 2032-го элемента питания и длину проводов сразу стоит прикидывать так, чтобы при установке ничего ни чему не мешало, т.к. обычно, вокруг разъёма для IDPROM куча деталей, да и сам он у стенки.

Чтобы не повредить ножки микросхемы, все работы надфилем можно проводить с микросхемой, установленной в обычную капроновую панельку (не впаянную в плату). Родное корытце для этого не подходит, т.к. скрывает нижнюю часть микросхемы.

В итоге, модифицированная микросхема IDPROM в корытце выглядит так:


А после фиксации проводов и держателя батарейки, так:


В интерьере Sparc Classic всё выглядит достаточно органично и ничему не мешает ни по высоте, ни по сторонам:

Перед тем, как пилить, нужно внимательно посмотреть с какой стороны пилить, где плюс и где минус, и всё такое. Я почему всё это говорю… я и кварц на втором IDPROM перепаял, и полярность батарейки перепутал… не будьте как я 🙂 Да, кстати, ничего не сгорело. Микросхему наоборот правда не вставлял…

Так же, должен отметить, что у меня сейчас в двух случаях из двух модифицированная микросхема ST M48T08-100PC1 установлена в панельку без заводского корытца. То ли геометрия изменилась, то ли контакты устали от времени, но в корытце система порой не видит микросхему, пошевелишь — увидит. А без оного всё хорошо.

Часть вторая, логическая
В отличии от «Далласа» (bq4287mt — тоже даллас!), в «Ипподромах» помимо часов, хранятся еще всякие настройки, такие как тип машины, MAC адрес и некоторые другие, поэтому, даже с физически исправным узлом IDPROM, машина будет радовать сообщениями типа

ERROR: missing or invalid ID prom

или

Invalid format type in NVRAM
The IDPROM contents are invalid

или каким-то другим, в зависимости от типа машины. Всё бы ничего, но с подобной проблемой невозможно установить некоторые операционные системы (например, Linux на Sparc32), и не очень удобно использовать сеть, по причине пустого MAC адреса. Аналогичная ситуация сложится, если просто купить новую микросхему ST M48T08-100PC1 с исправным источником питания.

Решение этой проблемы — изменение содержимого NVRAM. Оно описано, например здесь. Если по каким-то причинам ссылка будет недоступна, можно попробовать так.

Но там на самом деле написано очень много и не всегда понятно. Попытаюсь, выделить тот фрагмент, который помог мне привести в чувства мои (два) Sparc Classic:

modify the hostid of an IPX to be 57c0ffee and the ethernet address to
be 08:00:20:c0:ff:ee. At the OpenBoot monitor prompt (ok)

1 0 mkp
real-machine-type 1 mkp
8 2 mkp
0 3 mkp
20 4 mkp
c0 5 mkp
ff 6 mkp
ee 7 mkp
0 8 mkp
0 9 mkp
0 a mkp
0 b mkp
c0 c mkp
ff d mkp
ee e mkp
0 f 0 do i idprom@ xor loop f mkp

For any of the above machines, now type reset at the ok prompt. Your machine
should then attempt to reboot with your new hostid/enet addr.

The following table matches Sun system models with the first
byte of the hostid.

 01 2/1x0
 02 2/50
 11 3/160
 12 3/50
 13 3/2x0
 14 3/110
 17 3/60
 18 3/e
 21 4/2x0
 22 4/1x0
 23 4/3x0
 24 4/4x0
 31 386i
 41 3/4x0
 42 3/80
 51 SPARCstation 1 (4/60)
 52 SPARCstation IPC (4/40)
 53 SPARCstation 1+ (4/65)
 54 SPARCstation SLC (4/20)
 55 SPARCstation 2 (4/75)
 56 SPARCstation ELC
 57 SPARCstation IPX (4/50)
 61 4/e
 71 4/6x0
 72 SPARCstation 10 or SPARCstation 20
 80 SPARCstation Classic, LX, 4, 5, SS1000, Voyager, Ultra 1

Соответственно, я выполнил для машины с ID=80 следующую последовательность команд:

1 0 mkp
80 1 mkp
8 2 mkp
0 3 mkp
20 4 mkp
c0 5 mkp
ff 6 mkp
ee 7 mkp
0 8 mkp
0 9 mkp
0 a mkp
0 b mkp
c0 c mkp
ff d mkp
ee e mkp
0 f 0 do i idprom@ xor loop f mkp

На самом деле, мне не понятно почему в третьей строке 8, а не 08, и почему в четвертой 0, а не 00, но это мелочи. Всё РАБОТАЕТ, всё СОХРАНЯЕТСЯ, сообщения об ошибке о недопустимом содержимом NVRAM больше нет.

Так же, для Sparc Classic могут быть полезны следующие «настройки»:
1. setenv output-device screen:r1024x768x60 — делает человеческое разрешение экрана, и оно сохраняется. Пробовал на интегрированной (в Sparc Classic) видеокарте и на каком-то SBUS адаптере из ULTRA5.
2. setenv auto-boot? false или setenv auto-boot? true — позволяет настроить загрузку в ОС сразу после включения, либо же отключить автозагрузку ОС
3. setenv boot-device disk:a и setenv boot-file netbsd и boot disk — в моём случае, первые две команды указывают системе что загрузочный netbsd лежит на первом scsi диске, первые две команды при условии сохраняющего информацию NVRAM, нужно сделать лишь однажды, ну а третью — каждый раз при включении, если в предыдущем пункте настроено не загружать ОС автоматически.

[UPD]
Всегда можно попытаться купить такое:

Но нужно учитывать, что срок жизни литиевого источника питания не больше десяти лет, а выпущены такие микросхемы обычно очень давно. Цифра 710 в нижней строке маркировки означает десятую неделю 2007-го или 2017-го года. Судя по тому, что батарейка в моём экземпляре живая, год видимо всё же 2017-й.

Бонус
Когда рука дрогнула и компаунд отлетел и вместе с батарейкой и вместе с кварцем (видеокарта использовалась просто как «подставка», IDPROM восстановлен):


В этой штуке просто гениальная система охлаждения:


Sparc Classic на максималочках — 96MB памяти, SCSI2SD, крутая видеокарта, внешний Plextor:

Запись опубликована в рубрике Железки с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *