Skip to content

Commit 458cf87

Browse files
committed
coreboot/linux modules: add/remove make statement helpers
both linux/coreboot: - save_in_defconfig_format_in_place : takes whatever coreboot config file for a make BOARD=xyz statement and saves it in defconfig - save_in_oldefconfig_format_in_place : takes whatever coreboot config file for a make BOARD=xyz statement and saves it in oldefconfig linux: - linux.prompt_for_new_config_options_for_kernel_version_bump: - The most useful helper as of now when doing kernel version bump. - Requires to save current kernel config in oldconfig (make BOARD=xyz linux.save_in_oldefconfig_format_in_place) first, then bump kernel version in board config and then use that helper to review new options and save in tree.
1 parent 6620f92 commit 458cf87

2 files changed

Lines changed: 55 additions & 79 deletions

File tree

modules/coreboot

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -132,42 +132,43 @@ endif
132132
#
133133
# Helpful target for reconfiguring the coreboot target
134134
#
135-
coreboot.menuconfig:
135+
coreboot.save_in_defconfig_format_in_place:
136+
mkdir -p "$(build)/$(coreboot_dir)" && \
137+
cp "$(pwd)/$(CONFIG_COREBOOT_CONFIG)" "$(build)/$(coreboot_dir)/.config" && \
136138
$(MAKE) \
137139
-C "$(build)/$(coreboot_base_dir)" \
138140
DOTCONFIG="$(build)/$(coreboot_dir)/.config" \
139-
menuconfig
140-
141-
# The config file in the repo is stored as a "defconfig" format
142-
# which only includes the options that have changed from the defaults.
143-
coreboot.saveconfig:
144-
$(MAKE) \
145-
-C "$(build)/$(coreboot_base_dir)" \
146-
DOTCONFIG="$(build)/$(coreboot_dir)/.config" \
147-
DEFCONFIG="$(pwd)/$(CONFIG_COREBOOT_CONFIG)" \
148-
savedefconfig
149-
150-
coreboot.save_defconfig_in_place:
141+
olddefconfig && \
151142
$(MAKE) \
152143
-C "$(build)/$(coreboot_base_dir)" \
153-
DOTCONFIG="$(pwd)/$(CONFIG_COREBOOT_CONFIG)" \
154-
DEFCONFIG="$(build)/$(coreboot_dir)/defconfig" \
155-
savedefconfig \
156-
&& mv "$(build)/$(coreboot_dir)/defconfig" "$(pwd)/$(CONFIG_COREBOOT_CONFIG)"
144+
DOTCONFIG="$(build)/$(coreboot_dir)/.config" \
145+
savedefconfig && \
146+
mv "$(build)/$(coreboot_base_dir)/defconfig" "$(pwd)/$(CONFIG_COREBOOT_CONFIG)"
157147

148+
coreboot.save_in_oldconfig_format_in_place:
149+
mkdir -p "$(build)/$(coreboot_dir)" && \
150+
cp "$(pwd)/$(CONFIG_COREBOOT_CONFIG)" "$(build)/$(coreboot_dir)/.config" && \
151+
$(MAKE) \
152+
-C "$(build)/$(coreboot_base_dir)" \
153+
DOTCONFIG="$(build)/$(coreboot_dir)/.config" \
154+
olddefconfig \
155+
&& mv "$(build)/$(coreboot_dir)/.config" "$(pwd)/$(CONFIG_COREBOOT_CONFIG)"
158156

159157
coreboot.modify_defconfig_in_place:
158+
mkdir -p "$(build)/$(coreboot_dir)" && \
159+
cp "$(pwd)/$(CONFIG_COREBOOT_CONFIG)" "$(build)/$(coreboot_dir)/.config" && \
160160
$(MAKE) \
161161
-C "$(build)/$(coreboot_base_dir)" \
162-
DOTCONFIG="$(pwd)/$(CONFIG_COREBOOT_CONFIG)" \
162+
DOTCONFIG="$(build)/$(coreboot_dir)/.config" \
163163
menuconfig \
164164
&& $(MAKE) \
165165
-C "$(build)/$(coreboot_base_dir)" \
166-
DOTCONFIG="$(pwd)/$(CONFIG_COREBOOT_CONFIG)" \
166+
DOTCONFIG="$(build)/$(coreboot_dir)/.config" \
167167
DEFCONFIG="$(pwd)/$(CONFIG_COREBOOT_CONFIG)" \
168-
savedefconfig \
168+
savedefconfig
169169

170170
coreboot.modify_and_save_oldconfig_in_place:
171+
mkdir -p "$(build)/$(coreboot_dir)" && \
171172
$(MAKE) menuconfig \
172173
-C "$(build)/$(coreboot_base_dir)" \
173174
obj="$(build)/$(coreboot_dir)" \

