I've been running with the SABRESDB (i.MX6Q), and have recently shifted over to custom hardware that uses the i.MX6D. In both cases, u-boot tells me the CPU is i.MX6Q. The USB_ANALOG_DIGPROG (Chip Silicon Version) register reads 00630002, which according to arch/arm/include/asm/arch-mx6/sys_proto.h in u-boot implies that the SOC is an i.MX6Q. So, my guess is that both the i.MX6Q and i.MX6D have the same MAJOR field in the version (true?). If that is the case, then what other register can I look at to tell the difference between i.MX6Q and i.MX6D?
I tried probing the ARM MPIDR (Multiprocessor Affinity Register), but apparently that only tells me what CPU core I am running on, not how many cores.