diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-02-23 00:40:54 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-02-23 00:40:54 +0000 |
commit | 529c593ece216e4aaffd36bd940cb94f1fa63129 (patch) | |
tree | 78f1c0b805f5656aa7b0417a043c5346f700a2cf /arch/ppc/chrpboot | |
parent | 0bd079751d25808d1972baee5c4eaa1db2227257 (diff) |
Merge with 2.3.43. I did ignore all modifications to the qlogicisp.c
driver due to the Origin A64 hacks.
Diffstat (limited to 'arch/ppc/chrpboot')
-rw-r--r-- | arch/ppc/chrpboot/Makefile | 5 | ||||
-rw-r--r-- | arch/ppc/chrpboot/main.c | 13 |
2 files changed, 14 insertions, 4 deletions
diff --git a/arch/ppc/chrpboot/Makefile b/arch/ppc/chrpboot/Makefile index 70ae95eb8..5a7f063fc 100644 --- a/arch/ppc/chrpboot/Makefile +++ b/arch/ppc/chrpboot/Makefile @@ -20,7 +20,7 @@ CFLAGS = $(CPPFLAGS) -O -fno-builtin -DSTDC_HEADERS LD_ARGS = -Ttext 0x00400000 OBJCOPY = $(CROSS_COMPILE)objcopy -OBJS = crt0.o start.o main.o misc.o ../coffboot/string.o ../coffboot/zlib.o image.o # initrd.o +OBJS = crt0.o start.o main.o misc.o ../coffboot/string.o ../coffboot/zlib.o image.o sysmap.o LIBS = $(TOPDIR)/lib/lib.a ifeq ($(CONFIG_PPC64),y) @@ -65,6 +65,9 @@ mknote: mknote.c image.o: piggyback ../coffboot/vmlinux.gz ./piggyback image < ../coffboot/vmlinux.gz | $(AS) -o image.o +sysmap.o: piggyback ../../../System.map + ./piggyback sysmap < ../../../System.map | $(AS) -o sysmap.o + initrd.o: ramdisk.image.gz piggyback ./piggyback initrd < ramdisk.image.gz | $(AS) -o initrd.o diff --git a/arch/ppc/chrpboot/main.c b/arch/ppc/chrpboot/main.c index bf506552a..d54a429a9 100644 --- a/arch/ppc/chrpboot/main.c +++ b/arch/ppc/chrpboot/main.c @@ -34,6 +34,8 @@ extern char image_data[]; extern int image_len; extern char initrd_data[]; extern int initrd_len; +extern char sysmap_data[]; +extern int sysmap_len; chrpboot(int a1, int a2, void *prom) @@ -78,12 +80,12 @@ chrpboot(int a1, int a2, void *prom) { struct bi_record *rec; - rec = (struct bi_record *)PAGE_ALIGN((unsigned long)dst+len); - + rec = (struct bi_record *)_ALIGN((unsigned long)dst+len+(1<<20)-1,(1<<20)); + rec->tag = BI_FIRST; rec->size = sizeof(struct bi_record); rec = (struct bi_record *)((unsigned long)rec + rec->size); - + rec->tag = BI_BOOTLOADER_ID; sprintf( (char *)rec->data, "chrpboot"); rec->size = sizeof(struct bi_record) + strlen("chrpboot") + 1; @@ -95,6 +97,11 @@ chrpboot(int a1, int a2, void *prom) rec->size = sizeof(struct bi_record) + sizeof(unsigned long); rec = (struct bi_record *)((unsigned long)rec + rec->size); + rec->tag = BI_SYSMAP; + rec->data[0] = sysmap_data; + rec->data[1] = sysmap_len; + rec->size = sizeof(struct bi_record) + sizeof(unsigned long); + rec = (struct bi_record *)((unsigned long)rec + rec->size); rec->tag = BI_LAST; rec->size = sizeof(struct bi_record); rec = (struct bi_record *)((unsigned long)rec + rec->size); |