[U-Boot-Users] include/autoconf.mk issue

Wolfgang Denk wd at denx.de
Thu Mar 20 00:29:23 CET 2008


Dear Grant,

in http://news.gmane.org/gmane.comp.boot-loaders.u-boot
Jean-Christophe asked to get rid of the "#ifdef CONFIG_POST" parts in
the post code by using the "COBJS-$(CONFIG_POST) += " approach in the
Makefile. We tried, and it didn't work.

The reason is that the Makefile assumes that  the  CONFIG_*  variable
settings  in  include/autoconf.mk  have  a  value  of  "y", so we can
collect objects to build in the "COBJS-y" make variable.

However, this is not always true. Here is what we see for example on
the "lwmon5" board:

-> grep -v =y include/autoconf.mk
CONFIG_SYS_CLK_FREQ=33300000
CONFIG_POST_WATCHDOG="{ "Watchdog timer test", "watchdog", "This test checks the watchdog timer.", POST_RAM | POST_POWERON | POST_SLOWTEST | POST_MANUAL | POST_REBOOT, &lwmon5_watchdog_post_test, NULL, NULL, CFG_POST_WATCHDOG }"
CONFIG_BOOTDELAY=5
CONFIG_ALT_LB_ADDR="(CFG_OCM_BASE)"
CONFIG_BOOTCOMMAND="run flash_self"
CONFIG_POST_KEY_MAGIC="3C+3E"
CONFIG_PHY_RESET_DELAY=300
CONFIG_POST_BSPEC1="{ "dsPIC init test", "dspic_init", "This test returns result of dsPIC READY test run earlier.", POST_RAM | POST_ALWAYS, &dspic_init_post_test, NULL, NULL, CFG_POST_BSPEC1 }"
CONFIG_POST_BSPEC2="{ "dsPIC test", "dspic", "This test gets result of dsPIC POST and dsPIC version.", POST_RAM | POST_ALWAYS, &dspic_post_test, NULL, NULL, CFG_POST_BSPEC2 }"
CONFIG_POST_BSPEC3="{ "FPGA test", "fpga", "This test checks FPGA registers and memory.", POST_RAM | POST_ALWAYS, &fpga_post_test, NULL, NULL, CFG_POST_BSPEC3 }"
CONFIG_POST_BSPEC4="{ "GDC test", "gdc", "This test checks GDC registers and memory.", POST_RAM | POST_ALWAYS, &gdc_post_test, NULL, NULL, CFG_POST_BSPEC4 }"
CONFIG_POST_BSPEC5="{ "SYSMON1 test", "sysmon1", "This test checks GPIO_62_EPX pin indicating power failure.", POST_RAM | POST_MANUAL | POST_NORMAL | POST_SLOWTEST, &sysmon1_post_test, NULL, NULL, CFG_POST_BSPEC5 }"
CONFIG_PHY_ADDR=3
CONFIG_BAUDRATE=115200
CONFIG_ALT_LH_ADDR="(CFG_PERIPHERAL_BASE + GPT0_COMP1)"
CONFIG_POST="(CFG_POST_CACHE | CFG_POST_CPU | CFG_POST_ECC_ON | CFG_POST_ETHER | CFG_POST_FPU | CFG_POST_I2C | CFG_POST_MEMORY | CFG_POST_RTC | CFG_POST_SPR | CFG_POST_UART | CFG_POST_SYSMON | CFG_POST_WATCHDOG | CFG_POST_DSP | CFG_POST_BSPEC1 | CFG_POST_BSPEC2 | CFG_POST_BSPEC3 | CFG_POST_BSPEC4 | CFG_POST_BSPEC5)"
CONFIG_PREBOOT="setenv bootdelay 15"
CONFIG_WD_PERIOD=40000


In this case, only CONFIG_POST is critical, but  some  of  the  other
settings might show similar problems, and this is just an examplefrom
a  single  board  -  there  may be other, similar issues lurking with
other boards.


What is the suggested way to fix this? It's clear  that  the  current
string value

	CONFIG_POST="(CFG_POST_CACHE | ... )"

is of no use for the decistion which files need to  be  compiled.  My
initial idea was to say that all non-empty strings should be replaced
by  "y",  but  I'm not sure about side effects; also, what to do with
numeric values? Convert only non-zero values  to  "y"?  But  then,  a
"#define FOO 0" still means that "FOO" is defined...

What do you (and others!) think?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Superior ability breeds superior ambition.
	-- Spock, "Space Seed", stardate 3141.9




More information about the U-Boot mailing list