=================================================================== RCS file: /cvs/prex-old/boot/common/main.c,v retrieving revision 1.1.1.1.2.1 retrieving revision 1.2 diff -u -r1.1.1.1.2.1 -r1.2 --- prex-old/boot/common/main.c 2008/08/13 17:12:20 1.1.1.1.2.1 +++ prex-old/boot/common/main.c 2008/07/18 21:47:57 1.2 @@ -36,14 +36,8 @@ #include #include -#ifdef DEBUG -#define DPRINTF(a) printf a -#else -#define DPRINTF(a) -#endif - -paddr_t load_base; /* current load address */ -paddr_t load_start; /* start address for loading */ +u_long load_base; /* current load address */ +u_long load_start; /* start address for loading */ int nr_img; /* number of module images */ struct boot_info *boot_info; /* pointer to boot information. */ @@ -52,12 +46,12 @@ * Define memory block as reserved area. */ void -reserve_memory(paddr_t start, size_t size) +reserve_memory(u_long start, size_t size) { int i; - paddr_t mem_end; + u_long mem_end; - DPRINTF(("reserved memory: start=%x size=%x\n", start, size)); + printk("reserve_memory: start=%x size=%x\n", start, size); if (boot_info->main_mem.size == 0) panic("bad mem size"); @@ -66,7 +60,7 @@ if (start > mem_end) return; if (start + size > mem_end) - size = (size_t)(mem_end - start); + size = mem_end - start; for (i = 0; i < NRESMEM; i++) { if (boot_info->reserved[i].size == 0) { @@ -96,10 +90,8 @@ while (*c != '/' && *c != ' ') c++; *c = '\0'; - - DPRINTF(("loading: hdr=%x module=%x name=%s\n", - (int)hdr, (int)m, (char *)&m->name)); - + printk("load_image hdr=%x module=%x name=%s\n", + (int)hdr, (int)m, (char *)&m->name); if (elf_load((char *)hdr + sizeof(struct ar_hdr), m)) panic("Load error"); return 0; @@ -122,13 +114,12 @@ return; ram_disk = (struct mem_map *)&boot_info->ram_disk; - ram_disk->start = (paddr_t)hdr + sizeof(struct ar_hdr); + ram_disk->start = (u_long)hdr + sizeof(struct ar_hdr); ram_disk->size = size; reserve_memory(ram_disk->start, ram_disk->size); - DPRINTF(("RAM disk base=%x size=%x\n", ram_disk->start, - ram_disk->size)); + printk("RAM disk base=%x size=%x\n", ram_disk->start, ram_disk->size); } #endif /* CONFIG_RAMDISK */ @@ -138,7 +129,7 @@ * It reads each module file image and copy it to the appropriate * memory area. The image is built as generic archive (.a) file. * - * The image information is stored into the boot information area. + * The image information is strored into the boot information area. */ static void setup_image(void) @@ -159,7 +150,7 @@ /* * Load kernel image */ - hdr = (char *)((paddr_t)magic + 8); + hdr = (char *)((u_long)magic + 8); if (load_image((struct ar_hdr *)hdr, &boot_info->kernel)) panic("Can not load kernel"); @@ -169,7 +160,7 @@ len = atol((char *)&((struct ar_hdr *)hdr)->ar_size); if (len == 0) panic("Invalid OS image"); - hdr = (char *)((paddr_t)hdr + sizeof(struct ar_hdr) + len); + hdr = (char *)((u_long)hdr + sizeof(struct ar_hdr) + len); if (load_image((struct ar_hdr *)hdr, &boot_info->driver)) panic("Can not load driver"); @@ -183,10 +174,10 @@ len = atol((char *)&((struct ar_hdr *)hdr)->ar_size); if (len == 0) break; - hdr = (char *)((paddr_t)hdr + sizeof(struct ar_hdr) + len); + hdr = (char *)((u_long)hdr + sizeof(struct ar_hdr) + len); /* Pad to even boundary */ - hdr += ((paddr_t)hdr % 2); + hdr += ((u_long)hdr % 2); /* Check archive header */ if (strncmp((char *)&((struct ar_hdr *)hdr)->ar_fmag, @@ -210,9 +201,10 @@ boot_info->nr_tasks = i; +#if 0 if (boot_info->nr_tasks == 0) panic("No boot task found!"); - +#endif /* * Save information for boot modules. * This includes kernel, driver, and boot tasks. @@ -221,14 +213,15 @@ boot_info->modules.size = (size_t)(load_base - load_start); } -#ifdef DEBUG_BOOTINFO +#ifdef DEBUG_BOOT static void dump_image(struct module *m) { - printf("%s: entry=%x phys=%x size=%x text=%x data=%x textsz=%x datasz=%x bss=%x\n", - m->name, (int)m->entry, (int)m->phys, (int)m->size, - (int)m->text, (int)m->data, (int)m->textsz, - (int)m->datasz, (int)m->bsssz); + printk + ("%s: entry=%x phys=%x size=%x text=%x data=%x textsz=%x datasz=%x bss=%x\n", + m->name, (int)m->entry, (int)m->phys, (int)m->size, + (int)m->text, (int)m->data, (int)m->textsz, + (int)m->datasz, (int)m->bsssz); } static void @@ -237,18 +230,18 @@ struct module *m; int i; - printf("main memory start=%x size=%x\n", + printk("main memory start=%x size=%x\n", (int)boot_info->main_mem.start, (int)boot_info->main_mem.size); for (i = 0; i < NRESMEM; i++) { if (boot_info->reserved[i].size != 0) { - printf("reserved mem start=%x size=%x\n", + printk("reserved mem start=%x size=%x\n", (int)boot_info->reserved[i].start, (int)boot_info->reserved[i].size); } } - printf("ramdisk start=%x size=%x\n", + printk("ramdisk start=%x size=%x\n", (int)boot_info->ram_disk.start, (int)boot_info->ram_disk.size); @@ -267,36 +260,21 @@ void loader_main(void) { - paddr_t kernel_entry; + u_int kernel_entry; - DPRINTF(("Prex Boot Loader V1.00\n")); + printk("Prex Boot Loader V1.00\n"); load_base = 0; load_start = 0; nr_img = 0; - /* - * Get machine-dependent information. - */ setup_bootinfo(&boot_info); - - /* - * Load program image. - */ setup_image(); - -#ifdef DEBUG_BOOTINFO +#ifdef DEBUG_BOOT dump_bootinfo(); #endif - - /* - * Jump to the kernel entry point - * via machine-dependent code. - */ - kernel_entry = (paddr_t)phys_to_virt(boot_info->kernel.entry); - DPRINTF(("kernel_entry=%x\n", kernel_entry)); - DPRINTF(("Entering kernel...\n\n")); - start_kernel(kernel_entry, (paddr_t)boot_info); - - /* NOTREACHED */ + kernel_entry = (unsigned int)phys_to_virt(boot_info->kernel.entry); + printk("kernel_entry=%x\n", kernel_entry); + printk("Entering kernel...\n\n"); + start_kernel(kernel_entry, (unsigned int)boot_info); }