Re: [hatari-devel] TOS 3.06 does not boot from ACSI

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Hi Thomas,

Thank you for checking this. Now it works as it should.

> Apparently TOS 3.06 uses the value of the first VME bus GPIO register
> and passes this value as some kind of partition selector to the hard
> disk driver code in the boot sector of the ACSI disks:

>  00E00B14 1038 8e09                MOVE.B $ffff8e09,D0
>  00E00B18 c07c 00f8                AND.W #$00f8,D0
>  00E00B1C 31c0 0a00                MOVE.W D0,$00000a00
>  ... (omitted loading of the boot sector and checksum calculation) ...
>  00E00B94 2078 04c6                MOVEA.L $000004c6,A0
>  00E00B98 263c 444d 4172           MOVE.L #$444d4172,D3
>  00E00B9E 3e04                     MOVE.W D4,D7
>  00E00BA0 eb47                     ASL.W #$00000005,D7
>  00E00BA2 3a38 0a00                MOVE.W $00000a00,D5
>  00E00BA6 2f04                     MOVE.L D4,-(A7)
>  00E00BA8 2f39 0000 0476           MOVE.L $00000476,-(A7)
>  00E00BAE 4e90                     JSR (A0)
> 
> The AHDI boot sector code then uses the value in D5 for the selection
> of the partition, as far as I can see.

Actually, D5 contains the boot preference bitmask (e.g. TOS or Atari's SVR4
for the TT), and this value is read from the NVM. 0x00 = no preference,
0x80 = TOS, 0x40 = SVR4, other bits are not used.
This (documented somewhere) mechanism is not related to ACSI, it's a
feature in general in order to be able to boot from different types of
partitions.

With some tools like HDDRUTIL or BOOTCONF (http://www.seimet.de/atari/de/)
one can configure the NVM accordingly.

Take care

Uwe



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/