mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Eric W. Biederman" <ebiederm@xmission.com>
To: Andrew Morton <akpm@osdl.org>
Cc: <fastboot@lists.osdl.org>, <linux-kernel@vger.kernel.org>
Subject: [PATCH 12/29] x86-config-kernel-start
Date: Wed, 19 Jan 2005 0:31:37 -0700	[thread overview]
Message-ID: <x86-config-kernel-start-1106119897152@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <x86-64-entry64-1106119897218@ebiederm.dsl.xmission.com>


For one kernel to report a crash another kernel has created we need
to have 2 kernels loaded simultaneously in memory.  To accomplish this
the two kernels need to built to run at different physical addresses.

This patch adds the CONFIG_PHYSICAL_START option to the x86 kernel
so we can do just that.  You need to know what you are doing and
the ramifications are before changing this value, and most users
won't care so I have made it depend on CONFIG_EMBEDDED

bzImage kernels will work and run at a different address when compiled
with this option but they will still load at 1MB.  If you need a kernel
loaded at a different address as well you need to boot a vmlinux.

Signed-off-by: Eric Biederman <ebiederm@xmission.com>
---

 arch/i386/Kconfig                |   11 +++++++++++
 arch/i386/boot/compressed/head.S |    7 ++++---
 arch/i386/boot/compressed/misc.c |    7 ++++---
 arch/i386/kernel/vmlinux.lds.S   |    2 +-
 include/asm-i386/page.h          |    3 +++
 5 files changed, 23 insertions(+), 7 deletions(-)

diff -uNr linux-2.6.11-rc1-mm1-nokexec-x86_64-entry64/arch/i386/Kconfig linux-2.6.11-rc1-mm1-nokexec-x86-config-kernel-start/arch/i386/Kconfig
--- linux-2.6.11-rc1-mm1-nokexec-x86_64-entry64/arch/i386/Kconfig	Fri Jan 14 04:32:22 2005
+++ linux-2.6.11-rc1-mm1-nokexec-x86-config-kernel-start/arch/i386/Kconfig	Tue Jan 18 22:46:40 2005
@@ -890,6 +890,17 @@
 
 source "drivers/perfctr/Kconfig"
 
+config PHYSICAL_START
+	hex "Physical address where the kernel is loaded" if EMBEDDED
+	default "0x100000"
+	help
+	  This gives the physical address where the kernel is loaded.
+	  Primarily used in the case of kexec on panic where the
+	  fail safe kernel needs to run at a different address than
+	  the panic-ed kernel.
+          
+	  Don't change this unless you know what you are doing.
+
 endmenu
 
 
diff -uNr linux-2.6.11-rc1-mm1-nokexec-x86_64-entry64/arch/i386/boot/compressed/head.S linux-2.6.11-rc1-mm1-nokexec-x86-config-kernel-start/arch/i386/boot/compressed/head.S
--- linux-2.6.11-rc1-mm1-nokexec-x86_64-entry64/arch/i386/boot/compressed/head.S	Mon Oct 18 15:55:27 2004
+++ linux-2.6.11-rc1-mm1-nokexec-x86-config-kernel-start/arch/i386/boot/compressed/head.S	Tue Jan 18 22:46:40 2005
@@ -25,6 +25,7 @@
 
 #include <linux/linkage.h>
 #include <asm/segment.h>
+#include <asm/page.h>
 
 	.globl startup_32
 	
@@ -74,7 +75,7 @@
 	popl %esi	# discard address
 	popl %esi	# real mode pointer
 	xorl %ebx,%ebx
