Obtendo portas seriais trabalhando no JNF9VT

0

Estou tentando fazer com que as portas seriais funcionem em uma placa-mãe Jetway JNF9VT sob o Debian 8.5. Esta placa usa um chip super IO FINTEK F81866A para as portas seriais. Aparentemente isso está conectado ao SOC por um barramento LPC. Isso parece significar que não há capacidade plug and play.

Todas as portas funcionam bem no Windows 7, então o hardware está definitivamente funcionando. Eu também tentei o Ubuntu 16.04, mas vejo os mesmos problemas que com o Debian.

Sob o Debian, eu adicionei "8250.nr_uarts = 6" ao final da linha de comando do linux em / etc / default / grub e todas as seis portas parecem ser reconhecidas após o boot:

root@pt1:~# setserial -g /dev/ttyS*
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: 16550A, Port: 0x03e8, IRQ: 10
/dev/ttyS3, UART: 16550A, Port: 0x02e8, IRQ: 10
/dev/ttyS4, UART: 16550A, Port: 0x04e0, IRQ: 11
/dev/ttyS5, UART: 16550A, Port: 0x04e8, IRQ: 11
root@pt1:~# dmesg | grep ttyS
[    2.035346] 00:05: ttyS2 at I/O 0x3e8 (irq = 10, base_baud = 115200) is a 16550A
[    2.056442] 00:06: ttyS3 at I/O 0x2e8 (irq = 10, base_baud = 115200) is a 16550A
[    2.077124] 00:07: ttyS4 at I/O 0x4e0 (irq = 11, base_baud = 115200) is a 16550A
[    2.097887] 00:08: ttyS5 at I/O 0x4e8 (irq = 11, base_baud = 115200) is a 16550A
[    2.118655] 00:09: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    2.139825] 00:0a: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
root@pt1:~#

Mas as portas não podem passar nenhum dado. Eu estou usando o minicom para testar. Eu estou usando um loopback simples nos pinos TX e RX de cada porta com todos os handshaking desativados, então eu não faço isso é um problema de enquadramento ou temporização.

Eu posso fazer com que as portas passem dados depois de emitir este comando para cada porta:

root@pt1:~# setserial /dev/ttyS1 irq 0
root@pt1:~#

Isso desativa o uso de interrupções e define a porta para o modo "polling rápido". Aparentemente, esse é um modo muito intensivo de CPU, então prefiro não deixar as portas nesse estado.

Eu tentei definir interrupções entre 1 e 15, mas ainda não consigo passar nenhum dado.

Aparentemente, quando as portas seriais são conectadas via interface LPC, uma vez que não há capacidade plug and play no estilo ISA, o BIOS deve definir estaticamente os endereços base e interromper. Então, eu estou querendo saber se isso pode ser um problema de BIOS? O BIOS está em "A01: BIOS inicial" sem atualizações disponíveis. Há uma configuração no BIOS para portas, as opções são Windows ou Linuix. Eu tenho isso definido para o Linux, mas eu não sei o que isso realmente faz. O suporte do Jetway não ajudou em nada e o manual do conselho não descreve o que as configurações do BIOS realmente fazem, apenas como alterá-las.

Obrigado por qualquer sugestão.

    
por Guy 28.07.2016 / 18:39

1 resposta

1

Isso acabou sendo um problema de BIOS. A Jetway atualizou a versão de firmware do BIOS (para BARVIA02) e agora todas as portas seriais funcionam corretamente na inicialização com uma instalação limpa do Debian 8.5.

    
por 28.08.2016 / 12:55