<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>External flash reading jesd216, &amp;quot;SFDP magic 000000 invalid&amp;quot;</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/106425/external-flash-reading-jesd216-sfdp-magic-000000-invalid</link><description>Hi， 
 I make a customer board and used GD25Q80C as the external Flash IC (not MX25); Read the sfdp bfp of Flash by jesd216 sample (zephyr \ samples \ drivers \ jesd216),But it failed and prompted &amp;quot;SFDP magic 000000 invalid&amp;quot;; However, when I replaced GD25Q80C</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 13 Dec 2023 08:07:25 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/106425/external-flash-reading-jesd216-sfdp-magic-000000-invalid" /><item><title>RE: External flash reading jesd216, "SFDP magic 000000 invalid"</title><link>https://devzone.nordicsemi.com/thread/460060?ContentTypeID=1</link><pubDate>Wed, 13 Dec 2023 08:07:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:98267b9c-1fee-42a8-9bc5-77158acfa00b</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Changing what bit is the QE one was addressed in this Zephyr pull request:&amp;nbsp;&lt;a href="https://github.com/zephyrproject-rtos/zephyr/pull/42334"&gt;https://github.com/zephyrproject-rtos/zephyr/pull/42334&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I also see that you&amp;#39;re using the MX25 &amp;quot;&lt;span&gt;&lt;strong&gt; mx25r64: mx25r6435f@0&lt;/strong&gt;&amp;quot; in your project, so if there are more differences between the GD25 and the MX25 you haven&amp;#39;t taken into consideration you should make a GD25 overlay setting&amp;nbsp;up the flash correctly, (on what write/read OCs you want to use, what frequency to use and the JEDEC ID (and potentially the sfdp-bfp).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Simon&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: External flash reading jesd216, "SFDP magic 000000 invalid"</title><link>https://devzone.nordicsemi.com/thread/459871?ContentTypeID=1</link><pubDate>Tue, 12 Dec 2023 09:12:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0b0b9931-bc09-4766-81c7-932fa0471c2e</guid><dc:creator>DoubleAmaing</dc:creator><description>&lt;p&gt;Also, can the value of the QE command be changed during QSPI mode? I found through the logic analyzer that the command 0x01 0x40 will be sent. Can this 0x40 be changed to the value I want? The following figure shows the location of QE for GD25:&lt;span id="transmark" style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The QE Of MX25 is in the S6;&lt;/p&gt;