-	ljmp $(__BOOT_CS), $0x100000
+	ljmp $(__BOOT_CS), $__PHYSICAL_START
 
 /*
  * We come here, if we were loaded high.
@@ -99,7 +100,7 @@
 	popl %ecx	# lcount
 	popl %edx	# high_buffer_start
 	popl %eax	# hcount
-	movl $0x100000,%edi
+	movl $__PHYSICAL_START,%edi
 	cli		# make sure we don't get interrupted
 	ljmp $(__BOOT_CS), $0x1000 # and jump to the move routine
 
@@ -124,5 +125,5 @@
 	movsl
 	movl %ebx,%esi	# Restore setup pointer
 	xorl %ebx,%ebx
-	ljmp $(__BOOT_CS), $0x100000
+	ljmp $(__BOOT_CS), $__PHYSICAL_START
 move_routine_end:
diff -uNr linux-2.6.11-rc1-mm1-nokexec-x86_64-entry64/arch/i386/boot/compressed/misc.c linux-2.6.11-rc1-mm1-nokexec-x86-config-kernel-start/arch/i386/boot/compressed/misc.c
--- linux-2.6.11-rc1-mm1-nokexec-x86_64-entry64/arch/i386/boot/compressed/misc.c	Mon Oct 18 15:54:32 2004
+++ linux-2.6.11-rc1-mm1-nokexec-x86-config-kernel-start/arch/i386/boot/compressed/misc.c	Tue Jan 18 22:46:40 2005
@@ -14,6 +14,7 @@
 #include <linux/tty.h>
 #include <video/edid.h>
 #include <asm/io.h>
+#include <asm/page.h>
 
 /*
  * gzip declarations
@@ -309,7 +310,7 @@
 #else
 	if ((RM_ALT_MEM_K > RM_EXT_MEM_K ? RM_ALT_MEM_K : RM_EXT_MEM_K) < 1024) error("Less than 2MB of memory");
 #endif
-	output_data = (char *)0x100000; /* Points to 1M */
+	output_data = (char *)__PHYSICAL_START; /* Normally Points to 1M */
 	free_mem_end_ptr = (long)real_mode;
 }
 
@@ -334,8 +335,8 @@
 	low_buffer_size = low_buffer_end - LOW_BUFFER_START;
 	high_loaded = 1;
 	free_mem_end_ptr = (long)high_buffer_start;
