static int first_time = 1;
static int disable_siblings = !CONFIG_LOGICAL_CPUS;
+
void amd_sibling_init(device_t cpu, struct node_core_id id)
{
unsigned long i;
return id;
}
+unsigned int read_nb_cfg_54(void)
+{
+ msr_t msr;
+ msr = rdmsr(NB_CFG_MSR);
+ return ( ( msr.hi >> (54-32)) & 1);
+}
-
-#if 0
static int get_max_siblings(int nodes)
{
device_t dev;
nb_cfg_54 = read_nb_cfg_54();
-#if 0
- //it is for all e0 single core and nc_cfg_54 low is set, but in the auto.c stage we do not set that bit for it.
- if(nb_cfg_54 && (!disable_siblings) && (siblings == 0)) {
- //we need to check if e0 single core is there
- int i;
- for(i=0; i<nodes; i++) {
- if(is_e0_later_in_bsp(i)) {
- siblings = 1;
- break;
- }
- }
- }
-#endif
-
//contruct apicid_base
if((!disable_siblings) && (siblings>0) ) {
return apicid_base;
}
-#endif