Difference between revisions of "Kconfig"

From Wiki at Neela Nurseries
Jump to: navigation, search
m (^ Kconfig NXP dual core setting)
m (^ Kconfig NXP dual core setting)
Line 63: Line 63:
 
123          Driver for second core startup
 
123          Driver for second core startup
 
124  
 
124  
125 config SECOND_IMAGE_MCUXted@localhost1:~/projects-sandbox/workspace-out-of-tree/zephyr$ grep -nr DT_CHOSEN_Z_CODE_CPU1_PARTITION ./*
+
125 config SECOND_IMAGE_MCUX
./soc/arm/nxp_lpc/lpc55xxx/Kconfig.soc:133:DT_CHOSEN_Z_CODE_CPU1_PARTITION := zephyr,code-cpu1-partition
 
./soc/arm/nxp_lpc/lpc55xxx/Kconfig.soc:138: default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CODE_CPU1_PARTITION))
 
Binary file ./soc/arm/nxp_lpc/lpc55xxx/.Kconfig.soc.swp matches
 
ted@localhost1:~/projects-sandbox/workspace-out-of-tree/zephyr$ grep -nr zephyr,code-cpu1-partition ./*
 
./boards/arm/lpcxpresso55s69/lpcxpresso55s69_cpu0.dts:39: zephyr,code-cpu1-partition = &slot1_partition;
 
./boards/arm/lpcxpresso55s69/CMakeLists.txt:20: #offset is taken from zephyr,code-cpu1-partition
 
./soc/arm/nxp_lpc/lpc55xxx/Kconfig.soc:133:DT_CHOSEN_Z_CODE_CPU1_PARTITION := zephyr,code-cpu1-partition
 
Binary file ./soc/arm/nxp_lpc/lpc55xxx/.Kconfig.soc.swp matches
 
ted@localhost1:~/projects-sandbox/workspace-out-of-tree/zephyr$ cd ./boards/arm/lpcxpresso55s69
 
ted@localhost1:~/projects-sandbox/workspace-out-of-tree/zephyr/boards/arm/lpcxpresso55s69$ ls
 
board.cmake    Kconfig.defconfig              lpcxpresso55s69_cpu1_defconfig  lpcxpresso55s69_ns_defconfig  pinmux.c
 
CMakeLists.txt  lpcxpresso55s69_cpu0_defconfig  lpcxpresso55s69_cpu1.dts        lpcxpresso55s69_ns.dts        pre_dt_board.cmake
 
doc            lpcxpresso55s69_cpu0.dts        lpcxpresso55s69_cpu1.yaml      lpcxpresso55s69_ns.yaml
 
Kconfig.board  lpcxpresso55s69_cpu0.yaml      lpcxpresso55s69.dtsi            lpcxpresso55s69-pinctrl.dtsi
 
ted@localhost1:~/projects-sandbox/workspace-out-of-tree/zephyr/boards/arm/lpcxpresso55s69$ grep -nr slot1_partition ./*
 
./lpcxpresso55s69_cpu0.dts:39: zephyr,code-cpu1-partition = &slot1_partition;
 
./lpcxpresso55s69_cpu1.dts:23: zephyr,code-partition = &slot1_partition;
 
./lpcxpresso55s69.dtsi:129: slot1_partition: partition@30000 {
 
./lpcxpresso55s69_ns.dts:31: zephyr,code-partition = &slot1_partition;
 
ted@localhost1:~/projects-sandbox/workspace-out-of-tree/zephyr/boards/arm/lpcxpresso55s69$
 
 
126        depends on SECOND_CORE_MCUX
 
126        depends on SECOND_CORE_MCUX
 
127        string "Binary image of second core's code"
 
127        string "Binary image of second core's code"

Revision as of 21:25, 8 December 2022

Zephyr RTOS building blocks   ::   Device Tree Source   ::   Kconfig   ::   cmake   ::   `west` manifest files



This Neela Nurseries page dedicated to notes on Kconfig configuration system, and language. Agood starting point is at Zephyr's latest documentation as of Zephyr 3.2.99. The following link is itself one of five Zephyr docs pages linked from a parent doc page:


Need to revisit this link to identify its specific topics . . .

Some more useful articles on Kconfig, hosted at Nordic Semi:

Above Kconfig articles linked to from https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/guides/build/index.html#kconfig.


^ Kconfig Interactive Use To Enable IIS2DH

Following messages do not show the interactive, ncurses based Kconfig configuration program. But these do show where Kconfig stores a modified configuration file in a given project:

ted@localhost:~/projects/zephyr-based/z4-sandbox-kionix-work/kionix-driver-demo$ west build -t menuconfig
-- west build: running target menuconfig
[0/1] cd /home/ted/projects/zephyr-based/z4-sandbox-kionix-work/kionix-dri...ed/projects/zephyr-based/z4-sandbox-kionix-work/kionix-driver-demo/Kconfig
Loaded configuration '/home/ted/projects/zephyr-based/z4-sandbox-kionix-work/kionix-driver-demo/build/zephyr/.config'
Configuration saved to '/home/ted/projects/zephyr-based/z4-sandbox-kionix-work/kionix-driver-demo/build/zephyr/.config'

ted@localhost:~/projects/zephyr-based/z4-sandbox-kionix-work/kionix-driver-demo$


^ Kconfig NXP dual core setting

ted@localhost1:~/projects-sandbox/workspace-out-of-tree/zephyr$ grep -nr SECOND_CORE_BOOT_ADDRESS_MCUX ./*
./boards/arm/lpcxpresso55s69/CMakeLists.txt:25:			-offset ${CONFIG_SECOND_CORE_BOOT_ADDRESS_MCUX}
./soc/arm/nxp_lpc/lpc54xxx/Kconfig.soc:54:config SECOND_CORE_BOOT_ADDRESS_MCUX
./soc/arm/nxp_lpc/lpc54xxx/soc.c:134:#define CORE_M0_BOOT_ADDRESS ((void *)CONFIG_SECOND_CORE_BOOT_ADDRESS_MCUX)
./soc/arm/nxp_lpc/lpc55xxx/Kconfig.soc:135:config SECOND_CORE_BOOT_ADDRESS_MCUX
ted@localhost1:~/projects-sandbox/workspace-out-of-tree/zephyr$

From file `zephyr/soc/arm/nxp_lpc/lpc55xxx/Kconfig.soc`:

118 
119 config SECOND_CORE_MCUX
120         bool "LPC55xxx's second core"
121         depends on HAS_MCUX
122         help
123           Driver for second core startup
124 
125 config SECOND_IMAGE_MCUX
126         depends on SECOND_CORE_MCUX
127         string "Binary image of second core's code"
128         help
129           This points to the image file for the the binary code that will be
130           used by the second core.
131 
132 # Workaround for not being able to have commas in macro arguments
133 DT_CHOSEN_Z_CODE_CPU1_PARTITION := zephyr,code-cpu1-partition
134 
135 config SECOND_CORE_BOOT_ADDRESS_MCUX
136         depends on SECOND_CORE_MCUX
137         hex "Address the second core will boot at"
138         default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CODE_CPU1_PARTITION))
139         help
140           This is the address the second core will boot from.
141 
142 endif # SOC_SERIES_LPC55XXX

We need to search further and understand how the Kconfig stanza at line 140 works:

ted@localhost1:~/projects-sandbox/workspace-out-of-tree/zephyr$ grep -nr DT_CHOSEN_Z_CODE_CPU1_PARTITION ./*
./soc/arm/nxp_lpc/lpc55xxx/Kconfig.soc:133:DT_CHOSEN_Z_CODE_CPU1_PARTITION := zephyr,code-cpu1-partition
./soc/arm/nxp_lpc/lpc55xxx/Kconfig.soc:138:	default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CODE_CPU1_PARTITION))
Binary file ./soc/arm/nxp_lpc/lpc55xxx/.Kconfig.soc.swp matches

ted@localhost1:~/projects-sandbox/workspace-out-of-tree/zephyr$ grep -nr zephyr,code-cpu1-partition ./*
./boards/arm/lpcxpresso55s69/lpcxpresso55s69_cpu0.dts:39:		zephyr,code-cpu1-partition = &slot1_partition;
./boards/arm/lpcxpresso55s69/CMakeLists.txt:20:	#offset is taken from zephyr,code-cpu1-partition
./soc/arm/nxp_lpc/lpc55xxx/Kconfig.soc:133:DT_CHOSEN_Z_CODE_CPU1_PARTITION := zephyr,code-cpu1-partition
Binary file ./soc/arm/nxp_lpc/lpc55xxx/.Kconfig.soc.swp matches

ted@localhost1:~/projects-sandbox/workspace-out-of-tree/zephyr$ cd ./boards/arm/lpcxpresso55s69

ted@localhost1:~/projects-sandbox/workspace-out-of-tree/zephyr/boards/arm/lpcxpresso55s69$ ls
board.cmake     Kconfig.defconfig               lpcxpresso55s69_cpu1_defconfig  lpcxpresso55s69_ns_defconfig  pinmux.c
CMakeLists.txt  lpcxpresso55s69_cpu0_defconfig  lpcxpresso55s69_cpu1.dts        lpcxpresso55s69_ns.dts        pre_dt_board.cmake
doc             lpcxpresso55s69_cpu0.dts        lpcxpresso55s69_cpu1.yaml       lpcxpresso55s69_ns.yaml
Kconfig.board   lpcxpresso55s69_cpu0.yaml       lpcxpresso55s69.dtsi            lpcxpresso55s69-pinctrl.dtsi

ted@localhost1:~/projects-sandbox/workspace-out-of-tree/zephyr/boards/arm/lpcxpresso55s69$ grep -nr slot1_partition ./*
./lpcxpresso55s69_cpu0.dts:39:		zephyr,code-cpu1-partition = &slot1_partition;
./lpcxpresso55s69_cpu1.dts:23:		zephyr,code-partition = &slot1_partition;
./lpcxpresso55s69.dtsi:129:		slot1_partition: partition@30000 {
./lpcxpresso55s69_ns.dts:31:		zephyr,code-partition = &slot1_partition;

ted@localhost1:~/projects-sandbox/workspace-out-of-tree/zephyr/boards/arm/lpcxpresso55s69$