<?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>microSD for FMFU, flash_driver_api</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/101310/microsd-for-fmfu-flash_driver_api</link><description>Hello. I want to use microSD card mounted in my device tree overlay on SPI3 as &amp;quot;zephyr,mmc-spi-slot&amp;quot; instead of onboard NOR flash for full modem firmware update. Hovewer, during FMFU initialization in function call tree: 
 dfu_target_full_modem_cfg =</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 10 Jul 2023 10:40:04 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/101310/microsd-for-fmfu-flash_driver_api" /><item><title>RE: microSD for FMFU, flash_driver_api</title><link>https://devzone.nordicsemi.com/thread/435447?ContentTypeID=1</link><pubDate>Mon, 10 Jul 2023 10:40:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:943132ec-4bf9-4a6e-9cfc-4f36ae4b8d2e</guid><dc:creator>timuritxs</dc:creator><description>&lt;p&gt;UPD: This was a hardware issue. I didnt switch SW9 on my DK, which selects between 1.8V and 3V for logic voltage which also used to power SD card. For SD card 1.8V is not sufficient, so after I switched it to 3V, everything become ok. You can close issue. Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: microSD for FMFU, flash_driver_api</title><link>https://devzone.nordicsemi.com/thread/435306?ContentTypeID=1</link><pubDate>Fri, 07 Jul 2023 15:37:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:de423a39-e1dd-48cc-a4b0-4e03bb53aa1a</guid><dc:creator>timuritxs</dc:creator><description>&lt;p&gt;Thanks for mentioning priorities. I set my driver&amp;#39;s level and priority to&amp;nbsp;&lt;span&gt;APPLICATION and&amp;nbsp;&lt;/span&gt;&lt;span&gt;CONFIG_KERNEL_INIT_PRIORITY_DEVICE&lt;/span&gt;&lt;span&gt;, and its worked.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Also I had to set SPI frequency to 4 MHz and add at the beginning of my driver init() function:&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;gpio_dev_ptr = device_get_binding(&amp;quot;GPIO_0&amp;quot;);
