Troubles to use FOTA + NVS Lib

Hi everyone,

I working on a projetc that i have to use the NVS lib to store several user data on external flash, but i need put FOTA capability in this firmware and when i´m included the needed configs on prj.conf  and created the thread that process a connection with nRFClud, the drive of spi flash memory seems that don´t worked propertly. This issue occurs on my proprietrary board but don´t occurs on 9160DK despiste that i´ve use same parts used in DK, but with a diferent pinout in flash IC


here is my overlay:

arduino_spi: &spi3 {
	compatible = "nordic,nrf-spim";
	#address-cells = <0x1>;
	#size-cells = <0x0>;
	reg = <0xb000 0x1000>;
	interrupts = <0xb 0x1>;
	max-frequency = <0x7a1200>;
	easydma-maxcnt-bits = <0xd>;
	status = "okay";
	cs-gpios = <&arduino_header 0x10 0x1>, <&gpio0 0x1C 0x1>;
	pinctrl-0 = <&spi3_default>;
	pinctrl-1 = <&spi3_sleep>;
	pinctrl-names = "default", "sleep";
	mx25r64: mx25r6435f@1 {
		compatible = "jedec,spi-nor";
		status = "okay";
		reg = <0x1>;
		spi-max-frequency = <0x7a1200>;
		jedec-id = [ C2 28 17  ];
		sfdp-bfp = [ E5 20 F1 FF FF FF FF 03 44 EB 08 6B 08 3B 04 BB EE FF FF FF FF FF 00 FF FF FF 00 FF 0C 20 0F 52 10 D8 00 FF 23 72 F5 00 82 ED 04 CC 44 83 48 44 30 B0 30 B0 F7 C4 D5 5C 00 BE 29 FF F0 D0 FF FF  ];
		size = <0x4000000>;
		has-dpd;
		t-enter-dpd = <0x2710>;
		t-exit-dpd = <0x88b8>;
		wp-gpios = <&gpio0 26 0x1>;
		reset-gpios = <&gpio0 29 0x1>;
		mxicy,mx25r-power-mode = "high-performance";
	};
};

&pinctrl {

	uart0_default: uart0_default {
		group1 {
			psels = <NRF_PSEL(UART_TX, 0, 11)>; //6 para ftdi // 11 para 52X
		};
		group2 {
			psels = <NRF_PSEL(UART_RX, 0, 10)>; //5 para ftdi // 10 para 52X
			bias-pull-up;
		};
	};
	uart0_sleep: uart0_sleep {
		group1 {
			psels = <NRF_PSEL(UART_TX, 0, 11)>,
					<NRF_PSEL(UART_RX, 0, 10)>;
			low-power-enable;
		};
	};

	spi3_default: spi3_default {
		group1 {
			psels = <NRF_PSEL(SPIM_SCK, 0, 30)>,
			        <NRF_PSEL(SPIM_MISO, 0, 27)>,
			        <NRF_PSEL(SPIM_MOSI, 0, 31)>;
			nordic,drive-mode = <NRF_DRIVE_H0H1>;
		};
	};

	spi3_sleep: spi3_sleep {
		group1 {
			psels = <NRF_PSEL(SPIM_SCK, 0, 30)>,
			        <NRF_PSEL(SPIM_MISO, 0, 27)>,
			        <NRF_PSEL(SPIM_MOSI, 0, 31)>;
			low-power-enable;
		};
	};
};

&i2c2 {
	status = "disabled";
};

&pwm0 {
	status = "disabled";
};

&adc {
	status = "disabled";
};

/* Enable the external flash device (required) */
&mx25r64 {
	status = "okay";
};

/* Configure partition manager to use mx25r64 as the external flash device */
/ {
	chosen {
		nordic,pm-ext-flash = &mx25r64;
	};
};

/* Enable high performance mode to increase write/erase performance */
&mx25r64 {
	mxicy,mx25r-power-mode = "high-performance";
};

and here is my prj.conf:

#============================================================================
# BOOT OPTIONS
#============================================================================

CONFIG_BOOT_BANNER=y

# MCUBOOT
CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_IMG_MANAGER=y
CONFIG_MCUBOOT_IMG_MANAGER=y
CONFIG_STREAM_FLASH_ERASE=y


#============================================================================
# LOGGING
#============================================================================

CONFIG_LOG=y  
CONFIG_LOG_BACKEND_UART=y 
CONFIG_LOG_BACKEND_RTT=n  
CONFIG_USE_SEGGER_RTT=n    

CONFIG_LOG_MODE_DEFERRED=y
CONFIG_LOG_BUFFER_SIZE=4096

