3 #define HT_INIT_CONTROL 0x6c
5 #define HTIC_ColdR_Detect (1<<4)
6 #define HTIC_BIOSR_Detect (1<<5)
7 #define HTIC_INIT_Detect (1<<6)
10 static int cpu_init_detected(void)
13 htic = pci_read_config32(PCI_DEV(0, 0x18, 0), HT_INIT_CONTROL);
15 return !!(htic & HTIC_INIT_Detect);
18 static int bios_reset_detected(void)
21 htic = pci_read_config32(PCI_DEV(0, 0x18, 0), HT_INIT_CONTROL);
23 return (htic & HTIC_ColdR_Detect) && !(htic & HTIC_BIOSR_Detect);
26 static int cold_reset_detected(void)
29 htic = pci_read_config32(PCI_DEV(0, 0x18, 0), HT_INIT_CONTROL);
31 return !(htic & HTIC_ColdR_Detect);
34 static void distinguish_cpu_resets(unsigned node_id)
38 device = PCI_DEV(0, 0x18 + node_id, 0);
39 htic = pci_read_config32(device, HT_INIT_CONTROL);
40 htic |= HTIC_ColdR_Detect | HTIC_BIOSR_Detect | HTIC_INIT_Detect;
41 pci_write_config32(device, HT_INIT_CONTROL, htic);
44 static void set_bios_reset(void)
47 htic = pci_read_config32(PCI_DEV(0, 0x18, 0), HT_INIT_CONTROL);
48 htic &= ~HTIC_BIOSR_Detect;
49 pci_write_config32(PCI_DEV(0, 0x18, 0), HT_INIT_CONTROL, htic);