Author: myles
Date: 2009-09-23 22:32:21 +0200 (Wed, 23 Sep 2009)
New Revision: 4663

Modified:
   trunk/coreboot-v2/src/arch/i386/boot/boot.c
   trunk/coreboot-v2/src/boot/selfboot.c
Log:
Fix the bounce_size global so that the bounce buffer works with CBFS.

Make self_boot() static.

Signed-off-by: Myles Watson <myle...@gmail.com>
Acked-by: Ronald G. Minnich <rminn...@gmail.com>


Modified: trunk/coreboot-v2/src/arch/i386/boot/boot.c
===================================================================
--- trunk/coreboot-v2/src/arch/i386/boot/boot.c 2009-09-23 18:54:18 UTC (rev 
4662)
+++ trunk/coreboot-v2/src/arch/i386/boot/boot.c 2009-09-23 20:32:21 UTC (rev 
4663)
@@ -68,7 +68,7 @@
        
 }
 
-void jmp_to_elf_entry(void *entry, unsigned long buffer, unsigned long 
bounce_size)
+void jmp_to_elf_entry(void *entry, unsigned long buffer, unsigned long size)
 {
        extern unsigned char _ram_seg, _eram_seg;
        unsigned long lb_start, lb_size;
@@ -79,7 +79,7 @@
 
        lb_start = (unsigned long)&_ram_seg;
        lb_size = (unsigned long)(&_eram_seg - &_ram_seg);
-       adjust = buffer + bounce_size - lb_start;
+       adjust = buffer +  size - lb_start;
 
        adjusted_boot_notes = (unsigned long)&elf_boot_notes;
        adjusted_boot_notes += adjust; 

Modified: trunk/coreboot-v2/src/boot/selfboot.c
===================================================================
--- trunk/coreboot-v2/src/boot/selfboot.c       2009-09-23 18:54:18 UTC (rev 
4662)
+++ trunk/coreboot-v2/src/boot/selfboot.c       2009-09-23 20:32:21 UTC (rev 
4663)
@@ -71,9 +71,10 @@
        unsigned short ip_checksum;
 };
 
+static int selfboot(struct lb_memory *mem, struct cbfs_payload *payload);
+
 void * cbfs_load_payload(struct lb_memory *lb_mem, const char *name)
 {
-       int selfboot(struct lb_memory *mem, struct cbfs_payload *payload);
        struct cbfs_payload *payload;
 
        payload = (struct cbfs_payload *)cbfs_find_file(name, 
CBFS_TYPE_PAYLOAD);
@@ -110,7 +111,7 @@
 
 static unsigned long bounce_size, bounce_buffer;
 
-static void get_bounce_buffer(struct lb_memory *mem, unsigned long bounce_size)
+static void get_bounce_buffer(struct lb_memory *mem, unsigned long req_size)
 {
        unsigned long lb_size;
        unsigned long mem_entries;
@@ -118,7 +119,7 @@
        int i;
        lb_size = (unsigned long)(&_eram_seg - &_ram_seg);
        /* Double coreboot size so I have somewhere to place a copy to return 
to */
-       lb_size = bounce_size + lb_size;
+       lb_size = req_size + lb_size;
        mem_entries = (mem->size - sizeof(*mem))/sizeof(mem->map[0]);
        buffer = 0;
        for(i = 0; i < mem_entries; i++) {
@@ -142,6 +143,7 @@
                buffer = tbuffer;
        }
        bounce_buffer = buffer;
+       bounce_size = req_size;
 }
 
 static int valid_area(struct lb_memory *mem, unsigned long buffer,
@@ -424,7 +426,8 @@
        for(ptr = head->next; ptr != head; ptr = ptr->next) {
                if (!overlaps_coreboot(ptr)) continue;
                unsigned long bounce = ptr->s_dstaddr + ptr->s_memsz - lb_start;
-               if (bounce > required_bounce_size) required_bounce_size = 
bounce;
+               if (bounce > required_bounce_size)
+                       required_bounce_size = bounce;
        }
        get_bounce_buffer(mem, required_bounce_size);
        if (!bounce_buffer) {
@@ -458,14 +461,12 @@
                        size_t len;
                        len = ptr->s_filesz;
                        switch(ptr->compression) {
-#if CONFIG_COMPRESSED_PAYLOAD_LZMA==1
                                case CBFS_COMPRESS_LZMA: {
                                        printk_debug("using LZMA\n");
                                        unsigned long ulzma(unsigned char *src, 
unsigned char *dst);            
                                        len = ulzma(src, dest);
                                        break;
                                }
-#endif
 #if CONFIG_COMPRESSED_PAYLOAD_NRV2B==1
                                case CBFS_COMPRESS_NRV2B: {
                                        printk_debug("using NRV2B\n");
@@ -505,7 +506,7 @@
        return 1;
 }
 
-int selfboot(struct lb_memory *mem, struct cbfs_payload *payload)
+static int selfboot(struct lb_memory *mem, struct cbfs_payload *payload)
 {
        u32 entry=0;
        struct segment head;


-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to