SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Implementação UHCI para
           Memtest86+

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

     Departamento de Sistemas Computacionais
                    UPE-POLI
                Dezembro - 2009
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
O que é Memtest86+?
●   Vantagens
    ●   Baixo Custo
    ●   Teste de stress
    ●   Monitoração e controle remoto
●   Desvantagens
    ●   Não testa ao nível eletrônico
    ●   Suporte
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 comunicação
Por que usar USB no lugar da
RS232?
●   Possibilidade de usar outras interfaces
    ●   Bluetooth
    ●   Ethernet
    ●   Serial RS-232 (!)
●   Onipresente nos computadores pessoais atuais
Sistemas USB
●   Dispositivos
    ●   Até 127
●   Conectores
    ●   Cabos
    ●   Hubs
    ●   Portas
●   Hospedeiros
    ●   Apenas um...
Sistemas USB
USB & Memtest86+
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!
Pilha USB do hospedeiro
                 Aplicação




            Interface de Hardware
 Software


 Hardware

                 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 computador
                  (hospedeiro).
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
Interface Hardware de Hospedeiro
USB
●   EHCI
    ●   USB 2.0
●   XHCI
    ●   USB 3.0
●   WUSB
    ●   Wireless USB


    E o escolhido é o... UHCI!
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 do controlador (são sempre
    duas)
●   Instalar escalonador
●   Iniciar o controlador UHCI
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
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:
●
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
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
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”
Resultados
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?
Conclusões
●   USB é uma boa alternativa para substituir
    RS232
●   A implementação não é tão simples quanto
    aparentava ser.
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
Obrigado

Weitere ähnliche Inhalte

Was ist angesagt?

