Cliente de caixa de correio Intel com Avalon Streaming Interface FPGA IP Guia do usuário
Cliente de caixa de correio intel com interface de streaming Avalon FPGA IP

Cliente de caixa de correio com interface de streaming Avalon® Intel FPGA IP Overview

O Mailbox Client com interface de streaming Avalon® Intel® FPGA IP (Mailbox Client com Avalon ST Client IP) fornece um canal de comunicação entre sua lógica personalizada e o gerenciador de dispositivos seguros (SDM). Você pode usar o Mailbox Client com Avalon ST IP para enviar pacotes de comando e receber pacotes de resposta de módulos periféricos SDM. O Mailbox Client com Avalon ST IP define funções que o SDM executa.

Sua lógica customizada pode utilizar este canal de comunicação para receber informações e acessar a memória flash dos seguintes módulos periféricos:

  • O ID do chip
  • O sensor de temperatura
  • O volumetageSensor
  • Memória flash de interface periférica serial quádrupla (SPI)

Observação: Ao longo deste guia do usuário, o termo Avalon ST abrevia a interface de streaming Avalon ou IP.

Figura 1. Cliente de caixa de correio com design de sistema Avalon ST IP
Cliente de caixa de correio com design de sistema Avalon ST IP

A figura a seguir mostra uma aplicação na qual o Mailbox Client com Avalon ST IP lê o Chip ID.

Figura 2. Cliente de caixa de correio com Avalon ST IP lê chip ID
Cliente de caixa de correio com Avalon ST IP lê chip ID

Suporte para família de dispositivos

A seguir estão listadas as definições de nível de suporte de dispositivo para IPs Intel FPGA:

  • Suporte avançado — O IP está disponível para simulação e compilação para esta família de dispositivos. Os modelos de tempo incluem estimativas iniciais de engenharia de atrasos com base em informações iniciais pós-layout. Os modelos de temporização estão sujeitos a alterações à medida que os testes de silício melhoram a correlação entre o silício real e os modelos de temporização. Você pode usar este IP para arquitetura do sistema e estudos de utilização de recursos, simulação, pin out, avaliações de latência do sistema, avaliações básicas de tempo (orçamento de pipeline) e estratégia de transferência de E/S (largura do caminho de dados, profundidade de burst, padrões de E/S comerciais desligados).
  • Suporte preliminar — O IP é verificado com modelos de temporização preliminares para esta família de dispositivos. O IP atende a todos os requisitos funcionais, mas ainda pode estar passando por análise de tempo para a família de dispositivos. Ele pode ser usado em projetos de produção com cautela.
  • Apoio final — O IP é verificado com modelos de temporização finais para esta família de dispositivos. O IP atende a todos os requisitos funcionais e de temporização da família de dispositivos e pode ser usado em projetos de produção.

Tabela 1. Suporte à família de dispositivos

Família de dispositivos Apoiar
Intel Agilex™ Avançar

Observação: Você não pode simular o Mailbox Client com Avalon Streaming Interface Intel FPGA IP porque o IP recebe as respostas do SDM. Para validar esse IP, a Intel recomenda que você execute uma avaliação de hardware.

Informações relacionadas
Cliente de caixa de correio com interface de streaming Avalon Intel FPGA IP Notas de versão

Parâmetros

Nome do parâmetro Valor Descrição
Habilitar interface de status Ligado desligado Quando você habilita esta interface, o Mailbox Client com interface de streaming Avalon Intel FPGA IP inclui o sinal command_status_invalid. Quando command_status_invalid for afirmado, você deverá redefinir o IP.

Interfaces
A figura a seguir ilustra as interfaces Mailbox Client com Avalon Streaming Interface Intel FPGA IP:

Figura 3. Cliente de caixa de correio com interface de streaming Avalon Interfaces IP Intel FPGA
Cliente de caixa de correio com interface de streaming Avalon Interfaces IP Intel FPGA

Para obter mais informações sobre as interfaces de streaming do Avalon, consulte as especificações da interface do Avalon.
Informações relacionadas
Especificações da Interface Avalon

Interfaces de relógio e reinicialização

Mesa 2. Interfaces de relógio e reinicialização

Nome do sinal Direção Descrição
in_clk Entrada Este é o relógio das interfaces de streaming do Avalon. A frequência máxima em 250 MHz.
in_reset Entrada Esta é uma reinicialização alta ativa. Afirme in_reset para redefinir o Mailbox Client com interface de streaming Avalon Intel FPGA IP (Mailbox Client com Avalon ST IP). Quando o sinal in_reset é ativado, o SDM deve liberar qualquer atividade pendente do Mailbox Client com Avalon ST IP. O SDM continua a processar comandos de outros clientes.

Para garantir que o Mailbox Client com Avalon ST IP funcione corretamente quando o dispositivo entrar no modo de usuário, seu design deve incluir o Reset Release Intel FPGA IP para manter a redefinição até que a estrutura FPGA entre no modo de usuário. A Intel recomenda usar um sincronizador de redefinição ao conectar a redefinição do usuário ou a saída do Reset Release IP ao

a porta de redefinição do Mailbox Client com Avalon ST IP. Para implementar o sincronizador de redefinição, use o Reset Bridge Intel FPGA IP disponível no Platform Designer.

Observação: Para obter orientações sobre instanciação de IP e conexão no Platform Designer, consulte Componentes de host e comunicação necessários para o Design de atualização de sistema remoto Ex.ampVeja a figura no Guia do usuário de configuração do Intel Agilex.