&lt;p&gt;The QE of GD25 is in the S9;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1702371969963v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: External flash reading jesd216, "SFDP magic 000000 invalid"</title><link>https://devzone.nordicsemi.com/thread/459821?ContentTypeID=1</link><pubDate>Tue, 12 Dec 2023 03:34:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:afc063e5-b99a-4f49-8ecb-fe2e142d2a22</guid><dc:creator>DoubleAmaing</dc:creator><description>&lt;p&gt;Hi, thank you for your reply.&lt;/p&gt;
&lt;p&gt;I am using the example &amp;quot;spi_flash&amp;quot;&lt;br /&gt;&lt;br /&gt;I have found that the status registers of MX25 and GD25 are different (the position of &amp;quot;QE BIT&amp;quot; is different), so GD25 cannot use QSPI to complete communication because &amp;quot;QE&amp;quot; Bit serves QSPI;&lt;br /&gt;&lt;br /&gt;Therefore, I modified the code to SPI and used SPI3, but the command 0x9F was unresponsive. I checked the characteristics of the GD25 manual through a logic analyzer and only found a strange place. I am not sure if this is the cause, as shown in the following figure:&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color:#ff0000;"&gt;After sending command 9f, there was a delay of 12.12 microseconds before starting to read data from GD25；&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color:#ff0000;"&gt;Compared to yesterday&amp;#39;s QSPI, when in QSPI mode, its SCK is continuous; Why does SCK have a delay during SPI?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1702351119978v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;0x9F:&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1702351931434v4.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;wait 12.12us ，SCK starts reading data，but MISO not response&lt;span id="transmark" style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;：&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1702352016325v5.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Other explanations:&lt;br /&gt;&lt;br /&gt;The frequency of SCK is 8.3MHz&lt;br /&gt;&lt;br /&gt;2. I enabled command 0xAB and after sending command 0xAB, CS was raised by 1ms; (See SPI3 settings)&lt;/p&gt;
&lt;p&gt;The following figure shows the command sent by MCU before sending command 9f:&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1702351449470v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;I have placed my settings below, please help me take a look:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;amp;spi3 {
	compatible = &amp;quot;nordic,nrf-spim&amp;quot;;
	status = &amp;quot;okay&amp;quot;;
	cs-gpios = &amp;lt;&amp;amp;gpio0 15 GPIO_ACTIVE_LOW&amp;gt;;
	
	pinctrl-0 = &amp;lt;&amp;amp;spi3_default&amp;gt;;
	pinctrl-1 = &amp;lt;&amp;amp;spi3_sleep&amp;gt;;

	pinctrl-names = &amp;quot;default&amp;quot;, &amp;quot;sleep&amp;quot;;
	mx25r64: mx25r6435f@0  {
		compatible = &amp;quot;jedec,spi-nor&amp;quot;;
		status = &amp;quot;okay&amp;quot;;
		reg = &amp;lt;0&amp;gt;;

		wp-gpios = &amp;lt;&amp;amp;gpio0 22 GPIO_ACTIVE_HIGH&amp;gt;;
		hold-gpios = &amp;lt;&amp;amp;gpio0 24 GPIO_ACTIVE_HIGH&amp;gt;;

		spi-max-frequency = &amp;lt;8000000&amp;gt;;//8000000
		//sck-frequency = &amp;lt;8000000&amp;gt;;
		jedec-id = [00 00 00];
		size = &amp;lt;8388608&amp;gt;;//67108864

		has-dpd;		
		t-enter-dpd = &amp;lt;30000&amp;gt;;
		t-exit-dpd = &amp;lt;30000&amp;gt;;		
	};
	
};
	spi3_default: spi3_default {
		group1 {
			psels = &amp;lt;NRF_PSEL(SPIM_SCK, 0, 17)&amp;gt;,
				&amp;lt;NRF_PSEL(SPIM_MISO, 0, 13)&amp;gt;,
				&amp;lt;NRF_PSEL(SPIM_MOSI, 0, 20)&amp;gt;;
		};
	};

	spi3_sleep: spi3_sleep {
		group1 {
			psels = &amp;lt;NRF_PSEL(SPIM_SCK, 0, 17)&amp;gt;,
				&amp;lt;NRF_PSEL(SPIM_MISO, 0, 13)&amp;gt;,
				&amp;lt;NRF_PSEL(SPIM_MOSI, 0, 20)&amp;gt;;
			low-power-enable;
		};
	};

////prj
CONFIG_STDOUT_CONSOLE=y
CONFIG_FLASH=y
CONFIG_FLASH_JESD216_API=y

# Assume the standard SPI NOR flash driver.  If the device uses
# another driver add an override configuration in boards/.
CONFIG_SPI=y
CONFIG_SPI_NOR=y


CONFIG_NORDIC_QSPI_NOR=y
CONFIG_NFCT_PINS_AS_GPIOS=y 
CONFIG_SPI_NOR_IDLE_IN_DPD=y

