On 2019/3/23 1:16, Borislav Petkov wrote: > On Sat, Mar 23, 2019 at 12:19:01AM +0800, Pu Wen wrote: >>> Sounds to me like you're programming the initial APIC ID not >>> the same way as AMD do... >> >> In the same way. > > So why do you need to do something different than what AMD does?
Current physical id is computed via "phys_proc_id = initial_apicid >> bits". For 4-Die 2 socket system, the physical id of socket 2 is: initial_apicid >> bits = 0b1xxxxxx >> 6 = 1. The result is true. But for 2-Die 2 socket system, the physical id of socket 2 is: initial_apicid >> bits = 0b10xxxxx >> 5 = 2, and for 1-Die 2 socket system, the physical id of socket 2 is: initial_apicid >> bits = 0b100xxxx >> 4 = 4. The results are not correct any more. So the adjustment for the 1-Die/2-Die 2 socket system is needed. And just use ApicId[6], which already defined the right thing, as the socket ID. -- Regards, Pu Wen

