9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] rpi emmc
@ 2016-01-03  2:28 erik quanstrom
  2016-01-03  4:53 ` David du Colombier
  0 siblings, 1 reply; 5+ messages in thread
From: erik quanstrom @ 2016-01-03  2:28 UTC (permalink / raw)
  To: 9fans

in diffing bls' version and sources, i see some significant differences, but
it's not clear which one is more up-to-date.

anyone?

- erik

----

; 9diff emmc.c
/n/sources/plan9/sys/src/9/bcm/emmc.c:178,184 - emmc.c:178,188
  static int
  datadone(void*)
  {
- 	return emmc.datadone;
+ 	int i;
+
+ 	u32int *r = (u32int*)EMMCREGS;
+ 	i = r[Interrupt];
+ 	return i & (Datadone|Err);
  }

  static int
/n/sources/plan9/sys/src/9/bcm/emmc.c:310,318 - emmc.c:314,322
  	if((c & Respmask) == Resp48busy){
  		WR(Irpten, Datadone|Err);
  		tsleep(&emmc.r, datadone, 0, 3000);
- 		i = emmc.datadone;
- 		emmc.datadone = 0;
  		WR(Irpten, 0);
+ 		emmc.datadone = 0;
+ 		i = r[Interrupt];
  		if((i & Datadone) == 0)
  			print("emmcio: no Datadone after CMD%d\n", cmd);
  		if(i & Err)
/n/sources/plan9/sys/src/9/bcm/emmc.c:380,390 - emmc.c:384,396
  			&r[Data], buf, len);
  	if(dmawait(DmaChanEmmc) < 0)
  		error(Eio);
+ 	if(!write)
+ 		cachedinvse(buf, len);
  	WR(Irpten, Datadone|Err);
  	tsleep(&emmc.r, datadone, 0, 3000);
- 	i = emmc.datadone;
- 	emmc.datadone = 0;
  	WR(Irpten, 0);
+ 	emmc.datadone = 0;
+ 	i = r[Interrupt];
  	if((i & Datadone) == 0){
  		print("emmcio: %d timeout intr %ux stat %ux\n",
  			write, i, r[Status]);
/n/sources/plan9/sys/src/9/bcm/emmc.c:407,419 - emmc.c:413,423
  mmcinterrupt(Ureg*, void*)
  {
  	u32int *r;
- 	int i;
-
  	r = (u32int*)EMMCREGS;
- 	i = r[Interrupt];
- 	r[Interrupt] = i & (Datadone|Err);
- 	emmc.datadone = i;
- 	wakeup(&emmc.r);
+ 	if(r[Interrupt]&(Datadone|Err)){
+ 		WR(Irpten, 0);
+ 		wakeup(&emmc.r);
+ 	}
  }

  SDio sdio = {



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [9fans] rpi emmc
  2016-01-03  2:28 [9fans] rpi emmc erik quanstrom
@ 2016-01-03  4:53 ` David du Colombier
  0 siblings, 0 replies; 5+ messages in thread
From: David du Colombier @ 2016-01-03  4:53 UTC (permalink / raw)
  To: 9fans

> in diffing bls' version and sources, i see some significant
> differences, but it's not clear which one is more up-to-date.

Brian Stuart's version is more up-to-date.

Brian Stuart based his changes on the latest changes from Richard Miller,
available in /n/sources/contrib/miller/9/bcm.

term% ape/diff -Nru /n/sources/plan9/sys/src/9/bcm/emmc.c /n/sources/contrib/miller/9/bcm/emmc.c
--- /n/sources/plan9/sys/src/9/bcm/emmc.c	Tue Jan 29 22:07:37 2013
+++ /n/sources/contrib/miller/9/bcm/emmc.c	Wed Mar 11 12:23:33 2015
@@ -178,7 +178,11 @@
 static int
 datadone(void*)
 {
-	return emmc.datadone;
+	int i;
+
+	u32int *r = (u32int*)EMMCREGS;
+	i = r[Interrupt];
+	return i & (Datadone|Err);
 }

 static int
