ID del artículo: 000090295 Tipo de contenido: Resolución de problemas Última revisión: 28/02/2023

¿Cómo configurar el modo directo de SDRAM de interfaz FPGA a HPS cuando se enciende ECC en Intel Agilex® dispositivo SoC 7?

Entorno

  • Software de diseño Intel® Quartus® Prime
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Descripción

    Cuando ECC se enciende en HPS External Memory Interface (EMIF) en Intel Agilex® dispositivo SoC 7, la dirección de memoria genera datos ECC para el modo directo F2H SDRAM y el modo F2H CCU. Por lo tanto, requiere que el maestro de FPGA a HPS utilice la misma dirección de memoria con MPU incluso en el modo directo de FPGA a HPS SDRAM. De lo contrario, se puede desencadenar un error de ECC. Esta restricción no se aplica cuando el ECC está desactivado.

     

     

    Resolución

    Cuando el maestro FPGA a HPS y el maestro MPU obtienen acceso al espacio de memoria inferior a 2 GB, la dirección de memoria se utiliza desde 0x0000 0000 hasta 0x7FFF FFFF.

    Cuando el maestro FPGA a HPS y el maestro MPU obtienen acceso al espacio de memoria mayor que 2 GB, MPU utiliza la dirección de alias definida en el archivo DTS para acceder a estas direcciones de memoria. El maestro FPGA a HPS debe utilizar la misma dirección de alias en lugar de la dirección física para el modo directo F2H SDRAM y el modo F2H CCU.

    Este es el ejemplo de HPS EMIF de 4 GB en un dispositivo de sistema integrado en chip Intel Agilex® 7:

    En DTS, la memoria se define en dos regiones, como se muestra a continuación. A continuación, FPGA-to-HPS master y MPU deben utilizar una dirección de 0x1080000000 a 0x10FFFFFFFF para acceder al espacio de memoria de 2 GB ~ 4 GB.

    memoria {

    reg = ,

    0x80000000>

    };

    Para permitir el acceso al espacio de memoria de 4 GB completo con la dirección de alias anterior, también se deben establecer los siguientes registros como corresponda. Puede configurar estos registros en el archivo uboot uboot-socfpga\arch\arm\mach-socfpga\spl_agilex.c

    writel (0x100000, 0xF8020110); region0addr_base
    writel(0x0, 0xF8020114); region0addr_baseext
    writel(0xFFFFFFFF, 0xF8020118); region0addr_limit (32 bits más bajos)
    writel (0x10, 0xF802011C); region0addr_limitext (32 bits superiores)
    writel (0x1, 0xF8020104); enable_set para las regiones

    Productos relacionados

    Este artículo se aplica a 1 productos

    FPGAs y FPGAs de sistema integrado en chip Intel® Agilex™ 7

    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.