nRF5340 and nRF9160 general questions

Good day,

I would like to confirm the following points regarding the nRF9160 and nRF5340:

nRF9160 

1. The modem firmware binary is programmed through the SWD and not a UART port?

2. The Application core is also programmed using the SWD interface?

3. Does it ship from the factory with a bootloader? 

nRF5340

1. The application core and network processor are programmed through the SWD interface and can be simultaneously debugged by creating two debug sessions? 

2. The network core only supports a single UART instance, while the application core can support up to 4 UART instances?

3. What interface is used to load the bootloader (SWD and/or UART) and also are there specific GPIO pins that need to be used if the bootloader is uploaded using UART.

4. Does it ship from the factory with a bootloader? 

  • Hi Charlie,

    Just one more question on this. 

    Can the modem firmware be uploaded also using the SWD interface during both the development and production phase, or should UART be used for production programming?

  • 1)SWD can be used on both.

    2)Application Firmware update through UART needs you to program a bootloader through SWD first.

    3)The two methods can exit at the same time.

    Best regards,

    Charlie

  • Hi Charlie,

    I am a colleague of Franco, and have some more questions on this post.

    A bootloader is used when you need to update FW for either modem firmware or application firmware for your existing product. For secure concerns, you should set up and program your own secure bootloader for your product, so only your company can update them.

    What exactly is meant by for secure concerns? Is MCUBoot only capable of booting into non-secure regions?

    To give some context, we have already started development on a product which will contain the nrf5340 and nrf9160 on the same board (nrf9160 does not have enough memory so we need an external app processor). We will for now only be running example code on the nrf9160. Development have started on the nrf5340 however, and we decided to use IAR as compiler without Zephyr. The network core is for now forced off. The nrf5340 application core has to be upgradeable however. For now we do not care if the app runs in secure or non-secure memory. Will we be able to use MCUBoot for this purposes?

    I also have some questions regarding Trustzone and the secure/non-secure regions. We are using the IAR startup files obtainable from the Nordic SDK here https://www.nordicsemi.com/Products/Development-tools/nRF-MDK. The very first instruction that is executed, 

    SAU->CTRL |= (1 << SAU_CTRL_ALLNS_Pos);

    to our understanding sets the entire chip to non-secure. Is this indeed the case? If this is the case, surely our application is also running from "non-secure" flash. We are however not able to access any non-secure peripherals, only peripherals that are secure. This is quite confusing?

    If we are running from non-secure regions, surely we should not be able to access secure peripherals and similarly, if we are running from secure regions, we should still be able to access non-secure peripherals?

    Any insight would be greatly appreciated. 

    Kind regards,

    Frikkie

Related