[PATCH 1/10] Remove sysmap support
Anton Blanchard
anton at samba.org
Sun Apr 11 14:02:26 EST 2010
We have had in kernel kallsyms for years, and the less code that has to deal
with our fragile memory map the better.
Signed-off-by: Anton Blanchard <anton at samba.org>
---
Index: yaboot/include/yaboot.h
===================================================================
--- yaboot.orig/include/yaboot.h 2010-04-01 12:43:35.000000000 +1100
+++ yaboot/include/yaboot.h 2010-04-01 12:43:36.000000000 +1100
@@ -49,7 +49,6 @@
struct boot_param_t {
struct boot_fspec_t kernel;
struct boot_fspec_t rd;
- struct boot_fspec_t sysmap;
char* args;
};
Index: yaboot/man/yaboot.conf.5
===================================================================
--- yaboot.orig/man/yaboot.conf.5 2010-04-01 12:43:35.000000000 +1100
+++ yaboot/man/yaboot.conf.5 2010-04-01 12:43:36.000000000 +1100
@@ -562,10 +562,6 @@ print to the user when asking him to pre
Press ENTER to continue.
.TP
-.BI "sysmap=" filename
-Specifies the path for the System.map file that goes with the kernel
-image (\fIimage=\fR). This is for 2.4 kernels with a kernel debugger only.
-.TP
.BI "single-key"
Enables booting the image by hitting a single key when the cursor is at the
first character in the input line, without the need to press <ENTER>
Index: yaboot/second/cfg.c
===================================================================
--- yaboot.orig/second/cfg.c 2010-04-01 12:43:35.000000000 +1100
+++ yaboot/second/cfg.c 2010-04-01 12:43:36.000000000 +1100
@@ -92,7 +92,6 @@ CONFIG cf_image[] =
{cft_flag, "pause-after", NULL},
{cft_strg, "pause-message", NULL},
{cft_flag, "novideo", NULL},
- {cft_strg, "sysmap", NULL},
{cft_end, NULL, NULL}};
static char flag_set;
Index: yaboot/second/yaboot.c
===================================================================
--- yaboot.orig/second/yaboot.c 2010-04-01 12:43:35.000000000 +1100
+++ yaboot/second/yaboot.c 2010-04-01 12:43:36.000000000 +1100
@@ -663,7 +663,6 @@ int get_params(struct boot_param_t* para
static int first = 1;
static char imagepath[1024];
static char initrdpath[1024];
- static char sysmappath[1024];
static char manualinitrd[1024];
static int definitrd = 1, hasarg = 0;
@@ -672,7 +671,6 @@ int get_params(struct boot_param_t* para
params->args = "";
params->kernel.part = -1;
params->rd.part = -1;
- params->sysmap.part = -1;
defpart = boot.part;
cmdinit();
@@ -1015,16 +1013,6 @@ int get_params(struct boot_param_t* para
return 0;
}
}
- p = cfg_get_strg(label, "sysmap");
- if (p && *p) {
- DEBUG_F("Parsing sysmap path <%s>\n", p);
- strncpy(sysmappath, p, 1024);
- if (!parse_device_path(sysmappath, defdevice, defpart,
- "/boot/System.map", ¶ms->sysmap)) {
- prom_printf("%s: Unable to parse\n", imagepath);
- return 0;
- }
- }
}
return 0;
}
@@ -1044,8 +1032,6 @@ yaboot_text_ui(void)
static struct boot_param_t params;
void *initrd_base;
unsigned long initrd_size;
- void *sysmap_base;
- unsigned long sysmap_size;
kernel_entry_t kernel_entry;
struct bi_record* birec;
char* loc=NULL;
@@ -1058,8 +1044,6 @@ yaboot_text_ui(void)
for (;;) {
initrd_size = 0;
initrd_base = 0;
- sysmap_base = 0;
- sysmap_size = 0;
if (get_params(¶ms))
return;
@@ -1122,55 +1106,6 @@ yaboot_text_ui(void)
file.fs->close(&file);
memset(&file, 0, sizeof(file));
- /* If sysmap, load it (only if booting a vmlinux).
- */
- if (flat_vmlinux && params.sysmap.file) {
- prom_printf("Loading System.map ...\n");
- if(strlen(boot.file) && !strcmp(boot.file,"\\\\") && params.sysmap.file[0] != '/'
- && params.sysmap.file[0] != '\\') {
- if (loc) free(loc);
- loc=(char*)malloc(strlen(params.sysmap.file)+3);
- if (!loc) {
- prom_printf ("malloc error\n");
- goto next;
- }
- strcpy(loc,boot.file);
- strcat(loc,params.sysmap.file);
- free(params.sysmap.file);
- params.sysmap.file=loc;
- }
-
- result = open_file(¶ms.sysmap, &file);
- if (result != FILE_ERR_OK) {
- prom_printf("%s:%d,", params.sysmap.dev, params.sysmap.part);
- prom_perror(result, params.sysmap.file);
- }
- else {
- sysmap_base = prom_claim(loadinfo.base+loadinfo.memsize, 0x100000, 0);
- if (sysmap_base == (void *)-1) {
- prom_printf("Claim failed for sysmap memory\n");
- prom_pause();
- sysmap_base = 0;
- } else {
- sysmap_size = file.fs->read(&file, 0xfffff, sysmap_base);
- if (sysmap_size == 0)
- sysmap_base = 0;
- else
- ((char *)sysmap_base)[sysmap_size++] = 0;
- }
- file.fs->close(&file);
- memset(&file, 0, sizeof(file));
- }
- if (sysmap_base) {
- prom_printf("System.map loaded at %p, size: %lu Kbytes\n",
- sysmap_base, sysmap_size >> 10);
- loadinfo.memsize += _ALIGN(0x100000, 0x1000);
- } else {
- prom_printf("System.map load failed !\n");
- prom_pause();
- }
- }
-
/* If ramdisk, load it (only if booting a vmlinux). For now, we
* can't tell the size it will be so we claim an arbitrary amount
* of 4Mb.
@@ -1271,13 +1206,6 @@ yaboot_text_ui(void)
birec->size = sizeof(struct bi_record) + sizeof(ulong);
birec = (struct bi_record *)((ulong)birec + birec->size);
- if (sysmap_base) {
- birec->tag = BI_SYSMAP;
- birec->data[0] = (ulong)sysmap_base;
- birec->data[1] = sysmap_size;
- birec->size = sizeof(struct bi_record) + sizeof(ulong)*2;
- birec = (struct bi_record *)((ulong)birec + birec->size);
- }
birec->tag = BI_LAST;
birec->size = sizeof(struct bi_record);
birec = (struct bi_record *)((ulong)birec + birec->size);
More information about the Yaboot-devel
mailing list