Changeset b84aaba in mainline
- Timestamp:
- 2008-06-03T14:51:35Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5b86d10
- Parents:
- 49eec93
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/main/main.c
r49eec93 rb84aaba 79 79 #include <macros.h> 80 80 #include <adt/btree.h> 81 #include <console/klog.h>82 81 #include <smp/smp.h> 83 82 #include <ddi/ddi.h> … … 141 140 void main_bsp(void) 142 141 { 142 LOG(); 143 143 144 config.cpu_count = 1; 144 145 config.cpu_active = 1; … … 172 173 config.stack_base = ALIGN_UP(stack_safe, PAGE_SIZE); 173 174 175 version_print(); 176 177 LOG("\nconfig.base=%#" PRIp " config.kernel_size=%" PRIs 178 "\nconfig.stack_base=%#" PRIp " config.stack_size=%" PRIs, 179 config.base, config.kernel_size, 180 config.stack_base, config.stack_size); 181 174 182 context_save(&ctx); 175 183 context_set(&ctx, FADDR(main_bsp_separated_stack), config.stack_base, … … 187 195 void main_bsp_separated_stack(void) 188 196 { 189 task_t *k; 190 thread_t *t; 191 count_t i; 197 LOG(); 192 198 193 199 the_initialize(THE); … … 198 204 * commands. 199 205 */ 200 kconsole_init();206 LOG_EXEC(kconsole_init()); 201 207 202 208 /* … … 204 210 * starts adding its own handlers 205 211 */ 206 exc_init();212 LOG_EXEC(exc_init()); 207 213 208 214 /* 209 215 * Memory management subsystems initialization. 210 */ 211 arch_pre_mm_init(); 212 frame_init(); 216 */ 217 LOG_EXEC(arch_pre_mm_init()); 218 LOG_EXEC(frame_init()); 219 213 220 /* Initialize at least 1 memory segment big enough for slab to work. */ 214 slab_cache_init(); 215 btree_init(); 216 as_init(); 217 page_init(); 218 tlb_init(); 219 ddi_init(); 220 tasklet_init(); 221 arch_post_mm_init(); 222 223 version_print(); 224 printf("kernel: %.*p hardcoded_ktext_size=%zd KB, " 225 "hardcoded_kdata_size=%zd KB\n", sizeof(uintptr_t) * 2, 226 config.base, SIZE2KB(hardcoded_ktext_size), 227 SIZE2KB(hardcoded_kdata_size)); 228 printf("stack: %.*p size=%zd KB\n", sizeof(uintptr_t) * 2, 229 config.stack_base, SIZE2KB(config.stack_size)); 230 231 arch_pre_smp_init(); 232 smp_init(); 221 LOG_EXEC(slab_cache_init()); 222 LOG_EXEC(btree_init()); 223 LOG_EXEC(as_init()); 224 LOG_EXEC(page_init()); 225 LOG_EXEC(tlb_init()); 226 LOG_EXEC(ddi_init()); 227 LOG_EXEC(tasklet_init()); 228 LOG_EXEC(arch_post_mm_init()); 229 LOG_EXEC(arch_pre_smp_init()); 230 LOG_EXEC(smp_init()); 231 233 232 /* Slab must be initialized after we know the number of processors. */ 234 slab_enable_cpucache();235 236 printf("Detected % zu CPU(s), %lluMB free memory\n",233 LOG_EXEC(slab_enable_cpucache()); 234 235 printf("Detected %" PRIc " CPU(s), %" PRIu64" MB free memory\n", 237 236 config.cpu_count, SIZE2MB(zone_total_size())); 238 cpu_init();239 240 calibrate_delay_loop();241 clock_counter_init();242 timeout_init();243 scheduler_init();244 task_init();245 thread_init();246 futex_init();247 klog_init();237 238 LOG_EXEC(cpu_init()); 239 240 LOG_EXEC(calibrate_delay_loop()); 241 LOG_EXEC(clock_counter_init()); 242 LOG_EXEC(timeout_init()); 243 LOG_EXEC(scheduler_init()); 244 LOG_EXEC(task_init()); 245 LOG_EXEC(thread_init()); 246 LOG_EXEC(futex_init()); 248 247 249 248 if (init.cnt > 0) { 249 count_t i; 250 250 for (i = 0; i < init.cnt; i++) 251 printf("init[%zd].addr=%.*p, init[%zd].size=%zd\n", i, 252 sizeof(uintptr_t) * 2, init.tasks[i].addr, i, 253 init.tasks[i].size); 251 printf("init[%" PRIc "].addr=%#" PRIp 252 ", init[%" PRIc "].size=%#" PRIs "\n", 253 i, init.tasks[i].addr, 254 i, init.tasks[i].size); 254 255 } else 255 256 printf("No init binaries found\n"); 256 257 257 ipc_init();258 LOG_EXEC(ipc_init()); 258 259 259 260 /* 260 261 * Create kernel task. 261 262 */ 262 k= task_create(AS_KERNEL, "kernel");263 if (!k )264 panic(" can't create kernel task\n");263 task_t *kernel = task_create(AS_KERNEL, "kernel"); 264 if (!kernel) 265 panic("Can't create kernel task\n"); 265 266 266 267 /* 267 268 * Create the first thread. 268 269 */ 269 t = thread_create(kinit, NULL, k, 0, "kinit", true);270 if (! t)271 panic(" can't create kinit thread\n");272 thread_ready(t);270 thread_t *kinit_thread = thread_create(kinit, NULL, kernel, 0, "kinit", true); 271 if (!kinit_thread) 272 panic("Can't create kinit thread\n"); 273 LOG_EXEC(thread_ready(kinit_thread)); 273 274 274 275 /*
Note:
See TracChangeset
for help on using the changeset viewer.