Interface de Comando
Use a interface Avalon Streaming (Avalon ST) para enviar comandos ao SDM.

Tabela 3. Interface de Comando

Nome do sinal Direção Descrição
comando_ready Saída O Mailbox Client com Avalon ST Intel FPGA IP declara command_ready quando está pronto para receber comandos do aplicativo. O ready_latency é 0 ciclos. O Mailbox Client com Avalon ST pode aceitar command_data[31:0] no mesmo ciclo que command_ready afirma.
comando_válido Entrada O sinal command_valid é afirmado para indicar que command_data é válido.
dados_comando[31:0] Entrada O barramento command_data direciona comandos para o SDM. Consulte Lista de Comandos e Descrição para definições dos comandos.
comando_startofpacket Entrada O command_startofpacket é afirmado no primeiro ciclo de um pacote de comando.
comando_endofpacket Entrada O command_endofpacket afirma no último ciclo de comando um pacote.

Figura 4. Tempo para pacote de comando Avalon ST
fig:m Pacote de comando ST

Interface de resposta
O IP do cliente SDM Avalon ST envia respostas para seu aplicativo usando a interface de resposta.

Tabela 4. Interface de Resposta

Sinal 5 Direção Descrição
resposta_pronta Entrada A lógica do aplicativo pode afirmar o sinal response_ready sempre que for capaz de receber uma resposta.
resposta_válida Saída O SDM afirma response_valid para indicar que response_data é válido.
dados_resposta[31:0] Saída O SDM direciona o response_data para fornecer as informações solicitadas. A primeira palavra da resposta é um cabeçalho que identifica o comando que o SDM está fornecendo. Consulte Lista de Comandos e Descrição para definições dos comandos.
resposta_startofpacket Saída O response_startofpacket é afirmado no primeiro ciclo de um pacote de resposta.
resposta_endofpacket Saída O response_endofpacket é afirmado no último ciclo de um pacote de resposta.

Figura 5. Tempo para pacote de resposta Avalon ST
Pacote de resposta Avalon ST

Interface de status de comando

Tabela 5. Interface de status de comando

Nome do sinal Direção Descrição
comando_status_inválido Saída O command_status_invalid afirma indicar um erro. Este sinal normalmente é afirmado para indicar que o comprimento do comando especificado no cabeçalho do comando não corresponde ao comprimento do comando enviado. Quando command_status_invalid é afirmado, a lógica do seu aplicativo deve ser declarada in_reset para reiniciar o Mailbox Client com interface de streaming Avalon Intel FPGA IP.

Figura 6. Redefinir após declarações command_status_invalid
fig: declarações command_status_invalid

Comandos e Respostas

O controlador host se comunica com o SDM usando pacotes de comando e resposta por meio do Mailbox Client Intel FPGA IP.

A primeira palavra dos pacotes de comando e resposta é um cabeçalho que fornece informações básicas sobre o comando ou resposta.

Figura 7. Formato de cabeçalho de comando e resposta
fig: Formato de cabeçalho de comando e resposta

Observação: O campo LENGTH no cabeçalho do comando deve corresponder ao comprimento do comando correspondente.
A tabela a seguir descreve os campos do comando de cabeçalho.

Tabela 6. Descrição do cabeçalho de comando e resposta

Cabeçalho Pedaço Descrição
Reservado [31:28] Reservado.
ID [27:24] O ID do comando. O cabeçalho de resposta retorna o ID especificado no cabeçalho do comando. Consulte Comandos de Operação para obter descrições de comandos.
0 [23] Reservado.
COMPRIMENTO [22:12] Número de palavras de argumentos após o cabeçalho. O IP responde com um erro se um número errado de palavras de argumentos for inserido para um determinado comando.
Se houver uma incompatibilidade entre o comprimento do comando especificado no cabeçalho do comando e o número de palavras enviadas. O IP eleva o bit 3 do Registrador de Status de Interrupção (COMMAND_INVALID) e o Mailbox Client deve ser reinicializado.
Reservado [11] Reservado. Deve ser definido como 0.
Código de comando/código de erro [10:0] Código de Comando especifica o comando. O código de erro indica se o comando foi bem-sucedido ou falhou.
No cabeçalho do comando, esses bits representam o código do comando. No cabeçalho de resposta, esses bits representam o código de erro. Se o comando for bem-sucedido, o código de erro será 0. Se o comando falhar, consulte os códigos de erro definidos no Respostas de código de erro.

Comandos de Operação

Redefinindo Quad SPI Flash
Importante:
Para dispositivos Intel Agilex, você deve conectar o flash serial ou o pino de redefinição do flash SPI quádruplo ao pino AS_nRST. O SDM deve controlar totalmente a reinicialização do QSPI. Não conecte o pino de redefinição quad SPI a nenhum host externo.

Tabela 7. Lista e descrição de comandos

Comando Código (Hex) Comprimento do comando (1) Comprimento da resposta (1) Descrição
NÃOOP 0 0 0 Envia uma resposta de status OK.
GET_IDCODE 10 0 1 A resposta contém um argumento que é o JTAG IDCODE do dispositivo
GET_CHIPID 12 0 2 A resposta contém o valor CHIPID de 64 bits com a palavra menos significativa primeiro.
GET_USERCODE 13 0 1 A resposta contém um argumento que é o J de 32 bitsTAG USERCODE que o bitstream de configuração grava no dispositivo.
GET_VOLTAGE 18 1 n(2) O GET_VOLTAGO comando E possui um único argumento que é uma máscara de bits que especifica os canais a serem lidos. O bit 0 especifica o canal 0, o bit 1 especifica o canal 1 e assim por diante.
A resposta inclui um argumento de uma palavra para cada bit definido na máscara de bits. O volumetagO retornado é um número de ponto fixo não assinado com 16 bits abaixo do ponto binário. Para example, um voltage de 0.75V retorna 0x0000C000. (3)
Os dispositivos Intel Agilex possuem um único volumetage sensor. Conseqüentemente, a resposta é sempre uma palavra.
OBTER_ TEMPERATURA 19 1 n(4) O comando GET_TEMPERATURE retorna a temperatura ou temperaturas da malha principal ou dos locais do canal do transceptor que você especificar.

