ID del artículo: 000087175 Tipo de contenido: Resolución de problemas Última revisión: 30/12/2022

¿Por qué puedo ver el problema de coherencia de la caché en el diseño de SoC que ejecuta El sistema operativo Linux?

Entorno

  • Intel® Quartus® Prime Standard Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Descripción

    Debido a que el linux BSP predeterminado no habilita la transmisión de mantenimiento de la memoria caché y TLB (se deja "0" de BIT0 del registro ACTLR) en el modo SMP, se puede ver un problema de coherencia de la caché.

    Para obtener una descripción de este bit, consulte la transmisión de las operaciones de mantenimiento de la sección 1.7.3 en el Manual de referencia técnico de ARM A9 MPCore[2]:

    Todos los procesadores que funcionan en modo SMP en el mismo dominio coherente pueden enviar y recibir operaciones de mantenimiento de caché y TLB. El Manual de referencia de la arquitectura de ARM proporciona información detallada sobre las operaciones de difusión. Un procesador Cortex-A9 en el clúster A9-MP transmite el funcionamiento de mantenimiento broadcastable cuando opera en modo SMP (ACTLR. SMP =1) y cuando se habilita la difusión de la operación de mantenimiento (ACTLR. FW =1). Un procesador Cortex-A9 puede recibir y ejecutar operaciones de mantenimiento de difusión cuando opera en modo SMP, ACTLR. SMP =1.

    Resolución

    Se recomienda establecer tanto ACTLR. FW y ACTLR. SMP a 1. Podemos configurar el bit modificando el código linux en proc-v7. Archivos S como se indica a continuación:

    #ifdef CONFIG_SMP
    ALT_SMP (mrc p15, 0, r0, c1, c0, 1)
    ALT_UP(mov r0, #(1 << 6)) @ 0000 para UP
    tst r0, #(1 << 6) a modo SMP/nAMP habilitado?
    orreq r0, r0, #(1 << 6) @ Habilitar modo SMP/nAMP
    orreq r0, r0, r10 @ Habilitar bits SMP específicos de CPU
    orr r0, r0, #(1) @ Agregar esta línea habilite ACTLR[0]
    mcreq p15, 0, r0, c1, c0, 1
    #endif

     

    Productos relacionados

    Este artículo se aplica a 2 productos

    FPGA de SoC y FPGA Cyclone® V
    FPGA de SoC y FPGA Intel® Arria® 10

    El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.