All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vivek Goyal <vgoyal@in.ibm.com>
To: linux kernel mailing list <linux-kernel@vger.kernel.org>
Cc: Reloc Kernel List <fastboot@lists.osdl.org>,
	ebiederm@xmission.com, akpm@osdl.org, ak@suse.de, hpa@zytor.com,
	magnus.damm@gmail.com, lwang@redhat.com, dzickus@redhat.com
Subject: [RFC] [PATCH 14/16] x86_64: Remove CONFIG_PHYSICAL_START
Date: Mon, 13 Nov 2006 11:48:34 -0500	[thread overview]
Message-ID: <20061113164834.GO17429@in.ibm.com> (raw)
In-Reply-To: <20061113162135.GA17429@in.ibm.com>



I am about to add relocatable kernel support which has essentially
no cost so there is no point in retaining CONFIG_PHYSICAL_START
and retaining CONFIG_PHYSICAL_START makes implementation of and
testing of a relocatable kernel more difficult.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
---

 arch/x86_64/Kconfig                |   19 -------------------
 arch/x86_64/boot/compressed/head.S |    6 +++---
 arch/x86_64/boot/compressed/misc.c |    6 +++---
 arch/x86_64/defconfig              |    1 -
 arch/x86_64/kernel/vmlinux.lds.S   |    2 +-
 arch/x86_64/mm/fault.c             |    4 ++--
 include/asm-x86_64/page.h          |    2 --
 7 files changed, 9 insertions(+), 31 deletions(-)

diff -puN arch/x86_64/boot/compressed/head.S~x86_64-Remove-CONFIG_PHYSICAL_START arch/x86_64/boot/compressed/head.S
--- linux-2.6.19-rc5-reloc/arch/x86_64/boot/compressed/head.S~x86_64-Remove-CONFIG_PHYSICAL_START	2006-11-09 23:05:52.000000000 -0500
+++ linux-2.6.19-rc5-reloc-root/arch/x86_64/boot/compressed/head.S	2006-11-09 23:05:52.000000000 -0500
@@ -76,7 +76,7 @@ startup_32:
 	jnz  3f
 	addl $8,%esp
 	xorl %ebx,%ebx
-	ljmp $(__KERNEL_CS), $__PHYSICAL_START
+	ljmp $(__KERNEL_CS), $0x200000
 
 /*
  * We come here, if we were loaded high.
@@ -102,7 +102,7 @@ startup_32:
 	popl %ecx	# lcount
 	popl %edx	# high_buffer_start
 	popl %eax	# hcount
-	movl $__PHYSICAL_START,%edi
+	movl $0x200000,%edi
 	cli		# make sure we don't get interrupted
 	ljmp $(__KERNEL_CS), $0x1000 # and jump to the move routine
 
@@ -127,7 +127,7 @@ move_routine_start:
 	movsl
 	movl %ebx,%esi	# Restore setup pointer
 	xorl %ebx,%ebx
-	ljmp $(__KERNEL_CS), $__PHYSICAL_START
+	ljmp $(__KERNEL_CS), $0x200000
 move_routine_end:
 
 
diff -puN arch/x86_64/boot/compressed/misc.c~x86_64-Remove-CONFIG_PHYSICAL_START arch/x86_64/boot/compressed/misc.c
--- linux-2.6.19-rc5-reloc/arch/x86_64/boot/compressed/misc.c~x86_64-Remove-CONFIG_PHYSICAL_START	2006-11-09 23:05:52.000000000 -0500
+++ linux-2.6.19-rc5-reloc-root/arch/x86_64/boot/compressed/misc.c	2006-11-09 23:05:52.000000000 -0500
@@ -288,7 +288,7 @@ static void setup_normal_output_buffer(v
 #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 = (unsigned char *)__PHYSICAL_START; /* Normally Points to 1M */
+	output_data = (unsigned char *)0x200000;
 	free_mem_end_ptr = (long)real_mode;
 }
 
@@ -311,8 +311,8 @@ static void setup_output_buffer_if_we_ru
 	low_buffer_size = low_buffer_end - LOW_BUFFER_START;
 	high_loaded = 1;
 	free_mem_end_ptr = (long)high_buffer_start;