@@ -310,9 +314,9 @@
 	if((c & Respmask) == Resp48busy){
 		WR(Irpten, Datadone|Err);
 		tsleep(&emmc.r, datadone, 0, 3000);
-		i = emmc.datadone;
-		emmc.datadone = 0;
 		WR(Irpten, 0);
+		emmc.datadone = 0;
+		i = r[Interrupt];
 		if((i & Datadone) == 0)
 			print("emmcio: no Datadone after CMD%d\n", cmd);
 		if(i & Err)
@@ -380,11 +384,13 @@
 			&r[Data], buf, len);
 	if(dmawait(DmaChanEmmc) < 0)
 		error(Eio);
+	if(!write)
+		cachedinvse(buf, len);
 	WR(Irpten, Datadone|Err);
 	tsleep(&emmc.r, datadone, 0, 3000);
-	i = emmc.datadone;
-	emmc.datadone = 0;
 	WR(Irpten, 0);
+	emmc.datadone = 0;
+	i = r[Interrupt];
 	if((i & Datadone) == 0){
 		print("emmcio: %d timeout intr %ux stat %ux\n",
 			write, i, r[Status]);
@@ -407,13 +413,11 @@
 mmcinterrupt(Ureg*, void*)
 {
 	u32int *r;
-	int i;
-
 	r = (u32int*)EMMCREGS;
-	i = r[Interrupt];
-	r[Interrupt] = i & (Datadone|Err);
-	emmc.datadone = i;
-	wakeup(&emmc.r);
+	if(r[Interrupt]&(Datadone|Err)){
+		WR(Irpten, 0);
+		wakeup(&emmc.r);
+	}
 }

 SDio sdio = {

--
David du Colombier



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [9fans] rpi emmc
  2016-01-03  5:18 ` Brian L. Stuart
  2016-01-03  5:27   ` erik quanstrom
@ 2016-01-03  5:29   ` David du Colombier
  1 sibling, 0 replies; 5+ messages in thread
From: David du Colombier @ 2016-01-03  5:29 UTC (permalink / raw)
  To: 9fans

> I'm pretty sure that file is unchanged from Richard's latest version
> on contrib.

Yes, it is unchanged.

--
David du Colombier



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [9fans] rpi emmc
  2016-01-03  5:18 ` Brian L. Stuart
@ 2016-01-03  5:27   ` erik quanstrom
  2016-01-03  5:29   ` David du Colombier
  1 sibling, 0 replies; 5+ messages in thread
From: erik quanstrom @ 2016-01-03  5:27 UTC (permalink / raw)
  To: blstuart, 9fans

On Sat Jan  2 21:23:12 PST 2016, blstuart@bellsouth.net wrote:
> On Sat, 1/2/16, David du Colombier <0intro@gmail.com> wrote:
> > > in diffing bls' version and sources, i see some significant
> > > differences, but it's not clear which one is more up-to-date.
> >
> > Brian Stuart's version is more up-to-date.
> >
> > Brian Stuart based his changes on the latest changes from Richard
> > Miller, available in /n/sources/contrib/miller/9/bcm.
>
> I'm pretty sure that file is unchanged from Richard's latest version
> on contrib.

ok.  i got confused with all the versions floating around.

- erik



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [9fans] rpi emmc
       [not found] <1064208925.81416.1451798293880.JavaMail.yahoo.ref@mail.yahoo.com>
@ 2016-01-03  5:18 ` Brian L. Stuart
  2016-01-03  5:27   ` erik quanstrom
  2016-01-03  5:29   ` David du Colombier
  0 siblings, 2 replies; 5+ messages in thread
From: Brian L. Stuart @ 2016-01-03  5:18 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

On Sat, 1/2/16, David du Colombier <0intro@gmail.com> wrote:
> > in diffing bls' version and sources, i see some significant
> > differences, but it's not clear which one is more up-to-date.
>
> Brian Stuart's version is more up-to-date.
>
> Brian Stuart based his changes on the latest changes from Richard
> Miller, available in /n/sources/contrib/miller/9/bcm.

I'm pretty sure that file is unchanged from Richard's latest version
on contrib.

BLS



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-01-03  5:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-03  2:28 [9fans] rpi emmc erik quanstrom
2016-01-03  4:53 ` David du Colombier
     [not found] <1064208925.81416.1451798293880.JavaMail.yahoo.ref@mail.yahoo.com>
2016-01-03  5:18 ` Brian L. Stuart
2016-01-03  5:27   ` erik quanstrom
2016-01-03  5:29   ` David du Colombier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).