Service_USB 16 - USB system module started

Service_USB 16 - USB system module started — Used to show other applications that a Module belonging to the USB-System has been started. It can be also launched again at an arbitrary point of time to cause a defined set of actions by other modules.

On Entry

R016 (reason code)
R1&80C00 (USB Service call)
R2
TagModule Type
0USB Main module
1USB Host controller driver
2USB Sub Host controller driver
3Hub Device Driver
R3
Module TypeAdditional data
0Unused
1USB Host controller driver class according table 20
2USB Host controller driver class according table 20
3Byte 3 is unused and must be set to 0. Byte 2 contains USB Class, Byte 1 contains USB Subclass and Byte 0 contains USB Protocol supported by this driver
R4
Module TypeAdditional data
0Unused
1USB Host controller driver class according table 20
2USB sub Host controller driver class. 0 for Simtec Philips ISP1161 ISA/Podule.
3Upper two Byte containing Vendor ID, lower two bytes Product ID for Vendor specific drivers or 0 if not Vendor specific.

On Exit

R0preserved
R1preserved to pass on (do not claim)
R2, R3, R4preserved

Use

This service call is produced by all core USB system modules. It is sent by the staring module after it has correctly initialised. User device drivers do not issue this service. Each type of USB component has a unique type identifier, if you write a module that you feel requires an allocation please contact Simtec Electronics for details.

Depending on the starting module's type, other modules may perform additional activities. Regardless of this the service call must not be claimed.

At the present time the main use of this service is for Host controller drivers starting so sub host controller drivers started beforehand may register themselves. The main cause of this behaviour is where sub handlers have been started before the main host handler, perhaps when loaded from ROM where start order cannot be determined.