[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
Marcelo Barros de Almeida
 
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
Marcelo Barros de Almeida
 
3° unidade (placa mãe)
3° unidade (placa mãe)3° unidade (placa mãe)
3° unidade (placa mãe)
André Lopes
 
Curso de Manutenção Preventiva
Curso de Manutenção PreventivaCurso de Manutenção Preventiva
Curso de Manutenção Preventiva
Paula Pereira
 
Aula sobre Placa-mãe
Aula sobre Placa-mãeAula sobre Placa-mãe
Aula sobre Placa-mãe
Filipe Flores
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8
elliando dias
 
PESQUISA SOBRE BARRAMENTO
PESQUISA SOBRE BARRAMENTOPESQUISA SOBRE BARRAMENTO
PESQUISA SOBRE BARRAMENTO
Otaviano Viana
 
Sistemas microprocessados historia microcontroladores
Sistemas microprocessados historia microcontroladoresSistemas microprocessados historia microcontroladores
Sistemas microprocessados historia microcontroladores
Lucas Willam
 

Was ist angesagt? (20)

Aula 06 placa-mãe
Aula 06   placa-mãeAula 06   placa-mãe
Aula 06 placa-mãe
 
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
Placa mãe
Placa mãePlaca mãe
Placa mãe
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadores
 
Aula 04 barramentos de expansão
Aula 04   barramentos de expansãoAula 04   barramentos de expansão
Aula 04 barramentos de expansão
 
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
Arduino
ArduinoArduino
Arduino
 
3° unidade (placa mãe)
3° unidade (placa mãe)3° unidade (placa mãe)
3° unidade (placa mãe)
 
Curso de Manutenção Preventiva
Curso de Manutenção PreventivaCurso de Manutenção Preventiva
Curso de Manutenção Preventiva
 
Aula sobre Placa-mãe
Aula sobre Placa-mãeAula sobre Placa-mãe
Aula sobre Placa-mãe
 
Barramentos
BarramentosBarramentos
Barramentos
 
Pic aula1
Pic   aula1Pic   aula1
Pic aula1
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8
 
Placa mae
Placa maePlaca mae
Placa mae
 
Projeto de Hardware com Microcontroladores STM32
Projeto de Hardware com Microcontroladores STM32Projeto de Hardware com Microcontroladores STM32
Projeto de Hardware com Microcontroladores STM32
 
Barramentos
BarramentosBarramentos
Barramentos
 
PESQUISA SOBRE BARRAMENTO
PESQUISA SOBRE BARRAMENTOPESQUISA SOBRE BARRAMENTO
PESQUISA SOBRE BARRAMENTO
 
Sistemas microprocessados historia microcontroladores
Sistemas microprocessados historia microcontroladoresSistemas microprocessados historia microcontroladores
Sistemas microprocessados historia microcontroladores
 
Aula01a_Introducao_Microcontroladores
Aula01a_Introducao_MicrocontroladoresAula01a_Introducao_Microcontroladores
Aula01a_Introducao_Microcontroladores
 
Placa mãe (motherboard)
Placa mãe (motherboard)Placa mãe (motherboard)
Placa mãe (motherboard)
 

Andere mochten auch

Andere mochten auch (20)

Soap
SoapSoap
Soap
 
Apresentação1 lendas
Apresentação1 lendasApresentação1 lendas
Apresentação1 lendas
 
Poetry in european languages
Poetry in european languagesPoetry in european languages
Poetry in european languages
 
Presentación1
Presentación1Presentación1
Presentación1
 
Redes sociales como negocio virtual
Redes sociales como negocio virtualRedes sociales como negocio virtual
Redes sociales como negocio virtual
 
Presentation1
Presentation1Presentation1
Presentation1
 
20130919 plan
20130919 plan20130919 plan
20130919 plan
 
Problemas variables aleatorias (obligatorio)
Problemas variables aleatorias (obligatorio)Problemas variables aleatorias (obligatorio)
Problemas variables aleatorias (obligatorio)
 
LOR Dan Hagendorf AUG 2016 general (1)
LOR Dan Hagendorf AUG 2016 general (1)LOR Dan Hagendorf AUG 2016 general (1)
LOR Dan Hagendorf AUG 2016 general (1)
 
輔大交點Vol.1 nice to meet u-兩分鐘自我介紹
輔大交點Vol.1 nice  to meet u-兩分鐘自我介紹輔大交點Vol.1 nice  to meet u-兩分鐘自我介紹
輔大交點Vol.1 nice to meet u-兩分鐘自我介紹
 
CINAHL guia
CINAHL guiaCINAHL guia
CINAHL guia
 
Moc contenciós pir 13-09-24
Moc contenciós pir 13-09-24Moc contenciós pir 13-09-24
Moc contenciós pir 13-09-24
 
10 TIPPS IM UMGANG MIT KINDERN & MEDIEN I SUIT.
10 TIPPS IM UMGANG MIT KINDERN & MEDIEN I SUIT.10 TIPPS IM UMGANG MIT KINDERN & MEDIEN I SUIT.
10 TIPPS IM UMGANG MIT KINDERN & MEDIEN I SUIT.
 
La revolucion rusa y el surgimiento de la urss
La revolucion rusa y el surgimiento de la urssLa revolucion rusa y el surgimiento de la urss
La revolucion rusa y el surgimiento de la urss
 
Feminismos en tiempos de crisis
Feminismos en tiempos de crisisFeminismos en tiempos de crisis
Feminismos en tiempos de crisis
 
Guía de estudio 3
Guía  de  estudio 3Guía  de  estudio 3
Guía de estudio 3
 
Robin Stewart Resume
Robin Stewart ResumeRobin Stewart Resume
Robin Stewart Resume
 
Power Prometeo - Blog
Power Prometeo - BlogPower Prometeo - Blog
Power Prometeo - Blog
 
Com fer que els alumnes es responsabilitzin
Com fer que els alumnes es responsabilitzinCom fer que els alumnes es responsabilitzin
Com fer que els alumnes es responsabilitzin
 
Infantil 5
Infantil 5Infantil 5
Infantil 5
 

Ähnlich wie Implementação UHCI para Memtest86+

A arquitetura básica de um computador
A arquitetura básica de um computadorA arquitetura básica de um computador
A arquitetura básica de um computador
redesinforma
 
Aula 02 introudção a computação
Aula 02 introudção a computaçãoAula 02 introudção a computação
Aula 02 introudção a computação
Matheus Brito
 
Windows7educacao brz-web
Windows7educacao brz-webWindows7educacao brz-web
Windows7educacao brz-web
Patibcosta
 
O computador e seu funcionamento
O computador e seu funcionamentoO computador e seu funcionamento
O computador e seu funcionamento
JackerCastilho
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linux
elliando dias
 

Ähnlich wie Implementação UHCI para Memtest86+ (20)

Entrada e saida cap 05 (iii unidade)
Entrada e saida  cap 05 (iii unidade)Entrada e saida  cap 05 (iii unidade)
Entrada e saida cap 05 (iii unidade)
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
 
Ac16 conjunto de instruções v2
Ac16   conjunto de instruções v2Ac16   conjunto de instruções v2
Ac16 conjunto de instruções v2
 
Informática Básica - Arquitetura padrão IBM-PC
Informática Básica - Arquitetura padrão IBM-PCInformática Básica - Arquitetura padrão IBM-PC
Informática Básica - Arquitetura padrão IBM-PC
 
Cisco ios
Cisco iosCisco ios
Cisco ios
 
Introdução a Computação - Unidade 5.pptx
Introdução a Computação - Unidade 5.pptxIntrodução a Computação - Unidade 5.pptx
Introdução a Computação - Unidade 5.pptx
 
A arquitetura básica de um computador
A arquitetura básica de um computadorA arquitetura básica de um computador
A arquitetura básica de um computador
 
Introdução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdfIntrodução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdf
 
Hardware
HardwareHardware
Hardware
 
Aula 02 introudção a computação
Aula 02 introudção a computaçãoAula 02 introudção a computação
Aula 02 introudção a computação
 
Windows7educacao brz-web
Windows7educacao brz-webWindows7educacao brz-web
Windows7educacao brz-web
 
O computador e seu funcionamento
O computador e seu funcionamentoO computador e seu funcionamento
O computador e seu funcionamento
 
MC - Aula 06 - Placa Mãe, E-S e Outras Informações
MC - Aula 06 - Placa Mãe, E-S e Outras InformaçõesMC - Aula 06 - Placa Mãe, E-S e Outras Informações
MC - Aula 06 - Placa Mãe, E-S e Outras Informações
 
Informática - Aula 2
Informática - Aula 2Informática - Aula 2
Informática - Aula 2
 
sistemas operativos.ppt
sistemas operativos.pptsistemas operativos.ppt
sistemas operativos.ppt
 
Aula1 windows
Aula1 windowsAula1 windows
Aula1 windows
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linux
 
Resumo x86
Resumo x86Resumo x86
Resumo x86
 
Aula30 infh ardsoft
Aula30 infh ardsoftAula30 infh ardsoft
Aula30 infh ardsoft
 
Hardware
HardwareHardware
Hardware
 

Mehr von Rômulo Jales

Uma implementação de suporte a
Uma implementação de suporte a Uma implementação de suporte a
Uma implementação de suporte a
Rômulo Jales
 
IMPLEMENTAÇÃO DO UNIVERSEAL HOST CONTROLLER INTERFACE (UHCI) PARA O MEMTE...
IMPLEMENTAÇÃO DO UNIVERSEAL  HOST CONTROLLER INTERFACE    (UHCI) PARA O MEMTE...IMPLEMENTAÇÃO DO UNIVERSEAL  HOST CONTROLLER INTERFACE    (UHCI) PARA O MEMTE...
IMPLEMENTAÇÃO DO UNIVERSEAL HOST CONTROLLER INTERFACE (UHCI) PARA O MEMTE...
Rômulo Jales
 

Mehr von Rômulo Jales (10)

Conhecimentos básicos para construir um portal que atenda 10milhões de pesoas
Conhecimentos básicos para construir um portal que atenda 10milhões de pesoasConhecimentos básicos para construir um portal que atenda 10milhões de pesoas
Conhecimentos básicos para construir um portal que atenda 10milhões de pesoas
 
Construindo sua primeira ontologia
Construindo sua primeira ontologiaConstruindo sua primeira ontologia
Construindo sua primeira ontologia
 
Introdução a Model Based User Interface Design
Introdução a Model Based User Interface DesignIntrodução a Model Based User Interface Design
Introdução a Model Based User Interface Design
 
Bridge GoF Patern
Bridge GoF PaternBridge GoF Patern
Bridge GoF Patern
 
Usando Django para servir 12 milhões de usuários
Usando Django para servir 12 milhões de usuáriosUsando Django para servir 12 milhões de usuários
Usando Django para servir 12 milhões de usuários
 
Uma implementação de suporte a
Uma implementação de suporte a Uma implementação de suporte a
Uma implementação de suporte a
 
Implementação de
Implementação de Implementação de
Implementação de
 
Seminario pic
Seminario picSeminario pic
Seminario pic
 
DKMS ­ Dynamic Kernel Module Support
DKMS ­ Dynamic Kernel Module SupportDKMS ­ Dynamic Kernel Module Support
DKMS ­ Dynamic Kernel Module Support
 
IMPLEMENTAÇÃO DO UNIVERSEAL HOST CONTROLLER INTERFACE (UHCI) PARA O MEMTE...
IMPLEMENTAÇÃO DO UNIVERSEAL  HOST CONTROLLER INTERFACE    (UHCI) PARA O MEMTE...IMPLEMENTAÇÃO DO UNIVERSEAL  HOST CONTROLLER INTERFACE    (UHCI) PARA O MEMTE...
IMPLEMENTAÇÃO DO UNIVERSEAL HOST CONTROLLER INTERFACE (UHCI) PARA O MEMTE...
 

Kürzlich hochgeladen

Kürzlich hochgeladen (8)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Implementação UHCI para Memtest86+

  • 1. Implementação UHCI para Memtest86+ Aluno: Rômulo Jales Orientador: Sérgio Campello Departamento de Sistemas Computacionais UPE-POLI Dezembro - 2009
  • 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. 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.
  • 5. Monitoração e controle remoto do Memtest86+ ● Barateamento de custos de manutenção ● Via RS232
  • 7. Mas cadê a porta da RS232?
  • 8. USB – Universal Serial Bus Criada para: ● Substituir ● Simplificar ● Universalizar as portas e padrões de comunicação
  • 9. Por que usar USB no lugar da RS232? ● Possibilidade de usar outras interfaces ● Bluetooth ● Ethernet ● Serial RS-232 (!) ● Onipresente nos computadores pessoais atuais
  • 10. Sistemas USB ● Dispositivos ● Até 127 ● Conectores ● Cabos ● Hubs ● Portas ● Hospedeiros ● Apenas um...
  • 13. 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!
  • 14. Pilha USB do hospedeiro Aplicação Interface de Hardware Software Hardware Hardware
  • 15. Para usar a USB 1.Inicializar a interface de hardware 2.Inicializar dispositivo 3.Aplicação usar o dispositivo
  • 16. Interface de Hardware do Hospedeiro Entidade responsável pela comunicação entre um dispositivo USB e o computador (hospedeiro).
  • 17. 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
  • 18. Interface Hardware de Hospedeiro USB ● EHCI ● USB 2.0 ● XHCI ● USB 3.0 ● WUSB ● Wireless USB E o escolhido é o... UHCI!
  • 19. Por que UHCI? ● O meu computador tem UHCI. ● O QEMU implementa UHCI. ● A comunidade recomenda UHCI.
  • 20. O que é realmente UHCI? ● Um hardware! ● Dispositivo PCI autoconfigurável ● Um controlador de Hospedeiro USB
  • 21. 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
  • 22. 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
  • 23. 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: ●
  • 24. 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
  • 25. 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
  • 26. 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”
  • 28. 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?
  • 29. Conclusões ● USB é uma boa alternativa para substituir RS232 ● A implementação não é tão simples quanto aparentava ser.
  • 30. 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