O que o am335x-pru0-fw faz?

1

Quando inicializo o meu BeagleBone Black, recebo o seguinte erro. O que exatamente isso significa? O que o am335x-pru0-fw pretendia fazer?

Versão do Kernel:

$ uname -a
Linux arm 4.1.15-ti-rt-r40 #1 SMP PREEMPT RT Fri Jan 8 09:44:57 UTC 2016 armv7l armv7l armv7l GNU/Linux

dmesg logs:

[   21.428541]  remoteproc1: Direct firmware load for am335x-pru0-fw failed with error -2
[   21.428582]  remoteproc1: failed to load am335x-pru0-fw
[   21.445653]  remoteproc1: Direct firmware load for am335x-pru0-fw failed with error -2
[   21.445674]  remoteproc1: request_firmware failed: -2
[   21.450762] pru-rproc 4a334000.pru0: rproc_boot failed
[   21.594364] pru-rproc: probe of 4a334000.pru0 failed with error -2

Estou tentando integrar um codec de áudio adau1761 com o BeagleBone Black. Eu criei uma placa de som. Mas não é capaz de reproduzir qualquer som. O erro acima está relacionado a isso?

    
por Vidh 22.07.2016 / 13:56

1 resposta

1

As mensagens de log do Kernel

Essas mensagens de log do kernel são impressas pelo driver remoteproc para PRUs (pruss ou pru_rproc) e o driver está tentando carregar o firmware da PRU, que deve estar idealmente localizado em / lib / firmware.

As PRUs não devem interferir no barramento I2S que você está usando. Na verdade, eles nem estão sendo inicializados, pois não há firmware para carregá-los.

Se você ainda quiser se livrar dessas mensagens no log do kernel, basta anexar seu arquivo /etc/modprobe.d/fbdev-blacklist.conf com estas linhas:

blacklist pru_rproc 
blacklist pruss_intc
blacklist pruss

Usando o barramento I2S

Na verdade, não trabalhei em I2s, mas posso sugerir algo sobre isso com base no que li:

Agora, para usar o barramento I2S, você precisa do modo mux correto no pino direito.

  • Primeiro, você provavelmente não deve desativar o HDMI. A unidade de processamento principal realmente transfere áudio para o chip HDMI usando este barramento I2S. Você está apenas usando esse barramento entre essa rota de ARM para o chip HDMI. Se você desabilitar o HDMI, o ARM provavelmente não emitirá os dados de áudio para o barramento I2S, como para o ARM, o HDMI é o único usuário.

  • Por favor, use esta descrição para decidir quais pinos você deseja usar no quadro.

  • Depoisdeconhecerospinosquevocêdesejausar,use esta folha aqui para decidir os modos mux nesses pinos. Eu não vi sua fonte de sobreposição com cuidado, nem eu sou especialista nisso, mas por favor, verifique duas vezes que você tem modos mux certos em sua fonte de sobreposição.

Você pode usar algo como:

$ cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins

para ver o mux resultante nos pinos.

Editar:

  • Por favor, atualize para o kernel mais recente, que geralmente ajuda muito. Você pode fazer isso usando o apt-get e isso manterá sua configuração e dados no beaglebone intactos.

  • Por favor, use uma versão não-rt se você especificamente não quiser o kernel em tempo real

por 01.08.2016 / 07:08

Tags