Loading Documentation/arm/Booting +29 −4 Original line number Diff line number Diff line Loading @@ -65,13 +65,19 @@ looks at the connected hardware is beyond the scope of this document. The boot loader must ultimately be able to provide a MACH_TYPE_xxx value to the kernel. (see linux/arch/arm/tools/mach-types). 4. Setup the kernel tagged list ------------------------------- 4. Setup boot data ------------------ Existing boot loaders: OPTIONAL, HIGHLY RECOMMENDED New boot loaders: MANDATORY The boot loader must provide either a tagged list or a dtb image for passing configuration data to the kernel. The physical address of the boot data is passed to the kernel in register r2. 4a. Setup the kernel tagged list -------------------------------- The boot loader must create and initialise the kernel tagged list. A valid tagged list starts with ATAG_CORE and ends with ATAG_NONE. The ATAG_CORE tag may or may not be empty. An empty ATAG_CORE tag Loading Loading @@ -101,6 +107,24 @@ The tagged list must be placed in a region of memory where neither the kernel decompressor nor initrd 'bootp' program will overwrite it. The recommended placement is in the first 16KiB of RAM. 4b. Setup the device tree ------------------------- The boot loader must load a device tree image (dtb) into system ram at a 64bit aligned address and initialize it with the boot data. The dtb format is documented in Documentation/devicetree/booting-without-of.txt. The kernel will look for the dtb magic value of 0xd00dfeed at the dtb physical address to determine if a dtb has been passed instead of a tagged list. The boot loader must pass at a minimum the size and location of the system memory, and the root filesystem location. The dtb must be placed in a region of memory where the kernel decompressor will not overwrite it. The recommended placement is in the first 16KiB of RAM with the caveat that it may not be located at physical address 0 since the kernel interprets a value of 0 in r2 to mean neither a tagged list nor a dtb were passed. 5. Calling the kernel image --------------------------- Loading @@ -125,7 +149,8 @@ In either case, the following conditions must be met: - CPU register settings r0 = 0, r1 = machine type number discovered in (3) above. r2 = physical address of tagged list in system RAM. r2 = physical address of tagged list in system RAM, or physical address of device tree block (dtb) in system RAM - CPU mode All forms of interrupts must be disabled (IRQs and FIQs) Loading Documentation/arm/Samsung/Overview.txt +0 −2 Original line number Diff line number Diff line Loading @@ -14,7 +14,6 @@ Introduction - S3C24XX: See Documentation/arm/Samsung-S3C24XX/Overview.txt for full list - S3C64XX: S3C6400 and S3C6410 - S5P6440 - S5P6442 - S5PC100 - S5PC110 / S5PV210 Loading @@ -36,7 +35,6 @@ Configuration unifying all the SoCs into one kernel. s5p6440_defconfig - S5P6440 specific default configuration s5p6442_defconfig - S5P6442 specific default configuration s5pc100_defconfig - S5PC100 specific default configuration s5pc110_defconfig - S5PC110 specific default configuration s5pv210_defconfig - S5PV210 specific default configuration Loading Documentation/devicetree/booting-without-of.txt +44 −4 Original line number Diff line number Diff line Loading @@ -12,8 +12,9 @@ Table of Contents ================= I - Introduction 1) Entry point for arch/powerpc 2) Entry point for arch/x86 1) Entry point for arch/arm 2) Entry point for arch/powerpc 3) Entry point for arch/x86 II - The DT block format 1) Header Loading Loading @@ -148,7 +149,46 @@ upgrades without significantly impacting the kernel code or cluttering it with special cases. 1) Entry point for arch/powerpc 1) Entry point for arch/arm --------------------------- There is one single entry point to the kernel, at the start of the kernel image. That entry point supports two calling conventions. A summary of the interface is described here. A full description of the boot requirements is documented in Documentation/arm/Booting a) ATAGS interface. Minimal information is passed from firmware to the kernel with a tagged list of predefined parameters. r0 : 0 r1 : Machine type number r2 : Physical address of tagged list in system RAM b) Entry with a flattened device-tree block. Firmware loads the physical address of the flattened device tree block (dtb) into r2, r1 is not used, but it is considered good practise to use a valid machine number as described in Documentation/arm/Booting. r0 : 0 r1 : Valid machine type number. When using a device tree, a single machine type number will often be assigned to represent a class or family of SoCs. r2 : physical pointer to the device-tree block (defined in chapter II) in RAM. Device tree can be located anywhere in system RAM, but it should be aligned on a 64 bit boundary. The kernel will differentiate between ATAGS and device tree booting by reading the memory pointed to by r2 and looking for either the flattened device tree block magic value (0xd00dfeed) or the ATAG_CORE value at offset 0x4 from r2 (0x54410001). 2) Entry point for arch/powerpc ------------------------------- There is one single entry point to the kernel, at the start Loading Loading @@ -226,7 +266,7 @@ it with special cases. cannot support both configurations with Book E and configurations with classic Powerpc architectures. 2) Entry point for arch/x86 3) Entry point for arch/x86 ------------------------------- There is one single 32bit entry point to the kernel at code32_start, Loading arch/arm/Kconfig +14 −15 Original line number Diff line number Diff line Loading @@ -294,6 +294,8 @@ config ARCH_AT91 bool "Atmel AT91" select ARCH_REQUIRE_GPIOLIB select HAVE_CLK select CLKDEV_LOOKUP select ARM_PATCH_PHYS_VIRT if MMU help This enables support for systems based on the Atmel AT91RM9200, AT91SAM9 and AT91CAP9 processors. Loading Loading @@ -730,16 +732,6 @@ config ARCH_S5P64X0 Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440, SMDK6450. config ARCH_S5P6442 bool "Samsung S5P6442" select CPU_V6 select GENERIC_GPIO select HAVE_CLK select ARCH_USES_GETTIMEOFFSET select HAVE_S3C2410_WATCHDOG if WATCHDOG help Samsung S5P6442 CPU based systems config ARCH_S5PC100 bool "Samsung S5PC100" select GENERIC_GPIO Loading Loading @@ -991,8 +983,6 @@ endif source "arch/arm/mach-s5p64x0/Kconfig" source "arch/arm/mach-s5p6442/Kconfig" source "arch/arm/mach-s5pc100/Kconfig" source "arch/arm/mach-s5pv210/Kconfig" Loading Loading @@ -1399,7 +1389,6 @@ config NR_CPUS config HOTPLUG_CPU bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" depends on SMP && HOTPLUG && EXPERIMENTAL depends on !ARCH_MSM help Say Y here to experiment with turning CPUs off and on. CPUs can be controlled through /sys/devices/system/cpu. Loading @@ -1420,7 +1409,7 @@ source kernel/Kconfig.preempt config HZ int default 200 if ARCH_EBSA110 || ARCH_S3C2410 || ARCH_S5P64X0 || \ ARCH_S5P6442 || ARCH_S5PV210 || ARCH_EXYNOS4 ARCH_S5PV210 || ARCH_EXYNOS4 default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER default AT91_TIMER_HZ if ARCH_AT91 default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE Loading Loading @@ -1516,6 +1505,9 @@ config ARCH_SPARSEMEM_DEFAULT config ARCH_SELECT_MEMORY_MODEL def_bool ARCH_SPARSEMEM_ENABLE config HAVE_ARCH_PFN_VALID def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM config HIGHMEM bool "High Memory Support" depends on MMU Loading Loading @@ -1683,6 +1675,13 @@ endmenu menu "Boot options" config USE_OF bool "Flattened Device Tree support" select OF select OF_EARLY_FLATTREE help Include support for flattened device tree machine descriptions. # Compressed boot loader in ROM. Yes, we really want to ask about # TEXT and BSS so we preserve their values in the config files. config ZBOOT_ROM_TEXT Loading Loading @@ -2021,7 +2020,7 @@ menu "Power management options" source "kernel/power/Kconfig" config ARCH_SUSPEND_POSSIBLE depends on !ARCH_S5P64X0 && !ARCH_S5P6442 && !ARCH_S5PC100 depends on !ARCH_S5P64X0 && !ARCH_S5PC100 depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \ CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE def_bool y Loading arch/arm/Makefile +0 −1 Original line number Diff line number Diff line Loading @@ -176,7 +176,6 @@ machine-$(CONFIG_ARCH_S3C2410) := s3c2410 s3c2400 s3c2412 s3c2416 s3c2440 s3c24 machine-$(CONFIG_ARCH_S3C24A0) := s3c24a0 machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx machine-$(CONFIG_ARCH_S5P64X0) := s5p64x0 machine-$(CONFIG_ARCH_S5P6442) := s5p6442 machine-$(CONFIG_ARCH_S5PC100) := s5pc100 machine-$(CONFIG_ARCH_S5PV210) := s5pv210 machine-$(CONFIG_ARCH_EXYNOS4) := exynos4 Loading Loading
Documentation/arm/Booting +29 −4 Original line number Diff line number Diff line Loading @@ -65,13 +65,19 @@ looks at the connected hardware is beyond the scope of this document. The boot loader must ultimately be able to provide a MACH_TYPE_xxx value to the kernel. (see linux/arch/arm/tools/mach-types). 4. Setup the kernel tagged list ------------------------------- 4. Setup boot data ------------------ Existing boot loaders: OPTIONAL, HIGHLY RECOMMENDED New boot loaders: MANDATORY The boot loader must provide either a tagged list or a dtb image for passing configuration data to the kernel. The physical address of the boot data is passed to the kernel in register r2. 4a. Setup the kernel tagged list -------------------------------- The boot loader must create and initialise the kernel tagged list. A valid tagged list starts with ATAG_CORE and ends with ATAG_NONE. The ATAG_CORE tag may or may not be empty. An empty ATAG_CORE tag Loading Loading @@ -101,6 +107,24 @@ The tagged list must be placed in a region of memory where neither the kernel decompressor nor initrd 'bootp' program will overwrite it. The recommended placement is in the first 16KiB of RAM. 4b. Setup the device tree ------------------------- The boot loader must load a device tree image (dtb) into system ram at a 64bit aligned address and initialize it with the boot data. The dtb format is documented in Documentation/devicetree/booting-without-of.txt. The kernel will look for the dtb magic value of 0xd00dfeed at the dtb physical address to determine if a dtb has been passed instead of a tagged list. The boot loader must pass at a minimum the size and location of the system memory, and the root filesystem location. The dtb must be placed in a region of memory where the kernel decompressor will not overwrite it. The recommended placement is in the first 16KiB of RAM with the caveat that it may not be located at physical address 0 since the kernel interprets a value of 0 in r2 to mean neither a tagged list nor a dtb were passed. 5. Calling the kernel image --------------------------- Loading @@ -125,7 +149,8 @@ In either case, the following conditions must be met: - CPU register settings r0 = 0, r1 = machine type number discovered in (3) above. r2 = physical address of tagged list in system RAM. r2 = physical address of tagged list in system RAM, or physical address of device tree block (dtb) in system RAM - CPU mode All forms of interrupts must be disabled (IRQs and FIQs) Loading
Documentation/arm/Samsung/Overview.txt +0 −2 Original line number Diff line number Diff line Loading @@ -14,7 +14,6 @@ Introduction - S3C24XX: See Documentation/arm/Samsung-S3C24XX/Overview.txt for full list - S3C64XX: S3C6400 and S3C6410 - S5P6440 - S5P6442 - S5PC100 - S5PC110 / S5PV210 Loading @@ -36,7 +35,6 @@ Configuration unifying all the SoCs into one kernel. s5p6440_defconfig - S5P6440 specific default configuration s5p6442_defconfig - S5P6442 specific default configuration s5pc100_defconfig - S5PC100 specific default configuration s5pc110_defconfig - S5PC110 specific default configuration s5pv210_defconfig - S5PV210 specific default configuration Loading
Documentation/devicetree/booting-without-of.txt +44 −4 Original line number Diff line number Diff line Loading @@ -12,8 +12,9 @@ Table of Contents ================= I - Introduction 1) Entry point for arch/powerpc 2) Entry point for arch/x86 1) Entry point for arch/arm 2) Entry point for arch/powerpc 3) Entry point for arch/x86 II - The DT block format 1) Header Loading Loading @@ -148,7 +149,46 @@ upgrades without significantly impacting the kernel code or cluttering it with special cases. 1) Entry point for arch/powerpc 1) Entry point for arch/arm --------------------------- There is one single entry point to the kernel, at the start of the kernel image. That entry point supports two calling conventions. A summary of the interface is described here. A full description of the boot requirements is documented in Documentation/arm/Booting a) ATAGS interface. Minimal information is passed from firmware to the kernel with a tagged list of predefined parameters. r0 : 0 r1 : Machine type number r2 : Physical address of tagged list in system RAM b) Entry with a flattened device-tree block. Firmware loads the physical address of the flattened device tree block (dtb) into r2, r1 is not used, but it is considered good practise to use a valid machine number as described in Documentation/arm/Booting. r0 : 0 r1 : Valid machine type number. When using a device tree, a single machine type number will often be assigned to represent a class or family of SoCs. r2 : physical pointer to the device-tree block (defined in chapter II) in RAM. Device tree can be located anywhere in system RAM, but it should be aligned on a 64 bit boundary. The kernel will differentiate between ATAGS and device tree booting by reading the memory pointed to by r2 and looking for either the flattened device tree block magic value (0xd00dfeed) or the ATAG_CORE value at offset 0x4 from r2 (0x54410001). 2) Entry point for arch/powerpc ------------------------------- There is one single entry point to the kernel, at the start Loading Loading @@ -226,7 +266,7 @@ it with special cases. cannot support both configurations with Book E and configurations with classic Powerpc architectures. 2) Entry point for arch/x86 3) Entry point for arch/x86 ------------------------------- There is one single 32bit entry point to the kernel at code32_start, Loading
arch/arm/Kconfig +14 −15 Original line number Diff line number Diff line Loading @@ -294,6 +294,8 @@ config ARCH_AT91 bool "Atmel AT91" select ARCH_REQUIRE_GPIOLIB select HAVE_CLK select CLKDEV_LOOKUP select ARM_PATCH_PHYS_VIRT if MMU help This enables support for systems based on the Atmel AT91RM9200, AT91SAM9 and AT91CAP9 processors. Loading Loading @@ -730,16 +732,6 @@ config ARCH_S5P64X0 Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440, SMDK6450. config ARCH_S5P6442 bool "Samsung S5P6442" select CPU_V6 select GENERIC_GPIO select HAVE_CLK select ARCH_USES_GETTIMEOFFSET select HAVE_S3C2410_WATCHDOG if WATCHDOG help Samsung S5P6442 CPU based systems config ARCH_S5PC100 bool "Samsung S5PC100" select GENERIC_GPIO Loading Loading @@ -991,8 +983,6 @@ endif source "arch/arm/mach-s5p64x0/Kconfig" source "arch/arm/mach-s5p6442/Kconfig" source "arch/arm/mach-s5pc100/Kconfig" source "arch/arm/mach-s5pv210/Kconfig" Loading Loading @@ -1399,7 +1389,6 @@ config NR_CPUS config HOTPLUG_CPU bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" depends on SMP && HOTPLUG && EXPERIMENTAL depends on !ARCH_MSM help Say Y here to experiment with turning CPUs off and on. CPUs can be controlled through /sys/devices/system/cpu. Loading @@ -1420,7 +1409,7 @@ source kernel/Kconfig.preempt config HZ int default 200 if ARCH_EBSA110 || ARCH_S3C2410 || ARCH_S5P64X0 || \ ARCH_S5P6442 || ARCH_S5PV210 || ARCH_EXYNOS4 ARCH_S5PV210 || ARCH_EXYNOS4 default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER default AT91_TIMER_HZ if ARCH_AT91 default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE Loading Loading @@ -1516,6 +1505,9 @@ config ARCH_SPARSEMEM_DEFAULT config ARCH_SELECT_MEMORY_MODEL def_bool ARCH_SPARSEMEM_ENABLE config HAVE_ARCH_PFN_VALID def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM config HIGHMEM bool "High Memory Support" depends on MMU Loading Loading @@ -1683,6 +1675,13 @@ endmenu menu "Boot options" config USE_OF bool "Flattened Device Tree support" select OF select OF_EARLY_FLATTREE help Include support for flattened device tree machine descriptions. # Compressed boot loader in ROM. Yes, we really want to ask about # TEXT and BSS so we preserve their values in the config files. config ZBOOT_ROM_TEXT Loading Loading @@ -2021,7 +2020,7 @@ menu "Power management options" source "kernel/power/Kconfig" config ARCH_SUSPEND_POSSIBLE depends on !ARCH_S5P64X0 && !ARCH_S5P6442 && !ARCH_S5PC100 depends on !ARCH_S5P64X0 && !ARCH_S5PC100 depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \ CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE def_bool y Loading
arch/arm/Makefile +0 −1 Original line number Diff line number Diff line Loading @@ -176,7 +176,6 @@ machine-$(CONFIG_ARCH_S3C2410) := s3c2410 s3c2400 s3c2412 s3c2416 s3c2440 s3c24 machine-$(CONFIG_ARCH_S3C24A0) := s3c24a0 machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx machine-$(CONFIG_ARCH_S5P64X0) := s5p64x0 machine-$(CONFIG_ARCH_S5P6442) := s5p6442 machine-$(CONFIG_ARCH_S5PC100) := s5pc100 machine-$(CONFIG_ARCH_S5PV210) := s5pv210 machine-$(CONFIG_ARCH_EXYNOS4) := exynos4 Loading