Para dispositivos Intel Agilex, use o argumento sensor_req para especificar os locais. O sensor_req inclui os seguintes campos:

  • Bits[31:28]: Reservados.
  • Bits[27:16]: Localização do Sensor. Especifica o local do TSD.
  • Bits[15:0]: Máscara do sensor. Especifica os sensores a serem lidos para o local do sensor especificado. A resposta contém uma palavra para cada temperatura solicitada. Se omitido, o comando lê o canal 0. O bit menos significativo (lsb) corresponde ao sensor 0. O bit mais significativo (msb) corresponde ao canal 15.

A temperatura retornada é um valor fixo assinado com 8 bits abaixo do ponto binário. Para exampou seja, uma temperatura de 10°C retorna 0x00000A00. A de temperatura -1.5°C retorna 0xFFFFFE80.
Se a máscara de bits especificar um local inválido, o comando retornará um código de erro que seja qualquer valor no intervalo 0x80000000 -0x800000FF.
Para dispositivos Intel Agilex, consulte o Guia do usuário do Intel Agilex Power Management para obter mais informações sobre sensores de temperatura integrados locais.

RSU_IMAGE_ATUALIZAÇÃO 5C 2 0 Aciona a reconfiguração da fonte de dados que pode ser a fábrica ou uma imagem do aplicativo.
continuou…
  1. Este número não inclui o cabeçalho de comando ou resposta.
  2. Para dispositivos Intel Agilex que suportam a leitura de vários dispositivos, o índice n corresponde ao número de canais habilitados em seu dispositivo.
  3. Consulte o Guia do usuário do gerenciamento de energia Intel Agilex para obter mais informações sobre canais e locais do sensor de temperatura.
  4. O índice n depende do número de máscaras de sensores.
Comando Código (Hex) Comprimento do comando (1) Comprimento da resposta (1) Descrição
Este comando usa um argumento opcional de 64 bits que especifica o endereço dos dados de reconfiguração na flash. Ao enviar o argumento para o IP, você primeiro envia bits [31:0] seguidos de bits [63:32]. Se você não fornecer esse argumento, seu valor será assumido como 0.
  • Bit [31:0]: O endereço inicial de uma imagem de aplicativo.
  • Bit [63:32]: Reservado (gravar como 0).

Depois que o dispositivo processa esse comando, ele retorna o cabeçalho de resposta para a resposta FIFO antes de prosseguir com a reconfiguração do dispositivo. Certifique-se de que o PC host ou o controlador host pare de atender outras interrupções e se concentre na leitura dos dados do cabeçalho de resposta para indicar que o comando foi concluído com êxito. Caso contrário, o PC host ou o controlador host poderá não conseguir receber a resposta após o início do processo de reconfiguração.
Assim que o dispositivo prossegue com a reconfiguração, o link entre o host externo e o FPGA é perdido. Se você usar PCIe em seu design, será necessário enumerar novamente o link PCIe.
Importante: Ao redefinir o quad SPI, você deve seguir as instruções especificadas em Redefinindo Quad SPI Flash na página 9.

RSU_GET_SPT 5A 0 4 RSU_GET_SPT recupera o local do flash SPI quádruplo para as duas tabelas de subpartição que o RSU usa: SPT0 e SPT1.
A resposta de 4 palavras contém as seguintes informações:
Palavra Nome Descrição
0 TP0[63:32] Endereço SPT0 em flash SPI quad.
1 TP0[31:0]
2 TP1[63:32] Endereço SPT1 em flash SPI quad.
3 TP1[31:0]
CONFIG_STATUS 4 0 6 Informa o status da última reconfiguração. Você pode usar este comando para verificar o status da configuração durante e após a configuração. A resposta contém as seguintes informações:
Palavra Resumo Descrição
0 Estado Descreve o erro relacionado à configuração mais recente. Retorna 0 quando não há erros de configuração.
O campo de erro possui 2 campos:
  • 16 bits superiores: Código de erro grave.
  • 16 bits inferiores: código de erro secundário.

Consulte o Apêndice: CONFIG_STATUS e descrições de código de erro RSU_STATUS no cliente de caixa de correio Intel IP FPGA  Guia do usuário para obter mais informações.

1 Quartus Versão Disponível nas versões do software Intel Quartus® Prime entre 19.4 e 21.2, o campo exibe:
  • Bit [31:28]: Índice do firmware ou cópia do firmware de decisão que foi utilizado mais recentemente. Os valores possíveis são 0, 1, 2 e 3.
  • Bit [27:24]: Reservado
  • Bit [23:16]: O valor é '0'
Disponível no software Intel Quartus Prime versão 21.3 ou posterior, a versão Quartus exibe:
  • Bit [31:28]: Índice do firmware ou cópia do firmware de decisão que foi utilizado mais recentemente. Os valores possíveis são 0, 1, 2 e 3.
  • Bit [27:24]: Reservado
  • Bit [23:16]: Número de lançamento do Major Quartus
  • Bit [15:8]: Número de lançamento menor do Quartus
  • Bit [7:0]: Número de atualização do Quartus

