Implementação UHCI para
           Memtest86+

Aluno: Rômulo Jales
Orientador: Sérgio Campello

     Departamento de Siste...
O que é Memtest86+?
●   Software Livre para teste de memória RAM
    para computadores de arquitetura x86 (IA-32)
●   Não ...
O que é Memtest86+?
●   Vantagens
    ●   Baixo Custo
    ●   Teste de stress
    ●   Monitoração e controle remoto
●   De...
Monitoração e controle remoto do
Memtest86+
●   Barateamento de custos de manutenção
●   Via RS232
RS232
Mas cadê a porta da RS232?
USB – Universal Serial Bus
    Criada para:
●   Substituir
●   Simplificar
●   Universalizar
    as portas e padrões de co...
Por que usar USB no lugar da
RS232?
●   Possibilidade de usar outras interfaces
    ●   Bluetooth
    ●   Ethernet
    ●  ...
Sistemas USB
●   Dispositivos
    ●   Até 127
●   Conectores
    ●   Cabos
    ●   Hubs
    ●   Portas
●   Hospedeiros
   ...
Sistemas USB
USB & Memtest86+
USB & Memtest86+
●   Memtest86+ não oferece USB
●   Mas...
    ●   Oferece infraestrutura de acesso a hardware
        –  ...
Pilha USB do hospedeiro
                 Aplicação




            Interface de Hardware
 Software


 Hardware

          ...
Para usar a USB
1.Inicializar a interface de hardware
2.Inicializar dispositivo
3.Aplicação usar o dispositivo
Interface de Hardware do
Hospedeiro



  Entidade responsável pela comunicação entre
       um dispositivo USB e o computa...
Interface Hardware de Hospedeiro
USB
●   UHCI – Universal Host Controller Interface
    ●   USB 1.1
    ●   Intel & VIA
  ...
Interface Hardware de Hospedeiro
USB
●   EHCI
    ●   USB 2.0
●   XHCI
    ●   USB 3.0
●   WUSB
    ●   Wireless USB


   ...
Por que UHCI?
●   O meu computador tem UHCI.

●   O QEMU implementa UHCI.

●   A comunidade recomenda UHCI.
O que é realmente UHCI?
●   Um hardware!
●   Dispositivo PCI autoconfigurável
●   Um controlador de Hospedeiro USB
Usando o UHCI
●   Encontrar o controlador UHCI no barramento
    PCI
●   “Resetar” o controlador UHCI
●   “Resetar” portas...
PCI & UHCI
●   Percorrer o espaço de configuração da PCI
    ●   No campo Classe: 0x0C
        –   Interfaces seriais
    ...
Controlando o UHCI
●   O endereço base (EBASE) é o inicio da região
    de memória do hospedeiro para o controle do
    UH...
Registrador    Mnemônico          Descrição

EBASE + 0x00    USBCMD      Registrador de comando

EBASE + 0x02    USBSTS   ...
Escalonador
●   Missão:
    ●   Gerenciar o acesso ao barramento
●   O que é?
    ●   Uma fila de estruturas de dados
    ...
Estruturas de Dados
●   TD
    ●   Contém o pacote a ser transmitido
●   QH
    ●   Organiza os elementos a serem transfer...
Resultados
Resultados
●   Comunicação entre o controlador e o
    dispositivo sofre timeout.
    ●   Campo de status do TD
●   Possív...
Conclusões
●   USB é uma boa alternativa para substituir
    RS232
●   A implementação não é tão simples quanto
    aparen...
Trabalhos Futuros
●   Terminar a pilha USB para o Memtest86+
    ●   Drivers e aplicação
●   Corrigir o erro do timeout
  ...
Obrigado
Implementação UHCI para Memtest86+
Próximos SlideShares
Carregando em…5
×

Implementação UHCI para Memtest86+

