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. |