plan 9 kernel history: overview | file list | diff list

2002/0606/bitsy/sdata.c (diff list | history)

2002/0217/sys/src/9/bitsy/sdata.c:368,3742002/0606/sys/src/9/bitsy/sdata.c:368,374 (short | long | prev | next)
2001/0908    
			atadebug(0, 0, "ataready: %d 0x%2.2uX\n", micro, as); 
			break; 
		} 
		µdelay(4); 
2002/0606    
		microdelay(4); 
2001/0908    
	} 
	atadebug(cmdport, ctlport, "ataready: timeout"); 
 
2002/0217/sys/src/9/bitsy/sdata.c:431,4372002/0606/sys/src/9/bitsy/sdata.c:431,437
2001/0908    
		return 0; 
	outb(cmdport+Count, rwm); 
	outb(cmdport+Command, Csm); 
	µdelay(4); 
2002/0606    
	microdelay(4); 
2001/0908    
	as = ataready(cmdport, ctlport, 0, Bsy, Drdy|Df|Err, 1000); 
	inb(cmdport+Status); 
	if(as < 0 || (as & (Df|Err))) 
2002/0217/sys/src/9/bitsy/sdata.c:482,4882002/0606/sys/src/9/bitsy/sdata.c:482,488
2001/0908    
	if(as < 0) 
		return as; 
	outb(cmdport+Command, command); 
	µdelay(4); 
2002/0606    
	microdelay(4); 
2001/0908    
 
	as = ataready(cmdport, ctlport, 0, Bsy, Drq|Err, 400*1000); 
	if(as < 0) 
2002/0217/sys/src/9/bitsy/sdata.c:600,6102002/0606/sys/src/9/bitsy/sdata.c:600,610
2001/0908    
	 * Also, there will be problems here if overlapped commands 
	 * are ever supported. 
	 */ 
	µdelay(20); 
2002/0606    
	microdelay(20); 
2001/0908    
	outb(ctlport+Dc, Srst); 
	µdelay(20); 
2002/0606    
	microdelay(20); 
2001/0908    
	outb(ctlport+Dc, 0); 
	µdelay(4*1000); 
2002/0606    
	microdelay(4*1000); 
2001/0908    
} 
 
static SDev* 
2002/0217/sys/src/9/bitsy/sdata.c:631,6372002/0606/sys/src/9/bitsy/sdata.c:631,637
2001/0908    
	dev = Dev0; 
	if(inb(ctlport+As) & Bsy){ 
		outb(cmdport+Dh, dev); 
		µdelay(5); 
2002/0606    
		microdelay(5); 
2001/0908    
trydev1: 
		atadebug(cmdport, ctlport, "ataprobe bsy"); 
		outb(cmdport+Cyllo, 0xAA); 
2002/0217/sys/src/9/bitsy/sdata.c:732,7382002/0606/sys/src/9/bitsy/sdata.c:732,738
2001/0908    
			} 
			else{ 
				outb(cmdport+Dh, Dev0); 
				µdelay(1); 
2002/0606    
				microdelay(1); 
2001/0908    
			} 
		} 
#endif 
2002/0217/sys/src/9/bitsy/sdata.c:846,8582002/0606/sys/src/9/bitsy/sdata.c:846,858
2001/0908    
	ctlr->command = Cnop;		/* debugging */ 
	outb(cmdport+Command, Cnop); 
 
	µdelay(1); 
2002/0606    
	microdelay(1); 
2001/0908    
	ctlport = ctlr->ctlport; 
	for(timeo = 0; timeo < 1000; timeo++){ 
		as = inb(ctlport+As); 
		if(!(as & Bsy)) 
			break; 
		µdelay(1); 
2002/0606    
		microdelay(1); 
2001/0908    
	} 
	drive->error |= Abrt; 
} 
2002/0217/sys/src/9/bitsy/sdata.c:1078,10842002/0606/sys/src/9/bitsy/sdata.c:1078,1084
2001/0908    
	outb(cmdport+Command, Cpkt); 
 
	if((drive->info[Iconfig] & 0x0060) != 0x0020){ 
		µdelay(1); 
2002/0606    
		microdelay(1); 
2001/0908    
		as = ataready(cmdport, ctlport, 0, Bsy, Drq|Chk, 4*1000); 
		if(as < 0) 
			r = SDtimeout; 
2002/0217/sys/src/9/bitsy/sdata.c:1180,11862002/0606/sys/src/9/bitsy/sdata.c:1180,1186
2001/0908    
	switch(drive->command){ 
	case Cws: 
	case Cwsm: 
		µdelay(1); 
2002/0606    
		microdelay(1); 
2001/0908    
		as = ataready(cmdport, ctlport, 0, Bsy, Drq|Err, 1000); 
		if(as < 0 || (as & Err)){ 
			iunlock(ctlr); 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)