Por exemploampPor exemplo, no software Intel Quartus Prime versão 21.3.1, os valores a seguir representam os números de versão principal e secundária do Quartus e o número de atualização do Quartus:

  • Bit [23:16] = 8'd21 = 8'h15
  • Bit [15:8] = 8'd3 = 8'h3
  • Bit [7:0] = 8'd1 = 8'h1
2 Status do pino
  • Bit [31]: Valor atual da saída nSTATUS (ativo baixo)
  • Bit [30]: Valor de entrada nCONFIG detectado (ativo baixo)
  • Bit [29:8]: Reservado
  • Bit [7:6]: Configuração da fonte do relógio
    • 01 = Oscilador interno
    • 10 = OSC_CLK_1
  • Bit [5:3]: Reservado
  • Bit [2:0]: O valor MSEL na inicialização
3 Status da função suave Contém o valor de cada uma das funções soft, mesmo que você não tenha atribuído a função a um pino SDM.
  • Bit [31:6]: Reservado
  • Bit [5]: HPS_WARMRESET
  • Bit [4]: ​​HPS_COLDRESET
  • Bit [3]: SEU_ERROR
  • Bit [2]: CVP_DONE
  • Bit [1]: INIT_DONE
  • Bit [0]: CONF_DONE
4 Localização do erro Contém o local do erro. Retorna 0 se não houver erros.
5 Detalhes do erro Contém os detalhes do erro. Retorna 0 se não houver erros.
RSU_STATUS 5B 0 9 Informa o status atual de atualização do sistema remoto. Você pode usar este comando para verificar o status da configuração durante a configuração e após sua conclusão. Este comando retorna as seguintes respostas:
Palavra Resumo Descrição

(Continuar….)

  1. Este número não inclui o comando ou cabeçalho de resposta
0-1 Imagem atual Deslocamento de flash da imagem do aplicativo atualmente em execução.
2-3 imagem com falha Deslocamento de flash da imagem do aplicativo com falha de prioridade mais alta. Se diversas imagens estiverem disponíveis na memória flash, armazena o valor da primeira imagem que falhou. Um valor com apenas 0 indica que não há imagens com falha. Se não houver imagens com falha, o restante das palavras restantes das informações de status não armazenam informações válidas.
Observação:Uma borda ascendente no nCONFIG para reconfigurar do ASx4 não limpa este campo. As informações sobre falha na imagem são atualizadas apenas quando o Mailbox Client recebe um novo comando RSU_IMAGE_UPDATE e é configurado com êxito a partir da imagem de atualização.
4 Estado Código de falha da imagem com falha. O campo de erro tem duas partes:
  • Bit [31:16]: Código de erro grave
  • Bit [15:0]: Código de erro secundário Retorna 0 se não houver falhas. Consulte

Apêndice: Descrições dos códigos de erro CONFIG_STATUS e RSU_STATUS no Guia do usuário do Mailbox Client Intel FPGA IP para obter mais informações.

5 Versão Versão da interface RSU e origem do erro.
Para obter mais informações, consulte a seção Status da RSU e códigos de erro no Guia do usuário de atualização remota do sistema do processador rígido.
6 Localização do erro Armazena o local do erro da imagem com falha. Retorna 0 sem erros.
7 Detalhes do erro Armazena os detalhes do erro da imagem com falha. Retorna 0 se não houver erros.
8 Contador de novas tentativas de imagem atual Contagem do número de novas tentativas que foram tentadas para a imagem atual. O contador é 0 inicialmente. O contador é definido como 1 após a primeira tentativa e 2 após uma segunda tentativa.
Especifique o número máximo de tentativas nas configurações do Intel Quartus Prime File (.qsf). O comando é: set_global_assignment -name RSU_MAX_RETRY_COUNT 3. Os valores válidos para o contador MAX_RETRY são 1-3. O número real de novas tentativas disponíveis é MAX_RETRY -1
Este campo foi adicionado na versão 19.3 do software Intel Quartus Prime Pro Edition.
continuou…
  1. Este número não inclui o cabeçalho de comando ou resposta.
RSU_NOTIFY 5D 1 0 Limpa todas as informações de erro na resposta RSU_STATUS e redefine o contador de novas tentativas. O argumento de uma palavra possui os seguintes campos:
  • 0x00050000: Limpa o contador de novas tentativas de reinicialização atual. Redefinir o contador de novas tentativas atual coloca o contador de volta em zero, como se a imagem atual tivesse sido carregada com êxito pela primeira vez.
  • 0x00060000: Limpar informações de status de erro.
  • Todos os outros valores são reservados.

Este comando não está disponível antes da versão 19.3 do software Intel Quartus Prime Pro Edition.