gpio_flags_t flags = GPIO_PULL_UP|GPIO_OUTPUT|GPIO_DS_ALT_HIGH|GPIO_DS_ALT_LOW;
gpio_pin_configure(gpio_dev_ptr, SPI_SCK_PIN, flags);
gpio_pin_configure(gpio_dev_ptr, SPI_MOSI_PIN, flags);&lt;/pre&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;To make SPI gpio pins use high drive pushpull for high speed SD card mode. I use nRF Connect v1.6.1, not migrated to latest one, currently.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span&gt;However, fs_mount returns -5, (f_mount returns -13). After some debugging with logic analyzer and oscilloscope I found that the f_mkfs() returns 0, but during f_mount() which is called after f_mkfs(), the received 512 bytes of data are all zeros. I think its incorrect, dont know why there are all zeros instead of first sector data for FAT32. I use 32GB microSD SDHC Class 10 card inserted to &amp;quot;Nordic internal debugging interface&amp;quot; after small SMD additions to it (added pullup resistors to VCC, disconnect card&amp;#39;s DAT2 and connect CMD to its pad on the PCB, and also changed dts file accordingly. The card can communicate, and return correct nonzero CRC, can receive commands and send command execution status codes, but the data of the first 512 bytes is 0 after formatting.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Here is the logic diagram of first 512 byte sector reading during f_mkfs:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:90px;max-width:480px;" height="90" src="https://devzone.nordicsemi.com/resized-image/__size/960x180/__key/communityserver-discussions-components-files/4/pastedimage1688745304350v1.png" width="480" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: microSD for FMFU, flash_driver_api</title><link>https://devzone.nordicsemi.com/thread/434776?ContentTypeID=1</link><pubDate>Wed, 05 Jul 2023 16:03:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8bbbab14-03b3-4cb6-8d14-e8222140cd61</guid><dc:creator>Didrik Rokhaug</dc:creator><description>&lt;p&gt;What level (e.g. POST_KERNEL, APPLICATION) is your driver initialized at?&lt;/p&gt;
&lt;p&gt;Do you need your driver to be initialized that early, or can you initialize it after the fatfs driver?&lt;/p&gt;
&lt;p&gt;To initialize it after the fatfs driver, you can set the level to POST_KERNEL and the priority to something higher than CONFIG_KERNEL_INIT_PRIORITY_DEFAULT (the default value for this symbol is 40. Note that you cannot write an expression, so you cannot use e.g. &amp;quot;CONFIG_KERNEL_INIT_PRIORITY_DEFAULT + 1&amp;quot;).&lt;/p&gt;
&lt;p&gt;Otherwise, you will have to change the fatfs driver to be initialized earlier, but that might cause problems if it depends on other drivers or features that haven&amp;#39;t been initialized at that point. The easiest will be to change the initialization level and priority of your driver.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: microSD for FMFU, flash_driver_api</title><link>https://devzone.nordicsemi.com/thread/434765?ContentTypeID=1</link><pubDate>Wed, 05 Jul 2023 15:09:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:69a31e4b-6b12-4fbe-ac99-76d3d7dc099d</guid><dc:creator>timuritxs</dc:creator><description>&lt;p&gt;UPD: I make it recognizable by Zephyr, however, I found that fatfs is initialized later than my driver. My driver has priority&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_APPLICATION_INIT_PRIORITY&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;But fs system is defined inside of SDK as&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;SYS_INIT&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;fs_init&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; POST_KERNEL&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; CONFIG_KERNEL_INIT_PRIORITY_DEFAULT&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;How to tell it that fs should be initialized before my device? Is it possible?&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: microSD for FMFU, flash_driver_api</title><link>https://devzone.nordicsemi.com/thread/434439?ContentTypeID=1</link><pubDate>Tue, 04 Jul 2023 11:14:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f4103544-f37c-4c02-97f4-f0cb7e259106</guid><dc:creator>timuritxs</dc:creator><description>&lt;p&gt;Yes, I just created it &amp;quot;my,file-flash-drive.yaml&amp;quot; , but how to tell build system where to search for this file?&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre class="ui-code" data-mode="text"&gt;description: |
  Raw flash storage emulation based on a single file in FAT-FS formatted SD card

compatible: &amp;quot;my,file-flash-drive&amp;quot;
include: [&amp;quot;base.yaml&amp;quot;]&lt;/pre&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;To help build system find it I added to the top of my project&amp;#39;s CMakeLists:&lt;/div&gt;
&lt;div&gt;&lt;pre class="ui-code" data-mode="text"&gt;list(APPEND DTS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/src/file_flash_drive)
list(APPEND EXTRA_ZEPHYR_MODULES ${CMAKE_CURRENT_SOURCE_DIR}/src/file_flash_drive)&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt;My yaml file is located in file_flash_drive folder. This folder structure is:&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1688469265718v1.png" /&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Now the project builds successfully, but in runtime only NULL is returned when I ask for the device:&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;dev = device_get_binding(DT_LABEL(DT_INST(0, my_file_flash_drive)));&lt;/pre&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;The addition to device tree overlay file is:&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre class="ui-code" data-mode="c_cpp"&gt;/ {
    file-flash-drive {
        compatible = &amp;quot;my,file-flash-drive&amp;quot;;
        status = &amp;quot;okay&amp;quot;;
    };
};&lt;/pre&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: microSD for FMFU, flash_driver_api</title><link>https://devzone.nordicsemi.com/thread/434430?ContentTypeID=1</link><pubDate>Tue, 04 Jul 2023 10:49:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f9189735-599f-4fba-991c-4708a93f8fc2</guid><dc:creator>Didrik Rokhaug</dc:creator><description>&lt;p&gt;You will probably have to write a bindings file, so that you can define your own device tree node.&lt;/p&gt;
&lt;p&gt;That way, the device tree node can be tied to your flash driver, so that Zephyr knows that it should initialize it.&lt;/p&gt;
&lt;p&gt;You can read more about how it is done here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://iwasz.pl/electronics/2021-06-18-out-of-tree-zephyr-module.md/"&gt;https://iwasz.pl/electronics/2021-06-18-out-of-tree-zephyr-module.md/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/martelmy/NCS_examples/tree/main/devicetree/devicetree_custom_device"&gt;https://github.com/martelmy/NCS_examples/tree/main/devicetree/devicetree_custom_device&lt;/a&gt; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: microSD for FMFU, flash_driver_api</title><link>https://devzone.nordicsemi.com/thread/434243?ContentTypeID=1</link><pubDate>Mon, 03 Jul 2023 13:38:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:81828b19-ba93-435f-b496-bac5fd6db1d1</guid><dc:creator>timuritxs</dc:creator><description>&lt;p&gt;Idea in that there is no spi NOR flash on my board, but it is only on nRF9160DK board. On my board there is only SD card. The aim is to make Zephyr consider a single file on sd card as an external flash where it can write/read FMFU binary file, using as buffer.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Now I written a driver code with implemented&amp;nbsp;flash_driver_api functionality. This driver writes and read in a single opened file on FAT formatted SD card. However, my driver is not initialized by Zephyr, I dont know how exactly to add it to device tree overlay file. To spi3? Or to sdhc0: sdhc@0, which I put to spi3? How to make Zephyr see and initialize my driver?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;#define DT_DRV_COMPAT&amp;nbsp;my_file_flash_drive&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;....some code...&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;and at the end of a file:&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;DEVICE_DT_INST_DEFINE(0, &amp;amp;file_flash_drive_init, NULL, &amp;amp;file_flash_drive_data,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;amp;file_flash_drive_config_0, POST_KERNEL, CONFIG_APPLICATION_INIT_PRIORITY,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;amp;file_flash_drive_api);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;/span&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;In application I try to get device instance by:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;dev = device_get_binding(DT_LABEL(DT_INST(0, my_file_flash_drive)));&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;/span&gt;In .overlay file I have:&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;amp;spi3 {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; compatible = &amp;quot;nordic,nrf-spim&amp;quot;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; status = &amp;quot;okay&amp;quot;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; sck-pin = &amp;lt;21&amp;gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; mosi-pin = &amp;lt;24&amp;gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; miso-pin = &amp;lt;22&amp;gt;;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; cs-gpios = &amp;lt;&amp;amp;gpio0 25 GPIO_ACTIVE_LOW&amp;gt;;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; sdhc0: sdhc@0 {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; compatible = &amp;quot;zephyr,mmc-spi-slot&amp;quot;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0&amp;gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status = &amp;quot;okay&amp;quot;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; label = &amp;quot;SDHC0&amp;quot;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; spi-max-frequency = &amp;lt;24000000&amp;gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; };&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;};&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:inherit;"&gt;In top project CMakeLists.txt I put:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;add_subdirectory_ifdef(CONFIG_FILE_FLASH_DRIVE src/file_flash_drive)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:inherit;"&gt;In driver directory&amp;#39;s CMakeLists.txt I put:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;zephyr_library()&lt;br /&gt;zephyr_library_include_directories($ENV{ZEPHYR_BASE}/../modules/fs/fatfs/include)&lt;br /&gt;zephyr_library_sources(file_flash_drive.c)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:inherit;"&gt;During build I get error:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;error: &amp;#39;DT_N_INST_0_file_flash_drive_P_label&amp;#39; undeclared (first use in this function)&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: microSD for FMFU, flash_driver_api</title><link>https://devzone.nordicsemi.com/thread/433709?ContentTypeID=1</link><pubDate>Thu, 29 Jun 2023 13:18:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dce98c4c-10ad-4d69-9e65-db1546207a18</guid><dc:creator>Didrik Rokhaug</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Do you plan to download the new modem images via the nRF9160, or is the idea that the user will place the image on the SD card themselves?&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t think you can use the SD card directly with the dfu_target or fmfu_fdev libraries, as they assume you can access a random part of the flash directly, rather than having to read it in blocks. The libraries also don&amp;#39;t account for any file system, so that might also cause problems.&lt;/p&gt;
&lt;p&gt;However, you should be able to use the full modem update API directly from the modem library, where the application handles reading (and writing if necessary) from the SD card itself.&lt;/p&gt;
&lt;p&gt;See the documentation &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/2.4.0/nrfxlib/nrf_modem/doc/bootloader.html"&gt;here&lt;/a&gt; for how to perform a full modem update.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Didrik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>