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 |