From 01c55e4217395e0a99d45ae1d8ac17ff22bd4a85 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=BB=84=E6=B6=9B?= Date: Mon, 10 May 2010 08:46:32 +0000 Subject: [PATCH] enable TCM --- arch/arm/Kconfig | 1 + arch/arm/mach-rk2818/board-midsdk.c | 9 +-------- arch/arm/mach-rk2818/include/mach/memory.h | 8 ++++++++ arch/arm/mm/init.c | 6 +++--- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index b252195a9708..270b2c28b2c7 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -705,6 +705,7 @@ config ARCH_RK2818 bool "Rockchip soc rk2818" select CPU_ARM926T select CPU_CP15_MMU + select HAVE_TCM select HAVE_CLK select COMMON_CLKDEV select GENERIC_TIME diff --git a/arch/arm/mach-rk2818/board-midsdk.c b/arch/arm/mach-rk2818/board-midsdk.c index 36ef1d27cb1f..0b69e57183e6 100644 --- a/arch/arm/mach-rk2818/board-midsdk.c +++ b/arch/arm/mach-rk2818/board-midsdk.c @@ -129,14 +129,7 @@ static struct map_desc rk2818_io_desc[] __initdata = { .length = 0xa0000, ///apb bus i2s i2c spi no map in this .type = MT_DEVICE }, - - { - .virtual = 0xff400000, /* for itcm , vir = phy , for reboot */ - .pfn = __phys_to_pfn(0xff400000), - .length = SZ_16K, - .type = MT_DEVICE - } - + }; static struct platform_device *devices[] __initdata = { diff --git a/arch/arm/mach-rk2818/include/mach/memory.h b/arch/arm/mach-rk2818/include/mach/memory.h index dba9818eb166..2749a563886e 100644 --- a/arch/arm/mach-rk2818/include/mach/memory.h +++ b/arch/arm/mach-rk2818/include/mach/memory.h @@ -23,5 +23,13 @@ #define __virt_to_bus(x) __virt_to_phys(x) #define __bus_to_virt(x) __phys_to_virt(x) +/* + * TCM memory whereabouts + */ +#define ITCM_OFFSET 0xff400000 +#define ITCM_END 0xff401fff +#define DTCM_OFFSET 0xff404000 +#define DTCM_END 0xff407fff + #endif diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 52c40d155672..94945dbf78a0 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -632,10 +632,10 @@ void __init mem_init(void) void free_initmem(void) { #ifdef CONFIG_HAVE_TCM - extern char *__tcm_start, *__tcm_end; + extern char __tcm_start, __tcm_end; - totalram_pages += free_area(__phys_to_pfn(__pa(__tcm_start)), - __phys_to_pfn(__pa(__tcm_end)), + totalram_pages += free_area(__phys_to_pfn(__pa(&__tcm_start)), + __phys_to_pfn(__pa(&__tcm_end)), "TCM link"); #endif -- 2.34.1