CONFIG_PRINTK=y 

#============================================================================
# PRINTF / FPU
#============================================================================

# Enable print float on console
CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y
CONFIG_FPU=y

#============================================================================
# UART / AT COMMANDS
#============================================================================

CONFIG_SERIAL=y
CONFIG_UART_ASYNC_API=y

CONFIG_AT_HOST_LIBRARY=n

CONFIG_UART_INTERRUPT_DRIVEN=y

# AT monitor
CONFIG_AT_MONITOR_HEAP_SIZE=2048
CONFIG_AT_HOST_STACK_SIZE=2048

#============================================================================
# NEWLIB
#============================================================================

CONFIG_NEWLIB_LIBC=y

#============================================================================
# NETWORKING
#============================================================================

CONFIG_NETWORKING=y
CONFIG_NET_NATIVE=y      ##Sob analise - pos FOTA, original = n.
CONFIG_NET_SOCKETS_OFFLOAD=y
CONFIG_NET_SOCKETS=y
CONFIG_NET_SOCKETS_POSIX_NAMES=y

#============================================================================
# MEMORY / STACKS 
#============================================================================

CONFIG_MAIN_STACK_SIZE=16384
CONFIG_HEAP_MEM_POOL_SIZE=24576
#CONFIG_HEAP_MEM_POOL_SIZE=8192
CONFIG_ISR_STACK_SIZE=8192
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=8192



#============================================================================
# MODEM LIBRARY / MODEM CONFIG
#============================================================================

CONFIG_NRF_MODEM_LIB=y
CONFIG_NRF_MODEM_LIB_TRACE=n

CONFIG_EVENTS=y
CONFIG_RESET_ON_FATAL_ERROR=y

#============================================================================
# LTE LINK CONTROL / NETWORK
#============================================================================

CONFIG_LTE_LINK_CONTROL=y
CONFIG_LTE_NETWORK_MODE_LTE_M_NBIOT=y

#============================================================================
# PSM CONFIG 
#============================================================================

CONFIG_LTE_PSM_REQ=y
CONFIG_LTE_PSM_REQ_FORMAT_SECONDS=y
CONFIG_LTE_PSM_REQ_RAT_SECONDS=0
CONFIG_LTE_PSM_REQ_RPTAU_SECONDS=14400

#============================================================================
# MQTT
#============================================================================

CONFIG_MQTT_LIB=y
CONFIG_MQTT_CLEAN_SESSION=y

CONFIG_MQTT_KEEPALIVE=120

CONFIG_MQTT_MESSAGE_BUFFER_SIZE=4096
CONFIG_MQTT_PAYLOAD_BUFFER_SIZE=4096
CONFIG_MQTT_LOG_LEVEL_DBG=y

#============================================================================
# FLASH / NVS
#============================================================================

CONFIG_FLASH=y
CONFIG_NVS=y
CONFIG_FLASH_MAP=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_STREAM_FLASH=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=n

#============================================================================
# DATE / TIME
#============================================================================

CONFIG_DATE_TIME=y
CONFIG_DATE_TIME_AUTO_UPDATE=y
CONFIG_DATE_TIME_NTP=y
CONFIG_DATE_TIME_MODEM=n
CONFIG_DATE_TIME_UPDATE_INTERVAL_SECONDS=86400

#============================================================================
# SPI
#============================================================================

CONFIG_SPI=y
CONFIG_SPI_NOR=y
CONFIG_SPI_NOR_SFDP_DEVICETREE=y
CONFIG_PM_OVERRIDE_EXTERNAL_DRIVER_CHECK=y
CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096
CONFIG_SPI_COMPLETION_TIMEOUT_TOLERANCE=10000

#============================================================================
# TLS
#============================================================================

CONFIG_MQTT_LIB_TLS=y
CONFIG_MODEM_KEY_MGMT=y

#============================================================================
# FTP
#============================================================================

CONFIG_FTP_CLIENT=y

#============================================================================
# NRF CLOUD E FOTA
#============================================================================

CONFIG_NRF_CLOUD_MQTT=y   # Habilita stack nRF Cloud MQTT
CONFIG_NRF_CLOUD_FOTA=y   # Habilita FOTA

CONFIG_NRF_CLOUD_SEND_DEVICE_STATUS=y
CONFIG_NRF_CLOUD_SEND_DEVICE_STATUS_NETWORK=y
CONFIG_NRF_CLOUD_SEND_DEVICE_STATUS_SIM=y
CONFIG_NRF_CLOUD_SEND_SERVICE_INFO_FOTA=y
CONFIG_NRF_CLOUD_SEND_SERVICE_INFO_UI=y

