Rev 3022 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3022 | Rev 4055 | ||
---|---|---|---|
Line 62... | Line 62... | ||
62 | if (config.cpu_active == 1) { |
62 | if (config.cpu_active == 1) { |
63 | #endif /* CONFIG_SMP */ |
63 | #endif /* CONFIG_SMP */ |
64 | cpus = (cpu_t *) malloc(sizeof(cpu_t) * config.cpu_count, |
64 | cpus = (cpu_t *) malloc(sizeof(cpu_t) * config.cpu_count, |
65 | FRAME_ATOMIC); |
65 | FRAME_ATOMIC); |
66 | if (!cpus) |
66 | if (!cpus) |
67 | panic("malloc/cpus"); |
67 | panic("Cannot allocate CPU structures."); |
68 | 68 | ||
69 | /* initialize everything */ |
69 | /* initialize everything */ |
70 | memsetb((uintptr_t) cpus, sizeof(cpu_t) * config.cpu_count, 0); |
70 | memsetb(cpus, sizeof(cpu_t) * config.cpu_count, 0); |
71 | 71 | ||
72 | for (i = 0; i < config.cpu_count; i++) { |
72 | for (i = 0; i < config.cpu_count; i++) { |
73 | cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES, FRAME_KA | FRAME_ATOMIC); |
73 | cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES, FRAME_KA | FRAME_ATOMIC); |
74 | 74 | ||
75 | cpus[i].id = i; |
75 | cpus[i].id = i; |
Line 84... | Line 84... | ||
84 | 84 | ||
85 | #ifdef CONFIG_SMP |
85 | #ifdef CONFIG_SMP |
86 | } |
86 | } |
87 | #endif /* CONFIG_SMP */ |
87 | #endif /* CONFIG_SMP */ |
88 | 88 | ||
89 | CPU = &cpus[config.cpu_active-1]; |
89 | CPU = &cpus[config.cpu_active - 1]; |
90 | 90 | ||
91 | CPU->active = 1; |
91 | CPU->active = 1; |
92 | CPU->tlb_active = 1; |
92 | CPU->tlb_active = 1; |
93 | 93 | ||
94 | cpu_identify(); |
94 | cpu_identify(); |
Line 102... | Line 102... | ||
102 | 102 | ||
103 | for (i = 0; i < config.cpu_count; i++) { |
103 | for (i = 0; i < config.cpu_count; i++) { |
104 | if (cpus[i].active) |
104 | if (cpus[i].active) |
105 | cpu_print_report(&cpus[i]); |
105 | cpu_print_report(&cpus[i]); |
106 | else |
106 | else |
107 | printf("cpu%d: not active\n", i); |
107 | printf("cpu%u: not active\n", i); |
108 | } |
108 | } |
109 | } |
109 | } |
110 | 110 | ||
111 | /** @} |
111 | /** @} |
112 | */ |
112 | */ |