summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cpu/amd/car/copy_and_run.c8
-rw-r--r--src/cpu/x86/car/copy_and_run.c8
-rw-r--r--src/lib/nrv2b.c6
-rw-r--r--src/stream/rom_stream.c5
4 files changed, 10 insertions, 17 deletions
diff --git a/src/cpu/amd/car/copy_and_run.c b/src/cpu/amd/car/copy_and_run.c
index b81297c149..76b8a8b847 100644
--- a/src/cpu/amd/car/copy_and_run.c
+++ b/src/cpu/amd/car/copy_and_run.c
@@ -38,17 +38,15 @@ static void copy_and_run(void)
#else
__asm__ volatile (
- "leal _liseg, %0\n\t"
- "leal _iseg, %1\n\t"
+ "leal _liseg, %0\n\t"
+ "leal _iseg, %1\n\t"
: "=a" (src) , "=b" (dst)
);
print_debug_cp_run("src=",(uint32_t)src);
print_debug_cp_run("dst=",(uint32_t)dst);
- olen = unrv2b(src, dst, &ilen);
- print_debug_cp_run("linxbios_ram.nrv2b length = ", ilen);
-
+ olen = unrv2b(src, dst);
#endif
print_debug_cp_run("linxbios_ram.bin length = ", olen);
diff --git a/src/cpu/x86/car/copy_and_run.c b/src/cpu/x86/car/copy_and_run.c
index 98a47c9bc6..5c61177a10 100644
--- a/src/cpu/x86/car/copy_and_run.c
+++ b/src/cpu/x86/car/copy_and_run.c
@@ -4,6 +4,8 @@
*/
#if CONFIG_COMPRESS
+#define ENDIAN 0
+#define BITSIZE 32
#include "lib/nrv2b.c"
#endif
@@ -11,9 +13,7 @@ static void copy_and_run(unsigned cpu_reset)
{
uint8_t *src, *dst;
unsigned long dst_len;
- unsigned long ilen = 0, olen = 0, last_m_off = 1;
- uint32_t bb = 0;
- unsigned bc = 0;
+ unsigned long ilen, olen;
print_debug("Copying LinuxBIOS to ram.\r\n");
@@ -44,7 +44,7 @@ static void copy_and_run(unsigned cpu_reset)
// dump_mem(src, src+0x100);
- unrv2b(src, dst);
+ olen=unrv2b(src, dst);
#endif
// dump_mem(dst, dst+0x100);
diff --git a/src/lib/nrv2b.c b/src/lib/nrv2b.c
index e9d6ebf8b0..e9956cfcfa 100644
--- a/src/lib/nrv2b.c
+++ b/src/lib/nrv2b.c
@@ -29,7 +29,7 @@
#define GETBIT(bb, src, ilen) GETBIT_LE32(bb, src, ilen)
#endif
-static unsigned long unrv2b(uint8_t * src, uint8_t * dst, unsigned long *ilen_p)
+static unsigned long unrv2b(uint8_t * src, uint8_t * dst)
{
unsigned long ilen = 0, olen = 0, last_m_off = 1;
uint32_t bb = 0;
@@ -38,8 +38,8 @@ static unsigned long unrv2b(uint8_t * src, uint8_t * dst, unsigned long *ilen_p)
// skip length
src += 4;
+ /* FIXME: check olen with the length stored in first 4 bytes */
- /* FIXME: check olen with len on first 4 bytes */
for (;;) {
unsigned int m_off, m_len;
while (GETBIT(bb, src, ilen)) {
@@ -77,8 +77,6 @@ static unsigned long unrv2b(uint8_t * src, uint8_t * dst, unsigned long *ilen_p)
} while (--m_len > 0);
}
- *ilen_p = ilen;
-
return olen;
}
diff --git a/src/stream/rom_stream.c b/src/stream/rom_stream.c
index f62f13d2f1..c9f2fa3f4d 100644
--- a/src/stream/rom_stream.c
+++ b/src/stream/rom_stream.c
@@ -27,15 +27,12 @@ extern unsigned char _heap, _eheap;
/*static const */unsigned char *rom_end = (unsigned char *)(CONFIG_ROM_STREAM_START + PAYLOAD_SIZE - 1);
/*XXXXXXXXXXXXXX */
-unsigned char *rom_start = (void *)CONFIG_ROM_STREAM_START;
-unsigned char *rom_end = (void *)(CONFIG_ROM_STREAM_START + PAYLOAD_SIZE - 1);
static const unsigned char *rom;
int stream_init(void)
{
#if CONFIG_COMPRESSED_ROM_STREAM
unsigned long dest;
- unsigned long ilen;
unsigned long olen;
#endif
@@ -60,7 +57,7 @@ int stream_init(void)
#endif
printk_debug("Uncompressing to RAM 0x%08lx ", dest);
- olen = unrv2b((uint8_t *) rom_start, (uint8_t *)dest, &ilen );
+ olen = unrv2b((uint8_t *) rom_start, (uint8_t *)dest );
printk_debug(" ilen = 0x%08lx olen = 0x%08lx done.\n", ilen, olen);
rom_end = dest + olen - 1;
rom = dest;