(M)  s i s t e m a   o p e r a c i o n a l   m a g n u x   l i n u x ~/ · documentação · suporte · sobre

  Página seguinte Página anterior Índice

386. As Placas Ethernet para Linux em Placas AXP PCI Alpha

Quanto às v2.0, só as 3c509, depca, de4x5 lance32, e todos os programas de controle 8390 (wd, smc-ultra, ne, 3c503, etc.) fizeram uma arquitetura independente para que funcionasse nos sistemas baseados de Alpha DEC. Outro programa de controle atualizado de PCI da página WWW do Donald pode também funcionar pois foram escritas com a arquitetura independente em mente.

Note que as mudanças que são necessárias para fazer uma arquitetura independente de programa de controle não são tão complicados. Você só tem que fazer o seguinte:

-multiplique todos os valores relativos jiffies por HZ/100 para o valor diferente de HZ que a Alpha usa. (ex.: timeout=2; torna-se timeout=2*HZ/100;).

-substitua qualquer indicador de memória i/o (640k to 1MB) de referências pelas chamadas apropriadas readb() writeb() readl() writel(), como mostrado no exemplo.

-       int *mem_base = (int *)dev->mem_start;
-       mem_base[0] = 0xba5eba5e;
+       unsigned long mem_base = dev->mem_start;
+       writel(0xba5eba5e, mem_base);

-substitua toda as chamadas de memcpy() que tem memória i/o como fonte ou destinos almejados pelo apropriado do memcpy_fromio() ou memcpy_toio().

Detalhes de como lidar com os acessos de memória numa arquitetura de moda independente estão documentadas no arquivo linux/Documentation/IO-mapping.txt que vem com o kernel.


Página seguinte Página anterior Índice