QSPI_OPEN 32 0 0 Solicita acesso exclusivo ao quad SPI. Você emite esta solicitação antes de qualquer outra solicitação QSPI. O SDM aceita a solicitação se o quad SPI não estiver em uso e o SDM não estiver configurando o dispositivo.
Retorna OK se o SDM conceder acesso.
O SDM concede acesso exclusivo ao cliente que utiliza esta caixa de correio. Outros clientes não podem acessar o quad SPI até que o cliente ativo abra mão do acesso usando o comando QSPI_CLOSE.
O acesso aos dispositivos de memória flash quad SPI por meio de qualquer IP de cliente de caixa de correio não está disponível por padrão em designs que incluem o HPS, a menos que você desative o QSPI na configuração do software HPS.
Importante: Ao redefinir o quad SPI, você deve seguir as instruções especificadas em Redefinindo Quad SPI Flash na página 9.
QSPI_CLOSE 33 0 0 Fecha o acesso exclusivo à interface quad SPI.
Importante:Ao redefinir o quad SPI, você deve seguir as instruções especificadas em Redefinindo Quad SPI Flash na página 9.
QSPI_SET_CS 34 1 0 Especifica um dos dispositivos quad SPI conectados por meio das linhas de seleção de chip. Aceita um argumento de uma palavra conforme descrito abaixo
  • Bits[31:28]: Dispositivo Flash a ser selecionado. Consulte as informações abaixo para obter o valor que corresponde aos pinos nCSO[0:3]
    • O valor 4'h0000 seleciona o flash que corresponde a nCSO[0].
    • O valor 4'h0001 seleciona o flash que corresponde a nCSO[1].
    • O valor 4'h0002 seleciona o flash que corresponde a nCSO[2].
    • O valor 4'h0003 seleciona o flash que corresponde nCSO[3].
  • Bits[27:0]: Reservado (escrever como 0).

Observação: Os dispositivos Intel Agilex ou Intel Stratix® 10 suportam um dispositivo de memória flash AS x4 para configuração AS de um dispositivo SPI quádruplo conectado ao nCSO[0]. Depois que o dispositivo entrar no modo de usuário, você poderá usar até quatro memórias flash AS x4 para uso com Mailbox Client IP ou HPS como armazenamento de dados. O Mailbox Client IP ou HPS pode usar nCSO[3:0] para acessar dispositivos SPI quádruplos.
Este comando é opcional para o esquema de configuração AS x4, a linha de seleção de chip segue o último comando QSPI_SET_CS executado ou o padrão é nCSO[0] após a configuração AS x4. O JTAG O esquema de configuração requer a execução deste comando para acessar o flash QSPI que conecta os pinos SDM_IO.
O acesso aos dispositivos de memória flash QSPI usando pinos SDM_IO está disponível apenas para o esquema de configuração AS x4, JTAG configuração e um design compilado para configuração AS x4. Para o esquema de configuração da interface de streaming Avalon (Avalon ST), você deve conectar memórias flash QSPI aos pinos GPIO.

continuou…
  1. Este número não inclui o comando ou cabeçalho de resposta
Importante: Ao redefinir o quad SPI, você deve seguir as instruções especificadas em Redefinindo Quad SPI Flash na página 9.
QSPI_READ 3A 2 N Lê o dispositivo quad SPI conectado. O tamanho máximo de transferência é de 4 kilobytes (KB) ou 1024 palavras.
Leva dois argumentos:
  • O endereço flash quad SPI (uma palavra). O endereço deve estar alinhado por palavra. O dispositivo retorna o código de erro 0x1 para endereços não alinhados.
  • Número de palavras para ler (uma palavra).

Quando bem-sucedido, retorna OK seguido pelos dados lidos do dispositivo quad SPI. Uma resposta de falha retorna um código de erro.
Para uma leitura parcialmente bem-sucedida, QSPI_READ pode retornar erroneamente o status OK.
Observação: Você não pode executar o comando QSPI_READ enquanto a configuração do dispositivo estiver em andamento.
Importante:Ao redefinir o quad SPI, você deve seguir as instruções especificadas em Redefinindo Quad SPI Flash na página 9.

QSPI_WRITE 39 2+N 0 Grava dados no dispositivo quad SPI. O tamanho máximo de transferência é de 4 kilobytes (KB) ou 1024 palavras.
Leva três argumentos:
  • O deslocamento do endereço flash (uma palavra). O endereço de gravação deve estar alinhado por palavra.
  • O número de palavras a serem escritas (uma palavra).
  • Os dados a serem escritos (uma ou mais palavras). Uma gravação bem-sucedida retorna o código de resposta OK.

Para preparar a memória para gravações, utilize o comando QSPI_ERASE antes de emitir este comando.
Observação: Você não pode executar o comando QSPI_WRITE enquanto a configuração do dispositivo estiver em andamento.
Importante:Ao redefinir o quad SPI, você deve seguir as instruções especificadas em Redefinindo Quad SPI Flash na página 9.

QSPI_ERASE 38 2 0 Apaga um setor de 4/32/64 KB do dispositivo quad SPI. Leva dois argumentos:
  • O deslocamento do endereço flash para iniciar o apagamento (uma palavra). Dependendo do número de palavras a apagar, o endereço inicial deve ser:
    • 4 KB alinhados se o número de palavras a apagar for 0x400
    • 32 KB alinhados se o número de palavras a apagar for 0x2000
    • 64 KB alinhado se o número de palavras a apagar for 0x4000 Retorna um erro para endereços não alinhados com 4/32/64 KB.
  • O número de palavras a apagar é especificado em múltiplos de:
    • 0x400 para apagar 4 KB (100 palavras) de dados. Esta opção é o tamanho mínimo de apagamento.
    • 0x2000 para apagar 32 KB (500 palavras) de dados
    • 0x4000 para apagar 64 KB (1000 palavras) de dados Um apagamento bem-sucedido retorna o código de resposta OK.

Importante:Ao redefinir o quad SPI, você deve seguir as instruções especificadas em Redefinindo Quad SPI Flash na página 9.

QSPI_READ_DEVICE_REG 35 2 N Lê registros do dispositivo quad SPI. A leitura máxima é de 8 bytes. Leva dois argumentos:
  • O opcode para o comando de leitura.
  • O número de bytes a serem lidos.