-	if ( (__PHYSICAL_START + low_buffer_size) > ((ulg)high_buffer_start)) {
-		high_buffer_start = (uch *)(__PHYSICAL_START + low_buffer_size);
+	if ( (0x200000 + low_buffer_size) > ((ulg)high_buffer_start)) {
+		high_buffer_start = (uch *)(0x200000 + low_buffer_size);
 		mv->hcount = 0; /* say: we need not to move high_buffer */
 	}
 	else mv->hcount = -1;
diff -puN arch/x86_64/defconfig~x86_64-Remove-CONFIG_PHYSICAL_START arch/x86_64/defconfig
--- linux-2.6.19-rc5-reloc/arch/x86_64/defconfig~x86_64-Remove-CONFIG_PHYSICAL_START	2006-11-09 23:05:52.000000000 -0500
+++ linux-2.6.19-rc5-reloc-root/arch/x86_64/defconfig	2006-11-09 23:05:52.000000000 -0500
@@ -165,7 +165,6 @@ CONFIG_X86_MCE_INTEL=y
 CONFIG_X86_MCE_AMD=y
 # CONFIG_KEXEC is not set
 # CONFIG_CRASH_DUMP is not set
-CONFIG_PHYSICAL_START=0x200000
 CONFIG_SECCOMP=y
 # CONFIG_CC_STACKPROTECTOR is not set
 # CONFIG_HZ_100 is not set
diff -puN arch/x86_64/Kconfig~x86_64-Remove-CONFIG_PHYSICAL_START arch/x86_64/Kconfig
--- linux-2.6.19-rc5-reloc/arch/x86_64/Kconfig~x86_64-Remove-CONFIG_PHYSICAL_START	2006-11-09 23:05:52.000000000 -0500
+++ linux-2.6.19-rc5-reloc-root/arch/x86_64/Kconfig	2006-11-09 23:05:52.000000000 -0500
@@ -513,25 +513,6 @@ config CRASH_DUMP
 	  PHYSICAL_START.
           For more details see Documentation/kdump/kdump.txt
 
-config PHYSICAL_START
-	hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
-	default "0x1000000" if CRASH_DUMP
-	default "0x200000"
-	help
-	  This gives the physical address where the kernel is loaded. Normally
-	  for regular kernels this value is 0x200000 (2MB). But in the case
-	  of kexec on panic the fail safe kernel needs to run at a different
-	  address than the panic-ed kernel. This option is used to set the load
-	  address for kernels used to capture crash dump on being kexec'ed
-	  after panic. The default value for crash dump kernels is
-	  0x1000000 (16MB). This can also be set based on the "X" value as
-	  specified in the "crashkernel=YM@XM" command line boot parameter
-	  passed to the panic-ed kernel. Typically this parameter is set as
-	  crashkernel=64M@16M. Please take a look at
-	  Documentation/kdump/kdump.txt for more details about crash dumps.
-
-	  Don't change this unless you know what you are doing.
-
 config SECCOMP
 	bool "Enable seccomp to safely compute untrusted bytecode"
 	depends on PROC_FS
diff -puN arch/x86_64/kernel/vmlinux.lds.S~x86_64-Remove-CONFIG_PHYSICAL_START arch/x86_64/kernel/vmlinux.lds.S
--- linux-2.6.19-rc5-reloc/arch/x86_64/kernel/vmlinux.lds.S~x86_64-Remove-CONFIG_PHYSICAL_START	2006-11-09 23:05:52.000000000 -0500
+++ linux-2.6.19-rc5-reloc-root/arch/x86_64/kernel/vmlinux.lds.S	2006-11-09 23:05:52.000000000 -0500
@@ -22,7 +22,7 @@ PHDRS {
 }
 SECTIONS
 {
-  . = __START_KERNEL;
+  . = __START_KERNEL_map + 0x200000;
   phys_startup_64 = startup_64 - LOAD_OFFSET;
   _text = .;			/* Text and read-only data */
   .text :  AT(ADDR(.text) - LOAD_OFFSET) {
diff -puN arch/x86_64/mm/fault.c~x86_64-Remove-CONFIG_PHYSICAL_START arch/x86_64/mm/fault.c
--- linux-2.6.19-rc5-reloc/arch/x86_64/mm/fault.c~x86_64-Remove-CONFIG_PHYSICAL_START	2006-11-09 23:05:52.000000000 -0500
+++ linux-2.6.19-rc5-reloc-root/arch/x86_64/mm/fault.c	2006-11-09 23:05:52.000000000 -0500
@@ -644,9 +644,9 @@ void vmalloc_sync_all(void)
 			start = address + PGDIR_SIZE;
 	}
 	/* Check that there is no need to do the same for the modules area. */
-	BUILD_BUG_ON(!(MODULES_VADDR > __START_KERNEL));
+	BUILD_BUG_ON(!(MODULES_VADDR > __START_KERNEL_map));
 	BUILD_BUG_ON(!(((MODULES_END - 1) & PGDIR_MASK) == 
-				(__START_KERNEL & PGDIR_MASK)));
+				(__START_KERNEL_map & PGDIR_MASK)));
 }
 
 static int __init enable_pagefaulttrace(char *str)
diff -puN include/asm-x86_64/page.h~x86_64-Remove-CONFIG_PHYSICAL_START include/asm-x86_64/page.h
--- linux-2.6.19-rc5-reloc/include/asm-x86_64/page.h~x86_64-Remove-CONFIG_PHYSICAL_START	2006-11-09 23:05:52.000000000 -0500
+++ linux-2.6.19-rc5-reloc-root/include/asm-x86_64/page.h	2006-11-09 23:05:52.000000000 -0500
@@ -75,8 +75,6 @@ typedef struct { unsigned long pgprot; }
 
 #endif /* !__ASSEMBLY__ */
 