613 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
613
No SlideShare
0
A partir de incorporações
0
Número de incorporações
17
Ações
Compartilhamentos
0
Downloads
7
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Implementação UHCI para Memtest86+

  1. 1. Implementação UHCI para Memtest86+ Aluno: Rômulo Jales Orientador: Sérgio Campello Departamento de Sistemas Computacionais UPE-POLI Dezembro - 2009
  2. 2. O que é Memtest86+? ● Software Livre para teste de memória RAM para computadores de arquitetura x86 (IA-32) ● Não executa sob um sistema operacional ● Também não é um sistema operacional ● Auto-contido
  3. 3. O que é Memtest86+? ● Vantagens ● Baixo Custo ● Teste de stress ● Monitoração e controle remoto ● Desvantagens ● Não testa ao nível eletrônico ● Suporte
  4. 4. Monitoração e controle remoto do Memtest86+ ● Barateamento de custos de manutenção ● Via RS232
  5. 5. RS232
  6. 6. Mas cadê a porta da RS232?
  7. 7. USB – Universal Serial Bus Criada para: ● Substituir ● Simplificar ● Universalizar as portas e padrões de comunicação
  8. 8. Por que usar USB no lugar da RS232? ● Possibilidade de usar outras interfaces ● Bluetooth ● Ethernet ● Serial RS-232 (!) ● Onipresente nos computadores pessoais atuais
  9. 9. Sistemas USB ● Dispositivos ● Até 127 ● Conectores ● Cabos ● Hubs ● Portas ● Hospedeiros ● Apenas um...
  10. 10. Sistemas USB
  11. 11. USB & Memtest86+
  12. 12. USB & Memtest86+ ● Memtest86+ não oferece USB ● Mas... ● Oferece infraestrutura de acesso a hardware – Biblioteca em linguagem C ● “boota” o computador ● Ler teclado ● Escreve no monitor ● Implementar a pilha USB do hospedeiro!
  13. 13. Pilha USB do hospedeiro Aplicação Interface de Hardware Software Hardware Hardware
  14. 14. Para usar a USB 1.Inicializar a interface de hardware 2.Inicializar dispositivo 3.Aplicação usar o dispositivo
  15. 15. Interface de Hardware do Hospedeiro Entidade responsável pela comunicação entre um dispositivo USB e o computador (hospedeiro).
  16. 16. Interface Hardware de Hospedeiro USB ● UHCI – Universal Host Controller Interface ● USB 1.1 ● Intel & VIA ● Fechado ● OHCI – Open Host Controller Interface ● USB 1.1 ● Microsoft, HP, NI ● Aberto
  17. 17. Interface Hardware de Hospedeiro USB ● EHCI ● USB 2.0 ● XHCI ● USB 3.0 ● WUSB ● Wireless USB E o escolhido é o... UHCI!
  18. 18. Por que UHCI? ● O meu computador tem UHCI. ● O QEMU implementa UHCI. ● A comunidade recomenda UHCI.
  19. 19. O que é realmente UHCI? ● Um hardware! ● Dispositivo PCI autoconfigurável ● Um controlador de Hospedeiro USB
  20. 20. Usando o UHCI ● Encontrar o controlador UHCI no barramento PCI ● “Resetar” o controlador UHCI ● “Resetar” portas do controlador (são sempre duas) ● Instalar escalonador ● Iniciar o controlador UHCI
  21. 21. PCI & UHCI ● Percorrer o espaço de configuração da PCI ● No campo Classe: 0x0C – Interfaces seriais ● No campo sub-classe: 0x03 – USB ● No campo controlador: 0x00 0x01 → OHCI 0x20 → EHCI – UHCI ● Obter o valor do campo endereço base 4
  22. 22. Controlando o UHCI ● O endereço base (EBASE) é o inicio da região de memória do hospedeiro para o controle do UHCI. ● Desse endereço é feito o controle: ●
  23. 23. Registrador Mnemônico Descrição EBASE + 0x00 USBCMD Registrador de comando EBASE + 0x02 USBSTS Registrador de estado EBASE + 0x04 USBINTR Registrador de interrupções EBASE + 0x06 FRNUM Número do quadro Endereço base da lista de EBASE + 0x08 FRBASEADD quadros Modificador do iniciador de EBASE + 0x0C SOFMOD quadros EBASE + 0x10 PORTSRC1 Registrador da porta 1 EBASE + 0x12 PORTSRC2 Registrador da porta 2
  24. 24. Escalonador ● Missão: ● Gerenciar o acesso ao barramento ● O que é? ● Uma fila de estruturas de dados – TD e QH ● Coordenar os quatro tipos de transmissão USB: ● Isócrona ● Interrupção ● Controle ● Massivo
  25. 25. Estruturas de Dados ● TD ● Contém o pacote a ser transmitido ● QH ● Organiza os elementos a serem transferidos ● A prioridade é organizada pelo valor contido no campo “Próximo elemento”
  26. 26. Resultados
  27. 27. Resultados ● Comunicação entre o controlador e o dispositivo sofre timeout. ● Campo de status do TD ● Possíveis causas: ● Endereçamento errado? ● Falha na configuração do UHCI? ● Sobre-escrita de região de memória? ● Implementação do UHCI do QEMU tem problemas?
  28. 28. Conclusões ● USB é uma boa alternativa para substituir RS232 ● A implementação não é tão simples quanto aparentava ser.
  29. 29. Trabalhos Futuros ● Terminar a pilha USB para o Memtest86+ ● Drivers e aplicação ● Corrigir o erro do timeout ● Verificando as hipóteses levantadas ● Implementar outros controladores ● Utilizando como base o código gerado
  30. 30. Obrigado

×