Longer command line for kexec on i386

From: Ed Swierk
Date: Mon Jul 23 2007 - 11:45:22 EST


I'm attempting to get kexec to pass a command line longer than 256 bytes to the
new kernel, using kexec-tools-testing-20070330 and kernel 2.6.22.1. The new
kernel is a bzImage, and I'm using kexec to tack on a command line and an initrd.

I made the following change to kexec:

--- kexec-tools-testing-20070330.orig/include/x86/x86-linux.h
+++ kexec-tools-testing-20070330/include/x86/x86-linux.h
@@ -148,14 +148,13 @@
#endif
struct e820entry e820_map[E820MAX]; /* 0x2d0 */
/* 0x550 */
-#define COMMAND_LINE_SIZE 256
+#define COMMAND_LINE_SIZE 2048
};

struct x86_linux_faked_param_header {
struct x86_linux_param_header hdr; /* 0x00 */
uint8_t reserved16[688]; /* 0x550 */
- uint8_t command_line[COMMAND_LINE_SIZE]; /* 0x800 */
- uint8_t reserved17[1792]; /* 0x900 - 0x1000 */
+ uint8_t command_line[COMMAND_LINE_SIZE]; /* 0x800 - 0x1000 */
};

struct x86_linux_header {

but I'm now seeing intermittent corruption of the initrd in the new kernel--a
few bytes at different locations each time.

I suspect I've neglected some other important changes to the boot protocol. Any
clues would be appreciated.

Thanks,
--Ed


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/