aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/Kconfig26
-rw-r--r--arch/arm/kernel/Makefile5
-rw-r--r--arch/arm/kernel/atags.h11
3 files changed, 33 insertions, 9 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c5f9ae5dbd1a..5c7302e208ce 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1891,12 +1891,6 @@ config CC_STACKPROTECTOR
1891 neutralized via a kernel panic. 1891 neutralized via a kernel panic.
1892 This feature requires gcc version 4.2 or above. 1892 This feature requires gcc version 4.2 or above.
1893 1893
1894config DEPRECATED_PARAM_STRUCT
1895 bool "Provide old way to pass kernel parameters"
1896 help
1897 This was deprecated in 2001 and announced to live on for 5 years.
1898 Some old boot loaders still use this way.
1899
1900endmenu 1894endmenu
1901 1895
1902menu "Boot options" 1896menu "Boot options"
@@ -1909,6 +1903,23 @@ config USE_OF
1909 help 1903 help
1910 Include support for flattened device tree machine descriptions. 1904 Include support for flattened device tree machine descriptions.
1911 1905
1906config ATAGS
1907 bool "Support for the traditional ATAGS boot data passing" if USE_OF
1908 default y
1909 help
1910 This is the traditional way of passing data to the kernel at boot
1911 time. If you are solely relying on the flattened device tree (or
1912 the ARM_ATAG_DTB_COMPAT option) then you may unselect this option
1913 to remove ATAGS support from your kernel binary. If unsure,
1914 leave this to y.
1915
1916config DEPRECATED_PARAM_STRUCT
1917 bool "Provide old way to pass kernel parameters"
1918 depends on ATAGS
1919 help
1920 This was deprecated in 2001 and announced to live on for 5 years.
1921 Some old boot loaders still use this way.
1922
1912# Compressed boot loader in ROM. Yes, we really want to ask about 1923# Compressed boot loader in ROM. Yes, we really want to ask about
1913# TEXT and BSS so we preserve their values in the config files. 1924# TEXT and BSS so we preserve their values in the config files.
1914config ZBOOT_ROM_TEXT 1925config ZBOOT_ROM_TEXT
@@ -2035,6 +2046,7 @@ config CMDLINE
2035choice 2046choice
2036 prompt "Kernel command line type" if CMDLINE != "" 2047 prompt "Kernel command line type" if CMDLINE != ""
2037 default CMDLINE_FROM_BOOTLOADER 2048 default CMDLINE_FROM_BOOTLOADER
2049 depends on ATAGS
2038 2050
2039config CMDLINE_FROM_BOOTLOADER 2051config CMDLINE_FROM_BOOTLOADER
2040 bool "Use bootloader kernel arguments if available" 2052 bool "Use bootloader kernel arguments if available"
@@ -2104,7 +2116,7 @@ config KEXEC
2104 2116
2105config ATAGS_PROC 2117config ATAGS_PROC
2106 bool "Export atags in procfs" 2118 bool "Export atags in procfs"
2107 depends on KEXEC 2119 depends on ATAGS && KEXEC
2108 default y 2120 default y
2109 help 2121 help
2110 Should the atags used to boot the kernel be exported in an "atags" 2122 Should the atags used to boot the kernel be exported in an "atags"
diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
index 086c9d3bc360..79e346a5d78b 100644
--- a/arch/arm/kernel/Makefile
+++ b/arch/arm/kernel/Makefile
@@ -15,10 +15,12 @@ CFLAGS_REMOVE_return_address.o = -pg
15 15
16# Object file lists. 16# Object file lists.
17 17
18obj-y := atags_parse.o elf.o entry-armv.o entry-common.o irq.o opcodes.o \ 18obj-y := elf.o entry-armv.o entry-common.o irq.o opcodes.o \
19 process.o ptrace.o return_address.o sched_clock.o \ 19 process.o ptrace.o return_address.o sched_clock.o \
20 setup.o signal.o stacktrace.o sys_arm.o time.o traps.o 20 setup.o signal.o stacktrace.o sys_arm.o time.o traps.o
21 21
22obj-$(CONFIG_ATAGS) += atags_parse.o
23obj-$(CONFIG_ATAGS_PROC) += atags_proc.o
22obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += atags_compat.o 24obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += atags_compat.o
23 25
24obj-$(CONFIG_LEDS) += leds.o 26obj-$(CONFIG_LEDS) += leds.o
@@ -52,7 +54,6 @@ test-kprobes-objs += kprobes-test-thumb.o
52else 54else
53test-kprobes-objs += kprobes-test-arm.o 55test-kprobes-objs += kprobes-test-arm.o
54endif 56endif
55obj-$(CONFIG_ATAGS_PROC) += atags_proc.o
56obj-$(CONFIG_OABI_COMPAT) += sys_oabi-compat.o 57obj-$(CONFIG_OABI_COMPAT) += sys_oabi-compat.o
57obj-$(CONFIG_ARM_THUMBEE) += thumbee.o 58obj-$(CONFIG_ARM_THUMBEE) += thumbee.o
58obj-$(CONFIG_KGDB) += kgdb.o 59obj-$(CONFIG_KGDB) += kgdb.o
diff --git a/arch/arm/kernel/atags.h b/arch/arm/kernel/atags.h
index a888fdd381b5..9edc9692332d 100644
--- a/arch/arm/kernel/atags.h
+++ b/arch/arm/kernel/atags.h
@@ -5,4 +5,15 @@ static inline void save_atags(struct tag *tags) { }
5#endif 5#endif
6 6
7void convert_to_tag_list(struct tag *tags); 7void convert_to_tag_list(struct tag *tags);
8
9#ifdef CONFIG_ATAGS
8struct machine_desc *setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr); 10struct machine_desc *setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr);
11#else
12static inline struct machine_desc *
13setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr)
14{
15 early_print("no ATAGS support: can't continue\n");
16 while (true);
17 unreachable();
18}
19#endif