CONFIG_UART_CONSOLE=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
CONFIG_SOC_ENABLE_LFXO=n
///////
int main(void)
{
	//DT_NODELABEL(mx25r64)
	const struct device *flash_dev = DEVICE_DT_GET(DT_NODELABEL(mx25r64));//DT_ALIAS(spi_flash0)

	if (!device_is_ready(flash_dev)) {
		printk(&amp;quot;%s: device not ready.\n&amp;quot;, flash_dev-&amp;gt;name);
		//return 0;
	}

	printf(&amp;quot;\n%s SPI flash testing\n&amp;quot;, flash_dev-&amp;gt;name);
	printf(&amp;quot;==========================\n&amp;quot;);

	single_sector_test(flash_dev);
#if defined SPI_FLASH_MULTI_SECTOR_TEST
	multi_sector_test(flash_dev);
#endif
	return 0;
}
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1702351725078v3.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: External flash reading jesd216, "SFDP magic 000000 invalid"</title><link>https://devzone.nordicsemi.com/thread/459731?ContentTypeID=1</link><pubDate>Mon, 11 Dec 2023 14:24:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1e044dc4-d822-4253-a7e8-134aaa402785</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;I can take a look at the specification and logic analyzer trace tomorrow, but first, can you confirm that you enable write/read permissions with the OP codes from the GD25 datasheet? The QSPI driver should do this by default but it seems like you only do regular SPI?&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: External flash reading jesd216, "SFDP magic 000000 invalid"</title><link>https://devzone.nordicsemi.com/thread/459644?ContentTypeID=1</link><pubDate>Mon, 11 Dec 2023 09:15:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:24573f20-682d-4578-88f0-b86eb1f6b967</guid><dc:creator>DoubleAmaing</dc:creator><description>&lt;p&gt;Hi, thank you for your reply;&lt;br /&gt;&lt;br /&gt;I have modified the jedec-id according to the specifications, but it still cannot be accessed through the device_ Is_ Ready;&lt;br /&gt;&lt;br /&gt;I will use device_ Is_ Ready to delete and capture QSPI communication, please help me see where the problem is?&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;int main(void)
{
	//DT_NODELABEL(mx25r64)
	const struct device *flash_dev = DEVICE_DT_GET(DT_NODELABEL(mx25r64));//DT_ALIAS(spi_flash0)

	if (!device_is_ready(flash_dev)) {
		printk(&amp;quot;%s: device not ready.\n&amp;quot;, flash_dev-&amp;gt;name);
		//return 0;
	}

	printf(&amp;quot;\n%s SPI flash testing\n&amp;quot;, flash_dev-&amp;gt;name);
	printf(&amp;quot;==========================\n&amp;quot;);

	single_sector_test(flash_dev);
	}
	
	&amp;amp;qspi {
	status = &amp;quot;okay&amp;quot;;
	pinctrl-0 = &amp;lt;&amp;amp;qspi_default&amp;gt;;
	pinctrl-1 = &amp;lt;&amp;amp;qspi_sleep&amp;gt;;
	pinctrl-names = &amp;quot;default&amp;quot;, &amp;quot;sleep&amp;quot;;
	
	mx25r64: mx25r6435f@0 {
		compatible = &amp;quot;nordic,qspi-nor&amp;quot;;
		reg = &amp;lt;0&amp;gt;;
		writeoc = &amp;quot;pp4o&amp;quot;;//pp4io
		readoc = &amp;quot;read4o&amp;quot;;//read4io
		sck-frequency = &amp;lt;8000000&amp;gt;;
		jedec-id = [c8 40 14];
		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 68 44
			30 b0 30 b0  f7 c4 d5 5c  00 be 29 ff  f0 d0 ff ff
		];
		size = &amp;lt;67108864&amp;gt;;
		has-dpd;
		t-enter-dpd = &amp;lt;10000&amp;gt;;
		t-exit-dpd = &amp;lt;35000&amp;gt;;
		
	};
	
};