modules/linux

Lines changed: 34 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -206,11 +206,10 @@ $(build)/$(BOARD)/$(LINUX_IMAGE_FILE).bundled: \
206206
@touch $@ # force a timestamp update
207207
@sha256sum "$@" | tee -a "$(HASHES)"
208208

209-
# modify_defconfig_menuconfig target allows us edit current in tree defconfig config
209+
# modify_and_save_defconfig_in_place target allows us edit current in tree config
210210
# under linux decompressed+patched directory through menuconfig
211211
# and put it back in git tree to check changes with git difftool iteratively
212-
# Useful for development cycle of linux kernel version bumps in defconfig stored format.
213-
linux.modify_defconfig_in_place:
212+
linux.modify_and_save_defconfig_in_place:
214213
cp "$(pwd)/$(linux_kconfig)" "$(build)/$(linux_dir)/.config" && \
215214
$(MAKE) \
216215
-C "$(build)/$(linux_base_dir)" \
@@ -226,6 +225,9 @@ linux.modify_defconfig_in_place:
226225
savedefconfig \
227226
&& mv "$(build)/$(linux_dir)/defconfig" "$(pwd)/$(linux_kconfig)"
228227

228+
# modify_and_save_oldconfig_in_place target allows us edit current in tree config
229+
# under linux decompressed+patched directory through menuconfig
230+
# and put it back in git tree to check changes with git difftool iteratively
229231
linux.modify_and_save_oldconfig_in_place:
230232
mkdir -p "$(build)/$(linux_dir)" \
231233
&& cp "$(pwd)/$(linux_kconfig)" "$(build)/$(linux_dir)/.config" \
@@ -241,86 +243,59 @@ linux.modify_and_save_oldconfig_in_place:
241243
olddefconfig \
242244
&& mv "$(build)/$(linux_dir)/.config" "$(pwd)/$(linux_kconfig)"
243245

244-
# generate_old_config target allows us to copy current in git tree defconfig
245-
# into decompressed linux directory's .config file. This permits
246-
# us to edit that .config file and remove unneeded stuff prior
247-
# of calling save_defconfig target from heads main directory (cd -)
248-
# to store it where the board expects it stored and used from.
249-
linux.generate_old_config:
246+
#Add some tooling to permit us to keep track of what we currently use.
247+
# save_in_defconfig_format_in_place: regenerate a defconfig from current board linux config and overwrites it
248+
# save_in_versioned_defconfig_format: same as avove but doesn't overwrite: writes it in seperate versioned file
249+
# same for oldconfig
250+
linux.save_in_defconfig_format_in_place:
250251
mkdir -p "$(build)/$(linux_dir)" \
251252
&& cp "$(pwd)/$(linux_kconfig)" "$(build)/$(linux_dir)/.config" \
252253
&& $(MAKE) -C "$(build)/$(linux_base_dir)" \
253254
O="$(build)/$(linux_dir)" \
254255
ARCH="$(LINUX_ARCH)" \
255256
CROSS_COMPILE="$(CROSS)" \
256-
olddefconfig \
257-
&& echo "" \
258-
&& echo "You can now edit $(build)/$(linux_dir)/.config" \
259-
&& echo "Either:" \
260-
&& echo " Manually through text editor" \
261-
&& echo " Through make BOARD=XYZ linux.menuconfig" \
262-
&& echo "" \
263-
&& echo "To save chances in git tree for review, type:" \
264-
&& echo "make BOARD=XYZ linux.saveconfig"
265-
linux.generate_and_save-versioned-oldconfig:
257+
savedefconfig \
258+
&& mv "$(build)/$(linux_dir)/defconfig" "$(pwd)/$(linux_kconfig)"
259+
260+
linux.save_in_versioned_defconfig_format:
266261
mkdir -p "$(build)/$(linux_dir)" \
267262
&& cp "$(pwd)/$(linux_kconfig)" "$(build)/$(linux_dir)/.config" \
268263
&& $(MAKE) -C "$(build)/$(linux_base_dir)" \
269264
O="$(build)/$(linux_dir)" \
270265
ARCH="$(LINUX_ARCH)" \
271-
CROSS_COMPILE="$(CROSS)" \
272-
olddefconfig \
273-
&& mv "$(build)/$(linux_dir)/.config" "$(pwd)/$(linux_kconfig)_oldconfig_$(CONFIG_LINUX_VERSION)"
266+
savedefconfig \
267+
&& mv "$(build)/$(linux_dir)/defconfig" "$(pwd)/$(linux_kconfig)_defconfig_$(CONFIG_LINUX_VERSION)"
274268

