[U-Boot] [PATCH v4] dcache: Dcache line size aligned stack buffer allocation

Lukasz Majewski l.majewski at samsung.com
Thu Sep 1 12:30:18 CEST 2011


ALLOC_CACHE_ALIGN_BUFFER shall be used in functions, which are using
stack allocated buffers for DMA transfers.

Signed-off-by: Lukasz Majewski <l.majewski at samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>
CC: Albert ARIBAUD <albert.u.boot at aribaud.net>
---
Changes for v2:
	- ./include/cache.h has been removed and replaced with
	simpler macro added to ./include/common.h
Changes for v3:
	- change char * to char
	- defined table size definition
Changes for v4:
	- (type*) added for compiler warning fix

Signed-off-by: Lukasz Majewski <l.majewski at samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>
---
 include/common.h |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/include/common.h b/include/common.h
index 12a1074..a74c6e8 100644
--- a/include/common.h
+++ b/include/common.h
@@ -767,6 +767,11 @@ int cpu_release(int nr, int argc, char * const argv[]);
 #define ALIGN(x,a)		__ALIGN_MASK((x),(typeof(x))(a)-1)
 #define __ALIGN_MASK(x,mask)	(((x)+(mask))&~(mask))
 
+#define ALLOC_CACHE_ALIGN_BUFFER(type, name, size) \
+	char __##name[size + CONFIG_SYS_CACHELINE_SIZE - 1]; \
+	type *name = (type *)  ALIGN(((typeof(CONFIG_SYS_CACHELINE_SIZE))\
+				     (__##name)), (CONFIG_SYS_CACHELINE_SIZE));
+
 /* Pull in stuff for the build system */
 #ifdef DO_DEPS_ONLY
 # include <environment.h>
-- 
1.7.2.3



More information about the U-Boot mailing list