From 75ed405c63b3fc2402fb8ff825b0ebffcff26b57 Mon Sep 17 00:00:00 2001 From: Roy Huang Date: Thu, 14 Jun 2007 12:54:44 +0800 Subject: Blackfin arch: fix bug ad1836 fails to build properly for BF533-EZKIT bug log here: http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=3166 Signed-off-by: Roy Huang Signed-off-by: Bryan Wu --- include/asm-blackfin/mach-common/def_LPBlackfin.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/include/asm-blackfin/mach-common/def_LPBlackfin.h b/include/asm-blackfin/mach-common/def_LPBlackfin.h index 76103526aec1..be1ece8c0c27 100644 --- a/include/asm-blackfin/mach-common/def_LPBlackfin.h +++ b/include/asm-blackfin/mach-common/def_LPBlackfin.h @@ -42,6 +42,12 @@ #if defined(ANOMALY_05000198) +#define bfin_read8(addr) ({ unsigned char __v; \ + __asm__ __volatile__ ("NOP;\n\t" \ + "%0 = b[%1] (z);\n\t" \ + : "=d"(__v) : "a"(addr)); \ + __v; }) + #define bfin_read16(addr) ({ unsigned __v; \ __asm__ __volatile__ ("NOP;\n\t"\ "%0 = w[%1] (z);\n\t"\ @@ -52,6 +58,11 @@ "%0 = [%1];\n\t"\ : "=d"(__v) : "a"(addr)); __v; }) +#define bfin_write8(addr, val) ({ \ + __asm__ __volatile__ ("NOP;\n\t" \ + "b[%0] = %1;\n\t" \ + : : "a"(addr), "d"(val) : "memory");}) + #define bfin_write16(addr,val) ({\ __asm__ __volatile__ ("NOP;\n\t"\ "w[%0] = %1;\n\t"\ @@ -64,6 +75,12 @@ #else +#define bfin_read8(addr) ({ unsigned char __v; \ + __asm__ __volatile__ ( \ + "%0 = b[%1] (z);\n\t" \ + :"=d"(__v) : "a"(addr)); \ + __v; }) + #define bfin_read16(addr) ({ unsigned __v; \ __asm__ __volatile__ (\ "%0 = w[%1] (z);\n\t"\ @@ -74,6 +91,11 @@ "%0 = [%1];\n\t"\ : "=d"(__v) : "a"(addr)); __v; }) +#define bfin_write8(addr, val) ({ \ + __asm__ __volatile__ ( \ + "b[%0] = %1; \n\t" \ + ::"a"(addr), "d"(val) : "memory");}) + #define bfin_write16(addr,val) ({\ __asm__ __volatile__ (\ "w[%0] = %1;\n\t"\ -- cgit v1.2.3-59-g8ed1b