nRF connect SDK ,Matter OTA

Hi,

We are debugging the OTA function of Matter and using nrf52840 IC, but our board is relatively small, so we cannot use the Flash IC of the example; We are using IS25LP080D;

We have modified the relevant configuration of QSPI and the program can run correctly, but we encountered a problem during OTA,

The UART printing information is as follows:

May I ask what error this may be? Thank you for your help

I: 448320 [EM]>>> [E:33130i S:45885 M:240345016 (Ack:209591795)] (S) Msg RX from 1:0000000000000001 [CFC8] --- Type 0001:09 (IM:InvokeCommandResponse)
I: 448333 [DMG]Received Command Response Data, Endpoint=0 Cluster=0x0000_0029 Command=0x0000_0001
D: 448342 [SWU]QueryImageResponse:
D: 448345 [SWU]  status: 0
D: 448348 [SWU]  imageURI: bdx://0000000000000001/../xlc-matter/build_1/zephyr/matter.ota
D: 448356 [SWU]  softwareVersion: 12
D: 448359 [SWU]  softwareVersionString: R1.2
D: 448363 [SWU]  updateToken: 32
D: 448366 [SWU]  userConsentNeeded: 0
D: 448369 [SWU]Update available from version 11 to 12
I: 448375 [EM]<<< [E:33130i S:45885 M:209591796 (Ack:240345016)] (S) Msg TX to 1:0000000000000001 [CFC8] --- Type 0000:10 (SecureChannel:StandaloneAck)
I: 448388 [IN](S) Sending msg 209591796 on secure session with LSID: 45885
D: 448397 [SWU]Establishing session to provider node ID 0x0000000000000001 on fabric index 1
I: 448406 [DIS]Found an existing secure session to [1:0000000000000001]!
D: 448412 [DIS]OperationalSessionSetup[1:0000000000000001]: State change 1 --> 5
D: 448419 [SWU]BDX::SendMessage
I: 448423 [EM]<<< [E:33131i S:45885 M:209591797] (S) Msg TX to 1:0000000000000001 [CFC8] --- Type 0002:04 (BDX:ReceiveInit)
I: 448434 [IN](S) Sending msg 209591797 on secure session with LSID: 45885
I: 448542 [EM]>>> [E:33131i S:45885 M:240345017 (Ack:209591797)] (S) Msg RX from 1:0000000000000001 [CFC8] --- Type 0002:05 (BDX:ReceiveAccept)
D: 448555 [SWU]BDX::SendMessage
I: 448558 [EM]<<< [E:33131i S:45885 M:209591798 (Ack:240345017)] (S) Msg TX to 1:0000000000000001 [CFC8] --- Type 0002:10 (BDX:BlockQuery)
I: 448571 [IN](S) Sending msg 209591798 on secure session with LSID: 45885
I: 448924 [EM]>>> [E:33131i S:45885 M:240345018 (Ack:209591798)] (S) Msg RX from 1:0000000000000001 [CFC8] --- Type 0002:11 (BDX:Block)
E: Failed to get device for area '"mcuboot_secondary"'
E: ***** BUS FAULT *****
E:   Instruction bus error
E: r0/a1:  0x00000000  r1/a2:  0x200315b8  r2/a3:  0x200315bc
E: r3/a4:  0x843901b1 r12/ip:  0x000d1838 r14/lr:  0x000a2223
E:  xpsr:  0x410f0000
E: s[ 0]:  0x00000000  s[ 1]:  0x00000000  s[ 2]:  0x00000000  s[ 3]:  0x00000000
E: s[ 4]:  0x00000000  s[ 5]:  0x00000000  s[ 6]:  0x00000000  s[ 7]:  0x00000000
E: s[ 8]:  0x00000000  s[ 9]:  0x00000000  s[10]:  0x00000000  s[11]:  0x00000000
E: s[12]:  0x00000000  s[13]:  0x00000000  s[14]:  0x00000000  s[15]:  0x00000000
E: fpscr:  0x00000000
E: Faulting instruction address (r15/pc): 0x843901b0
E: >>> ZEPHYR FATAL ERROR 27: Unknown error on CPU 0
E: Current thread: 0x200145b0 (CHIP)
E: Halting system

  • Hi

    I see that the t-dpd values on the IS25LP080D is 3µs, so those values should be changed, but that's the only thing I can find that's off in your QSPI settings. I don't think that should cause the error you're seeing though. You're still seeing Error -5 while erasing page, right?

    The only thing I can think of is that one of the pins you're using for QSPI is also used for something else, but that doesn't make sense if you have replaced the IS25 with the MX25 and that has it working as expected. Can you double/triple check the soldering on the IS25 device to make sure it's soldered on correctly?

    Best regards,

    Simon

  • Hi,

    I checked the welding of the IC and replaced it with a new one, but it still failed;

    I have repeatedly tested and modified the sck frequency; But they all failed;

    However, after trying many times, I discovered a new error (no longer error -5);

    The error is as follows:

    uart:~$ matter ota query
    uart:~$ I: 226305 [SWU]Triggered immediate OTA query for fabric: 0x1
    I: 226312 [SWU]Stopping the Periodic Query timer
    I: 226316 [SWU]Starting the watchdog timer, timeout: 21600 seconds
    D: 226322 [SWU]Establishing session to provider node ID 0x0000000000000001 on fabric index 1
    D: 226330 [DIS]OperationalSessionSetup[1:0000000000000001]: State change 1 --> 2
    I: 226338 [DIS]Resolving EA32E05C5099891E:0000000000000001 ...
    I: 226395 [DIS]Node ID resolved for EA32E05C5099891E:0000000000000001
    D: 226401 [DIS]	Hostname: 8C164550517D0000
    D: 226405 [DIS]	IP Address #1: fd11:1111:1122:2222:a684:f255:7fa:95b2
    D: 226411 [DIS]	Port: 5540
    D: 226414 [DIS]	Mrp Interval idle: 300 ms
    D: 226417 [DIS]	Mrp Interval active: 2000 ms
    D: 226421 [DIS]	TCP Supported: 1
    D: 226424 [DIS]Lookup clearing interface for non LL address
    I: 226430 [DIS]UDP:[fd11:1111:1122:2222:a684:f255:7fa:95b2]:5540: new best score: 4
    I: 226437 [DIS]Checking node lookup status after 99 ms
    I: 226442 [DIS]Keeping DNSSD lookup active
    I: 226538 [DIS]Checking node lookup status after 200 ms
    D: 226544 [DIS]OperationalSessionSetup[1:0000000000000001]: Updating device address to UDP:[fd11:1111:1122:2222:a684:f255:7fa:95b2]:5540 while in state 2
    D: 226557 [DIS]OperationalSessionSetup[1:0000000000000001]: State change 2 --> 3
    D: 226565 [IN]SecureSession[0x20003548]: Allocated Type:2 LSID:59161
    I: 226571 [SC]Initiating session on local FabricIndex 1 from 0x0000000000000007 -> 0x0000000000000001
    I: 226724 [EM]<<< [E:58374i S:0 M:44821922] (U) Msg TX to 0:0000000000000000 [0000] --- Type 0000:30 (SecureChannel:CASE_Sigma1)
    I: 226736 [IN](U) Sending msg 44821922 to IP address 'UDP:[fd11:1111:1122:2222:a684:f255:7fa:95b2]:5540'
    I: 226746 [SC]Sent Sigma1 msg
    D: 226749 [DIS]OperationalSessionSetup[1:0000000000000001]: State change 3 --> 4
    I: 226989 [EM]>>> [E:58374i S:0 M:9101423 (Ack:44821922)] (U) Msg RX from 0:0000000000000000 [0000] --- Type 0000:31 (SecureChannel:CASE_Sigma2)
    I: 227002 [EM]<<< [E:58374i S:0 M:44821923 (Ack:9101423)] (U) Msg TX to 0:0000000000000000 [0000] --- Type 0000:10 (SecureChannel:StandaloneAck)
    I: 227015 [IN](U) Sending msg 44821923 to IP address 'UDP:[fd11:1111:1122:2222:a684:f255:7fa:95b2]:5540'
    I: 227025 [SC]Received Sigma2 msg
    E: 227061 [SC]The device does not support GetClock_RealTimeMS() API: 3.  Falling back to Last Known Good UTC Time
    I: 227294 [EM]<<< [E:58374i S:0 M:44821924 (Ack:9101423)] (U) Msg TX to 0:0000000000000000 [0000] --- Type 0000:32 (SecureChannel:CASE_Sigma3)
    I: 227307 [IN](U) Sending msg 44821924 to IP address 'UDP:[fd11:1111:1122:2222:a684:f255:7fa:95b2]:5540'
    I: 227318 [SC]Sent Sigma3 msg
    I: 227447 [EM]>>> [E:58374i S:0 M:9101424 (Ack:44821924)] (U) Msg RX from 0:0000000000000000 [0000] --- Type 0000:40 (SecureChannel:StatusReport)
    I: 227460 [SC]Success status report received. Session was established
    I: 227599 [SC]SecureSession[0x20003548]: Moving from state 'kEstablishing' --> 'kActive'
    D: 227606 [IN]SecureSession[0x20003548]: Activated - Type:2 LSID:59161
    D: 227613 [IN]New secure session activated for device <0000000000000001, 1>, LSID:59161 PSID:42828!
    D: 227622 [DIS]OperationalSessionSetup[1:0000000000000001]: State change 4 --> 5
    I: 227632 [EM]<<< [E:58375i S:59161 M:186929706] (S) Msg TX to 1:0000000000000001 [891E] --- Type 0001:08 (IM:InvokeCommandRequest)
    I: 227644 [IN](S) Sending msg 186929706 on secure session with LSID: 59161
    I: 227652 [EM]<<< [E:58374i S:0 M:44821925 (Ack:9101424)] (U) Msg TX to 0:0000000000000000 [0000] --- Type 0000:10 (SecureChannel:StandaloneAck)
    I: 227665 [IN](U) Sending msg 44821925 to IP address 'UDP:[fd11:1111:1122:2222:a684:f255:7fa:95b2]:5540'
    I: 227723 [EM]>>> [E:58375i S:59161 M:81788805 (Ack:186929706)] (S) Msg RX from 1:0000000000000001 [891E] --- Type 0001:09 (IM:InvokeCommandResponse)
    I: 227737 [DMG]Received Command Response Data, Endpoint=0 Cluster=0x0000_0029 Command=0x0000_0001
    D: 227746 [SWU]QueryImageResponse:
    D: 227749 [SWU]  status: 0
    D: 227751 [SWU]  imageURI: bdx://0000000000000001//home/yida/nordic/project/xlc-matter-d/xlc-matter/build_3/zephyr/matter.ota
    D: 227762 [SWU]  softwareVersion: 23
    D: 227766 [SWU]  softwareVersionString: R23
    D: 227770 [SWU]  updateToken: 32
    D: 227773 [SWU]  userConsentNeeded: 0
    D: 227776 [SWU]Update available from version 22 to 23
    I: 227782 [EM]<<< [E:58375i S:59161 M:186929707 (Ack:81788805)] (S) Msg TX to 1:0000000000000001 [891E] --- Type 0000:10 (SecureChannel:StandaloneAck)
    I: 227795 [IN](S) Sending msg 186929707 on secure session with LSID: 59161
    D: 227804 [SWU]Establishing session to provider node ID 0x0000000000000001 on fabric index 1
    I: 227812 [DIS]Found an existing secure session to [1:0000000000000001]!
    D: 227819 [DIS]OperationalSessionSetup[1:0000000000000001]: State change 1 --> 5
    D: 227826 [SWU]BDX::SendMessage
    I: 227830 [EM]<<< [E:58376i S:59161 M:186929708] (S) Msg TX to 1:0000000000000001 [891E] --- Type 0002:04 (BDX:ReceiveInit)
    I: 227841 [IN](S) Sending msg 186929708 on secure session with LSID: 59161
    I: 228008 [EM]>>> [E:58376i S:59161 M:81788806 (Ack:186929708)] (S) Msg RX from 1:0000000000000001 [891E] --- Type 0002:05 (BDX:ReceiveAccept)
    D: 228020 [SWU]BDX::SendMessage
    I: 228024 [EM]<<< [E:58376i S:59161 M:186929709 (Ack:81788806)] (S) Msg TX to 1:0000000000000001 [891E] --- Type 0002:10 (BDX:BlockQuery)
    I: 228036 [IN](S) Sending msg 186929709 on secure session with LSID: 59161
    I: 228268 [EM]>>> [E:58376i S:59161 M:81788807 (Ack:186929709)] (S) Msg RX from 1:0000000000000001 [891E] --- Type 0002:11 (BDX:Block)
    E: Failed to get device for area '"mcuboot_secondary"'
    E: ***** BUS FAULT *****
    E:   Instruction bus error
    E: r0/a1:  0x00000000  r1/a2:  0x20031b38  r2/a3:  0x20031b3c
    E: r3/a4:  0x843901b1 r12/ip:  0x000cd0bc r14/lr:  0x0009d871
    E:  xpsr:  0x410f0000
    E: s[ 0]:  0x00000000  s[ 1]:  0x00000000  s[ 2]:  0x00000000  s[ 3]:  0x00000000
    E: s[ 4]:  0x00000000  s[ 5]:  0x00000000  s[ 6]:  0x00000000  s[ 7]:  0x00000000
    E: s[ 8]:  0x00000000  s[ 9]:  0x00000000  s[10]:  0x00000000  s[11]:  0x00000000
    E: s[12]:  0x00000000  s[13]:  0x00000000  s[14]:  0x00000000  s[15]:  0x00000000
    E: fpscr:  0x00000000
    E: Faulting instruction address (r15/pc): 0x843901b0
    E: >>> ZEPHYR FATAL ERROR 27: Unknown error on CPU 0
    E: Current thread: 0x20014618 (CHIP)
    E: Halting system
    

    Can you see anything? This is the QSPI configuration:

    &qspi {
    	status = "okay";
    	pinctrl-0 = <&qspi_default>;
    	pinctrl-1 = <&qspi_sleep>;
    	pinctrl-names = "default", "sleep";
    	is25lp: is25lp80d@0 {
    		compatible = "nordic,qspi-nor";
    		reg = <0>;
    		/* MX25R64 supports only pp and pp4io */
    		writeoc = "pp";//"pp4io";
    		/* MX25R64 supports all readoc options */
    		readoc = "fastread";//"read4io";
    		sck-frequency = <8000000>;//8000000
    		jedec-id = [9D 60 14];//c2 28 17
    		sfdp-bfp = [
    		e5 20 f9 ff  ff ff 7f 00  44 eb 08 6b  08 3b 80 bb
    		fe ff ff ff  ff ff 00 ff  ff ff 44 eb  0c 20 0f 52
    		10 d8 00 ff  43 32 a5 00  82 d8 01 a7  ec 8d 69 4c
    		7a 75 7a 75  f7 a2 d5 5c  4a c2 2c ff  e1 30 60 80 
    	  /*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 68 44
    		30 b0 30 b0  f7 c4 d5 5c  00 be 29 ff  f0 d0 ff ff*/
    		];
    		size = <8388608>;//// 8 Mbits. 1Mbit = 1048576
    		//cpha;
    		//cpol;
    
    		has-dpd;
    		t-enter-dpd = <3000>;//10000
    		t-exit-dpd = <3000>;//35000
    	};
    };

  • Hi

    This new error doesn't seem to refer to the QSPI setup at all from what I can see. It seems to be the same one you posted initially? Does it also occur if you use the MX25, or just with the is25lp?

    Best regards,

    Simon

  • Hi,

    Yes, the QSPI configuration sent out this time is the same as before;

    When using MX25, the upgrade function operates normally;

    However, when using is25lp, after multiple attempts, the message 'Failed to get device for area' "mcuboot_secondary" 'will appear;

    Instead of error -5;

  • Hi again

    How are your partitions set up when you use the IS25 versus when using the MX25 chip? Since it doesn't say specifically in the datasheet that the IS25LP doesn't support QSPI, but only SPI or QPI. Can you try using regular SPI instead of QSPI, by using the SPI3 instance instead of QSPI and not set the quad enable bit for the IS25. That's the only thing I can think of at this point.

    Best regards,

    Simon

Related