|
|
Updating SRM console on an AS200
(the info below is without warranty)
- get the latest firmware from
ftp.digital.com
(choose your machine on the left)
- download the firmware file (in my case it was `as255_v8_1.exe')
- boot linux
- format a floppy (`fdformat /dev/fd0H1440')
*don't* put a filesystem onto it - you don't need it!
- put the firmware file onto the disk - starting with an offset of 512
byte:
`dd if=as255_v8_1.exe of=/dev/fd0 bs=512 seek=1'
the next step is somehow a hack.
maybe there is a better way to do it - pls inform me!
you need to boot from the disk (directly in the srm console)
- but currently there is no boot stuff on it.
- create an empty (hex) bootblock:
`dd if=/dev/zero bs=512 count=1 | xxd boot_block_empty'
- determine the size of the firmware file
`ls -la as255_v8_1.exe'
divide that size by 512 (decimal) and calculate the hex value of it.
- edit the file `boot_block_empty' you created in step 6.
you have to jump to offset 1e0 (the line before the last line).
the next is a bit complicated.
you have to reverse the byte order of the hex value calculated in
step 7 in a long int (8 byte - 64 bit) order.
example:
your value from step 7 was: a09 (= 0000 0000 0000 0a09)
the value you have to enter is: 090a 0000 0000 0000
hope everyone understood...
- edit the next long int
enter: 0100 0000 0000 0000
this is the offset the file starts.
- make sure that the next long int (at offset 1f0) is:
0000 0000 0000 0000
this is a flag - don't know what it is used for.
- edit the last long int. this is a checksum.
it is the addition of all long ints (8 bytes) before.
pay attention on the REVERSE ORDER!!!
in my example it is:
0a0a 0000 0000 0000
- exit editor and write the bootblock back to disk:
`xxd -r boot_block_empty | dd of=/dev/fd0H1440'
- halt linux -> go to the srm console and boot from the created disk:
`boot dva0'
- the machine/srm seems to reboot - the the update menu should appear.
|
|
|