The current static definitions for the following are too limiting:
#define CMI_MAX_CHIPS_NBITS 4 /* 16 chips packages max */
#define CMI_MAX_CORES_PER_CHIP_NBITS 3 /* 8 cores per chip max */
#define CMI_MAX_STRANDS_PER_CORE_NBITS 1 /* 2 strands per core max */
#define CMI_MAX_CHIPS (1 << CMI_MAX_CHIPS_NBITS)
#define CMI_MAX_CORES_PER_CHIP (1 << CMI_MAX_CORES_PER_CHIP_NBITS)
#define CMI_MAX_STRANDS_PER_CORE (1 << CMI_MAX_STRANDS_PER_CORE_NBITS)
These are static because they're needed early in boot, before mp_startup.
The information is available from the MADT which is what we're already
effectively iterating over in mp_startup, so we should be able to
make this dynamic.