forked from Minki/linux
bc581770cf
This adds the TCM interface to Linux, when active, it will detect and report TCM memories and sizes early in boot if present, introduce generic TCM memory handling, provide a generic TCM memory pool and select TCM memory for the U300 platform. See the Documentation/arm/tcm.txt for documentation. Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
32 lines
879 B
C
32 lines
879 B
C
/*
|
|
*
|
|
* Copyright (C) 2008-2009 ST-Ericsson AB
|
|
* License terms: GNU General Public License (GPL) version 2
|
|
*
|
|
* Author: Rickard Andersson <rickard.andersson@stericsson.com>
|
|
* Author: Linus Walleij <linus.walleij@stericsson.com>
|
|
*
|
|
*/
|
|
#ifndef __ASMARM_TCM_H
|
|
#define __ASMARM_TCM_H
|
|
|
|
#ifndef CONFIG_HAVE_TCM
|
|
#error "You should not be including tcm.h unless you have a TCM!"
|
|
#endif
|
|
|
|
#include <linux/compiler.h>
|
|
|
|
/* Tag variables with this */
|
|
#define __tcmdata __section(.tcm.data)
|
|
/* Tag constants with this */
|
|
#define __tcmconst __section(.tcm.rodata)
|
|
/* Tag functions inside TCM called from outside TCM with this */
|
|
#define __tcmfunc __attribute__((long_call)) __section(.tcm.text) noinline
|
|
/* Tag function inside TCM called from inside TCM with this */
|
|
#define __tcmlocalfunc __section(.tcm.text)
|
|
|
|
void *tcm_alloc(size_t len);
|
|
void tcm_free(void *addr, size_t len);
|
|
|
|
#endif
|