275-
# menuconfig target allows us to easily reconfigure this Linux kernel
276-
# Afterwards make linux.saveconfig to generate a minimal config from it
277-
linux.menuconfig:
278-
$(MAKE) \
279-
-C "$(build)/$(linux_base_dir)" \
269+
linux.save_in_oldconfig_format_in_place:
270+
mkdir -p "$(build)/$(linux_dir)" \
271+
&& cp "$(pwd)/$(linux_kconfig)" "$(build)/$(linux_dir)/.config" \
272+
&& $(MAKE) -C "$(build)/$(linux_base_dir)" \
280273
O="$(build)/$(linux_dir)" \
281274
ARCH="$(LINUX_ARCH)" \
282275
CROSS_COMPILE="$(CROSS)" \
283-
menuconfig \
276+
oldefconfig \
277+
&& mv "$(build)/$(linux_dir)/.config" "$(pwd)/$(linux_kconfig)"
284278

285-
#Add some tooling to permit us to keep track of what we currently use.
286-
# regenerate_and_save_defconfig: regenerate a defconfig from current board linux config and overwrites it
287-
# regenerate_and_save_versioned_defconfig : same as avove but doesn't overwrite: writes it in seperate versioned file
288-
linux.regenerate_and_save_defconfig:
279+
linux.save_in_versioned_oldconfig:
289280
mkdir -p "$(build)/$(linux_dir)" \
290281
&& cp "$(pwd)/$(linux_kconfig)" "$(build)/$(linux_dir)/.config" \
291282
&& $(MAKE) -C "$(build)/$(linux_base_dir)" \
292283
O="$(build)/$(linux_dir)" \
293284
ARCH="$(LINUX_ARCH)" \
294285
CROSS_COMPILE="$(CROSS)" \
295-
savedefconfig \
296-
&& mv "$(build)/$(linux_dir)/defconfig" "$(pwd)/$(linux_kconfig)"
297-
linux.regenerate_and_save_versioned_defconfig:
286+
oldefconfig \
287+
&& mv "$(build)/$(linux_dir)/.config" "$(pwd)/$(linux_kconfig)_oldconfig_$(CONFIG_LINUX_VERSION)"
288+
289+
# Prior of attempting to bump kernel version, call make BOARD=xyz linux.save_in_oldconfig_format_in_place
290+
# Then bump board config's CONFIG_LINUX_VERSION. build as usual to extract new linux tarball.
291+
# Then call make BOARD=xyz linux.prompt_for_new_config_options_for_kernel_version_bump
292+
#The following ask new config choice for all new symbols that should be evaluated prior of creating PR
293+
# Tip: Open a browser at https://www.kernelconfig.io/index.html
294+
linux.prompt_for_new_config_options_for_kernel_version_bump:
298295
mkdir -p "$(build)/$(linux_dir)" \
299296
&& cp "$(pwd)/$(linux_kconfig)" "$(build)/$(linux_dir)/.config" \
300297
&& $(MAKE) -C "$(build)/$(linux_base_dir)" \
301298
O="$(build)/$(linux_dir)" \
302299
ARCH="$(LINUX_ARCH)" \
303-
savedefconfig \
304-
&& mv "$(build)/$(linux_dir)/defconfig" "$(pwd)/$(linux_kconfig)_defconfig_$(CONFIG_LINUX_VERSION)"
305-
306-
# The config file in the repo is stored as a "defconfig" format
307-
# which only includes the options that have changed from the defaults.
308-
# Here dave_defconfig takes .config under extracted linux dir and save it back to where board expects it
309-
linux.save_defconfig:
310-
$(MAKE) \
311-
-C "$(build)/$(linux_base_dir)" \
312-
O="$(build)/$(linux_dir)" \
313-
ARCH="$(LINUX_ARCH)" \
314-
CROSS_COMPILE="$(CROSS)" \
315-
savedefconfig \
316-
&& mv "$(build)/$(linux_dir)/defconfig" "$(pwd)/$(linux_kconfig)"
317-
#Same as above, but instead of overwriting the board's expected file, we store it in a file versioned by kernel version
318-
linux.save_versioned_defconfig:
319-
$(MAKE) \
320-
-C "$(build)/$(linux_base_dir)" \
321-
O="$(build)/$(linux_dir)" \
322-
ARCH="$(LINUX_ARCH)" \
323-
CROSS_COMPILE="$(CROSS)" \
324-
savedefconfig \
325-
&& mv "$(build)/$(linux_dir)/defconfig" "$(pwd)/$(linux_kconfig)_defconfig_$(CONFIG_LINUX_VERSION)"
326-
300+
oldconfig \
301+
&& mv "$(build)/$(linux_dir)/.config" "$(pwd)/$(linux_kconfig)"

0 commit comments

Comments
 (0)