ID do artigo: 000087175 Tipo de conteúdo: Solução de problemas Última revisão: 10/08/2017

Por que posso ver o problema de coerência de cache no design do SoC executando o sistema operacional Linux?

Ambiente

    Intel® Quartus® Prime Standard Edition
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descrição

Devido ao BSP Linux padrão não habilitar a transmissão de cache e manutenção TLB (bit0 de ACTLR de registro é deixado '0') no modo SMP, um problema de coerência de cache pode ser visto.

Para obter uma descrição deste bit, consulte a seção 1.7.3 De transmissão de operações de manutenção no manual de referência técnica ARM A9 MPCore[2]:

Todos os processadores que trabalham no modo SMP no mesmo domínio coerente podem enviar e receber operações de manutenção de TLB e cache. O Manual de referência da arquitetura ARM fornece informações detalhadas sobre operações de transmissão. Um processador Cortex-A9 no cluster A9-MP transmite a operação de manutenção broadcastable quando ele opera no modo SMP (ACTLR). SMP=1) e quando a transmissão de operação de manutenção estiver habilitada (ACTLR. FW=1). Um processador Cortex-A9 pode receber e executar operações de manutenção de transmissão quando ele opera no modo SMP, ACTLR. SMP=1.

Resolução

É recomendável configurar o ACTLR. FW e ACTLR. SMP para 1. Podemos definir o bit modificando o código linux em proc-v7. Arquivos S abaixo:

#ifdef CONFIG_SMP
ALT_SMP(mrc p15, 0, r0, c1, c0, 1)
ALT_UP(mov r0, nº(1 << 6)) @ forjar para UP
tst r0, nº(1 << 6) @ modo SMP/nAMP habilitado?
orreq r0, r0, n(1 << 6) @ Habilitar o modo SMP/nAMP
orreq r0, r0, r10 @ Habilitar bits SMP específicos da CPU
r0, r0, nº(1) @ Adicionar esta linha habilita o ACTLR[0]
mcreq p15, 0, r0, c1, c0, 1
#endif

 

Produtos relacionados

Este artigo aplica-se a 2 produtos

FPGAs Cyclone® V e FPGAs SoC
FPGAs Intel® Arria® 10 e FPGAs SoC

1

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês governará e será a controle. Exibir a versão em inglês desta página.