  El Mini-Cmo de Ultra-DMA en Linux
  Brion Vibber, brion@pobox.com
  v2.0, 7 de Agosto 1998

  Este documento pretende explicar cmo usar los discos duros con inter
  faces Ultra-DMA, tambin conocidas como Ultra-ATA y Ultra33, en Linux.
  La ltima versin de este documento puede encontrarse en formato HTML
  en http://pobox.com/~brion/linux/Ultra-DMA.html.
  ______________________________________________________________________

  ndice general


  1. Introduccin
     1.1 Renuncia de responsabilidad
     1.2 Reconocimientos
     1.3 Historia del Documento
     1.4 Copias

  2. Qu es Ultra-DMA y para qu lo quiero?
     2.1 IDE, EIDE, y ATAPI
     2.2 Bus Master DMA
     2.3 Ultra-DMA o Ultra-ATA o Ultra33 o...
     2.4 Exactamente cmo de ``Ultra'' es?
     2.5 UDMA comparado con SCSI

  3. Usando su disco duro UDMA con una interfaz EIDE
  4. Usando sus discos duros con una interfaz UDMA
  5. Interfaces UDMA PCI externas
     5.1 Promise Ultra33
     5.2 Artop ATP850UF
     5.3 Aadiendo ficheros de dispositivo

  6. Interfaces UDMA en placa
     6.1 Intel FX, HX, VX, TX, y LX
     6.2 El VIA VP2 y Chipsets relacionados
     6.3 TX Pro y otras placas ``Pro''

  7. UDMA-Generic (UDMA genrico)
  8. Activando y desactivando el UDMA
     8.1 Usando los parmetros de arranque del ncleo
     8.2 Usando hdparm

  9. Problemas
     9.1 La Lista Negra del UDMA
     9.2 Va usted demasiado deprisa?
     9.3 Su BIOS est actualizada?
     9.4 Si todava no puede hacer que funcione!

  10. Si tiene alguna informacin sobre UDMA que no aparezca en este documento...


  ______________________________________________________________________

  11..  IInnttrroodduucccciinn


  Este documento pretende explicar cmo usar los discos duros con
  interfaces Ultra-DMA, tambin conocidas como Ultra-ATA y Ultra33, en
  Linux. A pesar de que en algunos casos no encierran dificultad, pueden
  hacerse algunas modificaciones con el fin de aumentar las
  prestaciones. Adems, comprobar que, en ocasiones, el uso de estos
  dispositivos no es tan trivial.



  11..11..  RReennuunncciiaa ddee rreessppoonnssaabbiilliiddaadd


  La informacin que contiene este documento es, hasta donde llega mi
  conocimiento, correcta, por lo que debera funcionar. De todas
  maneras, a parte de la posible existencia de errores ortogrficos,
  cabe la posibilidad de que lo descrito en este documento no funcione
  en su sistema, debido a algn tipo de incompatibilidad. Es por ello
  que le recomiendo que, antes de comenzar a manipular su disco duro,
  HHAAGGAA CCOOPPIIAASS DDEE SSEEGGUURRIIDDAADD DDEE TTOODDOO AAQQUUEELLLLOO QQUUEE QQUUIIEERRAA GGUUAARRDDAARR!! Si no
  acostumbra a hacerlas, esta es una buena ocasin para comenzar.


  11..22..  RReeccoonnoocciimmiieennttooss


  Michel Aubry <mailto:giovanni@sudfr.com> - Parche UDMA para VIA en
  <=2.0.33 y ms informacin, Gran Parche Unificado de UDMA para 2.0.34+

  Andrew Balsa <mailto:andrebalsa@altern.org> - Provey informacin
  general sobre UDMA y el parche udma-generic para Intel TX, SiS, y VP1
  en <=2.0.33; tambin Gran Parche Unificado de UDMA para 2.0.34+

  Maxime Baudin - Traduccin al Francs

  Bokonon - ``Controladora'' vs. ``interfaz''

  John G. <mailto:prefect@ipass.net> - Parche para VIA VP2 en <=2.0.33 e
  informacin

  Martin Gaitan - Instalacin de ide0/ide1 para Promise Ultra33

  Andre M. Hedrick <mailto:hedrick@Astro.Dyer.Vanderbilt.Edu> - Gran
  Parche Unificado de UDMA para 2.0.34, Artop ATP850UF

  Norman Jacobowitz - Me pidi aadir informacin sobre VP3

  John Levon - Informacin sobre la TX Pro mobos

  Peter Monta - Informacin sobre el uso de dos tarjetas Ultra33

  Masayoshi Nakano - Traduccin al Japons

  Gadi Oxman <mailto:gadio@netvision.net.il> - El parche de la Promise
  Ultra33 para <=2.0.34 y nmeros secretos para el truco

  Andy Pearce - Sugiri aadir informacin de los ficheros de
  dispositivo adicionales para hde-h

  Andrei Pitis <mailto:pink@roedu.net> - Parche para LILO

  Brion Vibber <mailto:brion@pobox.com> - Este documento


  11..33..  HHiissttoorriiaa ddeell DDooccuummeennttoo


  v2.0, 7 Agosto 1998: actualizacin y total reestructuracin de la
  informacin sobre interfaces de la placa madre y tarjetas externas,
  informacin sobre el Gran Parche Unificado de UDMA (una parte del
  parche Jumbo) para 2.0.35, crditos en orden alfabtico por el
  apellido, sustitucin del trmino ``controladora'' por ``interfaz''
  (ms correcto desde el punto de vista tcnico), nueva informacin
  sobre activacin/desactivacin de UDMA, aadida una lista de problemas
  y ms cosas!

  v1.45, 6 Julio 1998: pequeas actualizaciones, parche de la Promise
  Ultra33 para el ncleo 2.0.34 en la Red Hat 5.1 y parche que permite a
  LILO arrancar desde interfaces PCI como la Promise Ultra33.

  v1.41, 3 Mayo 1998: arreglados unos cuantos errores ortogrficos y
  presencia de los traductores en los crditos.

  v1.4, 28 Abril 1998: parche UDMA-Generic, nueva informacin general y
  aparicin de una seccin sobre copias.

  v1.3, 5 Marzo 1998: informacin sobre VIA VP3, mejores instrucciones
  de ``parcheado'' y enlace al parche de Promise ms reciente.

  v1.2, 27 Enero 1998: informacin adicional del truco para la Promise.

  v1.1, 21 Enero 1998: nueva informacin acerca del chipset VIA,
  instalacin de la Promise Ultra33 y activacin de los modos de
  transferencia Bus Master y UDMA.

  v1.0, 19 Enero 1998: primera versin escrita en SGML. Bastante
  completa.


  11..44..  CCooppiiaass


  Este documento puede ser copiado libremente y/o distribuido para
  propsitos informativos. No puede ser modificado, excepto para cambio
  de formato, sin la autorizacin del autor. Si desea traducir este
  documento a otro idioma lo puede hacer pero, de todas formas, deber
  contactar primero con el autor para que las versiones actualizadas
  puedan ser enviadas a los traductores, as como al Linux Documentation
  Project.


  22..  QQuu eess UUllttrraa--DDMMAA yy ppaarraa qquu lloo qquuiieerroo??


  Aqu tiene una breve descripcin de las tecnologas de dispositivos
  basadas en IDE:


  22..11..  IIDDEE,, EEIIDDEE,, yy AATTAAPPII


  Estas son tecnologas antiguas. La mayora de los discos duros e
  interfaces de disco que puede comprar, o que posiblemente ya est
  usando, son de tipo EIDE.  No obstante, abundan cada vez ms aquellos
  discos duros que cuentan con una interfaz UDMA.


  22..22..  BBuuss MMaasstteerr DDMMAA


  El Bus Master DMA es una tecnologa para incrementar la velocidad de
  las transferencias de datos en los discos duros. Dicha tecnologa
  requiere soporte de la placa madre y la BIOS, y algn soporte
  adicional por parte del disco.

  Puede aprender ms sobre el tema en
  http://developer.intel.com/design/pcisets/busmastr/FAQs.htm.



  22..33..  UUllttrraa--DDMMAA oo UUllttrraa--AATTAA oo UUllttrraa3333 oo......


  El Ultra-DMA tiene muchos nombres, pero nosotros lo denotaremos aqu
  por UDMA.

  UDMA es una tecnologa ms avanzada y que provee unas transferencias
  mucho ms rpidas (hasta 33.3 MB/s) que la EIDE, siendo su precio ms
  reducido que el los dispositivos SCSI. Muchos de los nuevos
  ordenadores incorporan grandes discos e interfaces UDMA. Adems, es
  posible aadir una tarjeta de interfaz UDMA (como la Promise Ultra33)
  a un sistema ya existente, pudiendo aumentar la velocidad de
  transferencia de sus discos duros incluso si estos no son UDMA.

  Puede aprender ms detalles sobre UDMA en
  http://www.quantum.com/src/whitepapers/ultraata/

  Ntese que la longitud de cable para la conexin del UDMA debe ser
  menor que la de un cable para DMA normal. Lo ideal es que est por
  debajo de los 30 cm (12").


  22..44..  EExxaaccttaammeennttee ccmmoo ddee ````UUllttrraa'''' eess??


  Antes de ir ms lejos, aclaremos una equivocacin. Los 33 MB/seg son
  la ttaassaa ddee ttrraannssffeerreenncciiaa iinnssttaannttnneeaa (burst transfer rate), y es algo
  que no ver muy frecuentemente. Para explicarlo, aqu hay un pequeo
  texto del UDMA.txt (udma-generic):



       Las tasas de transferencia instantnea se supone que van
       desde los 16,6MB/s (modo PIO 4) a 16,6MB/s (DMA modo 2) hasta 33MB/s
       (UDMA). En su parche contra el ncleo 2.1.55, Kim-Hoe Pang realmente
       analiz las tasas de transferencia instantnea en UDMA con un analizador
       lgico: 60ns/palabra, lo que se traslada a 33MB/s.

       Ntese que las tasas de transferencia instantnea slo afectan a las
       transferencias de datos desde/hacia la cach del disco EIDE (476kB para
       el disco de 6,4GB de IBM), y no son particularmente relevantes para la
       mayora de los usuarios de Linux.

       El ncleo de Linux usa tanta memoria RAM como es posible para hacer de
       cach en los accesos a los datos del disco duro, y si los datos no estn
       en la cach del ncleo, es improbable que estn en la cach del disco duro
       (mucho ms pequea).



  Mucho ms relevante es la ttaassaa ddee ttrraannssffeerreenncciiaa ssoosstteenniiddaa (sustained
  transfer rate), que es la velocidad a la cual los datos pueden ser
  transferidos desde el disco a la memoria principal, donde pueden
  usarse.  Una manera fcil de medir esta tasa es usar hdparm, por
  ejemplo ``hdparm -Tt /dev/hda'' para el primer dispositivo IDE.



  Aqu hay algunos datos recogidos despus de pruebas muy extensas, usando
  la utilidad hdparm (escrita por Mark Lord):

  Tasas de transferencia bajo Linux con PIO modo 4:   +/- 5,2MB/s

  Tasas de transferencia bajo Linux con DMA modo 2:   +/- 7,2MB/s

  Tasas de transferencia bajo Linux con UDMA modo 2:  +/- 9,8MB/s



  Como puede comprobar, UDMA es todava casi el doble de rpido que un
  EIDE normal y significativamente ms rpido que el bus mastering DMA
  normal.


  22..55..  UUDDMMAA ccoommppaarraaddoo ccoonn SSCCSSII


  No tengo grandes nmeros para ofrecerle, pero el consenso generalizado
  es que el SCSI de alto nivel ofrece mejores prestaciones que el UDMA.
  De todas formas, si ha echado un vistazo ltimamente a los precios de
  los discos duros, habr notado que tienden a ser mucho ms baratos. La
  relacin prestaciones/precio favorece al UDMA en la mayora de los
  casos.


  33..  UUssaannddoo ssuu ddiissccoo dduurroo UUDDMMAA ccoonn uunnaa iinntteerrffaazz EEIIDDEE


  Es fcil de hacer. Dado que todos los discos UDMA son completamente
  compatibles con EIDE, slo tiene que enchufar su disco UDMA de la
  misma forma que sus antiguos discos, y Linux no debera tener ningn
  problema en detectarlo y utilizarlo. De todas maneras, estar
  limitado, por supuesto, a la menor velocidad del EIDE.


  44..  UUssaannddoo ssuuss ddiissccooss dduurrooss ccoonn uunnaa iinntteerrffaazz UUDDMMAA


  Hay buenas y malas noticias. Las buenas noticias son que una interfaz
  UDMA puede ser usado tanto con discos duros UDMA como con los antiguos
  EIDE, y ser mucho ms rpido que una interfaz de este tipo.

  Las malas noticias son que los ncleos actuales (como el 2.0.35) no
  soportan la tecnologa UDMA de una forma ptima, aunque existen ya
  algunos parches para ellos. Por su parte, los ncleos en desarrollo
  (el actual es el 2.1.114) disponen de un soporte ms avanzado para
  UDMA.  Por desgracia, algunas tarjetas de expansin con interfaces
  UDMA necesitan, o bien un parche, o algn tipo de truco para poder ser
  usadas. Es por eso que este documento existe: para explicar cmo
  obtener estos parches y cmo aplicar estos trucos.


  55..  IInntteerrffaacceess UUDDMMAA PPCCII eexxtteerrnnaass

  Estas son interfaces UDMA sobre tarjetas PCI que pueden ser usadas
  para aadir esta capacidad a un ordenador existente sin tener que
  reemplazar la placa madre o para aadir soporte para cuatro
  dispositivos adicionales a un ordenador que tiene ocupados todos los
  que ofrece su placa madre.  Pueden encontrarse preinstaladas en
  algunos ordenadores, especialmente en mquinas Gateway 2000 y Dell.

  Muchas de ellas no estn soportadas por los ncleos estables actuales
  (como el 2.0.35), debiendo aplicarse un parche o usar uno de los
  ncleos de desarrollo (2.1.x). Si necesita instalar Linux en un disco
  duro conectado a estas interfaces, necesitar usar algunos trucos.


  55..11..  PPrroommiissee UUllttrraa3333


  Esta es una tarjeta PCI que tiene dos canales UDMA, soportando hasta
  cuatro dispositivos en total. Puede ver las especificaciones y precios
  en http://www.promise.com.

  Esta tarjeta se inclua en los sistemas Pentium II modernos modelo
  Gateway 2000, y puede aparecer o no en modelos ms recientes.

  El ncleo 2.0.35 soporta el Ultra33 explcitamente, y los ncleos en
  desarrollo (el actual es el 2.1.114) dispone de soporte genrico para
  interfaces IDE PCI que, automticamente, detecta el Promise Ultra33.
  Pero, los viejos ncleos estables (2.0.34 e inferiores) no lo detectan
  y, dado que muchas de las distribuciones de Linux incluyen estos
  ltimos, puede ser bastante complicado instalar este sistema
  operativo.

  IInnssttaallaannddoo LLiinnuuxx ccoonn llaa PPrroommiissee

  Aunque hay un parche para la interfaz Promise, no es fcil aplicarlo
  y recompilar el ncleo si todava no tiene Linux instalado! Por eso,
  hay un truco que le permite instalarlo. Agradecimientos a Gadi Oxman
  por la siguiente informacin sobre la obtencin de la configuracin de
  la interfaz:



       Si podemos acceder a la consola con el disco de instalacin, tambin
       podemos usar "cat /proc/pci" para obtener la configuracin de la interfaz:

           RAID bus interface: Promise Technology Unknown device (rev 1).
             Vendor id=105a. Device id=4d33.
             Medium devsel.  IRQ 12.  Master Capable.  Latency=32.
             I/O at 0xe000.   (a)
             I/O at 0xd804.   (b)
             I/O at 0xd400.   (c)
             I/O at 0xd004.   (d)
             I/O at 0xc800.   (e)

       y pasar el parmetro "ide2=a,b+2 ide3=c,d+2" en la lnea de argumentos
       del ncleo.



  Ntese que los nmeros probablemente no sean los mismos que los que
  usted tendr. Slo como ejemplo, los parmetros a usar con el conjunto
  de nmeros anterior sera ``ide2=0xe000,0xd806 ide3=0xd400,0xd006''.
  Si slo est usando el primer canal del Ultra33 (por ejemplo, si usted
  slo dispone de un dispositivo, o dos si son master y slave en el
  mismo canal), entonces no necesitara especificar ide3.

  RReedd HHaatt 55..11:: Inicie la instalacin con el disquete de arranque,
  pulsando ENTER cuando se le pregunte. El ncleo se cargar y entonces
  se le preguntar por el idioma, tipo de teclado, y modo de
  instalacin.  Se le pedir informacin adicional sobre el medio de
  origen; no importa lo que responda mientras llegue al siguiente paso.
  Entonces ver una pantalla titulada ``Select Installation Path'';
  pulse Alt-F2 ahora para llegar al intrprete de comandos. Ejecute
  ``cat /proc/pci'', apunte los nmeros como antes, y vuelva a arrancar
  desde el mismo disquete.  Esta vez, escriba ``linux ide2= _(_a_q_u_ _e_s
  _d_o_n_d_e _d_e_b_e _p_o_n_e_r _l_o_s _n__m_e_r_o_s _c_o_m_o _s_e _m_o_s_t_r_ _a_n_t_e_r_i_o_r_m_e_n_t_e_) ide3=_(_m__s
  _n__m_e_r_o_s_)'' y luego pulse ENTER. Ahora debera ser posible alojar Linux
  en su disco duro sin dificultades, aunque LILO probablemente no ser
  capaz de instalarse de forma correcta: haga un disquete de arranque y
  utilcelo para acceder a su sistema Linux con los mismos parmetros,
  hasta que pueda parchear el LILO y el ncleo.

  RReedd HHaatt 55..00 y SSllaacckkwwaarree 33..44:: El proceso a seguir en ambas
  distribuciones es similar, incluyendo el problema de que los programas
  de instalacin ignoran los /dev/hde-h (los dispositivos en ide2 e
  ide3). Para poder instalar a/o desde estos dispositivos es necesario
  pasar por encima de uno o de los dos canales de interfaz de la placa
  madre. De todas maneras, asegrese de no pasar por encima de un
  dispositivo que necesite para la instalacin; por ejemplo, si est
  instalando desde un CD-ROM en /dev/hdd (ide1, interfaz en la placa
  madre) a un disco duro en /dev/hde (ide2, el Ultra33), debera
  deshabilitar el innecesario ide0 con ide2 y dejar intacto ide1.
  Asumiendo los nmeros anteriores, debera arrancar con
  ``ide0=0xe000,0xd806''. Red Hat 5.0 le ofrecer un intrprete de
  comandos si usa la capacidad de disquete de rescate (rescue disk), y
  Slackware incluye un intrprete en el proceso de instalacin normal.
  Tenga en cuenta que Red Hat 5.0 es difcil de arrancar despus de la
  instalacin; si tiene problemas podra probar a bajarse un disquete de
  arranque de Slackware desde
  ftp://ftp.cdrom.com/pub/linux/slackware-3.5/bootdsks.144/ y usarlo
  para arrancar.

  Con otras distribuciones de Linux deber improvisar un poco, pero el
  proceso debera ser el mismo que el visto anteriormente.

  _I_M_P_O_R_T_A_N_T_E_: Sin el parche (del cual se habla en la seccin
  ``UDMAGenrico''), el ncleo nneecceessiittaa estos parmetros de arranque
  para poder acceder a su disco duro! Por eso es muy importante que
  cuando configure LILO, tanto en un disco duro como en un disquete de
  arranque, aada los mmiissmmooss ppaarrmmeettrrooss eexxaaccttaammeennttee tal y como lo hizo
  al instalar. De otra manera su sistema no arrancar!  Debera ser
  posible pasrselos a LILO cuando arranque (por ejemplo, pulsando MAYS,
  escribiendo ``linux ide2=_._._._._.'' cada vez que lo haga), pero slo
  podr hacerlo si guarda los nmeros! Es recomendable que aplique el
  parche al ncleo tan pronto como pueda para que no deba preocuparse al
  respecto; una vez que pueda arrancar con el ncleo parcheado, podr
  olvidarse de los parmetros de arranque.  Adems, por lo menos que yo
  sepa, no hay manera de pasar parmetros a un disquete de arranque
  sencillo (hecho con ``make zdisk''), ddeebbeerr usar LILO u otro cargador
  (como LOADLIN) que le permita pasarlos.

  De todas maneras, los ncleos no parcheados y programas de instalacin
  pasan un mal rato usando ide2 e ide3, aunque los dispositivos hayan
  sido detectados correctamente. Por eso, si no es capaz de instalar
  Linux usando la tcnica anterior, pruebe a especificar ide0 o ide1 en
  vez de ide2 o ide3 (gracias a Martin Gaitan por esta tcnica).
  Esencialmente consiste en reemplazar el interfaz en placa por el
  Promise Ultra33, al menos en lo que concierne al ncleo, pudiendo
  seguir en la direccin de la siguiente seccin como si los hubiera
  movido fsicamente. Ntese que si est usando el CD-ROM IDE conectado
  a su interfaz en placa como fuente de la instalacin, deber
  asegurarse que no deshabilita la interfaz en la que se encuentra el CD
  o ser incapaz de instalar! Si el CD est en hda o hdb, use ide1 para
  su disco duro, y si est en hdc o hdd, entonces use ide0.

  IInnssttaallaannddoo LLiinnuuxx ssaallttnnddoossee llaa PPrroommiissee

  Si no consigue que funcionen los trucos software, tendr que usar un
  mtodo ms expeditivo. Este es un mtodo alternativo que virtualmente
  tiene xito garantizado, pero va a requerir que abra su ordenador y lo
  modifique internamente. NNOOTTAA:: Si no est familiarizado con el proceso
  de conectar y desconectar dispositivos IDE, lleeaa llooss mmaannuuaalleess que
  venan con su ordenador, su disco duro y/o con la Promise Ultra33
  antes de intentarlo! Si modifica algo y no sabe cmo ponerlo otra vez
  en su sitio, podra acabar arrepintindose!

  Habiendo dicho esto, es todo muy simple. Muchas de las placas madres
  de hoy en da tienen incorporadas interfaces EIDE. Desconecte su disco
  duro de la Ultra33 y conctelo a la interfaz en placa. Si tiene otros
  dispositivos IDE en la misma interfaz, como un CD-ROM, una unidad de
  cintas o un disco ZIP, es ms fcil si simplemente aade el disco duro
  en algn canal no usado (el secundario en vez del primario) o
  temporalmente desconecte algn dispositivo que no necesite
  inmediatamente (como el ZIP o la cinta). Instale Linux y, finalmente,
  bjese y aplique el parche para la Promise UDMA (vea la seccin
  siguiente).

  Ahora est en disposicin de volver a poner el disco en la Promise...
  casi. Para estar seguro haga un disquete de arranque (cd
  /usr/src/linux ; make zdisk) que podr usar para arrancar su sistema
  en caso de que LILO no funcione. Bueno, para estar mmuuyy seguro, haga
  dos y guarde uno de ellos por ahora.

  Muy bien, ahora es el momento de pensar un poco... si slo dispone de
  un disco duro que se encontrar en la Promise, entonces lo ms seguro
  es que sea /dev/hde (a y b son para la interfaz primaria en placa, c y
  d para la secundaria). Si va a poner ms discos, entonces el esclavo
  del primer canal de la Promise ser /dev/hdf, el master del segundo
  /dev/hdg y el esclavo del segundo /dev/hdh.

  Edite /etc/fstab, y cambie todas las particiones de los discos duros
  que est moviendo de los dispositivos en placa (/dev/hda, hdb, etc) a
  sus nuevas localizaciones en la Promise (/dev/hde, hdf, etc). Si tiene
  que poner otros dispositivos (como un CD-ROM o un disco ZIP) que desea
  dejar en la interfaz en placa, entonces cmbielos a su nueva
  localizacin tambin. Por ejemplo, si su CD-ROM era originariamente el
  master del canal primario (/dev/hda), pero puso su disco duro en ese
  lugar y tuvo que cambiar el CD al esclavo (/dev/hdb) o al canal
  secundario (/dev/hdc), y ahora quiere volver a ponerlo otra vez en su
  sitio, entonces cmbielo a /dev/hda.

  Si est usando LILO, reconfigrelo para usar la nueva localizacin del
  dispositivo (la configuracin de LILO sale de las pretensiones de este
  documento, as que si no conoce cmo hacerlo, lea el LILO mini-HOWTO
  <http://sunsite.unc.edu/LDP/HOWTO/mini/LILO.html>), o no ser capaz,
  probablemente, de arrancar a menos que no use el disquete de arranque
  que le he hecho hacer, con el que tambin desear arrancar la nueva
  particin. Esto se hace usando el comando rdev: introduzca el disquete
  y escriba ``rdev /dev/fd0 /dev/hde1''.  Por supuesto, esto es
  suponiendo que su particin raz es la primera de su primer
  dispositivo UDMA. Si no es as (por ejemplo, en mi caso es /dev/hde7),
  entonces use el nmero de particin apropiado.

  Vuelva a arrancar. Su sistema tendra que funcionar correctamente.

  AApplliiccaannddoo eell ppaarrcchhee ppaarraa llaa PPrroommiissee

  El ncleo 2.0.35 y superior soporta de forma nativa la Promise
  Ultra33; obtenga y actualcese desde su distribucin Linux o desde
  http://www.kernel.org.

  Para instrucciones sobre cmo compilar el ncleo, lea el Kernel-COMO.

  UUssaannddoo ddooss ttaarrjjeettaass UUllttrraa3333 eenn eell mmiissmmoo oorrddeennaaddoorr

  Esto actualmente no funciona correctamente... no lo haga por ahora a
  menos que est deseoso de modificar el ncleo para hacer que las cosas
  funcionen.


  55..22..  AArrttoopp AATTPP885500UUFF


  Esta tarjeta est soportada por el udma-generic. La instalacin de
  Linux en un sistema con esta tarjeta como interfaz para el disco
  destino debera ser similar al proceso para con la Promise Ultra33.


  55..33..  AAaaddiieennddoo ffiicchheerrooss ddee ddiissppoossiittiivvoo


  Las interfaces IDE terciario y cuaternario (ide2 e ide3) usan ficheros
  de dispositivo entre el /dev/hde* y el /dev/hdh*. En ncleos antiguos
  estos dispositivos no eran creados automticamente, por lo que podra
  ser necesario aadirlos de forma manual para que las cosas funcionen
  correctamente.

  Esto se puede hacer fcilmente si tiene actualmente una copia
  instalada de los fuentes del ncleo; simplemente ejecute
  /usr/src/linux/scripts/MAKEDEV.ide y se crearn los ficheros de
  dispositivo relevantes.


  66..  IInntteerrffaacceess UUDDMMAA eenn ppllaaccaa


  Estas son interfaces de dispositivo con capacidades UDMA incluidos
  dentro de la placa madre. Utilizan los puertos de E/S estndares para
  IDE y por ello son perfectamente operativos a velocidades lentas no-
  UDMA en ncleos 2.0.x sin parchear, como los que se usan para instalar
  Linux. Por ello, no deberan causar ningn problema durante la
  instalacin, y parchearlos para obtener la velocidad del UDMA es un
  lujo bien recibido en vez de una necesidad.


  66..11..  IInntteell FFXX,, HHXX,, VVXX,, TTXX,, yy LLXX


  Gracias otra vez a Gadi por esta informacin:



       El soporte para el DMA bus mastering en el chipset Intel TX est
       disponible en el 2.0.31 y superior.



  En viejos ncleos (como el 2.0.30 de la Slackware 3.4), la interfaz
  ser usada en el modo EIDE lento.  En ambos casos, ser
  automticamente detectado por el ncleo y no tendr ningn problema
  para usarlo.

  El soporte para usar el UDMA completo con estos chipsets se incluye en
  el parche udma-generic; vea ``UDMA-Generic''.


  66..22..  EEll VVIIAA VVPP22 yy CChhiippsseettss rreellaacciioonnaaddooss


  Esta interfaz puede ser autodetectada y usada en modo EIDE por un
  ncleo sin parchear pero, si tiene uno de estos, querr usar un parche
  para que pueda obtener mayores tasas de transferencia y dejar en la
  cuneta esos molestos mensajes "unknown PCI device" (dispositivo PCI
  desconocido).

  Uno de ellos se puede obtener en http://www.ipass.net/~prefect/; est
  diseado para el chipset VIA VP2/97, que puede encontrarse en las
  placas madres de FIC modelos PA-2007 y PA-2011, pero puede funcionar
  en chipsets relacionados.  Se ha informado que funciona con el chipset
  ms moderno VIA VP3.

  Ntese que este es un parche que slo soporta el modo Bus Mastering,
  no el modo UDMA completo, pero todava es mejor que el modo EIDE
  normal.  Siga las instrucciones en el sitio Web del parche para
  activar el modo BMDMA.

  Hay otro parche que soporta el modo UDMA completo en
  http://www.pyreneesweb.com/Udma/udma.html, diseado para el VIA
  VT82C586B y que debe funcionar para los chipsets VP2, VP3, VPX, P6 y
  AGP Apollo. Siga las instrucciones para la instalacin y activacin
  del modo UDMA, aunque es recomendable que haga una copia de seguridad
  de todos los datos que desee guardar, ya que hay problemas potenciales
  con placas madres incompatibles. Pero, si funciona, lo har sin
  problemas.

  Ntese que el chipset VP1 no funciona con estos parches, aunque est
  soportado por el parche ``UDMA-Generic''.


  66..33..  TTXX PPrroo yy oottrraass ppllaaccaass ````PPrroo''''


  Actualmente el UDMA no est soportado para las placas madre TX Pro.
  Son diferentes a las TX mobo, y aparentemente no informan
  correctamente de sus capacidades de DMA, lo cual causa el problema. He
  odo que alguien est trabajando en ello, por lo que podra aparecer
  un parche en el futuro.


  77..  UUDDMMAA--GGeenneerriicc ((UUDDMMAA ggeennrriiccoo))


  El parche UDMA-Generic modificado por Andr Balsa
  <mailto:andrebalsa@altern.org>, Andre Hedrick
  <mailto:hedrick@Astro.Dyer.Vanderbilt.Edu> y Michel Aubry
  <mailto:giovanni@sudfr.com> a partir del driver de DMA de la Triton de
  Mark Lord, da soporte UDMA a los siguientes chipsets (en su versin
  0.3):


    Todos los chipsets Intel: FX, HX, VX, TX, LX.

    Todos los chipsets SiS (slo probado el SiS5598, aunque toda la
     familia tiene la misma interfaz de dispositivo 5513 integrado).

    Chipsets VIA (slo probado el 82C586B, pero otra vez esta familia
     de chipsets tienen la misma estructura de interfaz). Para las
     interfaces VIA existe soporte especial de diagnstico.

    Soporte para las tarjetas Promise y Artop PCI UDMA. No se ha
     incluido todava otras tarjetas PCI UDMA.

  Se ha diseado para que sea fcilmente extensible para el soporte de
  otros chipsets.

  Udma-generic, tambin conocido como el Gran Parche Unificado de UDMA
  (GUUP - Grand Unified UDMA Patch) se ha incluido en el parche Jumbo,
  el cual incluye otras caractersticas tiles como la deteccin
  automtica de memoria por encima de los 64 MB y la deteccin de la
  velocidad de reloj de la CPU. Puede obtener el parche Jumbo para el
  ncleo 2.0.35 en http://www.altern.org/andrebalsa/linux/. Este parche
  tambin puede aplicarse contra el 2.0.36pre1 y posiblemente contra los
  siguientes.

  Aqu hay algunas notas del autor:



       Las prestaciones con dispositivos UDMA de IBM en una buena placa madre se
       acercan a las mximas tasas de transferencia: aproximadamente 10 MB/s
       (medido con hdparm -t -T).

       El chipset Intel TX tiene una nica FIFO para disco duro compartida entre
       sus dos interfaces IDE, por lo que usar 2 dispositivos UDMA no
       significar una gran mejora respecto a usar uno solo.
       Por contra, el SiS5598 tiene dos interfaces completamente separados, cada
       uno con su propia FIFO. Tericamente, se pueden llegar a los 66MB/s de
       tasa de transferencia en placas madre con el chip SiS5598, usando el
       controlador md  y `data stripping' en los dos discos. El SiS5571 tiene la
       misma arquitectura de interfaz, creo. No tengo los caminos de datos de
       los chipsets VIA, por lo que no puedo decir nada al respecto.

       El controlador de ncleo IDE (U)DMA de Linux por Mark Lord tiene un
       tiempo de configuracin muy pequeo (latencia para las transferencias de
       datos). Es ideal para las transferencias frecuentes y de pocos datos
       (como las de los servidores de noticias con Linux) y puede ser en algunos
       casos superior a los correspondientes competidores SCSI.



  88..  AAccttiivvaannddoo yy ddeessaaccttiivvaannddoo eell UUDDMMAA


  Normalmente, el ncleo compatible con UDMA automticamente activar
  este soporte para los dispositivos e interfaces que lo admitan. De
  todas maneras, desde el ncleo 2.1.113 se desactivan las
  transferencias con DMA por defecto a menos que haya configurado su
  ncleo especficamente para automticamente activarlo. Esto podra
  parecer un error, pero algunos dispositivos e interfaces no funcionan
  de forma adecuada con el DMA activado; vea la Lista Negra del UDMA ms
  adelante.


  88..11..  UUssaannddoo llooss ppaarrmmeettrrooss ddee aarrrraannqquuee ddeell nncclleeoo


  En ncleos 2.1.113 y en adelante, puede activar el DMA para ambos
  dispositivos de una interfaz IDE usando el parmetro del ncleo
  ideX=dma, donde X es el nmero de la interfaz (el primero es el 0).

  Los parmetros de arranque del ncleo pueden activarse mediante LILO,
  LOADLIN o desde la mayora de los programas de arranque de Linux. Para
  ms informacin vea el Bootdisk HOWTO.



  88..22..  UUssaannddoo hhddppaarrmm


  hdparm es un programa usado para modificar los parmetros de los
  discos duros en Linux. Entre otras cosas puede usarlo para activar o
  desactivar el UDMA para un dispositivo y comprobar su tasa de
  transferencia sostenida.

  La mayora de las distribuciones de Linux incluyen hdparm, pero
  necesitar aplicar un parche para incluir el soporte UDMA. Puede
  obtener hdparm de
  ftp://sunsite.unc.edu/pub/Linux/system/hardware/hdparm-3.3.tar.gz y el
  parche de http://pobox.com/~brion/linux/hdparm-3.3-udma.patch.gz.

  Compile e instale de esta manera:



       cd /usr/src
       tar zxvf /tmp/download/hdparm-3.3.tar.gz
       cd hdparm-3.3
       gzip -cd /tmp/download/hdparm-3.3-udma.patch.gz | patch -p0
       make
       if [ -f /sbin/hdparm ]; then rm -f /sbin/hdparm ; fi
       make install
       cp /usr/local/sbin/hdparm /sbin/hdparm



  PPaarraa aaccttiivvaarr eell UUDDMMAA ppaarraa uunn ddiissccoo dduurroo:: hdparm -d1 /dev/hda

  PPaarraa ddeessaaccttiivvaarr eell UUDDMMAA ddee uunn ddiissccoo dduurroo:: hdparm -d0 /dev/hda

  PPaarraa mmeeddiirr llaa ttaassaa ddee ttrraannssffeerreenncciiaa ddee uunn ddiissccoo:: hdparm -Tt /dev/hda

  PPaarraa vveerr qquu ooppcciioonneess eessttnn aaccttiivvaaddaass ppaarraa uunn ddiissccoo:: hdparm /dev/hda

  PPaarraa vveerr mmss iinnffoorrmmaacciinn ddee ssuu ddiissccoo:: hdparm -i /dev/hda

  Para informacin ms detallada lea la pgina de manual (``man 8
  hdparm'').


  99..  PPrroobblleemmaass

  99..11..  LLaa LLiissttaa NNeeggrraa ddeell UUDDMMAA


  Los siguientes dispositivos estn en la ``lista negra''. NNoo debe usar
  el UDMA con ellos, ya que podra causar corrupcin en los datos.


    Western Digital WDC AC22100H

  La parte de UDMA en el parche Jumbo-2.0.35-9 deshabilita
  automticamente el DMA para este dispositivo.


  99..22..  VVaa uusstteedd ddeemmaassiiaaddoo ddeepprriissaa??


  Si lo est haciendo, cuidado! Aqu tiene un trozo de la documentacin
  de udma-generic:



  NO SE PASE EN LA VELOCIDAD DE RELOJ del bus PCI. 37'5MHz es la velocidad
  mxima soportada por el bus PCI. Algunos (supuestamente compatibles)
  dispositivos UDMA nunca alcanzarn los 37'5MHz, pero estar correcto a
  33'3MHz.

  En cualquier caso, NUNCA, NUNCA ponga el bus PCI a 41'5MHz.

  La configuracin RECOMENDADA para su seguridad es 33MHz.



  99..33..  SSuu BBIIOOSS eesstt aaccttuuaalliizzaaddaa??


  Aqu tiene otro trozo de los documentos de udma-generic:



       El trabajo real que involucra el configurar los chips para las
       transferencias de DMA se realiza en su mayor parte por la BIOS de cada
       placa madre. Por supuesto, uno espera que la BIOS haya sido programada
       correctamente...

       Por ejemplo, las placas madres ASUS SP-97v con su BIOS original (Rev.
       1.03) no funcionaran correctamente con el controlador modificado de Linux,
       ni en el modo DMA 2 ni en los modos UDMA; funcionara correctamente
       usando el modo PIO 4 o bajo Windows 95 en cualquier modo. Obtuve la
       ltima imagen de la BIOS (Rev. 1.06) de la Web de ASUS y la copi en la
       EPROM de mi BIOS. Ha funcionado perfectamente desde entonces (a
       velocidades de bus de 66MHz).

       Lo que esto nos dice es que la BIOS configura el controlador de DMA con
       parmetros de temporizacin especficos (ciclos de `active pulse' y
       `recovery clock'). Mi revisin inicial de BIOS probablemente tena mal
       esos tiempos. Dado que el controlador de Windows 95 modifica estos
       tiempos por s mismo (no depende de la BIOS el configurar los parmetros
       de temporizacin del controlador de disco), solo tena problemas
       inicialmente con el controlador de Linux, mientras que en Windows 95
       funcionaba bien.

       Por eso, deje que lo vuelva a repetir: este controlador de (U)DMA para
       Linux depende de la BIOS para una correcta configuracin. Si tiene problemas,
       primero compruebe que tiene la ltima revisin de la BIOS para su placa madre.

       [...]

       Las nuevas revisiones de las BIOS pueden obtenerse desde el sitio Web del
       fabricante de su placa madre. Escribir la nueva imagen de la BIOS es una
       operacin simple pero en la que uno debe seguir estrictamente los pasos
       explicados en el manual de la placa.

       Las ltimas revisiones de las BIOS Award parecen ser estables con el
       UDMA. Cualquiera con fecha de 1998 sera correcta.



  99..44..  SSii ttooddaavvaa nnoo ppuueeddee hhaacceerr qquuee ffuunncciioonnee!!


  Si nada de este documento parece ayudarle, o al menos no es suficiente
  para hacer que su mquina funcione, su mejor apuesta consiste en
  escribir un mensaje que describa sus dificultades exactamente, de qu
  tipo de interfaz UDMA dispone, si est en la placa o es una tarjeta
  externa, si su disco actual es UDMA o slo EIDE, exactamente qu
  configuracin de dispositivos tiene, que versin (distribucin y
  versin del ncleo a ser posible) de Linux est usando, y mndelo al
  grupo de noticias comp.os.linux.hardware.  Probablemente obtendr una
  ayuda pronto.


  1100..  SSii ttiieennee aallgguunnaa iinnffoorrmmaacciinn ssoobbrree UUDDMMAA qquuee nnoo aappaarreezzccaa eenn eessttee
  ddooccuummeennttoo......


   Perfecto ! Si sabe algo que yo no s, envimelo (brion@pobox.com):
  lo aadir y actualizar pronto este documento.



