Article ID: 000097899 Content Type: Troubleshooting Last Reviewed: 06/06/2024

Why does mailbox_client_flash_open() fail after mailbox_client_open() in SDM Bootloader for the Nios® V Processor targeting Agliex™ 7 FPGA?

Environment

  • Intel® Quartus® Prime Design Software
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Description

    Due to a problem that the Agliex™ 7 FPGA Secure Device Manager (SDM) is busy with FPGA initialization, Nios® V HAL function mailbox_client_flash_open() may fail to open flash after mailbox_client_open() when running SDM Bootloader.

    Resolution

    To work around this problem in Agliex™ 7 FPGA Secure Device Manager, add a delayed attempt after function mailbox_client_flash_open() to open flash in the main function in <Project Location>\top_project\sw\mailbox_bootloader\app\mailbox_bootloader.c

    The max attempts shown below are 1000, and each attempt is delayed by 10 milliseconds.

    attribute_((noreturn)) int main(int argc, char **argv){

    intel_mailbox_client* mbox_client = mailbox_client_open(MBOX_NAME);

    int record_address_ptr = PAYLOAD_OFFSET;

    // Obtain exclusive flash access 

    int attempt = 0;

    int MAX_ATTEMPTS = 1000;

    while((mailbox_client_flash_open(mbox_client)!=0) &&(++attempt < MAX_ATTEMPTS)){ usleep(10000);

    if (attempt == MAX_ATTEMPTS) error();

    ......

     

    Related Products

    This article applies to 1 products

    Intel Agilex® 7 FPGAs and SoC FPGAs