Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Jun 2015 22:52:56 +0000
From:      "zbb (Zbigniew Bodek)" <phabric-noreply@FreeBSD.org>
To:        freebsd-arm@freebsd.org
Subject:   [Differential] [Updated, 34 lines] D2701: Add options to dmb() and dsb() macros
Message-ID:  <13c018f87024eca6888b23b7f1400deb@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-kl3ls7rde2bkjzreqxfo-req@FreeBSD.org>
References:  <differential-rev-PHID-DREV-kl3ls7rde2bkjzreqxfo-req@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--b1_13c018f87024eca6888b23b7f1400deb
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: 8bit

zbb updated the summary for this revision.
zbb removed rS FreeBSD src repository as the repository for this revision.
zbb updated this revision to Diff 5973.

CHANGES SINCE LAST UPDATE
  https://reviews.freebsd.org/D2701?vs=5849&id=5973

REVISION DETAIL
  https://reviews.freebsd.org/D2701

AFFECTED FILES
  sys/arm64/arm64/db_interface.c
  sys/arm64/arm64/vfp.c
  sys/arm64/include/atomic.h

CHANGE DETAILS
  diff --git a/sys/arm64/include/atomic.h b/sys/arm64/include/atomic.h
  --- a/sys/arm64/include/atomic.h
  +++ b/sys/arm64/include/atomic.h
  @@ -29,13 +29,29 @@
   #ifndef	_MACHINE_ATOMIC_H_
   #define	_MACHINE_ATOMIC_H_
   
  -#define	isb()  __asm __volatile("isb" : : : "memory")
  -#define	dsb()  __asm __volatile("dsb sy" : : : "memory")
  -#define	dmb()  __asm __volatile("dmb sy" : : : "memory")
  +#define	isb()		__asm __volatile("isb" : : : "memory")
   
  -#define	mb()   dmb()
  -#define	wmb()  dmb()
  -#define	rmb()  dmb()
  +/*
  + * Options for DMB and DSB:
  + *	oshld	Outer Shareable, load
  + *	oshst	Outer Shareable, store
  + *	osh	Outer Shareable, all
  + *	nshld	Non-shareable, load
  + *	nshst	Non-shareable, store
  + *	nsh	Non-shareable, all
  + *	ishld	Inner Shareable, load
  + *	ishst	Inner Shareable, store
  + *	ish	Inner Shareable, all
  + *	ld	Full system, load
  + *	st	Full system, store
  + *	sy	Full system, all
  + */
  +#define	dsb(opt)	__asm __volatile("dsb " __STRING(opt) : : : "memory")
  +#define	dmb(opt)	__asm __volatile("dmb " __STRING(opt) : : : "memory")
  +
  +#define	mb()	dmb(sy)	/* Full system memory barrier all */
  +#define	wmb()	dmb(st)	/* Full system memory barrier store */
  +#define	rmb()	dmb(ld)	/* Full system memory barrier load */
   
   static __inline void
   atomic_add_32(volatile uint32_t *p, uint32_t val)
  diff --git a/sys/arm64/arm64/vfp.c b/sys/arm64/arm64/vfp.c
  --- a/sys/arm64/arm64/vfp.c
  +++ b/sys/arm64/arm64/vfp.c
  @@ -120,7 +120,7 @@
   		td->td_pcb->pcb_fpcr = fpcr;
   		td->td_pcb->pcb_fpsr = fpsr;
   
  -		dsb();
  +		dsb(ish);
   		vfp_disable();
   	}
   	critical_exit();
  diff --git a/sys/arm64/arm64/db_interface.c b/sys/arm64/arm64/db_interface.c
  --- a/sys/arm64/arm64/db_interface.c
  +++ b/sys/arm64/arm64/db_interface.c
  @@ -156,13 +156,11 @@
   		}
   		*dst++ = *data++;
   	}
  +	dsb(ish);
   
  -	dsb();
   	/* Clean D-cache and invalidate I-cache */
   	cpu_dcache_wb_range(addr, (vm_size_t)size);
   	cpu_icache_sync_range(addr, (vm_size_t)size);
  -	dsb();
  -	isb();
   
   	return (0);
   }

EMAIL PREFERENCES
  https://reviews.freebsd.org/settings/panel/emailpreferences/

To: zbb, emaste, imp, ian, andrew
Cc: emaste, andrew, freebsd-arm-list, imp

--b1_13c018f87024eca6888b23b7f1400deb
Content-Type: text/x-patch; charset=utf-8; name="D2701.5973.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D2701.5973.patch"