&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;The ID read out is 000000&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1702285782160v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Write 4Byte of data to address 0xF00&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1702285870397v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Read out the data，But the data is incorrect&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1702285975714v3.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;This is the manual for GD25; Please help me, thank you。&lt;span id="transmark" style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;It seems like the Flash IC is unresponsive when reading data?&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;dd&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/DS_2D00_00091_2D00_GD25Q80C_2D00_Rev2.8.pdf"&gt;devzone.nordicsemi.com/.../DS_2D00_00091_2D00_GD25Q80C_2D00_Rev2.8.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;d&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: External flash reading jesd216, "SFDP magic 000000 invalid"</title><link>https://devzone.nordicsemi.com/thread/459635?ContentTypeID=1</link><pubDate>Mon, 11 Dec 2023 08:23:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:010b39d4-f276-46f5-ac30-3d992d07273f</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi Ethan&lt;/p&gt;
&lt;p&gt;It doesn&amp;#39;t seem like you&amp;#39;ve changed the JEDEC ID in your QSPI settings to match the GD25 you&amp;#39;re using. Please find the JEDEC ID of your specific device in the GD25 datasheet. (Should be available with a Google search)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;That should be sufficient to &amp;quot;pass&amp;quot; the SFDP &amp;quot;magic&amp;quot; settings as well I believe.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: External flash reading jesd216, "SFDP magic 000000 invalid"</title><link>https://devzone.nordicsemi.com/thread/459471?ContentTypeID=1</link><pubDate>Fri, 08 Dec 2023 08:06:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:721c2527-0345-4b68-beaa-0dedcb9b1f3c</guid><dc:creator>DoubleAmaing</dc:creator><description>&lt;p&gt;Hi，&lt;/p&gt;
&lt;p&gt;I use a logic analyzer to monitor the command to send GD25, which is very strange: (I have blocked the erase function&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;printf(&amp;quot;\nTest 1: Flash erase\n&amp;quot;);

	/* Full flash erase if SPI_FLASH_TEST_REGION_OFFSET = 0 and
	 * SPI_FLASH_SECTOR_SIZE = flash size
	 */
	//rc = flash_erase(flash_dev, SPI_COMMON_OFFSET,
	//		 SPI_FLASH_SECTOR_SIZE);
	//if (rc != 0) {
	//	printf(&amp;quot;Flash erase failed! %d\n&amp;quot;, rc);
	//} else {
	//	printf(&amp;quot;Flash erase succeeded!\n&amp;quot;);
	//}

	printf(&amp;quot;\nTest 2: Flash write\n&amp;quot;);

	printf(&amp;quot;Attempting to write %zu bytes\n&amp;quot;, len);
	rc = flash_write(flash_dev, SPI_COMMON_OFFSET, expected, len);
	if (rc != 0) {
		printf(&amp;quot;Flash write failed! %d\n&amp;quot;, rc);
		return;
	}

	memset(buf, 0, len);
	rc = flash_read(flash_dev, SPI_COMMON_OFFSET, buf, len);
	if (rc != 0) {
		printf(&amp;quot;Flash read failed! %d\n&amp;quot;, rc);
		return;
	}

	if (memcmp(expected, buf, len) == 0) {
		printf(&amp;quot;Data read matches data written. Good!!\n&amp;quot;);
	} &lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The results displayed by the oscilloscope:&lt;/p&gt;
&lt;p&gt;The first command is 0x05, followed by 0x00&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1702022541195v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1702022662007v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id="transmark" style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;As shown in the above two pictures, it is all Write and Read; The written data is also different from the default value of the example&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: External flash reading jesd216, "SFDP magic 000000 invalid"</title><link>https://devzone.nordicsemi.com/thread/459456?ContentTypeID=1</link><pubDate>Fri, 08 Dec 2023 03:51:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ace81d2a-6fa1-4cda-9833-e1e534c979ec</guid><dc:creator>DoubleAmaing</dc:creator><description>&lt;p&gt;Hi,other note:&lt;/p&gt;
&lt;p&gt;I use SPI_Flash example was used for debugging, and the results are as follows:&lt;/p&gt;
&lt;p&gt;Use MX25 for testing, if the following statement is not deleted, it will prompt &amp;quot;device not ready&amp;quot;;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;	if (!device_is_ready(flash_dev)) {
		printk(&amp;quot;%s: device not ready.\n&amp;quot;, flash_dev-&amp;gt;name);
		return 0;
	}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;After shielding it, it can be read correctly：&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;	//if (!device_is_ready(flash_dev)) {
	//	printk(&amp;quot;%s: device not ready.\n&amp;quot;, flash_dev-&amp;gt;name);
	//	return 0;
	//}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;However, &lt;span class=""&gt;After I switched to GD25 and blocked &amp;quot;device_isready&amp;quot;, the read value was 00&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=""&gt;&lt;pre class="ui-code" data-mode="text"&gt;Perform test on single sector
Test 1: Flash erase
Flash erase succeeded!

Test 2: Flash write
Attempting to write 4 bytes
Data read does not match data written!!
0000f000 wrote 55 read 00 MISMATCH
0000f001 wrote aa read 00 MISMATCH
0000f002 wrote 66 read 00 MISMATCH
0000f003 wrote 99 read 00 MISMATCH
&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=""&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;amp;spi2 {
	compatible = &amp;quot;nordic,nrf-spim&amp;quot;;
	status = &amp;quot;okay&amp;quot;;
	cs-gpios = &amp;lt;&amp;amp;gpio0 15 GPIO_ACTIVE_LOW&amp;gt;;
	pinctrl-0 = &amp;lt;&amp;amp;spi2_default&amp;gt;;
	pinctrl-1 = &amp;lt;&amp;amp;spi2_sleep&amp;gt;;
	pinctrl-names = &amp;quot;default&amp;quot;, &amp;quot;sleep&amp;quot;;
	mx25r64: mx25r6435f@0  {
		compatible = &amp;quot;jedec,spi-nor&amp;quot;;
		reg = &amp;lt;0&amp;gt;;
		
		spi-max-frequency = &amp;lt;12000000&amp;gt;;//8000000
		jedec-id = [c8 40 14];
		size = &amp;lt;8388608&amp;gt;;//67108864
		has-dpd;
		t-enter-dpd = &amp;lt;10000&amp;gt;;
		t-exit-dpd = &amp;lt;35000&amp;gt;;

		wp-gpios = &amp;lt;&amp;amp;gpio0 22 GPIO_ACTIVE_LOW&amp;gt;;
		hold-gpios = &amp;lt;&amp;amp;gpio0 24 GPIO_ACTIVE_LOW&amp;gt;;
	};
};

conf:
CONFIG_NORDIC_QSPI_NOR=n

CONFIG_SPI_NOR=y
CONFIG_SPI=y&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=""&gt;&lt;span style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t know how to get started,&amp;nbsp;&lt;span id="transmark" style="display:none;height:0px;width:0px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;When using GD25, I used an oscilloscope to grab the SO pin and found that it always kept a low level&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>