hello Nordic
i am working with nrf52832, ncs 1.7.1
i am trying to work with external flash driver (25lp128)
so my dts looks like this:
... chosen { zephyr,sram = &sram0; zephyr,flash = &flash0; zephyr,code-partition = &slot0_partition; nordic,pm-ext-flash = &flash_25lp128; }; .... &spi2 { status = "okay"; sck-pin = <5>; // gpio 0 pin 5 mosi-pin = <4>; // gpio 0 pin 4 miso-pin = <2>; // gpio 0 pin 2 compatible = "nordic,nrf-spim"; cs-gpios = <&gpio0 3 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; flash_25lp128: flash_25lp128@0 { compatible = "issi,is25lp128", "jedec,spi-nor"; reg = <0>; label = "FLASH_25LP128"; // power_resources = <&flash_on>; spi-max-frequency = <133000000>; jedec-id = [9d 60 18]; size = <134217728>; }; }; &flash0 { partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; mbr_partition: partition@0 { label = "mbr"; reg = <0x00000000 0x00001000>; }; boot_partition: partition@1000 { label = "mcuboot"; reg = <0x1000 0xc000>; }; slot0_partition: partition@d000 { label = "image-0"; reg = <0xd000 0x6c800>; }; slot1_partition: partition@79800 { label = "image-1"; reg = <0x79800 0x800>; }; storage_partition: partition@7a000 { label = "storage"; reg = <0x7a000 0x6000>; }; }; };
my configs are this:
myboard.conf:
# SPI Flash CONFIG_SPI=y CONFIG_SPI_NOR=y CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096 # Enable flash operations. CONFIG_FLASH_MAP=y CONFIG_FLASH_TESTS=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_FLASH_25LP128=y CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 CONFIG_BT_RX_STACK_SIZE=1024 # CONFIG_MAIN_STACK_SIZE=1024 CONFIG_MPSL_SIGNAL_STACK_SIZE=640 CONFIG_IDLE_STACK_SIZE=128 CONFIG_ISR_STACK_SIZE=1024 # keep CONFIG_HEAP_MEM_POOL_SIZE=16384 because this is needed by usb /nrfx modules # CONFIG_HEAP_MEM_POOL_SIZE=16384 # CONFIG_HEAP_MEM_POOL_SIZE=10240 # CONFIG_HEAP_MEM_POOL_SIZE=8192 # CONFIG_HEAP_MEM_POOL_SIZE=4096 # CONFIG_HEAP_MEM_POOL_SIZE=3600 # CONFIG_HEAP_MEM_POOL_SIZE=2048 CONFIG_HEAP_MEM_POOL_SIZE=1024 CONFIG_NRFX_SPIM=y CONFIG_NRFX_SPIM1=y CONFIG_SOC_NRF52832_ALLOW_SPIM_DESPITE_PAN_58=y # CONFIG_SERIAL=n # Configurations set based on thread analyzer output. # CONFIG_SDC_RX_STACK_SIZE=324 CONFIG_BT_HCI_TX_STACK_SIZE_WITH_PROMPT=y CONFIG_BT_HCI_TX_STACK_SIZE=640 # Disable features not needed # CONFIG_TIMESLICING=n # CONFIG_MINIMAL_LIBC_MALLOC=n # Disable Bluetooth features not needed # CONFIG_BT_DEBUG_NONE=y # CONFIG_BT_ASSERT=n # CONFIG_BT_DATA_LEN_UPDATE=n CONFIG_BT_PHY_UPDATE=n # CONFIG_BT_GATT_CACHING=n # CONFIG_BT_GATT_SERVICE_CHANGED=n # CONFIG_BT_GAP_PERIPHERAL_PREF_PARAMS=n # CONFIG_BT_SETTINGS_CCC_LAZY_LOADING=y # CONFIG_BT_HCI_VS_EXT=n # Disable Bluetooth controller features not needed CONFIG_BT_CTLR_PRIVACY=n CONFIG_BT_CTLR_PHY_2M=n # Reduce Bluetooth buffers CONFIG_BT_BUF_EVT_DISCARDABLE_COUNT=1 CONFIG_BT_BUF_EVT_DISCARDABLE_SIZE=43 CONFIG_BT_BUF_EVT_RX_COUNT=2 CONFIG_BT_CONN_TX_MAX=2 CONFIG_BT_L2CAP_TX_BUF_COUNT=2 CONFIG_BT_CTLR_RX_BUFFERS=1 CONFIG_BT_BUF_ACL_TX_COUNT=3 CONFIG_BT_BUF_ACL_TX_SIZE=27
in myboard dir - Kconfig.defconfig:
config FLASH_25LP128 bool "enables flash device" default y
when i call on device_get_binding like this:
const struct device *dev = device_get_binding("FLASH_25LP128"); if (!dev) { LOG_ERR("FLASH_25LP128 not found in zephyr\n"); return; }
also tried with - device_get_binding("FLASH_25LP128");
and got the same result
i added a print in the ncs in the spi_nor.c file (lines 352-354) in the 'spi_nor_access' static function for debugging:
int res = spi_transceive_dt(&driver_cfg->spi, &tx_set, &rx_set); LOG_ERR("spi_transceive_dt ret - %d\n", res); return res; //spi_transceive_dt(&driver_cfg->spi, &tx_set, &rx_set); }
and i get this logs before the app :
[00000020] <err> spi_nor: JEDEC ID device acquired [00000021] <wrn> spi_nrfx_spim: Transaction aborted since it would trigger nRF52832 PAN 58 [00000021] <err> spi_nor: spi_transceive_dt ret - -5 [00000022] <err> spi_nor: JEDEC ID read failed: -5 *** Booting Zephyr OS build v2.6.99-ncs1-1 ***
and after obviously the driver bind returns null
any ideas what i am doing wrong ?
hope to read from you soon
best regards
Ziv