Re: [U-Boot] [PATCH 1/2] kbuild: Fix a false error of generic board support
Hi Tom and Masahiro, Neither my collegue nor I could reproduce the problem you encountered with our patch and the build line, LANG=C make -j8 CROSS_COMPILE=arm-linux-gnueabi- ph1_ld4_defconfig all. Any suggestions on other ways to fix the false error and not break paralell builds would be extremely appreciated. Thanks, Matthew Gerlach On Thu, 18 Dec 2014, Masahiro Yamada wrote: Hi Matthew, Tom, On Tue, 16 Dec 2014 18:56:46 -0500 Tom Rini tr...@ti.com wrote: On Tue, Dec 16, 2014 at 02:56:44PM -0600, mgerlach wrote: Hello Masahiro Yamada, Even the with this patch, we encountered a false error of generic board support. The problem was very interrmittent for us, but we were able to debug the problem to performing builds on EXT3 file systems which have a time stamp resolution of one second. To reproduce the problem, touch ./include/config/auto.conf and .config on a configured uboot tree on an EXT3 file system. The patch below fixes the problem for us. This makes an odd race condition problem I run into when doing massively paralell builds worse :( With MAKEALL no ARM boards build (ARCH wasn't set in time so it tried arch//Makefile for something) and buildman was also broken in a bunch of places. Me too. Although I do not know why, Methew's patch makes it worse. Without MAKEALL or buildman, I hit the same error every time. $ LANG=C make -j8 CROSS_COMPILE=arm-linux-gnueabi- ph1_ld4_defconfig all HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o SHIPPED scripts/kconfig/zconf.tab.c SHIPPED scripts/kconfig/zconf.lex.c SHIPPED scripts/kconfig/zconf.hash.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config # # # configuration written to spl/.config # ./Makefile:511: arch//Makefile: No such file or directory make[1]: *** No rule to make target `arch//Makefile'. Stop. make: *** [__build_one_by_one] Error 2 Best Regards Masahiro Yamada ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 1/2] kbuild: Fix a false error of generic board support
Hello Masahiro Yamada, Even the with this patch, we encountered a false error of generic board support. The problem was very interrmittent for us, but we were able to debug the problem to performing builds on EXT3 file systems which have a time stamp resolution of one second. To reproduce the problem, touch ./include/config/auto.conf and .config on a configured uboot tree on an EXT3 file system. The patch below fixes the problem for us. Thanks, Matthew Gerlach --- Makefile | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 99097e1..84de2f9 100644 --- a/Makefile +++ b/Makefile @@ -493,8 +493,12 @@ include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd # is up-to-date. When we switch to a different board configuration, old CONFIG # macros are still remaining in include/config/auto.conf. Without the following # gimmick, wrong config.mk would be included leading nasty warnings/errors. -autoconf_is_current := $(if $(wildcard $(KCONFIG_CONFIG)),$(shell find . \ - -path ./include/config/auto.conf -newer $(KCONFIG_CONFIG))) +# We use if not (not -newer) so that we include config.mk in the event that the +# file timestamps are exacty equal which can happen on EXT3 filesystems. +autoconf_is_current := $(if $(wildcard $(KCONFIG_CONFIG)),\ + $(if $(shell find . -path ./include/config/auto.conf \ + \! -newer $(KCONFIG_CONFIG)),,./include/config/auto.conf)) + ifneq ($(autoconf_is_current),) include $(srctree)/config.mk endif -- 1.8.2. Before this commit, make terminated with an error where it shouldn't under some condition. This bug happened when we built a board unsupporting generic board right after building with generic board. For example, the following sequence failed. (harmony uses generic board but microblaze-generic does not support it) $ make harmony_config Configuring for harmony board... $ make CROSS_COMPILE=arm-linux-gnueabi- [ Build succeed ] $ make microblaze-generic_config Configuring for microblaze-generic board... $ make CROSS_COMPILE=microblaze-linux- Makefile:488: *** Your architecture does not support generic board. Please undefined CONFIG_SYS_GENERIC_BOARD in your board config file. Stop. We had to do make mrproper before building the microblaze board. This commit fixes this unconvenience. Move generic board sanity check to prepare1 target, which is run after generation of include/autoconf.mk. Signed-off-by: Masahiro Yamada yamada.m at jp.panasonic.com --- ~ ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH v1 1/1] Fix autoconf_is_current make function
Hi Everyone, The patch below fixes the autoconf_is_current function in the u-boot build system in the event that the file timestamps are identical. This situation tends to occur when building u-boot on an EXT3 filesystem which has 1 second resolution for timestamps. In our case, the failure resulted in the following message from the build system: Your architecture does not support generic board. Please undefine CONFIG_SYS_GENERIC_BOARD in your board config file. Thanks, Matthew Gerlach --- Makefile | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 99097e1..84de2f9 100644 --- a/Makefile +++ b/Makefile @@ -493,8 +493,12 @@ include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd # is up-to-date. When we switch to a different board configuration, old CONFIG # macros are still remaining in include/config/auto.conf. Without the following # gimmick, wrong config.mk would be included leading nasty warnings/errors. -autoconf_is_current := $(if $(wildcard $(KCONFIG_CONFIG)),$(shell find . \ - -path ./include/config/auto.conf -newer $(KCONFIG_CONFIG))) +# We use if not (not -newer) so that we include config.mk in the event that the +# file timestamps are exacty equal which can happen on EXT3 filesystems. +autoconf_is_current := $(if $(wildcard $(KCONFIG_CONFIG)),\ + $(if $(shell find . -path ./include/config/auto.conf \ + \! -newer $(KCONFIG_CONFIG)),,./include/config/auto.conf)) + ifneq ($(autoconf_is_current),) include $(srctree)/config.mk endif -- 1.8.2.1 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] RFC Pin Configuration Device Tree Bindings for Altera Arria10 SOCFPGA
On Wed, 3 Dec 2014, Pavel Machek wrote: Hi! altr,pinmux-regs = 0xF 0xF 0xF 0xF 0xF 0xF 0xF 0xF 0xF 0xF reg = 0xffd07300 0x0048; altr,pinmux-regs = 0x0 0x51010 0x51010 0x51010 0x40605 0x40605 0x00605 0x40605 0x40605 0x40605 0x10605 0x51010 0x51010 0x51010 0x51010 0x51010 0x03030 0x23030; }; fpga { reg = 0xffd07400 0x0044; altr,pinmux-regs = 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0; }; }; Does this match the kernel? Or does the kernel have no such binding yet? There are no such bindings in the kernel yet. Dynamic pinmuxing is not supported by the Arria 10; so we don't anticipate the kernel needing pinmux information. OK. Currently device tree files are stored in the kernel, so it might be worth submitting it there one day regardless. Actually, I believe you should use standard pinmux format. Just because dynamic pinmuxing is not supported now does not mean it will not be supported in Arria 11... And it was already supported in older chipsets (right?). Pavel Hi Pavel, Thanks for the suggestion. I had another look at the pinctlr bindings in the kernel. I think we should be using standard bindings defined in Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt for the Arria 10 SOCFPGA. Matthew Gerlach -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot