[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: A20 delay
- Date: Tue, 14 Dec 1999 11:53:07 +0100 (CET)
- From: "VALETTE Eric" <valette@crf.canon.fr>
- Subject: Re: A20 delay
>>>>> "Joel" == Joel Sherrill <joel.sherrill@oarcorp.com> writes:
Joel> The delay is used in two ways:
Joel> + A20 real to protected mode transition
Joel> + delay once kernel is up
Joel> The delay once kernel is up should be able to use a calibrated delay of
Joel> any sort.
I agree... I also agree for the GateA20 new method...
Joel> The one during boot time is really not a delay for time, it is a delay
Joel> for the real to protected mode transition to stabilize.
OK. Note that in linux there is (was at least) the concept of SLOW_DOWN_IO
(in include files...) so that IO operation can be slowed down...
/usr/src/linux/include/asm-i386/io.h
----------------------------------------------------------------------------
#ifdef SLOW_IO_BY_JUMPING
#define __SLOW_DOWN_IO "\njmp 1f\n1:\tjmp 1f\n1:"
#else
#define __SLOW_DOWN_IO "\noutb %%al,$0x80" <=============== Code I was mentionning
#endif
#ifdef REALLY_SLOW_IO
#define __FULL_SLOW_DOWN_IO __SLOW_DOWN_IO __SLOW_DOWN_IO __SLOW_DOWN_IO __SLOW_DOWN_IO
#else
#define __FULL_SLOW_DOWN_IO __SLOW_DOWN_IO
#endif
----------------------------------------------------------------------------
And that this code is used in some drivers :
./drivers/net/tulip.c:1055:#define eeprom_delay(nanosec) do { int _i = 3; while (--_i > 0) { __SLOW_DOWN_IO; }} while (0)
./drivers/net/tulip.c:1223: SLOW_DOWN_IO;
./drivers/net/eepro.c:169:#define SLOW_DOWN SLOW_DOWN_IO
./drivers/net/ne2.c:565: SLOW_DOWN_IO;
./drivers/net/ne2.c:566: SLOW_DOWN_IO;
./drivers/net/ne2.c:567: SLOW_DOWN_IO;
As well as for inb/outb familly :
--------------------------------------------------------------------------------------
__OUT1(s##_p,x) __OUT2(s,s1,"w") __FULL_SLOW_DOWN_IO : : "a" (value), "Nd" (port));} \
---------------------------------------------------------------------------------------
--
__
/ ` Eric Valette
/-- __ o _. Canon CRF - Communication Dept
(___, / (_(_(__ Rue de la touche lambert
35517 Cesson-Sevigne Cedex
FRANCE
Tel: +33 (0)2 99 87 68 91 Fax: +33 (0)2 99 84 11 30
E-mail: valette@crf.canon.fr http://www.crf.canon.fr
- References:
- A20 delay
- From: Joel Sherrill <joel.sherrill@OARcorp.com>