From d99f9da3c18605f4448440b3a4158542b0d324ce Mon Sep 17 00:00:00 2001 From: Greg Watson Date: Fri, 6 Jun 2003 14:35:27 +0000 Subject: [PATCH] Don't load over LinuxBIOS. --- src/arch/ppc/boot/boot.c | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/src/arch/ppc/boot/boot.c b/src/arch/ppc/boot/boot.c index 9f4321daf8..79eea965b3 100644 --- a/src/arch/ppc/boot/boot.c +++ b/src/arch/ppc/boot/boot.c @@ -69,29 +69,15 @@ int elf_check_arch(Elf_ehdr *ehdr) void jmp_to_elf_entry(void *entry, unsigned long buffer) { - extern unsigned char _ram_seg, _eram_seg; - unsigned long lb_start, lb_size; - unsigned long adjust, adjusted_boot_notes; - unsigned long type; + void (*kernel_entry)(void); + kernel_entry = entry; - elf_boot_notes.hdr.b_checksum = - compute_ip_checksum(&elf_boot_notes, sizeof(elf_boot_notes)); + /* On ppc we don't currently support loading over LinuxBIOS. + * So ignore the buffer. + */ - type = 0x0E1FB007; - lb_start = (unsigned long)&_ram_seg; - lb_size = (unsigned long)(&_eram_seg - &_ram_seg); - adjust = buffer + lb_size - lb_start; - - adjusted_boot_notes = (unsigned long)&elf_boot_notes; - adjusted_boot_notes += adjust; - - printk_spew("entry = 0x%08lx\n", (unsigned long)entry); - printk_spew("lb_start = 0x%08lx\n", lb_start); - printk_spew("lb_size = 0x%08lx\n", lb_size); - printk_spew("adjust = 0x%08lx\n", adjust); - printk_spew("buffer = 0x%08lx\n", buffer); - printk_spew(" elf_boot_notes = 0x%08lx\n", (unsigned long)&elf_boot_notes); - printk_spew("adjusted_boot_notes = 0x%08lx\n", adjusted_boot_notes); + /* Jump to kernel */ + kernel_entry(); }