Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
Pull ARM updates from Russell King: "In this set, we have: - Refactoring of some of the old StrongARM-1100 GPIO code to make things simpler by Dmitry Eremin-Solenikov - Read-only and non-executable support for modules on ARM from Laura Abbot - Removal of unnecessary set_drvdata() calls in AMBA code - Some non-executable support for kernel lowmem mappings at the 1MB section granularity, and dumping of kernel page tables via debugfs - Some improvements for the timer/clock code on Footbridge platforms, and cleanup some of the LED code there - Fix fls/ffs() signatures to match x86 to prevent build warnings, particularly where these are used with min/max() macros - Avoid using the bootmem allocator on ARM (patches from Santosh Shilimkar) - Various asid/unaligned access updates from Will Deacon" * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (51 commits) ARM: SMP implementations are not supposed to return from smp_ops.cpu_die() ARM: ignore memory below PHYS_OFFSET Fix select-induced Kconfig warning for ZBOOT_ROM ARM: fix ffs/fls implementations to match x86 ARM: 7935/1: sa1100: collie: add gpio-keys configuration ARM: 7932/1: bcm: Add DEBUG_LL console support ARM: 7929/1: Remove duplicate SCHED_HRTICK config option ARM: 7928/1: kconfig: select HAVE_EFFICIENT_UNALIGNED_ACCESS for CPUv6+ && MMU ARM: 7927/1: dcache: select DCACHE_WORD_ACCESS for big-endian CPUs ARM: 7926/1: mm: flesh out and fix the comments in the ASID allocator ARM: 7925/1: mm: keep track of last ASID allocation to improve bitmap searching ARM: 7924/1: mm: don't bother with reserved ttbr0 when running with LPAE ARM: PCI: add legacy IDE IRQ implementation ARM: footbridge: cleanup LEDs code ARM: pgd allocation: retry on failure ARM: footbridge: add one-shot mode for DC21285 timer ARM: footbridge: add sched_clock implementation ARM: 7922/1: l2x0: add Marvell Tauros3 support ARM: 7877/1: use built-in byte swap function ARM: 7921/1: mcpm: remove redundant dsb instructions prior to sev ...
This commit is contained in:
@@ -334,7 +334,7 @@ static void __init cacheid_init(void)
|
||||
cacheid = CACHEID_VIVT;
|
||||
}
|
||||
|
||||
printk("CPU: %s data cache, %s instruction cache\n",
|
||||
pr_info("CPU: %s data cache, %s instruction cache\n",
|
||||
cache_is_vivt() ? "VIVT" :
|
||||
cache_is_vipt_aliasing() ? "VIPT aliasing" :
|
||||
cache_is_vipt_nonaliasing() ? "PIPT / VIPT nonaliasing" : "unknown",
|
||||
@@ -416,7 +416,7 @@ void notrace cpu_init(void)
|
||||
struct stack *stk = &stacks[cpu];
|
||||
|
||||
if (cpu >= NR_CPUS) {
|
||||
printk(KERN_CRIT "CPU%u: bad primary CPU number\n", cpu);
|
||||
pr_crit("CPU%u: bad primary CPU number\n", cpu);
|
||||
BUG();
|
||||
}
|
||||
|
||||
@@ -484,7 +484,7 @@ void __init smp_setup_processor_id(void)
|
||||
*/
|
||||
set_my_cpu_offset(0);
|
||||
|
||||
printk(KERN_INFO "Booting Linux on physical CPU 0x%x\n", mpidr);
|
||||
pr_info("Booting Linux on physical CPU 0x%x\n", mpidr);
|
||||
}
|
||||
|
||||
struct mpidr_hash mpidr_hash;
|
||||
@@ -564,8 +564,8 @@ static void __init setup_processor(void)
|
||||
*/
|
||||
list = lookup_processor_type(read_cpuid_id());
|
||||
if (!list) {
|
||||
printk("CPU configuration botched (ID %08x), unable "
|
||||
"to continue.\n", read_cpuid_id());
|
||||
pr_err("CPU configuration botched (ID %08x), unable to continue.\n",
|
||||
read_cpuid_id());
|
||||
while (1);
|
||||
}
|
||||
|
||||
@@ -585,9 +585,9 @@ static void __init setup_processor(void)
|
||||
cpu_cache = *list->cache;
|
||||
#endif
|
||||
|
||||
printk("CPU: %s [%08x] revision %d (ARMv%s), cr=%08lx\n",
|
||||
cpu_name, read_cpuid_id(), read_cpuid_id() & 15,
|
||||
proc_arch[cpu_architecture()], cr_alignment);
|
||||
pr_info("CPU: %s [%08x] revision %d (ARMv%s), cr=%08lx\n",
|
||||
cpu_name, read_cpuid_id(), read_cpuid_id() & 15,
|
||||
proc_arch[cpu_architecture()], cr_alignment);
|
||||
|
||||
snprintf(init_utsname()->machine, __NEW_UTS_LEN + 1, "%s%c",
|
||||
list->arch_name, ENDIANNESS);
|
||||
@@ -629,8 +629,8 @@ int __init arm_add_memory(u64 start, u64 size)
|
||||
u64 aligned_start;
|
||||
|
||||
if (meminfo.nr_banks >= NR_BANKS) {
|
||||
printk(KERN_CRIT "NR_BANKS too low, "
|
||||
"ignoring memory at 0x%08llx\n", (long long)start);
|
||||
pr_crit("NR_BANKS too low, ignoring memory at 0x%08llx\n",
|
||||
(long long)start);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -643,14 +643,14 @@ int __init arm_add_memory(u64 start, u64 size)
|
||||
|
||||
#ifndef CONFIG_ARCH_PHYS_ADDR_T_64BIT
|
||||
if (aligned_start > ULONG_MAX) {
|
||||
printk(KERN_CRIT "Ignoring memory at 0x%08llx outside "
|
||||
"32-bit physical address space\n", (long long)start);
|
||||
pr_crit("Ignoring memory at 0x%08llx outside 32-bit physical address space\n",
|
||||
(long long)start);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (aligned_start + size > ULONG_MAX) {
|
||||
printk(KERN_CRIT "Truncating memory at 0x%08llx to fit in "
|
||||
"32-bit physical address space\n", (long long)start);
|
||||
pr_crit("Truncating memory at 0x%08llx to fit in 32-bit physical address space\n",
|
||||
(long long)start);
|
||||
/*
|
||||
* To ensure bank->start + bank->size is representable in
|
||||
* 32 bits, we use ULONG_MAX as the upper limit rather than 4GB.
|
||||
@@ -660,6 +660,20 @@ int __init arm_add_memory(u64 start, u64 size)
|
||||
}
|
||||
#endif
|
||||
|
||||
if (aligned_start < PHYS_OFFSET) {
|
||||
if (aligned_start + size <= PHYS_OFFSET) {
|
||||
pr_info("Ignoring memory below PHYS_OFFSET: 0x%08llx-0x%08llx\n",
|
||||
aligned_start, aligned_start + size);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
pr_info("Ignoring memory below PHYS_OFFSET: 0x%08llx-0x%08llx\n",
|
||||
aligned_start, (u64)PHYS_OFFSET);
|
||||
|
||||
size -= PHYS_OFFSET - aligned_start;
|
||||
aligned_start = PHYS_OFFSET;
|
||||
}
|
||||
|
||||
bank->start = aligned_start;
|
||||
bank->size = size & ~(phys_addr_t)(PAGE_SIZE - 1);
|
||||
|
||||
@@ -817,18 +831,17 @@ static void __init reserve_crashkernel(void)
|
||||
if (ret)
|
||||
return;
|
||||
|
||||
ret = reserve_bootmem(crash_base, crash_size, BOOTMEM_EXCLUSIVE);
|
||||
ret = memblock_reserve(crash_base, crash_size);
|
||||
if (ret < 0) {
|
||||
printk(KERN_WARNING "crashkernel reservation failed - "
|
||||
"memory is in use (0x%lx)\n", (unsigned long)crash_base);
|
||||
pr_warn("crashkernel reservation failed - memory is in use (0x%lx)\n",
|
||||
(unsigned long)crash_base);
|
||||
return;
|
||||
}
|
||||
|
||||
printk(KERN_INFO "Reserving %ldMB of memory at %ldMB "
|
||||
"for crashkernel (System RAM: %ldMB)\n",
|
||||
(unsigned long)(crash_size >> 20),
|
||||
(unsigned long)(crash_base >> 20),
|
||||
(unsigned long)(total_mem >> 20));
|
||||
pr_info("Reserving %ldMB of memory at %ldMB for crashkernel (System RAM: %ldMB)\n",
|
||||
(unsigned long)(crash_size >> 20),
|
||||
(unsigned long)(crash_base >> 20),
|
||||
(unsigned long)(total_mem >> 20));
|
||||
|
||||
crashk_res.start = crash_base;
|
||||
crashk_res.end = crash_base + crash_size - 1;
|
||||
|
Reference in New Issue
Block a user