-	if ( (0x100000 + low_buffer_size) > ((ulg)high_buffer_start)) {
-		high_buffer_start = (uch *)(0x100000 + low_buffer_size);
+	if ( (__PHYSICAL_START + low_buffer_size) > ((ulg)high_buffer_start)) {
+		high_buffer_start = (uch *)(__PHYSICAL_START + low_buffer_size);
 		mv->hcount = 0; /* say: we need not to move high_buffer */
 	}
 	else mv->hcount = -1;
diff -uNr linux-2.6.11-rc1-mm1-nokexec-x86_64-entry64/arch/i386/kernel/vmlinux.lds.S linux-2.6.11-rc1-mm1-nokexec-x86-config-kernel-start/arch/i386/kernel/vmlinux.lds.S
--- linux-2.6.11-rc1-mm1-nokexec-x86_64-entry64/arch/i386/kernel/vmlinux.lds.S	Tue Jan 18 22:45:51 2005
+++ linux-2.6.11-rc1-mm1-nokexec-x86-config-kernel-start/arch/i386/kernel/vmlinux.lds.S	Tue Jan 18 22:46:40 2005
@@ -14,7 +14,7 @@
 jiffies = jiffies_64;
 SECTIONS
 {
-  . = LOAD_OFFSET + 0x100000;
+  . = __KERNEL_START;
   phys_startup_32 = startup_32 - LOAD_OFFSET;
   /* read-only */
   _text = .;			/* Text and read-only data */
diff -uNr linux-2.6.11-rc1-mm1-nokexec-x86_64-entry64/include/asm-i386/page.h linux-2.6.11-rc1-mm1-nokexec-x86-config-kernel-start/include/asm-i386/page.h
--- linux-2.6.11-rc1-mm1-nokexec-x86_64-entry64/include/asm-i386/page.h	Fri Jan 14 04:32:27 2005
+++ linux-2.6.11-rc1-mm1-nokexec-x86-config-kernel-start/include/asm-i386/page.h	Tue Jan 18 22:46:40 2005
@@ -122,9 +122,12 @@
 
 #ifdef __ASSEMBLY__
 #define __PAGE_OFFSET		(0xC0000000)
+#define __PHYSICAL_START	CONFIG_PHYSICAL_START
 #else
 #define __PAGE_OFFSET		(0xC0000000UL)
+#define __PHYSICAL_START	((unsigned long)CONFIG_PHYSICAL_START)
 #endif
+#define __KERNEL_START		(__PAGE_OFFSET + __PHYSICAL_START)
 
 
 #define PAGE_OFFSET		((unsigned long)__PAGE_OFFSET)

  reply	other threads:[~2005-01-19  7:53 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-19  7:31 [PATCH 0/29] overview Eric W. Biederman
2005-01-19  7:31 ` [PATCH 1/29] x86-rename-apic_mode_exint Eric W. Biederman
2005-01-19  7:31   ` [PATCH 2/29] x86-local-apic-fix Eric W. Biederman
2005-01-19  7:31     ` [PATCH 3/29] x86_64-e820-64bit Eric W. Biederman
2005-01-19  7:31       ` [PATCH 4/29] x86-i8259-shutdown Eric W. Biederman
2005-01-19  7:31         ` [PATCH 5/29] x86_64-i8259-shutdown Eric W. Biederman
2005-01-19  7:31           ` [PATCH 6/29] x86-apic-virtwire-on-shutdown Eric W. Biederman
2005-01-19  7:31             ` [PATCH 7/29] x86_64-apic-virtwire-on-shutdown Eric W. Biederman
2005-01-19  7:31               ` [PATCH 8/29] vmlinux-fix-physical-addrs Eric W. Biederman
2005-01-19  7:31                 ` [PATCH 9/29] x86-vmlinux-fix-physical-addrs Eric W. Biederman
2005-01-19  7:31                   ` [PATCH 10/29] x86_64-vmlinux-fix-physical-addrs Eric W. Biederman
2005-01-19  7:31                     ` [PATCH 11/29] x86_64-entry64 Eric W. Biederman
2005-01-19  7:31                       ` Eric W. Biederman [this message]
2005-01-19  7:31                         ` [PATCH 13/29] x86_64-config-kernel-start Eric W. Biederman
2005-01-19  7:31                           ` [PATCH 14/29] kexec-kexec-generic Eric W. Biederman
2005-01-19  7:31                             ` [PATCH 15/29] x86-machine_shutdown Eric W. Biederman
2005-01-19  7:31                               ` [PATCH 16/29] x86-kexec Eric W. Biederman
2005-01-19  7:31                                 ` [PATCH 17/29] x86-crashkernel Eric W. Biederman
2005-01-19  7:31                                   ` [PATCH 18/29] x86_64-machine_shutdown Eric W. Biederman
2005-01-19  7:31                                     ` [PATCH 19/29] x86_64-kexec Eric W. Biederman
2005-01-19  7:31                                       ` [PATCH 20/29] x86_64-crashkernel Eric W. Biederman
2005-01-19  7:31                                         ` [PATCH 21/29] kexec-ppc-support Eric W. Biederman
2005-01-19  7:31                                           ` [PATCH 22/29] x86-crash_shutdown-nmi-shootdown Eric W. Biederman
2005-01-19  7:31                                             ` [PATCH 23/29] x86-crash_shutdown-snapshot-registers Eric W. Biederman
2005-01-19  7:31                                               ` [PATCH 24/29] x86-crash_shutdown-apic-shutdown Eric W. Biederman
2005-01-19  7:31                                                 ` [PATCH 25/29] crashdump-documentation Eric W. Biederman
2005-01-19  7:31                                                   ` [PATCH 26/29] crashdump-memory-preserving-reboot-using-kexec Eric W. Biederman
2005-01-19  7:31                                                     ` [PATCH 27/29] crashdump-routines-for-copying-dump-pages Eric W. Biederman
2005-01-19  7:31                                                       ` [PATCH 28/29] crashdump-elf-format-dump-file-access Eric W. Biederman
2005-01-19  7:31                                                         ` [PATCH 29/29] crashdump-linear-raw-format-dump-file-access Eric W. Biederman
2005-01-19 12:25                                       ` [PATCH 19/29] x86_64-kexec Andi Kleen
2005-01-20 15:50                                       ` Adrian Bunk
2005-01-20 18:06                                         ` [Fastboot] " Eric W. Biederman
2005-01-19 12:10                                 ` [PATCH 16/29] x86-kexec Hariprasad Nellitheertha
2005-01-19 18:17                                   ` [Fastboot] " Eric W. Biederman
2005-01-25  3:54             ` [PATCH 6/29] x86-apic-virtwire-on-shutdown Len Brown
2005-01-25  6:39               ` Eric W. Biederman
2005-01-25  7:36                 ` Len Brown
2005-01-25  9:11                   ` Eric W. Biederman
2005-01-25  3:32         ` [PATCH 4/29] x86-i8259-shutdown Len Brown
2005-01-25  3:59           ` Dave Jones
2005-01-25  6:30             ` Eric W. Biederman
2005-01-25  8:35             ` Eric W. Biederman
2005-01-25  9:43               ` Barry K. Nathan
2005-01-25 10:14                 ` Eric W. Biederman
2005-01-25 10:49                   ` Barry K. Nathan
2005-01-25 11:40                     ` Eric W. Biederman
2005-01-25 20:57                       ` Barry K. Nathan
2005-01-25 12:12                     ` Eric W. Biederman
2005-01-25 22:02                       ` Barry K. Nathan
2005-01-25 22:12                         ` Eric W. Biederman
2005-01-26 13:27                           ` Sytse Wielinga
2005-01-26 14:06                             ` Eric W. Biederman
2005-01-26 14:43                               ` Sytse Wielinga
2005-01-26 15:12                                 ` Eric W. Biederman
2005-01-26 22:58                                   ` Barry K. Nathan
2005-01-21  7:55 ` [PATCH] Reserving backup region for kexec based crashdumps Vivek Goyal
2005-01-21  7:54   ` [Fastboot] " Eric W. Biederman
2005-01-21 10:57     ` Vivek Goyal
2005-01-21 11:13       ` Eric W. Biederman
2005-01-23 10:14         ` Vivek Goyal
2005-01-26 17:21           ` Eric W. Biederman
2005-01-26 19:15             ` Andrew Morton
2005-01-27 13:45             ` Vivek Goyal
2005-01-27 20:45               ` Eric W. Biederman
2005-01-28 13:06                 ` Vivek Goyal
2005-01-28 20:29                   ` Eric W. Biederman
2005-02-01 15:17                     ` Vivek Goyal
2005-02-01 15:26                       ` Eric W. Biederman
2005-02-02  7:10                         ` Itsuro Oda
2005-02-02  7:49                           ` Koichi Suzuki
2005-02-02 15:24                             ` Eric W. Biederman
2005-02-03  7:28                               ` Itsuro Oda
2005-02-03  9:00                                 ` Eric W. Biederman
2005-02-03 23:18                                   ` Itsuro Oda
2005-02-04  0:41                                     ` Eric W. Biederman
2005-02-04  1:07                                     ` Itsuro Oda
2005-02-16  8:49                                   ` [PATCH] /proc/cpumem Itsuro Oda
2005-02-16 13:58                                     ` Eric W. Biederman
2005-02-17  0:43                                       ` Itsuro Oda
2005-02-17  9:55                                         ` [Fastboot] " Eric W. Biederman
2005-02-18  6:17                                           ` Itsuro Oda
2005-02-18  7:22                                             ` Eric W. Biederman
2005-02-17  0:17                                     ` YAMAMOTO Takashi
2005-02-17  5:58                                     ` [Fastboot] " Vivek Goyal
2005-02-17  6:18                                       ` Itsuro Oda
2005-02-17 18:18                                     ` Dave Jones
2005-02-17 19:46                                       ` [Fastboot] " Eric W. Biederman
2005-02-02 14:26                           ` [Fastboot] [PATCH] Reserving backup region for kexec based crashdumps Eric W. Biederman
2005-02-02 10:07                         ` Vivek Goyal
2005-02-02 15:42                           ` Eric W. Biederman
2005-02-03 14:47                             ` Vivek Goyal
2005-02-01  8:04                 ` Koichi Suzuki
2005-02-01  9:06                   ` Eric W. Biederman
2005-02-02  7:42                     ` Itsuro Oda
2005-02-02 14:45                       ` Eric W. Biederman
2005-02-04  0:23                         ` Itsuro Oda
2005-02-04  1:55                           ` Eric W. Biederman
2005-02-02  9:08                     ` Koichi Suzuki
2005-02-02 14:31                       ` Eric W. Biederman
2005-02-03  7:02               ` Hirokazu Takahashi
2005-02-03  9:01                 ` Vivek Goyal
2005-02-03  9:37                   ` Hirokazu Takahashi
2005-02-03 10:07                     ` Eric W. Biederman
2005-02-03  9:13                 ` Eric W. Biederman
2005-02-03 10:10                   ` Hirokazu Takahashi
2005-02-03 10:39                     ` Eric W. Biederman
2005-02-04 10:05                       ` Hirokazu Takahashi
2005-02-04 11:17                         ` Eric W. Biederman
2005-02-04 12:02                           ` Eric W. Biederman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=x86-config-kernel-start-1106119897152@ebiederm.dsl.xmission.com \
    --to=ebiederm@xmission.com \
    --cc=akpm@osdl.org \
    --cc=fastboot@lists.osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®