Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
Pull ARM fixes from Russell King: "A number of ARM updates for -rc, covering mostly ARM specific code, but with one change to modpost.c to allow Thumb section mismatches to be detected. ARM changes include reporting when an attempt is made to boot a LPAE kernel on hardware which does not support LPAE, rather than just being silent about it. A number of other minor fixes are included too" * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: 7992/1: boot: compressed: ignore bswapsdi2.S ARM: 7991/1: sa1100: fix compile problem on Collie ARM: fix noMMU kallsyms symbol filtering ARM: 7980/1: kernel: improve error message when LPAE config doesn't match CPU ARM: 7964/1: Detect section mismatches in thumb relocations ARM: 7963/1: mm: report both sections from PMD
This commit is contained in:
commit
4d7eaa12f3
@ -1578,6 +1578,7 @@ config BL_SWITCHER_DUMMY_IF
|
|||||||
|
|
||||||
choice
|
choice
|
||||||
prompt "Memory split"
|
prompt "Memory split"
|
||||||
|
depends on MMU
|
||||||
default VMSPLIT_3G
|
default VMSPLIT_3G
|
||||||
help
|
help
|
||||||
Select the desired split between kernel and user memory.
|
Select the desired split between kernel and user memory.
|
||||||
@ -1595,6 +1596,7 @@ endchoice
|
|||||||
|
|
||||||
config PAGE_OFFSET
|
config PAGE_OFFSET
|
||||||
hex
|
hex
|
||||||
|
default PHYS_OFFSET if !MMU
|
||||||
default 0x40000000 if VMSPLIT_1G
|
default 0x40000000 if VMSPLIT_1G
|
||||||
default 0x80000000 if VMSPLIT_2G
|
default 0x80000000 if VMSPLIT_2G
|
||||||
default 0xC0000000
|
default 0xC0000000
|
||||||
|
1
arch/arm/boot/compressed/.gitignore
vendored
1
arch/arm/boot/compressed/.gitignore
vendored
@ -1,4 +1,5 @@
|
|||||||
ashldi3.S
|
ashldi3.S
|
||||||
|
bswapsdi2.S
|
||||||
font.c
|
font.c
|
||||||
lib1funcs.S
|
lib1funcs.S
|
||||||
hyp-stub.S
|
hyp-stub.S
|
||||||
|
@ -30,14 +30,15 @@
|
|||||||
*/
|
*/
|
||||||
#define UL(x) _AC(x, UL)
|
#define UL(x) _AC(x, UL)
|
||||||
|
|
||||||
|
/* PAGE_OFFSET - the virtual address of the start of the kernel image */
|
||||||
|
#define PAGE_OFFSET UL(CONFIG_PAGE_OFFSET)
|
||||||
|
|
||||||
#ifdef CONFIG_MMU
|
#ifdef CONFIG_MMU
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PAGE_OFFSET - the virtual address of the start of the kernel image
|
|
||||||
* TASK_SIZE - the maximum size of a user space task.
|
* TASK_SIZE - the maximum size of a user space task.
|
||||||
* TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area
|
* TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area
|
||||||
*/
|
*/
|
||||||
#define PAGE_OFFSET UL(CONFIG_PAGE_OFFSET)
|
|
||||||
#define TASK_SIZE (UL(CONFIG_PAGE_OFFSET) - UL(SZ_16M))
|
#define TASK_SIZE (UL(CONFIG_PAGE_OFFSET) - UL(SZ_16M))
|
||||||
#define TASK_UNMAPPED_BASE ALIGN(TASK_SIZE / 3, SZ_16M)
|
#define TASK_UNMAPPED_BASE ALIGN(TASK_SIZE / 3, SZ_16M)
|
||||||
|
|
||||||
@ -104,10 +105,6 @@
|
|||||||
#define END_MEM (UL(CONFIG_DRAM_BASE) + CONFIG_DRAM_SIZE)
|
#define END_MEM (UL(CONFIG_DRAM_BASE) + CONFIG_DRAM_SIZE)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PAGE_OFFSET
|
|
||||||
#define PAGE_OFFSET PLAT_PHYS_OFFSET
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The module can be at any place in ram in nommu mode.
|
* The module can be at any place in ram in nommu mode.
|
||||||
*/
|
*/
|
||||||
|
@ -177,6 +177,18 @@ __lookup_processor_type_data:
|
|||||||
.long __proc_info_end
|
.long __proc_info_end
|
||||||
.size __lookup_processor_type_data, . - __lookup_processor_type_data
|
.size __lookup_processor_type_data, . - __lookup_processor_type_data
|
||||||
|
|
||||||
|
__error_lpae:
|
||||||
|
#ifdef CONFIG_DEBUG_LL
|
||||||
|
adr r0, str_lpae
|
||||||
|
bl printascii
|
||||||
|
b __error
|
||||||
|
str_lpae: .asciz "\nError: Kernel with LPAE support, but CPU does not support LPAE.\n"
|
||||||
|
#else
|
||||||
|
b __error
|
||||||
|
#endif
|
||||||
|
.align
|
||||||
|
ENDPROC(__error_lpae)
|
||||||
|
|
||||||
__error_p:
|
__error_p:
|
||||||
#ifdef CONFIG_DEBUG_LL
|
#ifdef CONFIG_DEBUG_LL
|
||||||
adr r0, str_p1
|
adr r0, str_p1
|
||||||
|
@ -102,7 +102,7 @@ ENTRY(stext)
|
|||||||
and r3, r3, #0xf @ extract VMSA support
|
and r3, r3, #0xf @ extract VMSA support
|
||||||
cmp r3, #5 @ long-descriptor translation table format?
|
cmp r3, #5 @ long-descriptor translation table format?
|
||||||
THUMB( it lo ) @ force fixup-able long branch encoding
|
THUMB( it lo ) @ force fixup-able long branch encoding
|
||||||
blo __error_p @ only classic page table format
|
blo __error_lpae @ only classic page table format
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_XIP_KERNEL
|
#ifndef CONFIG_XIP_KERNEL
|
||||||
|
@ -13,6 +13,8 @@
|
|||||||
#ifndef __ASM_ARCH_COLLIE_H
|
#ifndef __ASM_ARCH_COLLIE_H
|
||||||
#define __ASM_ARCH_COLLIE_H
|
#define __ASM_ARCH_COLLIE_H
|
||||||
|
|
||||||
|
#include "hardware.h" /* Gives GPIO_MAX */
|
||||||
|
|
||||||
extern void locomolcd_power(int on);
|
extern void locomolcd_power(int on);
|
||||||
|
|
||||||
#define COLLIE_SCOOP_GPIO_BASE (GPIO_MAX + 1)
|
#define COLLIE_SCOOP_GPIO_BASE (GPIO_MAX + 1)
|
||||||
|
@ -264,6 +264,9 @@ static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start)
|
|||||||
note_page(st, addr, 3, pmd_val(*pmd));
|
note_page(st, addr, 3, pmd_val(*pmd));
|
||||||
else
|
else
|
||||||
walk_pte(st, pmd, addr);
|
walk_pte(st, pmd, addr);
|
||||||
|
|
||||||
|
if (SECTION_SIZE < PMD_SIZE && pmd_large(pmd[1]))
|
||||||
|
note_page(st, addr + SECTION_SIZE, 3, pmd_val(pmd[1]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1502,6 +1502,16 @@ static int addend_386_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
|
|||||||
#define R_ARM_JUMP24 29
|
#define R_ARM_JUMP24 29
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef R_ARM_THM_CALL
|
||||||
|
#define R_ARM_THM_CALL 10
|
||||||
|
#endif
|
||||||
|
#ifndef R_ARM_THM_JUMP24
|
||||||
|
#define R_ARM_THM_JUMP24 30
|
||||||
|
#endif
|
||||||
|
#ifndef R_ARM_THM_JUMP19
|
||||||
|
#define R_ARM_THM_JUMP19 51
|
||||||
|
#endif
|
||||||
|
|
||||||
static int addend_arm_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
|
static int addend_arm_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
|
||||||
{
|
{
|
||||||
unsigned int r_typ = ELF_R_TYPE(r->r_info);
|
unsigned int r_typ = ELF_R_TYPE(r->r_info);
|
||||||
@ -1515,6 +1525,9 @@ static int addend_arm_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
|
|||||||
case R_ARM_PC24:
|
case R_ARM_PC24:
|
||||||
case R_ARM_CALL:
|
case R_ARM_CALL:
|
||||||
case R_ARM_JUMP24:
|
case R_ARM_JUMP24:
|
||||||
|
case R_ARM_THM_CALL:
|
||||||
|
case R_ARM_THM_JUMP24:
|
||||||
|
case R_ARM_THM_JUMP19:
|
||||||
/* From ARM ABI: ((S + A) | T) - P */
|
/* From ARM ABI: ((S + A) | T) - P */
|
||||||
r->r_addend = (int)(long)(elf->hdr +
|
r->r_addend = (int)(long)(elf->hdr +
|
||||||
sechdr->sh_offset +
|
sechdr->sh_offset +
|
||||||
|
Loading…
Reference in New Issue
Block a user