From d822f4193fb35512eedd7deef224776554df763b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 24 Jul 2013 07:47:51 -0600 Subject: [PATCH] Improve Cortex-A5 context switching so that a little less copying is done --- configs/sama5d3x-ek/ostest/defconfig | 2 ++ configs/sama5d3x-ek/scripts/ddram.ld | 5 ++++- configs/sama5d3x-ek/scripts/isram.ld | 8 ++++++-- configs/sama5d3x-ek/scripts/pg-sram.ld | 3 +++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/configs/sama5d3x-ek/ostest/defconfig b/configs/sama5d3x-ek/ostest/defconfig index 827524b480..f527d055cf 100644 --- a/configs/sama5d3x-ek/ostest/defconfig +++ b/configs/sama5d3x-ek/ostest/defconfig @@ -93,6 +93,8 @@ CONFIG_ARCH_CHIP="sama5" CONFIG_ARCH_HAVE_FPU=y CONFIG_ARCH_FPU=y # CONFIG_ARCH_HAVE_MPU is not set +CONFIG_ARCH_HAVE_LOWVECTORS=y +CONFIG_ARCH_LOWVECTORS=y CONFIG_PGTABLE_VADDR=0x20000000 # CONFIG_ARCH_ROMPGTABLE is not set # CONFIG_PAGING is not set diff --git a/configs/sama5d3x-ek/scripts/ddram.ld b/configs/sama5d3x-ek/scripts/ddram.ld index bebda34a52..fcc213f618 100644 --- a/configs/sama5d3x-ek/scripts/ddram.ld +++ b/configs/sama5d3x-ek/scripts/ddram.ld @@ -36,11 +36,14 @@ /* The SAMA5D3 has 128 KB of ISRAM beginning at virtual address 0x0030:0000. * This memory configuration, however, loads into the 64 MB SDRAM on board * the SAMA5D3x-EK which lies at 0x2000:0000 + * + * Vectors in low memory are assumed and 16KB of ISRAM is reserved at the + * high end of ISRAM for the page table. */ MEMORY { - isram (W!RX) : ORIGIN = 0x300000, LENGTH = 128K + isram (W!RX) : ORIGIN = 0x300000, LENGTH = 128K - 16K sdram (W!RX) : ORIGIN = 0x20000000, LENGTH = 64M } diff --git a/configs/sama5d3x-ek/scripts/isram.ld b/configs/sama5d3x-ek/scripts/isram.ld index 9ffe7fbf0a..035fd57470 100644 --- a/configs/sama5d3x-ek/scripts/isram.ld +++ b/configs/sama5d3x-ek/scripts/isram.ld @@ -33,11 +33,15 @@ * ****************************************************************************/ -/* The SAMA5D3 has 128 KB of ISRAM beginning at virtual address 0x0030:0000. */ +/* The SAMA5D3 has 128 KB of ISRAM beginning at virtual address 0x0030:0000. + * + * Vectors in low memory are assumed and 16KB of ISRAM is reserved at the + * high end of ISRAM for the page table. + */ MEMORY { - isram (W!RX) : ORIGIN = 0x300000, LENGTH = 128K + isram (W!RX) : ORIGIN = 0x300000, LENGTH = 128K - 16K } OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") diff --git a/configs/sama5d3x-ek/scripts/pg-sram.ld b/configs/sama5d3x-ek/scripts/pg-sram.ld index 17eb81d56f..6cf0591a2c 100644 --- a/configs/sama5d3x-ek/scripts/pg-sram.ld +++ b/configs/sama5d3x-ek/scripts/pg-sram.ld @@ -60,6 +60,9 @@ * get a link time error saying that the locked region is full, you may have to * re-organize this memory layout (here and in defconfig) to make the locked * region even bigger. + * + * NOTE 3: Vectors in low memory are assumed and 16KB of ISRAM is reserved at + * the high end of ISRAM for the page table (?). */ MEMORY