|Re: [hatari-devel] Enabling NatFeats|
[ Thread Index |
| More lists.tuxfamily.org/hatari-devel Archives
- To: hatari-devel@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [hatari-devel] Enabling NatFeats
- From: Uwe Seimet <Uwe.Seimet@xxxxxxxxx>
- Date: Tue, 18 Aug 2015 18:31:30 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1439915490; l=4547; s=domk; d=seimet.de; h=In-Reply-To:Content-Transfer-Encoding:Content-Disposition: Content-Type:MIME-Version:References:Subject:To:From:Date; bh=5Ukg+ajgfUn8vn/WaMjSIkd/4pTPeOe+NJC/xldf6aU=; b=MKWc4FAikSGtySpt6eW0PT7WwaD9NicM0XEOlE4W1SBgrk0inzTz/qnvKy+FrkAjbk1 UJUluYGU2vkYElZLU18gKkyVlf1cvAEghfKyJUOXmStgKbXxPq8vUoDFCKjnga5+wLrZr sCPhKDa6HXEkYHoydlx84s1O9n+D+q7oxjQ=
Well, I simply like to point out that it usually makes more sense to
implement a SCSI Driver than XHDI. If there was a SCSI Driver for the
Firebee, for instance, users would not complain about the lack of decent
software for partitioning, formatting etc. Alan Hourihane did the right
thing for his Unicorn: Because he implemented a SCSI Driver users can
simply use existing software for maintaining their devices.
The SCSI Driver does not prevent you from using any other access method,
it just provides more (low level) functionality and direct device
access. One should not use this driver for devices that are at the same
used by another access method provided by the emulation. Otherwise you
may end up with accessing the same device with more than one driver,
which is usually dangerous.
> > XHDI is much more limited than the SCSI Driver
> Well, i didn't want to explain to the HDDRIVER guru what XHDI is ;)I just wanted to point out that there already is an existing XHDI Natfeats implementation in Aranym.
> Of course direct SCSI is more powerful. But you also have to take into account the special requirements for an emulator. Eg. the devices that are managed by ACSI, SCSI and IDE are most likely not real devices, but just plain files on the host.There are also configurations (like mine ;) where you don't have an disk driver at all, because all access to block devices is done through the HOSTFS Natfeat. Will the SCSI Interface be still accessible in this case?
> Uwe Seimet <Uwe.Seimet@xxxxxxxxx> schrieb am 7:19 Dienstag, 18.August 2015:
> XHDI is much more limited than the SCSI Driver, which is the more modern
> approach. XHDI can only be used for accessing block devices, and even
> then it is limited to 32 bit sector numbers. With the SCSI Driver you can
> send SCSI commands to any device, not just SCSI. It's basically the
> equivalent of the sg interface.
> XHDI is typically implemented on top of a SCSI Driver, like it is done
> by HDDRIVER and (most likely) also by CBHD. And these drivers also run
> on top of existing SCSI Drivers, in which case they automatically
> provide XHDI for block devices managed by the SCSI Driver.
> The most recent implementation of a SCSI driver is the one Alan Hourihane
> provides for his Unicorn USB adapter. Another implementation is the one for
> Milan PCI SCSI. And of course those for MagiCMac and MagiCPC.
> See http://hddriver.seimet.de/en/downloads.html for links to all these
> Take care
> > >I'm currently experimenting with a (Linux-only) SCSI Driver implementation
> > >that gives seamless, direct access to devices. It maps SCSI Driver calls
> > >to the Linux sg interface. 8 or 9 calls have to be mapped.
> > There is already an existing XHDI driver interface that basically provides the same functionality as the native atari interface. It is in use by EmuTOS, and also by recent linux-68k kernels. Sounds like this is very similar to what you are experimenting with.
> > In Aranym there is also some low-level SCSI support through the IDE interface. This is not based on Natfeats, but on direct hardware emulation. I cannot tell though how good it is working, and some low-level commands might not be implemented.
> > Uwe Seimet <Uwe.Seimet@xxxxxxxxx> schrieb am 22:56 Montag, 17.August 2015:
> > Hi,
> > > > Looks to me as if the existing features are mainly related to the debugger.
> > > Thats maybe because Hatari does not need anything else yet. There are quite some more features implemented in eg. Aranym.
> > > > is there a preferred way of doing that, some kind of extension point, some guideline?
> > > I dont't think that there is a general guideline. There are is bit of documentation on Native Features Intro [ARAnyM Wiki] that covers the basic features. Most features use sub-id 0 to identify their interface version, and i would recommend to do this for any new feature. Anything else largely depends on what your feature implements.
> > I'm currently experimenting with a (Linux-only) SCSI Driver implementation
> > that gives seamless, direct access to devices. It maps SCSI Driver calls
> > to the Linux sg interface. 8 or 9 calls have to be mapped.
> > The basics are working already, see attached screenshot. I have not
> > dared yet to write something to a drive, though ;-).
> > Take care
> > Uwe