On Dec 7, 2007 12:50 AM, Yinghai Lu <yhlu.kernel at gmail.com> wrote: > > On Dec 6, 2007 4:33 PM, Eric W. Biederman <ebiederm at xmission.com> wrote: ... > > > > My feel is that if it is for legacy interrupts only it should not be a problem. > > Let's investigate and see if we can unconditionally enable this quirk > > for all opteron systems. > > i checked that bit > > http://www.openbios.org/viewvc/trunk/LinuxBIOSv2/src/northbridge/amd/amdk8/coherent_ht.c?revision=2596&view=markup > > static void enable_apic_ext_id(u8 node) > { > #if ENABLE_APIC_EXT_ID==1 > #warning "FIXME Is the right place to enable apic ext id here?" > > u32 val; > > val = pci_read_config32(NODE_HT(node), 0x68); > val |= (HTTC_APIC_EXT_SPUR | HTTC_APIC_EXT_ID | HTTC_APIC_EXT_BRD_CST); > pci_write_config32(NODE_HT(node), 0x68, val); > #endif > } > > that bit only be should be set when apic id is lifted and cpu apid is > using 8 bits and that mean broadcast is 0xff instead 0x0f. > for example 8 socket dual core system or 4 socket quad core > system,that you should make BSP start from 0x04, so cpus apic id will > be [0x04, 0x13) > > > So if you want to enable that in early_quirk, you need to > make sure apic id is using 8 bits by check if the bit 16 (HTTC_APIC_ID) is set. it should be bit 18 (HTTC_APIC_EXT_ID) YH