Patchwork =?utf-8?b?w6XigLrFvsOlwqQgOiBBZHZpY2UgaG93IHRvIGluc3Rh?= =?utf-8?q?ll_Linux_to_get_it_working_with_FILO?=

login
register
about
Submitter Myles Watson
Date 2010-05-19 20:27:05
Message ID <AANLkTik0fptbn3aqlgUcADP9cSGrHjBlgW-USiaxKGOs@mail.gmail.com>
Download mbox | patch
Permalink /patch/1359/
State Not Applicable
Headers show

Comments

Myles Watson - 2010-05-19 20:27:05
On Wed, May 19, 2010 at 1:16 PM, Joop Boonen <joop_boonen@web.de> wrote:
> On Wed, May 19, 2010 7:02 pm, Peter Stuge wrote:
>> (Recommend looking into utf-8, guys.)
>>
>> Joop Boonen wrote:
>>> the same fix, is the it already included in the current FILO code?
>>
>> It was posted by Eric as a patch to mkelfImage today. There is no
>> patch for FILO. Feel free to help adapt the mkelfImage patch!
>>
>
> I'm trying to implement the patch in filo.
> I think a part is done see diff.

I've attached my attempt at porting the patch.

Signed-off-by: Myles Watson <mylesgw@gmail.com>

Thanks,
Myles

Patch

Index: filo/i386/linux_load.c
===================================================================
--- filo/i386/linux_load.c	(revision 131)
+++ filo/i386/linux_load.c	(working copy)
@@ -82,6 +82,9 @@ 
 	u32 cmd_line_ptr;	/* 0x228 */
 	/* 2.03+ */
 	u32 initrd_addr_max;	/* 0x22c */
+	/* 2.05+ */
+	u32 kernel_alignment;	/* 0x230 */
+	u8  relocateable_kernel;/* 0x234 */
 } __attribute__ ((packed));
 
 /* Paramters passed to 32-bit part of Linux
@@ -160,7 +163,12 @@ 
 	u32 initrd_size;	/* 0x21c */
 	u8 reserved12_5[8];	/* 0x220 */
 	u32 cmd_line_ptr;	/* 0x228 */
-	u8 reserved13[164];	/* 0x22c */
+	/* 2.03+ */
+	u32 initrd_addr_max;	/* 0x22c */
+	/* 2.05+ */
+	u32 kernel_alignment;	/* 0x230 */
+	u8 relocateable_kernel;	/* 0x234 */
+	u8 reserved13[0x2d0-0x235];	/* 0x235 */
 	struct e820entry e820_map[E820MAX];	/* 0x2d0 */
 	u8 reserved16[688];	/* 0x550 */
 #define COMMAND_LINE_SIZE 256
@@ -257,6 +265,9 @@ 
 	params->orig_video_points = 16;
 
 	params->loader_type = 0xff;	/* Unregistered Linux loader */
+
+	/* Set it to 16M instead of 4G */
+	params->kernel_alignment = 16*1024*1024;
 }
 
 /* Memory map */