On ARMv8 we will need to handle the case there are two cells in the reg
property. This updates the code to handle this case by reading the #address-cells
property in the parent, then using this to check if the data is valid.
As part of this we will be unable to use the reg property as the cpu id it
may not be part of a continuous range. On some ARM systems using multiple
clusters of cores there could be gaps as the reg value is encoded to store
the hierarchy. There are 8 bits at each level, but it is highly likely there
will be fewer than 256 cores in each cluster.