From: Jorrit Herder Date: Wed, 3 Aug 2005 14:17:28 +0000 (+0000) Subject: Without /dev/boot ... X-Git-Tag: v3.1.0~465 X-Git-Url: http://zhaoyanbai.com/repos/Bv9ARM.ch11.html?a=commitdiff_plain;h=1ae4d41d0d2520047353031b84604907038fd048;p=minix.git Without /dev/boot ... --- diff --git a/include/minix/config.h b/include/minix/config.h index 3f92ec9f0..14d545c7c 100755 --- a/include/minix/config.h +++ b/include/minix/config.h @@ -64,7 +64,7 @@ /* Include or exclude an image of /dev/boot in the boot image. * Please update the makefile in /usr/src/tools/ as well. */ -#define ENABLE_BOOTDEV 1 +#define ENABLE_BOOTDEV 0 /* load image of /dev/boot at boot time */ /* DMA_SECTORS may be increased to speed up DMA based drivers. */ #define DMA_SECTORS 1 /* DMA buffer size (must be >= 1) */ diff --git a/kernel/table.c b/kernel/table.c index 077061131..fd88b26ee 100755 --- a/kernel/table.c +++ b/kernel/table.c @@ -68,19 +68,19 @@ PUBLIC char *t_stack[TOT_STACK_SPACE / sizeof(char *)]; */ PUBLIC struct boot_image image[] = { /* process nr, pc, flags, qs, queue, stack, traps, ipc mask, name */ - { IDLE, idle_task, IDLE_F, 32, IDLE_Q, IDLE_S, 0, 0, "IDLE" }, - { CLOCK, clock_task, TASK_F, 0, TASK_Q, TASK_S, TASK_T, 0, "CLOCK" }, - { SYSTEM, sys_task, TASK_F, 0, TASK_Q, TASK_S, TASK_T, 0, "SYSTEM" }, - { HARDWARE, 0, TASK_F, 0, TASK_Q, HRDW_S, 0, 0, "KERNEL" }, - { PM_PROC_NR, 0, SERV_F, 16, 3, 0, SERV_T, SERV_M, "PM" }, - { FS_PROC_NR, 0, SERV_F, 16, 4, 0, SERV_T, SERV_M, "FS" }, - { SM_PROC_NR, 0, SERV_F, 16, 3, 0, SERV_T, SYST_M, "SM" }, - { TTY_PROC_NR, 0, SERV_F, 16, 1, 0, SERV_T, SYST_M, "TTY" }, - { MEM_PROC_NR, 0, SERV_F, 16, 2, 0, SERV_T, DRIV_M, "MEMORY" }, - { LOG_PROC_NR, 0, SERV_F, 16, 2, 0, SERV_T, SYST_M, "LOG" }, - { AT_PROC_NR, 0, SERV_F, 16, 2, 0, SERV_T, DRIV_M, "AT_WINI" }, - { BIOS_PROC_NR, 0, SERV_F, 16, 2, 0, SERV_T, SYST_M, "BIOS" }, - { INIT_PROC_NR, 0, USER_F, 8, USER_Q, 0, USER_T, USER_M, "INIT" }, + { IDLE, idle_task, IDLE_F, 32, IDLE_Q, IDLE_S, 0, 0, "IDLE" }, + { CLOCK, clock_task, TASK_F, 0, TASK_Q, TASK_S, TASK_T, 0, "CLOCK" }, + { SYSTEM, sys_task, TASK_F, 0, TASK_Q, TASK_S, TASK_T, 0, "SYSTEM" }, + { HARDWARE, 0, TASK_F, 0, TASK_Q, HRDW_S, 0, 0, "KERNEL" }, + { PM_PROC_NR, 0, SERV_F, 16, 3, 0, SERV_T, SERV_M, "pm" }, + { FS_PROC_NR, 0, SERV_F, 16, 4, 0, SERV_T, SERV_M, "fs" }, + { SM_PROC_NR, 0, SERV_F, 16, 3, 0, SERV_T, SYST_M, "sm" }, + { TTY_PROC_NR, 0, SERV_F, 16, 1, 0, SERV_T, SYST_M, "tty" }, + { MEM_PROC_NR, 0, SERV_F, 16, 2, 0, SERV_T, DRIV_M, "memory" }, + { LOG_PROC_NR, 0, SERV_F, 16, 2, 0, SERV_T, SYST_M, "log" }, + { AT_PROC_NR, 0, SERV_F, 16, 2, 0, SERV_T, DRIV_M, "boot" }, + { BIOS_PROC_NR, 0, SERV_F, 16, 2, 0, SERV_T, SYST_M, "bios" }, + { INIT_PROC_NR, 0, USER_F, 8, USER_Q, 0, USER_T, USER_M, "init" }, }; /* Verify the size of the system image table at compile time. If the number diff --git a/servers/fs/dmap.c b/servers/fs/dmap.c index 5aed75220..8fa820eb7 100644 --- a/servers/fs/dmap.c +++ b/servers/fs/dmap.c @@ -120,8 +120,7 @@ PUBLIC void map_controllers() { /* Map drivers to controllers and update the dmap table to that selection. * For each controller, the environment variable set by the boot monitor is - * analyzed to see what type of Winchester disk is attached. Then, the name - * of the driver that handles the device is looked up in the local drivertab. + * analyzed to see what type of Winchester disk is attached. * Finally, the process number of the driver is looked up, and, if found, is * installed in the dmap table. */ @@ -134,8 +133,8 @@ PUBLIC void map_controllers() char wini_type[8]; char proc_name[8]; } drivertab[] = { - { "at", "AT_WINI" }, /* AT Winchester */ - { "bios", "BIOS" }, + { "at", "boot" }, /* AT Winchester */ + { "bios", "bios" }, /* BIOS Winchester */ { "esdi", "..." }, { "xt", "..." }, { "aha1540", "..." }, @@ -144,12 +143,15 @@ PUBLIC void map_controllers() }; for (c=0; c < NR_CTRLRS; c++) { + + /* See if there is a mapping for this controller. */ ctrlr_nr[1] = '0' + c; if ((s = get_mon_param(ctrlr_nr, ctrlr_type, 8)) != OK) { - if (s != ESRCH) - panic(__FILE__,"couldn't get monitor param", s); + if (s != ESRCH) panic(__FILE__,"couldn't get monitor param", s); continue; } + + /* If there is a mapping, look up the driver with the given name. */ for (dp = drivertab; dp < drivertab + sizeof(drivertab)/sizeof(drivertab[0]); dp++) { if (strcmp(ctrlr_type, dp->wini_type) == 0) { /* found driver name */ diff --git a/servers/pm/main.c b/servers/pm/main.c index ec49e9ce6..308be8bde 100644 --- a/servers/pm/main.c +++ b/servers/pm/main.c @@ -191,6 +191,7 @@ PRIVATE void pm_init() if (OK != (s=sys_getimage(image))) panic(__FILE__,"PM: warning, couldn't get image table: %d\n", s); procs_in_use = 0; /* start populating table */ + printf("Builing process table:"); /* show what's happening */ for (ip = &image[0]; ip < &image[NR_BOOT_PROCS]; ip++) { if (ip->proc_nr >= 0) { /* task have negative nrs */ procs_in_use += 1; /* found user process */ @@ -228,8 +229,10 @@ PRIVATE void pm_init() mess.PR_PID = rmp->mp_pid; if (OK != (s=send(FS_PROC_NR, &mess))) panic(__FILE__,"PM can't sync up with FS", s); + printf(" %s", ip->proc_name); /* display process name */ } } + printf(".\n"); /* last process done */ /* Override some details. PM is somewhat special. */ mproc[PM_PROC_NR].mp_pid = PM_PID; /* magically override pid */ @@ -252,11 +255,13 @@ PRIVATE void pm_init() } /* Initialize tables to all physical memory and print memory information. */ + printf("Parsing memory:"); mem_init(mem_chunks, &free_clicks); total_clicks = minix_clicks + free_clicks; - printf("Memory size=%uK ", click_to_round_k(total_clicks)); - printf("System services=%uK ", click_to_round_k(minix_clicks)); - printf("Available=%uK\n\n", click_to_round_k(free_clicks)); + printf(" total=%uK", click_to_round_k(total_clicks)); + printf(" system=%uK", click_to_round_k(minix_clicks)); + printf(" available=%uK", click_to_round_k(free_clicks)); + printf(".\n\n"); } diff --git a/tools/Makefile b/tools/Makefile index fc1227717..90ab4bfc4 100755 --- a/tools/Makefile +++ b/tools/Makefile @@ -17,7 +17,7 @@ PROGRAMS= ../kernel/kernel \ ../drivers/at_wini/at_wini \ ../drivers/bios_wini/bios_wini \ ../servers/init/init \ - bootdev.img +# bootdev.img usage: @echo " " >&2