continuou…
  1. Este número não inclui o cabeçalho de comando ou resposta.
Uma leitura bem-sucedida retorna o código de resposta OK seguido pelos dados lidos do dispositivo. O retorno dos dados lidos é em múltiplos de 4 bytes. Se os bytes a serem lidos não forem um múltiplo exato de 4 bytes, ele será preenchido com múltiplos de 4 bytes até o próximo limite da palavra e o valor do bit preenchido for zero.
Importante: Ao redefinir o quad SPI, você deve seguir as instruções especificadas em Redefinindo Quad SPI Flash na página 9.
QSPI_WRITE_DEVICE_REG 36 2+N 0 Grava nos registros do quad SPI. A gravação máxima é de 8 bytes. Leva três argumentos:
  • O opcode para o comando de gravação.
  • O número de bytes a serem gravados.
  • Os dados a serem gravados.

Para executar um apagamento de setor ou subsetor, você deve especificar o endereço flash serial na ordem do byte mais significativo (MSB) para o byte menos significativo (LSB) como o seguinte exampele ilustra.
Para apagar um setor de um flash Micron 2 gigabit (Gb) no endereço 0x04FF0000 usando o comando QSPI_WRITE_DEVICE_REG, escreva o endereço flash na ordem MSB para LSB conforme mostrado aqui:
Cabeçalho: 0x00003036 Código de operação: 0x000000DC
Número de bytes para escrever: 0x00000004 Endereço flash: 0x0000FF04
Uma gravação bem-sucedida retorna o código de resposta OK. Este comando preenche dados que não são múltiplos de 4 bytes para o próximo limite de palavra. O comando preenche os dados com zero.
Importante:Ao redefinir o quad SPI, você deve seguir as instruções especificadas em Redefinindo Quad SPI Flash na página 9.

QSPI_SEND_DEVICE_OP 37 1 0 Envia um opcode de comando para o quad SPI. Leva um argumento:
  • O opcode para enviar o dispositivo quad SPI.

Um comando bem-sucedido retorna o código de resposta OK.
Importante:Ao redefinir o quad SPI, você deve seguir as instruções especificadas em Redefinindo Quad SPI Flash na página 9.

Para obter descrições de códigos de erro principais e secundários CONFIG_STATUS e RSU_STATUS, consulte o Apêndice: Descrições de códigos de erro CONFIG_STATUS e RSU_STATUS no Guia do usuário do Mailbox Client Intel FPGA IP.
Informações relacionadas

Respostas de código de erro

Tabela 8. Códigos de erro

Valor (Hex) Resposta do código de erro Descrição
0 OK Indica que o comando foi concluído com sucesso.
Um comando pode retornar erroneamente o status OK se um comando, como
QSPI_READ foi parcialmente bem-sucedido.
1 INVALID_COMMAND Indica que a ROM de inicialização atualmente carregada não pode decodificar ou reconhecer o código de comando.
3 DESCONHECIDO_COMMAND Indica que o firmware carregado atualmente não pode decodificar o código de comando.
4 INVALID_COMMAND_PARÂMETROS Indica que o comando está formatado incorretamente. Para examparquivo, a configuração do campo de comprimento no cabeçalho não é válida.
6 COMMAND_INVALID_ON_SOURCE Indica que o comando vem de uma fonte para a qual não está habilitado.
8 CLIENT_ID_NO_MATCH Indica que o Client ID não pode concluir a solicitação para fechar o acesso exclusivo ao quad SPI. O ID do cliente não corresponde ao cliente existente com o acesso exclusivo atual ao quad SPI.
9 INVALID_ADDRESS O endereço é inválido. Este erro indica uma das seguintes condições:
  • Um endereço não alinhado
  • Um problema de intervalo de endereços
  • Um problema de permissão de leitura
  • Um valor de seleção de chip inválido, exibindo valor superior a 3
  • Um endereço inválido no caso RSU
  • Um valor de máscara de bits inválido para GET_VOLTAGComando E
  • Uma seleção de página inválida para o comando GET_TEMPERATURE
A AUTHENTICATION_FAIL Indica a falha na autenticação de assinatura de fluxo de bits da configuração.
B TEMPO ESGOTADO Este erro indica tempo limite devido às seguintes condições:
  • Comando
  • Aguardando a conclusão da operação QSPI_READ
  • Aguardando a leitura de temperatura solicitada de um dos sensores de temperatura. Pode indicar um possível erro de hardware no sensor de temperatura.
C HW_NOT_READY Indica uma das seguintes condições:
  • O hardware não está pronto. Pode indicar um problema de inicialização ou configuração. O hardware pode referir-se a quad SPI.
  • A imagem RSU não é usada para configurar o FPGA.
D HW_ERROR Indica que o comando foi concluído sem êxito devido a um erro de hardware irrecuperável.
80 – 8F COMMAND_SPECIFIC_ERRO Indica um erro específico do comando devido a um comando SDM usado.
SDM

Comando

Nome do erro Código de erro Descrição
GET_CHIPID EFUSE_SYSTEM_FALHA 0x82 Indica que o ponteiro de cache do eFuse é inválido.
QSPI_OPEN/ QSPI_CLOSE/ QSPI_SET_CS/

QSPI_READ_D EVICE_REG/

QSPI_HW_ERROR 0x80 Indica erro de memória flash QSPI. Este erro indica uma das seguintes condições:
QSPI_WRITE_DEVICE_REG/

QSPI_SEND_D EVICE_OP/

