Starting 2nd processor on Dual P3 system

Starting 2nd processor on Dual P3 system

Post by Bill Sakod » Fri, 03 Aug 2001 00:04:29



Lynx OS runs only single processors.  Under Lynx, I am trying to start
the second processor on a Dual P3 system to run as co-processor.  The
second processor will have little interaction with the main system, so I
believe the main challenge is getting the processor started.

According to Intel documentation, the running processor should send a
Start IPI via APIC.  I have tried this, but there are no signs of
processor 2 starting. I am trying to vector it to 0x1000 physical, where
there is a jump-to-yourself instruction planted.  I hope to find
processor 2 looping there.

In Linux 2.4.5 smpboot.c, the Start IPI is used only as a secondary
method of startup.  The primary method twiddles some stuff in the CMOS
and low memory, which I do not understand; then raises and lowers INIT.
Can someone explain what the first few lines - CMOS_WRITE and setting
phys 0x469 and 0x467 are doing?  Is this standard BIOS stuff, or is it
Linunx-specific?

Any other suggestions on processor startup appreciated.

Thanks - Bill Sakoda

/*   From smpboot.c; */

 CMOS_WRITE(0xa, 0xf);
 local_flush_tlb();
 Dprintk("1.\n");
 *((volatile unsigned short *) phys_to_virt(0x469)) = start_eip >> 4;
 Dprintk("2.\n");
 *((volatile unsigned short *) phys_to_virt(0x467)) = start_eip & 0xf;
 Dprintk("3.\n");

 /*
  * Be paranoid about clearing APIC errors.
  */
 if (APIC_INTEGRATED(apic_version[apicid])) {
  apic_read_around(APIC_SPIV);
  apic_write(APIC_ESR, 0);
  apic_read(APIC_ESR);
 }

 /*
  * Status is now clean
  */
 send_status = 0;
 accept_status = 0;
 boot_status = 0;

 /*
  * Starting actual IPI sequence...
  */

 Dprintk("Asserting INIT.\n");

 /*
  * Turn INIT on target chip
  */
 apic_write_around(APIC_ICR2, SET_APIC_DEST_FIELD(apicid));

 /*
  * Send IPI
  */
 apic_write_around(APIC_ICR, APIC_INT_LEVELTRIG | APIC_INT_ASSERT
    | APIC_DM_INIT);

 Dprintk("Waiting for send to finish...\n");

 
 
 

1. SMP: dual P3 system not booting

I have a system with two P3 (1GHz each) and 2GB RAM.

I installed Red Hat Linux 7.1 off the CDs, but the SMP kernel does not boot.  
The boot process gets through the following before halting:

:
Total of 2 processors activated (4010.80 Bogo MIPS).
Before bogocount -  setting activated=1.
Boot done.
ENABLING IO-APIC IRQs
...Changing IO_APIC physical APIC ID to 2... ok.
Synchronizing Arb IDs.
...TIMER: vector=49 pin1=2 pin2=0
<stops here>

Does anyone know what I need to do to get the SMP kernel working?

Thanks,

 ~ Bob

2. 3com ImpactIQ ISDN Terminal Adapter Question

3. High system time on dual processor system ?

4. KDE Solaris installation problem.

5. Best Dual Processor board and processor

6. colormap flashing

7. dual processor vs faster single processor

8. NFS performance loss

9. Dual processor to single processor!!

10. threads run just on one processor in dual system

11. dual processors: System too big ??

12. Recommendation for dual processor system.

13. FreeBSD + dual processor systems