common: Discard the __u_boot_cmd sectionThe command declaration now uses the new LG-array method to generatelist of commands. Thus the __u_boot_cmd section is now superseded andredundant and ther
common: Discard the __u_boot_cmd sectionThe command declaration now uses the new LG-array method to generatelist of commands. Thus the __u_boot_cmd section is now superseded andredundant and therefore can be removed. Also, remove externed symbolsassociated with this section from include/command.h .Signed-off-by: Marek Vasut <marex@denx.de>Cc: Joe Hershberger <joe.hershberger@gmail.com>Cc: Mike Frysinger <vapier@gentoo.org>
show more ...
common: Add .u_boot_list into all linker filesAdd section for the linker-generated lists into all possible linkerfiles, so that everyone can easily use these lists. This is mostlya mechanical adj
common: Add .u_boot_list into all linker filesAdd section for the linker-generated lists into all possible linkerfiles, so that everyone can easily use these lists. This is mostlya mechanical adjustment.Signed-off-by: Marek Vasut <marex@denx.de>Cc: Joe Hershberger <joe.hershberger@gmail.com>Cc: Mike Frysinger <vapier@gentoo.org>
punt unused clean/distclean targetsThe top level Makefile does not do any recursion into subdirs whencleaning, so these clean/distclean targets in random arch/board dirsnever get used. Punt them
punt unused clean/distclean targetsThe top level Makefile does not do any recursion into subdirs whencleaning, so these clean/distclean targets in random arch/board dirsnever get used. Punt them all.MAKEALL didn't report any errors related to this that I could see.Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Fix incorrect use of getenv() before relocationA large number of boards incorrectly used getenv() in their board initcode running before relocation. In some cases this caused U-Boot tohang when
Fix incorrect use of getenv() before relocationA large number of boards incorrectly used getenv() in their board initcode running before relocation. In some cases this caused U-Boot tohang when certain environment variables grew too long.Fix the code to use getenv_r().Signed-off-by: Wolfgang Denk <wd@denx.de>Cc: Stefan Roese <sr@denx.de>Cc: The LEOX team <team@leox.org>Cc: Michael Schwingen <michael@schwingen.org>Cc: Georg Schardt <schardt@team-ctech.de>Cc: Werner Pfister <Pfister_Werner@intercontrol.de>Cc: Dirk Eibach <eibach@gdsys.de>Cc: Peter De Schrijver <p2@mind.be>Cc: John Zhan <zhanz@sinovee.com>Cc: Rishi Bhattacharya <rishi@ti.com>Cc: Peter Tyser <ptyser@xes-inc.com>
MIPS: Introduce --gc-sections for MIPSAll architectures but MIPS are using --gc-sections on final linking.This patch introduces that feature for MIPS to reduce the memory andflash footprint.Sig
MIPS: Introduce --gc-sections for MIPSAll architectures but MIPS are using --gc-sections on final linking.This patch introduces that feature for MIPS to reduce the memory andflash footprint.Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>Cc: Wolfgang Denk <wd@denx.de>Cc: Stefan Roese <sr@denx.de>Cc: Thomas Lange <thomas@corelatus.se>Cc: Vlad Lungu <vlad.lungu@windriver.com>Signed-off-by: Shinya Kuribayashi <skuribay@pobox.com>
Switch from archive libraries to partial linkingBefore this commit, weak symbols were not overridden by non-weak symbolsfound in archive libraries when linking with recent versions ofbinutils. A
Switch from archive libraries to partial linkingBefore this commit, weak symbols were not overridden by non-weak symbolsfound in archive libraries when linking with recent versions ofbinutils. As stated in the System V ABI, "the link editor does notextract archive members to resolve undefined weak symbols".This commit changes all Makefiles to use partial linking (ld -r) insteadof creating library archives, which forces all symbols to participate inlinking, allowing non-weak symbols to override weak symbols as intended.This approach is also used by Linux, from which the gmake functioncmd_link_o_target (defined in config.mk and used in all Makefiles) isinspired.The name of each former library archive is preserved except forextensions which change from ".a" to ".o". This commit updatesreferences accordingly where needed, in particular in some linkerscripts.This commit reveals board configurations that exclude some features butinclude source files that depend these disabled features in the build,resulting in undefined symbols. Known such cases include:- disabling CMD_NET but not CMD_NFS;- enabling CONFIG_OF_LIBFDT but not CONFIG_QE.Signed-off-by: Sebastien Carlier <sebastien.carlier@gmail.com>
Rename TEXT_BASE into CONFIG_SYS_TEXT_BASEThe change is currently needed to be able to remove the boardconfiguration scripting from the top level Makefile and replace it bya simple, table driven
Rename TEXT_BASE into CONFIG_SYS_TEXT_BASEThe change is currently needed to be able to remove the boardconfiguration scripting from the top level Makefile and replace it bya simple, table driven script.Moving this configuration setting into the "CONFIG_*" name space isalso desirable because it is needed if we ever should move forward toa Kconfig driven configuration system.Signed-off-by: Wolfgang Denk <wd@denx.de>
Make sure that argv[] argument pointers are not modified.The hush shell dynamically allocates (and re-allocates) memory for theargument strings in the "char *argv[]" argument vector passed tocomm
Make sure that argv[] argument pointers are not modified.The hush shell dynamically allocates (and re-allocates) memory for theargument strings in the "char *argv[]" argument vector passed tocommands. Any code that modifies these pointers will cause seriouscorruption of the malloc data structures and crash U-Boot, so makesure the compiler can check that no such modifications are being doneby changing the code into "char * const argv[]".This modification is the result of debugging a strange crash causedafter adding a new command, which used the following argumentprocessing code which has been working perfectly fine in all Unixsystems since version 6 - but not so in U-Boot:int main (int argc, char **argv){ while (--argc > 0 && **++argv == '-') {/* ====> */ while (*++*argv) { switch (**argv) { case 'd': debug++; break; ... default: usage (); } } } ...}The line marked "====>" will corrupt the malloc data structures andusually cause U-Boot to crash when the next command gets executed bythe shell. With the modification, the compiler will prevent this withan error: increment of read-only location '*argv'N.B.: The code above can be trivially rewritten like this: while (--argc > 0 && **++argv == '-') { char *arg = *argv; while (*++arg) { switch (*arg) { ...Signed-off-by: Wolfgang Denk <wd@denx.de>Acked-by: Mike Frysinger <vapier@gentoo.org>
MIPS: VCT: Remove read_spareram referenceThe commit ecad289fc6bd9d89ef4d5093cc7b6fd712fd0d29 (OneNAND: Removeunused read_spareram and add unlock_all as kernel does) forgot to removea local refere
MIPS: VCT: Remove read_spareram referenceThe commit ecad289fc6bd9d89ef4d5093cc7b6fd712fd0d29 (OneNAND: Removeunused read_spareram and add unlock_all as kernel does) forgot to removea local reference to read_spareram in board/micronas/vct/ebi_onenand.c,which causes the following build failure when configured with OneNAND:ebi_onenand.c: In function 'onenand_board_init':ebi_onenand.c:196: error: 'struct onenand_chip' has no member named 'read_spareram'make[1]: *** [ebi_onenand.o] Error 1make[1]: *** Waiting for unfinished jobs....make: *** [board/micronas/vct/libvct.a] Error 2Signed-off-by: Shinya Kuribayashi <skuribay@pobox.com>Acked-by: Stefan Roese <sr@denx.de>Cc: Kyungmin Park <kyungmin.park@samsung.com>Signed-off-by: Scott Wood <scottwood@freescale.com>
Convert SMC911X Ethernet driver to CONFIG_NET_MULTI APIAll in-tree boards that use this controller have CONFIG_NET_MULTI addedAlso: - changed CONFIG_DRIVER_SMC911X* to CONFIG_SMC911X* - cleaned
Convert SMC911X Ethernet driver to CONFIG_NET_MULTI APIAll in-tree boards that use this controller have CONFIG_NET_MULTI addedAlso: - changed CONFIG_DRIVER_SMC911X* to CONFIG_SMC911X* - cleaned up line lengths - modified all boards that override weak function in this driver - addedSigned-off-by: Ben Warren <biggerbadderben@gmail.com>Tested-by: Mike Frysinger <vapier@gentoo.org>
General help message cleanupMany of the help messages were not really helpful; for example, manycommands that take no arguments would not print a correct synopsisline, but "No additional help ava
General help message cleanupMany of the help messages were not really helpful; for example, manycommands that take no arguments would not print a correct synopsisline, but "No additional help available." which is not exactly wrong,but not helpful either.Commit ``Make "usage" messages more helpful.'' changed thispartially. But it also became clear that lots of "Usage" and "Help"messages (fields "usage" and "help" in struct cmd_tbl_s respective)were actually redundant.This patch cleans this up - for example:Before: => help dtt dtt - Digital Thermometer and Thermostat Usage: dtt - Read temperature from digital thermometer and thermostat.After: => help dtt dtt - Read temperature from Digital Thermometer and Thermostat Usage: dttSigned-off-by: Wolfgang Denk <wd@denx.de>
Fix all linker script to handle all rodata sectionsA recent gcc added a new unaligned rodata section called '.rodata.str1.1',which needs to be added the the linker script. Instead of just adding
Fix all linker script to handle all rodata sectionsA recent gcc added a new unaligned rodata section called '.rodata.str1.1',which needs to be added the the linker script. Instead of just adding thisone section, we use a wildcard ".rodata*" to get all rodata linker sectiongcc has now and might add in the future.However, '*(.rodata*)' by itself will result in sub-optimal sectionordering. The sections will be sorted by object file, which causes extrapadding between the unaligned rodata.str.1.1 of one object file and thealigned rodata of the next object file. This is easy to fix by using theSORT_BY_ALIGNMENT command.This patch has not be tested one most of the boards modified. Some boardshave a linker script that looks something like this:*(.text). = ALIGN(16);*(.rodata)*(.rodata.str1.4)*(.eh_frame)I change this to:*(.text). = ALIGN(16);*(.eh_frame)*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))This means the start of rodata will no longer be 16 bytes aligned.However, the boundary between text and rodata/eh_frame is still aligned to16 bytes, which is what I think the real purpose of the ALIGN call is.Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
MIPS: Add VCT board series support (Part 3/3)Signed-off-by: Stefan Roese <sr@denx.de>
MIPS: Add VCT board series support (Part 2/3)Signed-off-by: Stefan Roese <sr@denx.de>
MIPS: Add VCT board series support (Part 1/3)Signed-off-by: Stefan Roese <sr@denx.de>
12