QSPI_READ

  • Um problema de configuração de seleção de chip flash QSPI
  • Um problema de inicialização do flash QSPI
  • Um problema de redefinição do flash QSPI
  • Um problema de atualização das configurações de flash QSPI
QSPI_ALREADY_ ABERTO 0x81 Indica que o acesso exclusivo do cliente ao flash QSPI através do comando QSPI_OPEN já está aberto.
100 NOT_CONFIGURED Indica que o dispositivo não está configurado.
1FF ALT_SDM_MBOX_RESP_DEVICE_OCUPADO Indica que o dispositivo está ocupado devido aos seguintes casos de uso:
  • RSU: O firmware não consegue fazer a transição para uma versão diferente devido a um erro interno.
  • HPS: O HPS está ocupado durante o processo de reconfiguração do HPS ou reinicialização a frio do HPS.
2FF ALT_SDM_MBOX_RESP_NO_VALID_RESP_AVAILABLE Indica que não há nenhuma resposta válida disponível.
3FF ALT_SDM_MBOX_RESP_ERRO Erro Geral.

Recuperação de código de erro
A tabela abaixo descreve possíveis etapas para recuperação de um código de erro. A recuperação de erros depende do caso de uso específico.
Tabela 9. Recuperação de código de erro para códigos de erro conhecidos

Valor Resposta do código de erro Recuperação de código de erro
4 INVALID_COMMAND_PARÂMETROS Reenvie o cabeçalho do comando ou cabeçalho com argumentos com parâmetros corrigidos.
Por exemploamparquivo, certifique-se de que a configuração do campo de comprimento no cabeçalho seja enviada com o valor correto.
6 COMMAND_INVALID_ON_SOURCE Reenvie o comando de uma fonte válida, como JTAG, HPS ou tecido central.
8 CLIENT_ID_NO_MATCH Aguarde até que o cliente que abriu o acesso ao quad SPI conclua seu acesso e então feche o acesso exclusivo ao quad SPI.
9 INVALID_ADDRESS Possíveis etapas de recuperação de erros:
Para GET_VOLTAGComando E: Envia o comando com uma máscara de bits válida.
Para o comando GET_TEMPERATURE: Envie o comando com localização do sensor e máscara do sensor válidas.
Para operação QSPI:
  • Envie o comando com uma seleção de chip válida.
  • Envie o comando com um endereço flash QSPI válido.

Para RSU: Envie o comando com um endereço inicial válido da imagem ou aplicativo de fábrica.

B TEMPO ESGOTADO Possíveis etapas de recuperação:

Para o comando GET_TEMPERATURE: Tente enviar o comando novamente. Se o problema persistir, reconfigure ou desligue e ligue o dispositivo.

Para operação QSPI: Verifique a integridade do sinal das interfaces QSPI e tente o comando novamente.

Para operação de reinicialização do HPS: Tente enviar o comando novamente.

C HW_NOT_READY Possíveis etapas de recuperação:

Para operação QSPI: Reconfigure o dispositivo via fonte. Certifique-se de que o IP usado para construir seu projeto permite acesso ao flash QSPI.

Para RSU: Configure o dispositivo com imagem RSU.

80 QSPI_HW_ERROR Verifique a integridade do sinal da interface QSPI e certifique-se de que o dispositivo QSPI não esteja danificado.
81 QSPI_ALREADY_OPEN O cliente já abriu o QSPI. Continue com a próxima operação.
82 EFUSE_SYSTEM_FAILURE Tente reconfigurar ou desligar e ligar a energia. Se o erro persistir após a reconfiguração ou o ciclo de alimentação, o dispositivo poderá ficar danificado e irrecuperável.
100 NOT_CONFIGURED Envie um fluxo de bits que configure o HPS.
1FF ALT_SDM_MBOX_RESP_DEVICE_OCUPADO Possíveis etapas de recuperação de erros:

Para operação QSPI: Aguarde a configuração em andamento ou outro cliente concluir a operação.

Para RSU: Reconfigure o dispositivo para se recuperar de erro interno.

Para operação de reinicialização do HPS: Aguarde a conclusão da reconfiguração via HPS ou HPS Cold Reset.

Cliente de caixa de correio com interface de streaming Avalon Intel FPGA IP Guia do usuário Arquivos de documentos

Para as versões mais recentes e anteriores deste guia do usuário, consulte Cliente de caixa de correio com interface de streaming Avalon Guia do usuário Intel FPGA IP. Se um IP ou versão de software não estiver listado, o guia do usuário do IP ou versão de software anterior se aplica.

As versões IP são iguais às versões do software Intel Quartus Prime Design Suite até v19.1. A partir do software Intel Quartus Prime Design Suite versão 19.2 ou posterior, os núcleos IP têm um novo esquema de versão IP.

Histórico de revisão de documentos para o cliente de caixa de correio com interface de streaming Avalon Guia do usuário Intel FPGA IP

Versão do documento Versão Intel Quartus Prime Versão IP Mudanças
2022.09.26 22.3 1.0.1 Foram feitas as seguintes alterações:
  • Atualizado o GET_VOLTAGLinha de comando E na

Lista de comandos e tabela de descrição.

  • Adicionada nota ao suporte à família de dispositivos de mesa.
  • Revisado QSPI_SET_CS descrição do comando na tabela Lista de Comandos e Descrição.
2022.04.04 22.1 1.0.1 Atualizada a lista de comandos e a tabela de descrição.
  • Descrição atualizada do status do pino para o comando CONFIG_STATUS.
  • Removido o comando REBOOT_HPS.
