diff options
Diffstat (limited to 'arch/powerpc/Kconfig')
-rw-r--r-- | arch/powerpc/Kconfig | 60 |
1 files changed, 41 insertions, 19 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index d66a47fde80c..6c8475692322 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -368,7 +368,8 @@ config KEXEC | |||
368 | config CRASH_DUMP | 368 | config CRASH_DUMP |
369 | bool "Build a kdump crash kernel" | 369 | bool "Build a kdump crash kernel" |
370 | depends on PPC64 || 6xx || FSL_BOOKE | 370 | depends on PPC64 || 6xx || FSL_BOOKE |
371 | select RELOCATABLE if PPC64 || FSL_BOOKE | 371 | select RELOCATABLE if PPC64 |
372 | select DYNAMIC_MEMSTART if FSL_BOOKE | ||
372 | help | 373 | help |
373 | Build a kernel suitable for use as a kdump capture kernel. | 374 | Build a kernel suitable for use as a kdump capture kernel. |
374 | The same kernel binary can be used as production kernel and dump | 375 | The same kernel binary can be used as production kernel and dump |
@@ -777,6 +778,10 @@ source "drivers/rapidio/Kconfig" | |||
777 | 778 | ||
778 | endmenu | 779 | endmenu |
779 | 780 | ||
781 | config NONSTATIC_KERNEL | ||
782 | bool | ||
783 | default n | ||
784 | |||
780 | menu "Advanced setup" | 785 | menu "Advanced setup" |
781 | depends on PPC32 | 786 | depends on PPC32 |
782 | 787 | ||
@@ -826,23 +831,39 @@ config LOWMEM_CAM_NUM | |||
826 | int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL | 831 | int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL |
827 | default 3 | 832 | default 3 |
828 | 833 | ||
829 | config RELOCATABLE | 834 | config DYNAMIC_MEMSTART |
830 | bool "Build a relocatable kernel (EXPERIMENTAL)" | 835 | bool "Enable page aligned dynamic load address for kernel (EXPERIMENTAL)" |
831 | depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || PPC_47x) | 836 | depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || PPC_47x) |
832 | help | 837 | select NONSTATIC_KERNEL |
833 | This builds a kernel image that is capable of running at the | 838 | help |
834 | location the kernel is loaded at (some alignment restrictions may | 839 | This option enables the kernel to be loaded at any page aligned |
835 | exist). | 840 | physical address. The kernel creates a mapping from KERNELBASE to |
836 | 841 | the address where the kernel is loaded. The page size here implies | |
837 | One use is for the kexec on panic case where the recovery kernel | 842 | the TLB page size of the mapping for kernel on the particular platform. |
838 | must live at a different physical address than the primary | 843 | Please refer to the init code for finding the TLB page size. |
839 | kernel. | 844 | |
840 | 845 | DYNAMIC_MEMSTART is an easy way of implementing pseudo-RELOCATABLE | |
841 | Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address | 846 | kernel image, where the only restriction is the page aligned kernel |
842 | it has been loaded at and the compile time physical addresses | 847 | load address. When this option is enabled, the compile time physical |
843 | CONFIG_PHYSICAL_START is ignored. However CONFIG_PHYSICAL_START | 848 | address CONFIG_PHYSICAL_START is ignored. |
844 | setting can still be useful to bootwrappers that need to know the | 849 | |
845 | load location of the kernel (eg. u-boot/mkimage). | 850 | # Mapping based RELOCATABLE is moved to DYNAMIC_MEMSTART |
851 | # config RELOCATABLE | ||
852 | # bool "Build a relocatable kernel (EXPERIMENTAL)" | ||
853 | # depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || PPC_47x) | ||
854 | # help | ||
855 | # This builds a kernel image that is capable of running at the | ||
856 | # location the kernel is loaded at, without any alignment restrictions. | ||
857 | # | ||
858 | # One use is for the kexec on panic case where the recovery kernel | ||
859 | # must live at a different physical address than the primary | ||
860 | # kernel. | ||
861 | # | ||
862 | # Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address | ||
863 | # it has been loaded at and the compile time physical addresses | ||
864 | # CONFIG_PHYSICAL_START is ignored. However CONFIG_PHYSICAL_START | ||
865 | # setting can still be useful to bootwrappers that need to know the | ||
866 | # load location of the kernel (eg. u-boot/mkimage). | ||
846 | 867 | ||
847 | config PAGE_OFFSET_BOOL | 868 | config PAGE_OFFSET_BOOL |
848 | bool "Set custom page offset address" | 869 | bool "Set custom page offset address" |
@@ -872,7 +893,7 @@ config KERNEL_START_BOOL | |||
872 | config KERNEL_START | 893 | config KERNEL_START |
873 | hex "Virtual address of kernel base" if KERNEL_START_BOOL | 894 | hex "Virtual address of kernel base" if KERNEL_START_BOOL |
874 | default PAGE_OFFSET if PAGE_OFFSET_BOOL | 895 | default PAGE_OFFSET if PAGE_OFFSET_BOOL |
875 | default "0xc2000000" if CRASH_DUMP && !RELOCATABLE | 896 | default "0xc2000000" if CRASH_DUMP && !NONSTATIC_KERNEL |
876 | default "0xc0000000" | 897 | default "0xc0000000" |
877 | 898 | ||
878 | config PHYSICAL_START_BOOL | 899 | config PHYSICAL_START_BOOL |
@@ -885,7 +906,7 @@ config PHYSICAL_START_BOOL | |||
885 | 906 | ||
886 | config PHYSICAL_START | 907 | config PHYSICAL_START |
887 | hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL | 908 | hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL |
888 | default "0x02000000" if PPC_STD_MMU && CRASH_DUMP && !RELOCATABLE | 909 | default "0x02000000" if PPC_STD_MMU && CRASH_DUMP && !NONSTATIC_KERNEL |
889 | default "0x00000000" | 910 | default "0x00000000" |
890 | 911 | ||
891 | config PHYSICAL_ALIGN | 912 | config PHYSICAL_ALIGN |
@@ -931,6 +952,7 @@ endmenu | |||
931 | if PPC64 | 952 | if PPC64 |
932 | config RELOCATABLE | 953 | config RELOCATABLE |
933 | bool "Build a relocatable kernel" | 954 | bool "Build a relocatable kernel" |
955 | select NONSTATIC_KERNEL | ||
934 | help | 956 | help |
935 | This builds a kernel image that is capable of running anywhere | 957 | This builds a kernel image that is capable of running anywhere |
936 | in the RMA (real memory area) at any 16k-aligned base address. | 958 | in the RMA (real memory area) at any 16k-aligned base address. |