Rev 3623 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3623 | Rev 3675 | ||
|---|---|---|---|
| Line 94... | Line 94... | ||
| 94 | ipi_send_ipi(id,eid,ipi); |
94 | ipi_send_ipi(id,eid,ipi); |
| 95 | } |
95 | } |
| 96 | 96 | ||
| 97 | void ipi_broadcast_arch(int ipi ) |
97 | void ipi_broadcast_arch(int ipi ) |
| 98 | { |
98 | { |
| - | 99 | int id,eid; |
|
| - | 100 | int myid,myeid; |
|
| - | 101 | ||
| - | 102 | myid=ia64_get_cpu_id(); |
|
| - | 103 | myeid=ia64_get_cpu_eid(); |
|
| - | 104 | ||
| - | 105 | //printf("Sending ipi %d on %d\n",ipi,CPU->id); |
|
| - | 106 | for(id=0;id<256;id++) |
|
| - | 107 | for(eid=0;eid<256;eid++) |
|
| - | 108 | if((id!=myid) || (eid!=myeid)) |
|
| - | 109 | if(cpu_by_id_eid_list[id][eid]) |
|
| 99 | ipi_broadcast_arch_all(ipi); |
110 | ipi_send_ipi(id,eid,ipi); |
| - | 111 | ||
| 100 | } |
112 | } |
| 101 | 113 | ||
| 102 | 114 | ||
| 103 | void smp_init(void) |
115 | void smp_init(void) |
| 104 | { |
116 | { |
| - | 117 | if(!bootinfo->hello_configured) return; |
|
| - | 118 | //If we have not system prepared by hello, we are not able to start AP's |
|
| - | 119 | //this means we are running on simulator |
|
| - | 120 | ||
| 105 | sapic_init(); |
121 | sapic_init(); |
| 106 | ipi_broadcast_arch_all(bootinfo->wakeup_intno); |
122 | ipi_broadcast_arch_all(bootinfo->wakeup_intno); |
| 107 | volatile long long brk; |
123 | volatile long long brk; |
| 108 | for(brk=0;brk<100LL*1024LL*1024LL;brk++); //wait a while before CPUs starts |
124 | for(brk=0;brk<100LL*1024LL*1024LL;brk++); //wait a while before CPUs starts |
| 109 | 125 | ||