ZGlmZiAtLWdpdCBhL3N5cy9hcm02NC9pbmNsdWRlL2F0b21pYy5oIGIvc3lzL2FybTY0L2luY2x1
ZGUvYXRvbWljLmgKLS0tIGEvc3lzL2FybTY0L2luY2x1ZGUvYXRvbWljLmgKKysrIGIvc3lzL2Fy
bTY0L2luY2x1ZGUvYXRvbWljLmgKQEAgLTI5LDEzICsyOSwyOSBAQAogI2lmbmRlZglfTUFDSElO
RV9BVE9NSUNfSF8KICNkZWZpbmUJX01BQ0hJTkVfQVRPTUlDX0hfCiAKLSNkZWZpbmUJaXNiKCkg
IF9fYXNtIF9fdm9sYXRpbGUoImlzYiIgOiA6IDogIm1lbW9yeSIpCi0jZGVmaW5lCWRzYigpICBf
X2FzbSBfX3ZvbGF0aWxlKCJkc2Igc3kiIDogOiA6ICJtZW1vcnkiKQotI2RlZmluZQlkbWIoKSAg
X19hc20gX192b2xhdGlsZSgiZG1iIHN5IiA6IDogOiAibWVtb3J5IikKKyNkZWZpbmUJaXNiKCkJ
CV9fYXNtIF9fdm9sYXRpbGUoImlzYiIgOiA6IDogIm1lbW9yeSIpCiAKLSNkZWZpbmUJbWIoKSAg
IGRtYigpCi0jZGVmaW5lCXdtYigpICBkbWIoKQotI2RlZmluZQlybWIoKSAgZG1iKCkKKy8qCisg
KiBPcHRpb25zIGZvciBETUIgYW5kIERTQjoKKyAqCW9zaGxkCU91dGVyIFNoYXJlYWJsZSwgbG9h
ZAorICoJb3Noc3QJT3V0ZXIgU2hhcmVhYmxlLCBzdG9yZQorICoJb3NoCU91dGVyIFNoYXJlYWJs
ZSwgYWxsCisgKgluc2hsZAlOb24tc2hhcmVhYmxlLCBsb2FkCisgKgluc2hzdAlOb24tc2hhcmVh
YmxlLCBzdG9yZQorICoJbnNoCU5vbi1zaGFyZWFibGUsIGFsbAorICoJaXNobGQJSW5uZXIgU2hh
cmVhYmxlLCBsb2FkCisgKglpc2hzdAlJbm5lciBTaGFyZWFibGUsIHN0b3JlCisgKglpc2gJSW5u
ZXIgU2hhcmVhYmxlLCBhbGwKKyAqCWxkCUZ1bGwgc3lzdGVtLCBsb2FkCisgKglzdAlGdWxsIHN5
c3RlbSwgc3RvcmUKKyAqCXN5CUZ1bGwgc3lzdGVtLCBhbGwKKyAqLworI2RlZmluZQlkc2Iob3B0
KQlfX2FzbSBfX3ZvbGF0aWxlKCJkc2IgIiBfX1NUUklORyhvcHQpIDogOiA6ICJtZW1vcnkiKQor
I2RlZmluZQlkbWIob3B0KQlfX2FzbSBfX3ZvbGF0aWxlKCJkbWIgIiBfX1NUUklORyhvcHQpIDog
OiA6ICJtZW1vcnkiKQorCisjZGVmaW5lCW1iKCkJZG1iKHN5KQkvKiBGdWxsIHN5c3RlbSBtZW1v
cnkgYmFycmllciBhbGwgKi8KKyNkZWZpbmUJd21iKCkJZG1iKHN0KQkvKiBGdWxsIHN5c3RlbSBt
ZW1vcnkgYmFycmllciBzdG9yZSAqLworI2RlZmluZQlybWIoKQlkbWIobGQpCS8qIEZ1bGwgc3lz
dGVtIG1lbW9yeSBiYXJyaWVyIGxvYWQgKi8KIAogc3RhdGljIF9faW5saW5lIHZvaWQKIGF0b21p
Y19hZGRfMzIodm9sYXRpbGUgdWludDMyX3QgKnAsIHVpbnQzMl90IHZhbCkKZGlmZiAtLWdpdCBh
L3N5cy9hcm02NC9hcm02NC92ZnAuYyBiL3N5cy9hcm02NC9hcm02NC92ZnAuYwotLS0gYS9zeXMv
YXJtNjQvYXJtNjQvdmZwLmMKKysrIGIvc3lzL2FybTY0L2FybTY0L3ZmcC5jCkBAIC0xMjAsNyAr
MTIwLDcgQEAKIAkJdGQtPnRkX3BjYi0+cGNiX2ZwY3IgPSBmcGNyOwogCQl0ZC0+dGRfcGNiLT5w
Y2JfZnBzciA9IGZwc3I7CiAKLQkJZHNiKCk7CisJCWRzYihpc2gpOwogCQl2ZnBfZGlzYWJsZSgp
OwogCX0KIAljcml0aWNhbF9leGl0KCk7CmRpZmYgLS1naXQgYS9zeXMvYXJtNjQvYXJtNjQvZGJf
aW50ZXJmYWNlLmMgYi9zeXMvYXJtNjQvYXJtNjQvZGJfaW50ZXJmYWNlLmMKLS0tIGEvc3lzL2Fy
bTY0L2FybTY0L2RiX2ludGVyZmFjZS5jCisrKyBiL3N5cy9hcm02NC9hcm02NC9kYl9pbnRlcmZh
Y2UuYwpAQCAtMTU2LDEzICsxNTYsMTEgQEAKIAkJfQogCQkqZHN0KysgPSAqZGF0YSsrOwogCX0K
Kwlkc2IoaXNoKTsKIAotCWRzYigpOwogCS8qIENsZWFuIEQtY2FjaGUgYW5kIGludmFsaWRhdGUg
SS1jYWNoZSAqLwogCWNwdV9kY2FjaGVfd2JfcmFuZ2UoYWRkciwgKHZtX3NpemVfdClzaXplKTsK
IAljcHVfaWNhY2hlX3N5bmNfcmFuZ2UoYWRkciwgKHZtX3NpemVfdClzaXplKTsKLQlkc2IoKTsK
LQlpc2IoKTsKIAogCXJldHVybiAoMCk7CiB9Cgo=


--b1_13c018f87024eca6888b23b7f1400deb--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?13c018f87024eca6888b23b7f1400deb>