nrf5340 net core upgrade

Hi,

I just found that upgrade the net core need to set CONFIG_SERIAL=y and enable the UART in dts file, otherwise, it hangs on the network_core_pcd_cmdset function when upgrading the net core FW,  pcd_fw_copy_status_get() always returns 0.  Is this expected?  if yes, I would like to disable the net core's UART to save the current consumption, any workarounds?

static int network_core_pcd_cmdset(const void *src_addr, size_t len, bool wait)
{
	int err;
	/* Ensure that the network core is turned off */
	nrf_reset_network_force_off(NRF_RESET, true);

	err = pcd_cmd_write(src_addr, len, PCD_NET_CORE_APP_OFFSET);
	if (err != 0) {
		LOG_INF("Error while writing PCD cmd: %d", err);
		return err;
	}

	nrf_reset_network_force_off(NRF_RESET, false);
	LOG_INF("Turned on network core");

	if (!wait) {
		return 0;
	}

	do {
		/* Wait for 1 second to avoid issue where network core
		 * is unable to write to shared RAM.
		 */
		k_busy_wait(1 * USEC_PER_SEC);

		err = pcd_fw_copy_status_get();
	} while (err == PCD_STATUS_COPY);

	if (err == PCD_STATUS_COPY_FAILED) {
		LOG_ERR("Network core update failed");
		return err;
	}

	nrf_reset_network_force_off(NRF_RESET, true);
	LOG_INF("Turned off network core");
	network_core_pcd_tidy();
	return 0;
}

Parents Reply
  • Hi,

    I added hci_rpmsg.conf in the child_image folder and set CONFIG_SERIAL=n, your sample works.

    And then I compared the difference with my project,  there was an extra Cmake attachment  -Dhci_rpmsg_b0n_OVERLAY_CONFIG:STRING="overlay-minimal-size.conf" in my project setting, because my project has ANT+ feature, the flash is not enough if without this argument.

    I added the same argument in your sample, and I saw the same behavior, so it relates to the overlay-minimal-size.conf, but I have to build with this configuration.

Children
Related