1. 26 Feb, 2003 1 commit
    • Mikael Pettersson's avatar
      [PATCH] APIC ID fixes · c6f58929
      Mikael Pettersson authored
      1) apic_write_around(APIC_ID, boot_cpu_physical_apicid) places the APIC
      value in the lower 8 bits of APIC_ID, when it should be in the upper 8. As
      as result, it effectively forces the APIC id to always be 0 for the boot
      CPU, which is fatal on SMP AMD boxes.
      
       Fix: don't do the write at all. The APIC_ID value should be right already.
      
      2) phys_cpu_present_map = 1 means we always set bit 0, but later on
         in setup_local_APIC() we do
              if (!clustered_apic_mode &&
                  !test_bit(GET_APIC_ID(apic_read(APIC_ID)), &phys_cpu_present_map))
                      BUG();
      and the bug is triggered if the APIC_ID is not zero.
      
       Fix: initialize 'phys_cpu_present_map' correctly.
      c6f58929
  2. 25 Feb, 2003 39 commits