use device size provided by the driver*

the driver should provide size & location, but presently does not, so
we also have code to second-guess the data given by the driver