# nRF Cloud alert/log
CONFIG_NRF_CLOUD_ALERT=y
CONFIG_NRF_CLOUD_LOG_DIRECT=y
CONFIG_NRF_CLOUD_LOG_OUTPUT_LEVEL=3

#============================================================================
# DOWNLOAD CLIENT
#============================================================================

CONFIG_DOWNLOAD_CLIENT=y
CONFIG_DOWNLOAD_CLIENT_HTTP_FRAG_SIZE_1024=y
CONFIG_DOWNLOAD_CLIENT_STACK_SIZE=4096
CONFIG_DOWNLOAD_CLIENT_BUF_SIZE=2300
CONFIG_DOWNLOAD_CLIENT_MAX_HOSTNAME_SIZE=128

#============================================================================
# LOCATION SERVICES
#============================================================================

CONFIG_LOCATION=y
CONFIG_LOCATION_METHOD_GNSS=y
CONFIG_LOCATION_METHOD_CELLULAR=y
CONFIG_NRF_CLOUD_AGNSS=y
CONFIG_NRF_CLOUD_LOCATION=y
CONFIG_MODEM_INFO=y
CONFIG_MODEM_INFO_ADD_NETWORK=y
CONFIG_NRF_CLOUD_PGPS=y
CONFIG_NRF_CLOUD_PGPS_REPLACEMENT_THRESHOLD=4
CONFIG_NRF_CLOUD_PGPS_REQUEST_UPON_INIT=y

CONFIG_LTE_LINK_CONTROL=y 

#============================================================================
# SETTINGS
#============================================================================

CONFIG_SETTINGS=y
CONFIG_SETTINGS_FCB=y
CONFIG_FCB=y

#============================================================================
# REDE - CONFIGS EXTRAS
#============================================================================

CONFIG_NET_MGMT_EVENT_STACK_SIZE=2048
CONFIG_NET_CONNECTION_MANAGER_MONITOR_STACK_SIZE=1024

CONFIG_NET_IPV4=y
CONFIG_NET_IPV6=y
CONFIG_NET_IPV6_NBR_CACHE=n
CONFIG_NET_IPV6_MLD=n
CONFIG_NET_CONNECTION_MANAGER=y
CONFIG_NRF_MODEM_LIB_ON_FAULT_APPLICATION_SPECIFIC=y
CONFIG_NRF_MODEM_LIB_NET_IF=y
CONFIG_NRF_MODEM_LIB_NET_IF_AUTO_DOWN=y
CONFIG_NRF_MODEM_LIB_NET_IF_DOWN_DEFAULT_LTE_DISCONNECT=y

Finally, he is that i receive on log:

[00:00:00.252,716] <ESC>[1;31m<err> spi_nor: Device id 00 00 00 does not match config c2 28 17<ESC>[0m<CR><LF>
*** Booting nRF Connect SDK 3758bcbfa5cd ***<CR><LF>
[00:00:00.258,331] <ESC>[0m<inf> fs_nvs: 6 Sectors of 4096 bytes<ESC>[0m<CR><LF>
[00:00:00.258,331] <ESC>[0m<inf> fs_nvs: alloc wra: 0, e90<ESC>[0m<CR><LF>
[00:00:00.258,361] <ESC>[0m<inf> fs_nvs: data wra: 0, 518<ESC>[0m<CR><LF>
[00:00:00.258,392] <ESC>[1;31m<err> PluviDB_IoT: Flash ex device mx25r6435f@1 is not ready<LF>
<ESC>[0m<CR><LF>
[00:00:00.258,392] <ESC>[0m<inf> PluviDB_IoT: Initializing modem library.<ESC>[0m<CR><LF>
Inicializando a nRF Cloud teste A<CR><LF>
Inicializando First Boot nRF Cloud<CR><LF>
[00:00:00.544,403] <ESC>[0m<inf> PluviDB_IoT: match<LF>
<ESC>[0m<CR><LF>
[00:00:00.544,403] <ESC>[0m<inf> PluviDB_IoT: Connecting to LTE network.<ESC>[0m<CR><LF>
[00:00:00.835,540] <ESC>[0m<dbg> PluviDB_IoT: get_bat_voltage: VBAT: 3.696 V<ESC>[0m<CR><LF>
[00:00:00.844,512] <ESC>[1;31m<err> PluviDB_IoT: AT XMonitor full raw: %XMONITOR: 0<CR><LF>
OK<CR><LF>
.<CR><LF>

Note the first line. This only occurs on my proprietary board. 

Some help are welcome.

Related