-#define __PHYSICAL_START	_AC(CONFIG_PHYSICAL_START,UL)
-#define __START_KERNEL		(__START_KERNEL_map + __PHYSICAL_START)
 #define __START_KERNEL_map	_AC(0xffffffff80000000,UL)
 #define __PAGE_OFFSET           _AC(0xffff810000000000,UL)
 
_

  parent reply	other threads:[~2006-11-13 16:54 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-13 16:21 [RFC] [PATCH 0/16] x86_64: Relocatable bzImage Support (V2) Vivek Goyal
2006-11-13 16:26 ` [RFC] [PATCH 1/16] x86_64: Align data segment to page size boundary Vivek Goyal
2006-11-13 16:28 ` [RFC] [PATCH 2/16] x86_64: Assembly safe page.h and pgtable.h Vivek Goyal
2006-11-13 17:17   ` Andi Kleen
2006-11-13 19:27     ` Eric W. Biederman
2006-11-13 21:16     ` Vivek Goyal
2006-11-14  1:46       ` Andi Kleen
2006-11-14  2:41         ` Eric W. Biederman
2006-11-13 16:30 ` [RFC] [PATCH 3/16] x86_64: Kill temp_boot_pmds Vivek Goyal
2006-11-13 16:31 ` [RFC] [PATCH 4/16] x86_64: Clean up the early boot page table Vivek Goyal
2006-11-13 16:33 ` [RFC] [PATCH 5/16] x86_64: Fix earlyprintk to use standard ISA mapping Vivek Goyal
2006-11-13 16:34 ` [RFC] [PATCH 6/16] x86_64: Modify copy_bootdata to to use virtual address Vivek Goyal
2006-11-13 16:35 ` [RFC] [PATCH 7/16] x86_64: cleanup segments Vivek Goyal
2006-11-13 16:40 ` [RFC] [PATCH 8/16] x86_64: Add EFER to the set registers saved by save_processor_state Vivek Goyal
2006-11-13 16:42 ` [RFC] [PATCH 9/16] x86_64: 64bit PIC SMP trampoline Vivek Goyal
2006-11-13 17:28   ` Andi Kleen
2006-11-13 16:43 ` [RFC] [PATCH 10/16] x86_64: 64bit PIC ACPI wakeup Vivek Goyal
2006-11-13 17:22   ` Andi Kleen
2006-11-13 17:59     ` Vivek Goyal
2006-11-13 18:13       ` Andi Kleen
2006-11-13 19:21         ` Eric W. Biederman
2006-11-13 19:34           ` Vivek Goyal
2006-11-13 19:57             ` Eric W. Biederman
2006-11-13 23:01     ` Pavel Machek
2006-11-13 23:09       ` Vivek Goyal
2006-11-15 21:07     ` [PATCH] x86_64: Move cpu long mode verification code to common file (was Re: [RFC] [PATCH 10/16] x86_64: 64bit PIC ACPI wakeup) Vivek Goyal
2006-11-15 22:54       ` Pavel Machek
2006-11-16 20:06         ` Vivek Goyal
2006-11-14 16:30   ` [RFC] [PATCH 10/16] x86_64: 64bit PIC ACPI wakeup Pavel Machek
2006-11-14 21:36     ` Eric W. Biederman
2006-11-14 21:40       ` H. Peter Anvin
2006-11-14 23:43       ` Pavel Machek
2006-11-15  3:49         ` Andi Kleen
2006-11-15 17:26         ` Eric W. Biederman
2006-11-15 18:29           ` Vivek Goyal
2006-11-15 18:38           ` Pavel Machek
2006-11-14 23:17     ` Vivek Goyal
2006-11-14 23:39       ` Pavel Machek
2006-11-15 21:24   ` [Fastboot] " Vivek Goyal
2006-11-15 23:03     ` Pavel Machek
2006-11-16  0:28     ` Vivek Goyal
2006-11-16 20:09       ` Vivek Goyal
2006-11-16 20:53         ` Pavel Machek
2006-11-16 21:29           ` Vivek Goyal
2006-11-16 21:51             ` Pavel Machek
2006-11-13 16:44 ` [RFC] [PATCH 11/16] x86_64: Modify discover_ebda to use virtual address Vivek Goyal
2006-11-13 16:46 ` [RFC] [PATCH 12/16] x86_64: Remove the identity mapping as early as possible Vivek Goyal
2006-11-13 16:47 ` [RFC] [PATCH 13/16] x86_64: __pa and __pa_symbol address space separation Vivek Goyal
2006-11-13 16:48 ` Vivek Goyal [this message]
2006-11-13 16:50 ` [RFC] [PATCH 15/16] x86_64: Relocatable kernel support Vivek Goyal
2006-11-13 16:51 ` [RFC] [PATCH 16/16] x86_64: Extend bzImage protocol for relocatable bzImage Vivek Goyal

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=20061113164834.GO17429@in.ibm.com \
    --to=vgoyal@in.ibm.com \
    --cc=ak@suse.de \
    --cc=akpm@osdl.org \
    --cc=dzickus@redhat.com \
    --cc=ebiederm@xmission.com \
    --cc=fastboot@lists.osdl.org \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lwang@redhat.com \
    --cc=magnus.damm@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.