diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/Makefile.spl | 43 | ||||
-rwxr-xr-x | scripts/checkpatch.pl | 38 | ||||
-rw-r--r-- | scripts/config_whitelist.txt | 1 |
3 files changed, 61 insertions, 21 deletions
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl index 9f1f7445d71..ea4e045769c 100644 --- a/scripts/Makefile.spl +++ b/scripts/Makefile.spl @@ -31,10 +31,14 @@ endif ifeq ($(CONFIG_TPL_BUILD),y) SPL_BIN := u-boot-tpl +SPL_NAME := tpl else SPL_BIN := u-boot-spl +SPL_NAME := spl endif +export SPL_NAME + ifdef CONFIG_SPL_BUILD SPL_ := SPL_ ifeq ($(CONFIG_TPL_BUILD),y) @@ -116,7 +120,8 @@ endif u-boot-spl-init := $(head-y) u-boot-spl-main := $(libs-y) ifdef CONFIG_$(SPL_TPL_)OF_PLATDATA -u-boot-spl-platdata := $(obj)/dts/dt-platdata.o +u-boot-spl-platdata := $(obj)/dts/dt-plat.o +u-boot-spl-platdata_c := $(patsubst %.o,%.c,$(u-boot-spl-platdata)) endif # Linker Script @@ -298,22 +303,23 @@ $(obj)/$(SPL_BIN)-pad.bin: $(obj)/$(SPL_BIN) @bss_size_str=$(shell $(NM) $< | awk 'BEGIN {size = 0} /__bss_size/ {size = $$1} END {print "ibase=16; " toupper(size)}' | bc); \ dd if=/dev/zero of=$@ bs=1 count=$${bss_size_str} 2>/dev/null; -$(obj)/$(SPL_BIN).dtb: dts/dt-spl.dtb FORCE +$(obj)/$(SPL_BIN).dtb: $(obj)/dts/dt-$(SPL_NAME).dtb FORCE $(call if_changed,copy) pythonpath = PYTHONPATH=scripts/dtc/pylibfdt -quiet_cmd_dtocc = DTOC C $@ -cmd_dtocc = $(pythonpath) $(srctree)/tools/dtoc/dtoc -d $(obj)/$(SPL_BIN).dtb -o $@ platdata +DTOC_ARGS := $(pythonpath) $(srctree)/tools/dtoc/dtoc \ + -d $(obj)/$(SPL_BIN).dtb -quiet_cmd_dtoch = DTOC H $@ -cmd_dtoch = $(pythonpath) $(srctree)/tools/dtoc/dtoc -d $(obj)/$(SPL_BIN).dtb -o $@ struct +quiet_cmd_dtoc = DTOC $@ +cmd_dtoc = $(DTOC_ARGS) -c $(obj)/dts -C include/generated all quiet_cmd_plat = PLAT $@ cmd_plat = $(CC) $(c_flags) -c $< -o $(filter-out $(PHONY),$@) -targets += $(obj)/dts/dt-platdata.o -$(obj)/dts/dt-platdata.o: $(obj)/dts/dt-platdata.c \ +targets += $(u-boot-spl-platdata) + +$(obj)/dts/dt-%.o: $(obj)/dts/dt-%.c \ include/generated/dt-structs-gen.h prepare FORCE $(call if_changed,plat) @@ -321,11 +327,9 @@ PHONY += dts_dir dts_dir: $(shell [ -d $(obj)/dts ] || mkdir -p $(obj)/dts) -include/generated/dt-structs-gen.h: $(obj)/$(SPL_BIN).dtb dts_dir FORCE - $(call if_changed,dtoch) - -$(obj)/dts/dt-platdata.c: $(obj)/$(SPL_BIN).dtb dts_dir FORCE - $(call if_changed,dtocc) +include/generated/dt-structs-gen.h $(u-boot-spl-platdata_c) &: \ + $(obj)/$(SPL_BIN).dtb dts_dir FORCE + $(call if_changed,dtoc) ifdef CONFIG_SAMSUNG ifdef CONFIG_VAR_SIZE_SPL @@ -382,11 +386,11 @@ endif $(obj)/$(SPL_BIN).sfp: $(obj)/$(SPL_BIN).bin FORCE $(call if_changed,mkimage) -quiet_cmd_mksunxiboot = MKSUNXI $@ -cmd_mksunxiboot = $(objtree)/tools/mksunxiboot \ - --default-dt $(CONFIG_DEFAULT_DEVICE_TREE) $< $@ +MKIMAGEFLAGS_sunxi-spl.bin = -T sunxi_egon \ + -n $(CONFIG_DEFAULT_DEVICE_TREE) + $(obj)/sunxi-spl.bin: $(obj)/$(SPL_BIN).bin FORCE - $(call if_changed,mksunxiboot) + $(call if_changed,mkimage) quiet_cmd_sunxi_spl_image_builder = SUNXI_SPL_IMAGE_BUILDER $@ cmd_sunxi_spl_image_builder = $(objtree)/tools/sunxi-spl-image-builder \ @@ -457,9 +461,8 @@ endif PHONY += FORCE FORCE: -PHONY += dtbs -dtbs: - $(Q)$(MAKE) $(build)=dts dtbs +$(obj)/dts/dt-$(SPL_NAME).dtb: dts/dt.dtb + $(Q)$(MAKE) $(build)=$(obj)/dts spl_dtbs # Declare the contents of the .PHONY variable as phony. We keep that # information in a variable so we can use it in if_changed and friends. diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 4ed7e124c9a..01ab570a168 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2320,6 +2320,23 @@ sub get_raw_comment { return $comment; } +# Args: +# line: Patch line to check +# auto: Auto variable name, e.g. "per_child_auto" +# suffix: Suffix to expect on member, e.g. "_priv" +# warning: Warning name, e.g. "PRIV_AUTO" +sub u_boot_struct_name { + my ($line, $auto, $suffix, $warning) = @_; + + # Use _priv as a suffix for the device-private data struct + if ($line =~ /^\+\s*\.${auto}\s*=\s*sizeof\(struct\((\w+)\).*/) { + my $struct_name = $1; + if ($struct_name !~ /^\w+${suffix}/) { + WARN($warning, "struct \'$struct_name\' should have a ${suffix} suffix"); + } + } +} + # Checks specific to U-Boot sub u_boot_line { my ($realfile, $line, $rawline, $herecurr) = @_; @@ -2371,6 +2388,27 @@ sub u_boot_line { ERROR("CONFIG_IS_ENABLED_CONFIG", "CONFIG_IS_ENABLED() takes values without the CONFIG_ prefix\n" . $herecurr); } + + # Use _priv as a suffix for the device-private data struct + if ($line =~ /^\+\s*\.priv_auto\s*=\s*sizeof\(struct\((\w+)\).*/) { + my $struct_name = $1; + if ($struct_name !~ /^\w+_priv/) { + WARN("PRIV_AUTO", "struct \'$struct_name\' should have a _priv suffix"); + } + } + + # Check struct names for the 'auto' members of struct driver + u_boot_struct_name($line, "priv_auto", "_priv", "PRIV_AUTO"); + u_boot_struct_name($line, "plat_auto", "_plat", "PLAT_AUTO"); + u_boot_struct_name($line, "per_child_auto", "_priv", "CHILD_PRIV_AUTO"); + u_boot_struct_name($line, "per_child_plat_auto", "_plat", + "CHILD_PLAT_AUTO"); + + # Now the ones for struct uclass, skipping those in common with above + u_boot_struct_name($line, "per_device_auto", "_priv", + "DEVICE_PRIV_AUTO"); + u_boot_struct_name($line, "per_device_plat_auto", "_plat", + "DEVICE_PLAT_AUTO"); } sub process { diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt index 55acc38d067..e2cf2054510 100644 --- a/scripts/config_whitelist.txt +++ b/scripts/config_whitelist.txt @@ -3506,7 +3506,6 @@ CONFIG_SYS_POST_WATCHDOG CONFIG_SYS_POST_WORD_ADDR CONFIG_SYS_PPC_DDR_WIMGE CONFIG_SYS_PQSPAR -CONFIG_SYS_PROMPT_HUSH_PS2 CONFIG_SYS_PSDPAR CONFIG_SYS_PSSR_VAL CONFIG_SYS_PTCPAR |