|
From: <bob...@us...> - 2007-07-13 10:29:21
|
Revision: 1135
http://svn.sourceforge.net/hackndev/?rev=1135&view=rev
Author: bobofdoom
Date: 2007-07-13 03:29:13 -0700 (Fri, 13 Jul 2007)
Log Message:
-----------
Cocoboot: Removed kernel relocation. (suggested by phire)
Skipping the step of relocating the kernel to a known address should solve
the boot problem on T3 and Z31, stop us clobbering the framebuffer and make
boot times slightly faster.
Modified Paths:
--------------
cocoboot/trunk/Changelog
cocoboot/trunk/arm/boot.c
Modified: cocoboot/trunk/Changelog
===================================================================
--- cocoboot/trunk/Changelog 2007-07-13 08:46:48 UTC (rev 1134)
+++ cocoboot/trunk/Changelog 2007-07-13 10:29:13 UTC (rev 1135)
@@ -1,4 +1,4 @@
- - Changed kernel load address from 0x4000 to 0x800000.
+ - Removed kernel relocation for speed and reliability (suggested by phire)
- Added simple USB console.
version 0.2:
Modified: cocoboot/trunk/arm/boot.c
===================================================================
--- cocoboot/trunk/arm/boot.c 2007-07-13 08:46:48 UTC (rev 1134)
+++ cocoboot/trunk/arm/boot.c 2007-07-13 10:29:13 UTC (rev 1135)
@@ -31,7 +31,6 @@
#define INITRD_OFFSET 0x0400000
#endif
-#define KERNEL_OFFSET 0x0800000
#define T3_INITRD_OFFSET 0x1500000
static void jump_to_kernel(UInt32 kernel_base, UInt32 tag_base, UInt32 mach)
@@ -90,7 +89,6 @@
if(!kernel || !cmdline) {
return 0xc0ffee;
}
- UInt32 kernel_offset;
UInt32 initrd_offset;
/* since we're going to turn off the MMU, we need to translate
@@ -195,7 +193,6 @@
}
#endif
- kernel_offset=KERNEL_OFFSET;
if (pg->mach_num==MACH_TYPE_T3XSCALE){
initrd_offset=T3_INITRD_OFFSET;
} else {
@@ -206,16 +203,13 @@
setup_atags(pg->ram_base + TAG_OFFSET, pg->ram_base, pg->ram_size, cmdline,
pg->ram_base + initrd_offset, initrd_size);
- /* copy kernel into place */
- copy_image((void*)(pg->ram_base + kernel_offset), kernel, kernel_size);
-
/* copy initrd into place */
if (initrd) {
copy_image((void*)(pg->ram_base + initrd_offset), initrd, initrd_size);
}
/* bring on the penguin! */
- jump_to_kernel(pg->ram_base + kernel_offset, pg->ram_base + TAG_OFFSET, pg->mach_num);
+ jump_to_kernel(kernel, pg->ram_base + TAG_OFFSET, pg->mach_num);
return 0xe4; /* sadly, this return will never be executed */
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|