2021.10.04 21.3 1.0.1 Fizemos a seguinte alteração:
  • Revisado Lista de Comandos e Descrição mesa. Descrição atualizada para:
    • CONFIG_STATUS
    • RSU_STATUS
2021.06.21 21.2 1.0.1 Foram feitas as seguintes alterações:
  • Revisado Lista de Comandos e Descrição mesa. Descrição atualizada para:
    • RSU_STATUS
    • QSPI_OPEN
    • QSPI_SET_CS
    • QSPI_ERASE
2021.03.29 21.1 1.0.1 Foram feitas as seguintes alterações:
  • Descrição revisada de RSU_IMAGE_UPDATE no Lista de Comandos e Descrição mesa.
  • Reestruturado Comandos de Operação. Removidas descrições de códigos de erro principais e secundários para os comandos CONFIG_STATUS e RSU_STATUS. Os códigos de erro maiores e menores estão agora documentados como um apêndice no Guia do usuário do IP FPGA Intel do cliente de caixa de correio.
2020.12.14 20.4 1.0.1 Foram feitas as seguintes alterações:
  • Adicionada nota importante sobre a redefinição do flash QSPI no Comandos de Operação tópico.
  • Atualizado o Lista de Comandos e Descrição tabela:
    • Descrição revisada do comando GET_TEMPERATURE.
    • Descrição revisada do comando RSU_IMAGE_UPDATE.
  • Adicionado texto sobre como redefinir o flash QSPI.
  • Adicionado texto descrevendo o comportamento entre o host externo e o FPGA.
  • Texto removido: Retorna uma resposta diferente de zero se o dispositivo já estiver processando um comando de configuração.
    • Descrições QSPI_WRITE e QSPI_READ atualizadas para especificar que o tamanho máximo de transferência é 4 kilobytes ou 1024 palavras.
    • Comprimento de resposta corrigido de 1 a 0 para QSPI_OPEN, QSPI_CLOSE e QSPI_SET_CS comando.
    • Descrições revisadas de QSPI_OPEN, QSPI_WRITE, QSPI_READ_DEVICE_REG e QSPI_WRITE_DEVICE_REG.
    • Adicionado um novo comando: REBOOT_HPS.
  • Adicionado novo tópico: Recuperação de código de erro.
2020.10.05 20.3 1.0.1
  • Alterado o título deste guia do usuário de Caixa de correio Avalon Streaming Interface Client Guia do usuário Intel FPGA IP para Cliente de caixa de correio com interface de streaming Avalon Guia do usuário Intel FPGA IP devido à mudança de nome IP no Catálogo IP Intel Quartus Prime.
  • Atualizou globalmente todas as instâncias de nomes IP.
  • Descrição revisada do comando GET TEMPERATURE para dispositivos Intel Agilex no Lista de Comandos e Descrição mesa.
  • Adicionada recomendação sobre o sincronizador de redefinição no Interfaces de relógio e reinicialização mesa.
  • Atualizado o Códigos de erro mesa. Adicionadas novas respostas de código de erro:
    • HW_ERROR
    • COMMAND_SPECIFIC_ERROR
  • Removido o Localização dos sensores de temperatura tópico. As informações do sensor de temperatura estão disponíveis no Guia do usuário do gerenciamento de energia Intel Agilex.
2020.06.30 20.2 1.0.0
  • Alterado o título deste guia do usuário de Guia do usuário do Mailbox Avalon ST Client Intel FPGA IP para Caixa de correio Avalon Streaming Interface Client Guia do usuário Intel FPGA IP.
  • Título do tópico renomeado Cabeçalho de comando e resposta para Comandos e Respostas.
  • Descrições revisadas de ID, COMPRIMENTO e código de comando/código de erro no Descrição do cabeçalho de comando e resposta mesa.
  • Título do tópico renomeado Comandos Suportados para Comandos de Operação.
  • Revisada a seguinte descrição dos comandos no Lista de Comandos e Descrição tabela:
    • OBTER_TEMPERATURA
    • RSU_STATUS
    • QSPI_SET_CS
  • Título do tópico renomeado Códigos de erro para Respostas de código de erro.
  • Comando UNKNOWN_BR removido do Código de erro mesa.
2020.04.13 20.1 1.0.0 Foram feitas as seguintes alterações:
  • Adicionadas informações sobre os sensores de temperatura para o comando GET_TEMPERATURE, incluindo figuras que ilustram as localizações do TSD.
  • Adicionado comando RSU_NOTIFY no Lista e descrição de códigos de comando mesa.
  • Atualizado o Códigos de erro tabela:
    • INVALID_COMMAND_PARAMETERS renomeado para INVALID_LENGTH.
    • Valor hexadecimal COMMAND_INVALID_ON_SOURCE alterado de 5 para 6.
    • Valor hexadecimal CLIENT_ID_NO_MATCH alterado de 6 para 8.
    • Valor hexadecimal INVALID_ADDRESS alterado de 7 para 9.
    • Adicionado comando AUTHENTICATION_FAIL.
    • Valor hexadecimal de TIMEOUT alterado de 8 para B.
    • Valor hexadecimal HW_NOT_READY alterado de 9 para C.
2019.09.30 19.3 1.0.0 Lançamento inicial.

 Para feedback, visite:  FPGAtechdocfeedback@intel.com

 

Documentos / Recursos

Cliente de caixa de correio intel com interface de streaming Avalon FPGA IP [pdf] Guia do Usuário
Cliente de caixa de correio com interface de streaming Avalon FPGA IP, cliente de caixa de correio, interface de streaming Avalon FPGA IP

Referências

Deixe um comentário

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados *