Loading arch/arm/Kconfig +22 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,9 @@ config ARM select GENERIC_SMP_IDLE_THREAD select KTIME_SCALAR select GENERIC_CLOCKEVENTS_BROADCAST if SMP select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNLEN_USER select DCACHE_WORD_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && !CPU_BIG_ENDIAN help The ARM series is a line of low-power-consumption RISC chip designs licensed by ARM Ltd and targeted at embedded applications and Loading Loading @@ -1961,6 +1964,25 @@ config ARM_ATAG_DTB_COMPAT bootloaders, this option allows zImage to extract the information from the ATAG list and store it at run time into the appended DTB. choice prompt "Kernel command line type" if ARM_ATAG_DTB_COMPAT default ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER config ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER bool "Use bootloader kernel arguments if available" help Uses the command-line options passed by the boot loader instead of the device tree bootargs property. If the boot loader doesn't provide any, the device tree bootargs property will be used. config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND bool "Extend with bootloader kernel arguments" help The command-line arguments provided by the boot loader will be appended to the the device tree bootargs property. endchoice config CMDLINE string "Default kernel command string" default "" Loading arch/arm/Kconfig.debug +9 −0 Original line number Diff line number Diff line Loading @@ -369,4 +369,13 @@ config ARM_KPROBES_TEST help Perform tests of kprobes API and instruction set simulation. config PID_IN_CONTEXTIDR bool "Write the current PID to the CONTEXTIDR register" depends on CPU_COPY_V6 help Enabling this option causes the kernel to write the current PID to the PROCID field of the CONTEXTIDR register, at the expense of some additional instructions during context switch. Say Y here only if you are planning to use hardware trace tools with this kernel. endmenu arch/arm/Makefile +3 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,9 @@ # # Copyright (C) 1995-2001 by Russell King # Ensure linker flags are correct LDFLAGS := LDFLAGS_vmlinux :=-p --no-undefined -X ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) LDFLAGS_vmlinux += --be8 Loading arch/arm/boot/compressed/atags_to_fdt.c +60 −2 Original line number Diff line number Diff line #include <asm/setup.h> #include <libfdt.h> #if defined(CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND) #define do_extend_cmdline 1 #else #define do_extend_cmdline 0 #endif static int node_offset(void *fdt, const char *node_path) { int offset = fdt_path_offset(fdt, node_path); Loading Loading @@ -36,6 +42,48 @@ static int setprop_cell(void *fdt, const char *node_path, return fdt_setprop_cell(fdt, offset, property, val); } static const void *getprop(const void *fdt, const char *node_path, const char *property, int *len) { int offset = fdt_path_offset(fdt, node_path); if (offset == -FDT_ERR_NOTFOUND) return NULL; return fdt_getprop(fdt, offset, property, len); } static void merge_fdt_bootargs(void *fdt, const char *fdt_cmdline) { char cmdline[COMMAND_LINE_SIZE]; const char *fdt_bootargs; char *ptr = cmdline; int len = 0; /* copy the fdt command line into the buffer */ fdt_bootargs = getprop(fdt, "/chosen", "bootargs", &len); if (fdt_bootargs) if (len < COMMAND_LINE_SIZE) { memcpy(ptr, fdt_bootargs, len); /* len is the length of the string * including the NULL terminator */ ptr += len - 1; } /* and append the ATAG_CMDLINE */ if (fdt_cmdline) { len = strlen(fdt_cmdline); if (ptr - cmdline + len + 2 < COMMAND_LINE_SIZE) { *ptr++ = ' '; memcpy(ptr, fdt_cmdline, len); ptr += len; } } *ptr = '\0'; setprop_string(fdt, "/chosen", "bootargs", cmdline); } /* * Convert and fold provided ATAGs into the provided FDT. * Loading Loading @@ -72,6 +120,16 @@ int atags_to_fdt(void *atag_list, void *fdt, int total_space) for_each_tag(atag, atag_list) { if (atag->hdr.tag == ATAG_CMDLINE) { /* Append the ATAGS command line to the device tree * command line. * NB: This means that if the same parameter is set in * the device tree and in the tags, the one from the * tags will be chosen. */ if (do_extend_cmdline) merge_fdt_bootargs(fdt, atag->u.cmdline.cmdline); else setprop_string(fdt, "/chosen", "bootargs", atag->u.cmdline.cmdline); } else if (atag->hdr.tag == ATAG_MEM) { Loading arch/arm/include/asm/arch_timer.h +3 −0 Original line number Diff line number Diff line #ifndef __ASMARM_ARCH_TIMER_H #define __ASMARM_ARCH_TIMER_H #include <asm/errno.h> #ifdef CONFIG_ARM_ARCH_TIMER #define ARCH_HAS_READ_CURRENT_TIMER int arch_timer_of_register(void); int arch_timer_sched_clock_init(void); #else Loading Loading
arch/arm/Kconfig +22 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,9 @@ config ARM select GENERIC_SMP_IDLE_THREAD select KTIME_SCALAR select GENERIC_CLOCKEVENTS_BROADCAST if SMP select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNLEN_USER select DCACHE_WORD_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && !CPU_BIG_ENDIAN help The ARM series is a line of low-power-consumption RISC chip designs licensed by ARM Ltd and targeted at embedded applications and Loading Loading @@ -1961,6 +1964,25 @@ config ARM_ATAG_DTB_COMPAT bootloaders, this option allows zImage to extract the information from the ATAG list and store it at run time into the appended DTB. choice prompt "Kernel command line type" if ARM_ATAG_DTB_COMPAT default ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER config ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER bool "Use bootloader kernel arguments if available" help Uses the command-line options passed by the boot loader instead of the device tree bootargs property. If the boot loader doesn't provide any, the device tree bootargs property will be used. config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND bool "Extend with bootloader kernel arguments" help The command-line arguments provided by the boot loader will be appended to the the device tree bootargs property. endchoice config CMDLINE string "Default kernel command string" default "" Loading
arch/arm/Kconfig.debug +9 −0 Original line number Diff line number Diff line Loading @@ -369,4 +369,13 @@ config ARM_KPROBES_TEST help Perform tests of kprobes API and instruction set simulation. config PID_IN_CONTEXTIDR bool "Write the current PID to the CONTEXTIDR register" depends on CPU_COPY_V6 help Enabling this option causes the kernel to write the current PID to the PROCID field of the CONTEXTIDR register, at the expense of some additional instructions during context switch. Say Y here only if you are planning to use hardware trace tools with this kernel. endmenu
arch/arm/Makefile +3 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,9 @@ # # Copyright (C) 1995-2001 by Russell King # Ensure linker flags are correct LDFLAGS := LDFLAGS_vmlinux :=-p --no-undefined -X ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) LDFLAGS_vmlinux += --be8 Loading
arch/arm/boot/compressed/atags_to_fdt.c +60 −2 Original line number Diff line number Diff line #include <asm/setup.h> #include <libfdt.h> #if defined(CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND) #define do_extend_cmdline 1 #else #define do_extend_cmdline 0 #endif static int node_offset(void *fdt, const char *node_path) { int offset = fdt_path_offset(fdt, node_path); Loading Loading @@ -36,6 +42,48 @@ static int setprop_cell(void *fdt, const char *node_path, return fdt_setprop_cell(fdt, offset, property, val); } static const void *getprop(const void *fdt, const char *node_path, const char *property, int *len) { int offset = fdt_path_offset(fdt, node_path); if (offset == -FDT_ERR_NOTFOUND) return NULL; return fdt_getprop(fdt, offset, property, len); } static void merge_fdt_bootargs(void *fdt, const char *fdt_cmdline) { char cmdline[COMMAND_LINE_SIZE]; const char *fdt_bootargs; char *ptr = cmdline; int len = 0; /* copy the fdt command line into the buffer */ fdt_bootargs = getprop(fdt, "/chosen", "bootargs", &len); if (fdt_bootargs) if (len < COMMAND_LINE_SIZE) { memcpy(ptr, fdt_bootargs, len); /* len is the length of the string * including the NULL terminator */ ptr += len - 1; } /* and append the ATAG_CMDLINE */ if (fdt_cmdline) { len = strlen(fdt_cmdline); if (ptr - cmdline + len + 2 < COMMAND_LINE_SIZE) { *ptr++ = ' '; memcpy(ptr, fdt_cmdline, len); ptr += len; } } *ptr = '\0'; setprop_string(fdt, "/chosen", "bootargs", cmdline); } /* * Convert and fold provided ATAGs into the provided FDT. * Loading Loading @@ -72,6 +120,16 @@ int atags_to_fdt(void *atag_list, void *fdt, int total_space) for_each_tag(atag, atag_list) { if (atag->hdr.tag == ATAG_CMDLINE) { /* Append the ATAGS command line to the device tree * command line. * NB: This means that if the same parameter is set in * the device tree and in the tags, the one from the * tags will be chosen. */ if (do_extend_cmdline) merge_fdt_bootargs(fdt, atag->u.cmdline.cmdline); else setprop_string(fdt, "/chosen", "bootargs", atag->u.cmdline.cmdline); } else if (atag->hdr.tag == ATAG_MEM) { Loading
arch/arm/include/asm/arch_timer.h +3 −0 Original line number Diff line number Diff line #ifndef __ASMARM_ARCH_TIMER_H #define __ASMARM_ARCH_TIMER_H #include <asm/errno.h> #ifdef CONFIG_ARM_ARCH_TIMER #define ARCH_HAS_READ_CURRENT_TIMER int arch_timer_of_register(void); int arch_timer_sched_clock_init(void); #else Loading