Currently device map addresses are set as
Reserved(16).HubIdx(8).DevIdx(8)
However, it might make more sense to redefine those as HubIdx(16).DevIdx(16) even if not all implementations are able to use the full address range (for example, ONIX current implementation is limited to 8bit dev indexes).
To retain compatibility across devices, the special device IDs could be defined as such:
-Invalid device: DevIdx is all binary ones
-HUB control device: DevIdx is Invalid device - 1 (all ones except LSB)
A specific implementation able only to use a subset of the ranges would perform automatic bit expansion/trimming when translating addresses to the 32-bit interface defined by the standard.
Currently device map addresses are set as Reserved(16).HubIdx(8).DevIdx(8)
However, it might make more sense to redefine those as HubIdx(16).DevIdx(16) even if not all implementations are able to use the full address range (for example, ONIX current implementation is limited to 8bit dev indexes).
To retain compatibility across devices, the special device IDs could be defined as such: -Invalid device: DevIdx is all binary ones -HUB control device: DevIdx is Invalid device - 1 (all ones except LSB)
A specific implementation able only to use a subset of the ranges would perform automatic bit expansion/trimming when translating addresses to the 32-bit interface defined by the standard.