I don't partake in PS/2 stuff, but this has a familiar ring to it. Could it be that the controller firmware or BIOS uses 6-byte CDBs exclusively? I've seen that this is the case for older SCSI controllers. The SCSI READ(6) command has only 21 bits to specify a block address, which works out to be exactly 1,073,741,824 bytes, or what we'd call "1 GB" in hard-disk parlance.