On 11.4.2004 at 21:28 Marcel Kilgus wrote:

> I'm no hardware guy, but just for the sake of argument this chip
> looks like it could provide USB host functionality with a not too
> complex CPU interface. There's even a document with complete
> schematics that describes on how to interface it with a DragonBall
> CPU.
>
>http://www.semiconductors.philips.com/cgi-bin/pldb/pip/ISP1161a.html
>
>I have no clue how difficult the software side would be.
>
>Marcel

To be honest, I have not looked at Philips for USB chips, having had rather
nasty experiences recently with CAN bus chips - that "let's make things
better" motto should really sometimes be, "let's leave things alone"...

I had a quick look and downloaded the files - great tip. I had previously
looked at the ISP1160 (which is only a host adapter, not a combined host /
device), which can be used to provide USB functionality on an ISA card - a
host-only adapter would already be sufficient. It may even be possible to
connect this chip onto a regular QL. I will try to get some data on the
cost and availability of the chip, unfortunately Philips does not offer an
on-line quote for this chip either (just like they didn't for the 1160).

As far as the software side goes, I think it would be extremely difficult
if not impossible to put up a complete host stack under SMSQDOS without
some serious changes to SMSQDOS (which it admittedly needs badly), as we
again have a lack of clear layering - something that is a common thread
from file systems down to TCP/IP.
Let me make this clearer: it is not possible to cleanly have one driver
interface with another and then operate as a driver stack (in this case
'driver' refers to the way SMSQDOS defines the term), which is paramount
with things such as USB, where only a hardware interface is defined, and
not it's ultimate function. To illustrate: the functions of a USB printer
are rather different than the ones of a USB storage device, or a USB mouse,
yet they all communicate using a USB interface, but all the possile
functions cannot be integrated into one monolythic drivers, mostly because
they are not known in advance. Because of this, with each new device, a
'driver stack' is created with pre-existing drivers, and new, device
speciffic drivers, which interface with each other.
Simplifying this down to SMSQDOS-speak: a complete USB driver stack has a
hardware driver, and, a set of 'sub-drivers' if you will, that handle
various classes of devices, and then a set od 'sub-sub drivers' that handle
various devices of the same class, and then, we can have a 'sub-sub-sub
driver', for instance to set up a file system on a suitable device within a
suitable class, etc.
Under SMSQDOS it is very difficult (AFAIK impossible cleanly) for multiple
drivers to address a single piece of hardware, without some sort of
arbitrating mechanism 'on the side' which operates unbeknownst to the OS
and just between the drivers themselves. Alternatively, a hardware
abstraction driver could be made, that provides a multiple access virtual
device, to which the various other drivers then interface, and manages the
arbitration as to which drivers can do what and when to the hardware or
each other - although this is possible, it is subject to all sorts of silly
limitations, as soon as a directory device enters the picture (slaving,
DEFBs, name lengths etc).

All that being said, it may well be possible to _relatively_ simply
interface to a single class of devices, for instance, USB storage devices
such as USB Flash keys or hard drives, but probably NOT USB flash card
readers per se. This is because a 'stack' of sorts for a speciffic class of
devices can be 'fused together' into a single device driver, that could
operate under the confines of SMSQDOS, in it's current state. Even so,
there would be no guarantees that every generic device of the storage class
would work, so if you go out and just buy a USB Flash key, wether it works
or not may depend on what kind of internal circuitry it has.

_______________________________________________
QL-Users Mailing List

Reply via email to