summaryrefslogtreecommitdiff
path: root/examples
Commit message (Collapse)AuthorAgeLines
* Make sure that argv[] argument pointers are not modified.Wolfgang Denk2010-07-04-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hush shell dynamically allocates (and re-allocates) memory for the argument strings in the "char *argv[]" argument vector passed to commands. Any code that modifies these pointers will cause serious corruption of the malloc data structures and crash U-Boot, so make sure the compiler can check that no such modifications are being done by changing the code into "char * const argv[]". This modification is the result of debugging a strange crash caused after adding a new command, which used the following argument processing code which has been working perfectly fine in all Unix systems 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 and usually cause U-Boot to crash when the next command gets executed by the shell. With the modification, the compiler will prevent this with an 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>
* Make *printf() return "int" instead of "void"Wolfgang Denk2010-07-04-2/+4
| | | | | | | | | | Change the return type of the *printf() functions to the standard "int"; no changes are needed but returning the already available length count. This will save a few additional strlen() calls later... Signed-off-by: Wolfgang Denk <wd@denx.de>
* examples/standalone: Remove relocation compile flags for PowerPCPeter Tyser2010-06-29-0/+10
| | | | | | | | | | | | | | | | | | | | Previously, standalone applications were compiled with gcc flags that produced relocatable executables on the PowerPC architecture (eg with the -mrelocatable and -fPIC flags). There's no reason for these applications to be fully relocatable at this time since no relocation fixups are performed on standalone applications. Additionally, removing the gcc relocation flags results in the entry point of applications residing at the base of the image. When a standalone application was relocatable, the entry point was generally located at an offset into the image which was confusing and prone to errors. This change moves the entry point of PowerPC standalone applications from 0x40004 (usually) to 0x40000. Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Signed-off-by: Wolfgang Denk <wd@denx.de>
* nios: remove nios-32 archThomas Chou2010-05-28-17/+0
| | | | | | The nios-32 arch is obsolete and broken. So it is removed. Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
* nios2: fix r15 issue for gcc4Thomas Chou2010-05-28-3/+3
| | | | | | | | | | The "-ffixed-r15" option doesn't work well for gcc4. Since we don't use gp for small data with option "-G0", we can use gp as global data pointer. This allows compiler to use r15. It is necessary for gcc4 to work properly. Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Signed-off-by: Scott McNutt <smcnutt@psyent.com>
* Move arch/ppc to arch/powerpcStefan Roese2010-04-21-5/+5
| | | | | | | | | | | | | | | | | As discussed on the list, move "arch/ppc" to "arch/powerpc" to better match the Linux directory structure. Please note that this patch also changes the "ppc" target in MAKEALL to "powerpc" to match this new infrastructure. But "ppc" is kept as an alias for now, to not break compatibility with scripts using this name. Signed-off-by: Stefan Roese <sr@denx.de> Acked-by: Wolfgang Denk <wd@denx.de> Acked-by: Detlev Zundel <dzu@denx.de> Acked-by: Kim Phillips <kim.phillips@freescale.com> Cc: Peter Tyser <ptyser@xes-inc.com> Cc: Anatolij Gustschin <agust@denx.de>
* ppc: Move cpu/$CPU to arch/ppc/cpu/$CPUPeter Tyser2010-04-13-1/+1
| | | | Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* Rename lib_generic/ to lib/Peter Tyser2010-04-13-8/+8
| | | | | | | | Now that the other architecture-specific lib directories have been moved out of the top-level directory there's not much reason to have the '_generic' suffix on the common lib directory. Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* Move lib_$ARCH directories to arch/$ARCH/libPeter Tyser2010-04-13-2/+2
| | | | | | | | | Also move lib_$ARCH/config.mk to arch/$ARCH/config.mk This change is intended to clean up the top-level directory structure and more closely mimic Linux's directory organization. Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* standalone eepro100_eeprom: fix build errorWolfgang Denk2010-03-12-2/+1
| | | | | | | | | | | | | | | | Building examples/standalone/eepro100_eeprom triggers this error: In file included from include/common.h:629, from eepro100_eeprom.c:24: include/net.h: In function 'NetReadIP': include/net.h:430: warning: implicit declaration of function 'memcpy' eepro100_eeprom.c: At top level: eepro100_eeprom.c:81: error: conflicting types for 'memcpy' include/net.h:430: error: previous implicit declaration of 'memcpy' was here Fix this. Signed-off-by: Wolfgang Denk <wd@denx.de>
* Update .gitignore's: add some generated filesWolfgang Denk2010-03-12-2/+3
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* smc91111_eeprom: fix linking errorMike Frysinger2010-01-31-3/+2
| | | | | | | | | | | | | | Building for a bf533-stamp ends up with this error: smc91111_eeprom.o: In function `smc91111_eeprom': examples/standalone/smc91111_eeprom.c:58: undefined reference to `memset' make[2]: *** [smc91111_eeprom] Error 1 The new eth_struct definition means gcc has to zero out the structure on the stack, and some gcc versions optimize this with an implicit call to memset. So tweak the structure style to avoid that gcc feature. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
* Fix breakage in SMC EEPROM standalone applicationsBen Warren2010-01-19-10/+0
| | | | | | | | | | Commit 6a45e384955262882375a2785426dc65aeb636c4 (Make getenv_IPaddr() global) inadvertently added ' #include "net.h" ' to the standalone programs, creating duplicate definitions of 'struct eth_device'. This patch removes the local definitions and removes other code that breaks due to the change in definition. Signed-off-by: Ben Warren <biggerbadderben@gmail.com> Acked-by: Mike Frysinger <vapier@gentoo.org>
* Merge branch 'master' into nextWolfgang Denk2009-12-05-207/+7
|\ | | | | | | | | | | | | | | Conflicts: board/esd/plu405/plu405.c drivers/rtc/ftrtc010.c Signed-off-by: Wolfgang Denk <wd@denx.de>
| * smc91111_eeprom: drop CONFIG stub protectionMike Frysinger2009-12-02-12/+0
| | | | | | | | | | | | | | Since the Makefile now controls the compilation of this, there is no need for CONFIG checking nor the stub function. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
| * Fix build failure in examples/standaloneSanjeev Premi2009-12-02-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some versions of 'make' do not handle trailing white-spaces properly. Trailing spaces in ELF causes a 'fake' source to be added to the variable COBJS; leading to build failure (listed below). The problem was found with GNU Make 3.80. Using text-function 'strip' as a workaround for the problem. make[1]: Entering directory `/home/sanjeev/u-boot/examples/standalone' arm-none-linux-gnueabi-gcc -g -Os -fno-common -ffixed-r8 -msoft-float -D__KERNEL__ -DTEXT_BASE=0x80e80000 -I/home/sanjeev/u-boot/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/codesourcery/2009q1- 203/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/include -pipe -DCONFIG_ ARM -D__ARM__ -marm -mabi=aapcs-linux -mno-thumb-interwork -march=armv5 -Wall -Wstrict-prototypes -fno-stack-protector -g -Os -fno-common -ff ixed-r8 -msoft-float -D__KERNEL__ -DTEXT_BASE=0x80e80000 -I/home/sanje ev/u-boot/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/co desourcery/2009q1-203/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/includ e -pipe -DCONFIG_ARM -D__ARM__ -marm -mabi=aapcs-linux -mno-thumb-inte rwork -march=armv5 -I.. -Bstatic -T u-boot.lds -Ttext 0x80e80000 -o .c arm-none-linux-gnueabi-gcc: no input files make[1]: *** [.c] Error 1 make[1]: Leaving directory `/home/sanjeev/u-boot/examples/standalone' make: *** [examples/standalone] Error 2 premi # Signed-off-by: Sanjeev Premi <premi@ti.com> Fixed typo (s/ElF/ELF/). Signed-off-by: Wolfgang Denk <wd@denx.de>
| * Nios2/Nios: Remove unnecessary (residual) linker Nios command scripts fromScott McNutt2009-11-23-194/+0
| | | | | | | | | | | | the standalone examples. Signed-off-by: Scott McNutt <smcnutt@psyent.com>
* | Generic udelay() with watchdog supportIngo van Lil2009-12-05-1/+2
|/ | | | | | | | | | | | | According to the PPC reference implementation the udelay() function is responsible for resetting the watchdog timer as frequently as needed. Most other architectures do not meet that requirement, so long-running operations might result in a watchdog reset. This patch adds a generic udelay() function which takes care of resetting the watchdog before calling an architecture-specific __udelay(). Signed-off-by: Ingo van Lil <inguin@gmx.de>
* smc911x_eeprom: fix building after smc911x overhaulMike Frysinger2009-11-12-60/+62
| | | | | | | | | | When the smc911x driver was converted to NET_MULTI, the smc911x eeprom was missed. The config option needed updating as well as overhauling of the rergister read/write functions. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Tested-by: Mike Rapoport <mike.rapoport@gmail.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
* Fix bug in jumptable call stubs for SPARC.Sergey Mironov2009-10-27-2/+2
| | | | | Signed-off-by: Sergey Mironov <ierton@gmail.com> Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
* Convert SMC91111 Ethernet driver to CONFIG_NET_MULTI APIBen Warren2009-10-04-47/+55
| | | | | | | | | | | | | | All in-tree boards that use this controller have CONFIG_NET_MULTI added Also: - changed CONFIG_DRIVER_SMC91111 to CONFIG_SMC91111 - cleaned up line lengths - modified all boards that override weak function in this driver - modified all eeprom standalone apps to work with new driver - updated blackfin standalone EEPROM app after testing Signed-off-by: Ben Warren <biggerbadderben@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* standalone: convert to kbuild styleMike Frysinger2009-09-15-72/+29
| | | | | | | Clean up the arch/cpu/board/config checks as well as redundant setting of srec/bin variables by using the kbuild VAR-$(...) style. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* push LOAD_ADDR out to arch mk filesMike Frysinger2009-09-04-64/+1
| | | | | | | | | | Rather than maintain/extend the current ifeq($(ARCH)) mess that exists in the standalone Makefile, push the setting up of LOAD_ADDR out to the arch config.mk (and rename to STANDALONE_LOAD_ADDR in the process). This keeps the common code clean and lets the arch do whatever crazy crap it wants in its own area. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* atmel_df_pow2: standalone to convert dataflashes to pow2Mike Frysinger2009-09-04-0/+214
| | | | | | | | | | | | Atmel DataFlashes by default operate with pages that are slightly bigger than normal binary sizes (i.e. many are 1056 byte pages rather than 1024 bytes). However, they also have a "power of 2" mode where the pages show up with the normal binary size. The latter mode is required in order to boot with a Blackfin processor, so many people wish to convert their DataFlashes on their development systems to this mode. This standalone application does just that. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: change global data register from P5 to P3Robin Getz2009-09-02-2/+2
| | | | | | | | | | | Since the Blackfin ABI favors higher scratch registers by default, use the last scratch register (P3) for global data rather than the first (P5). This allows the compiler's register allocator to use higher number scratch P registers, which in turn better matches the Blackfin instruction set, which reduces the size of U-Boot by more than 1024 bytes... Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Fix examples for OMAP3 boards...Michael Evans2009-08-08-1/+1
| | | | | | | | | | | | | | | | | | The attached patch corrects an error in the examples/Makefile which causes the applications in the examples directory to hang on OMAP3 based boards. The current Makefile sets -Ttext during linking to 0x0c100000 which is outside of addressable SDRAM memory. The script corrects the existing ifeq...else...endif logic to look at the VENDOR tag rather than the CPU tag. The patch affects the following configs: omap3_beagle_config, omap3_overo_config, omap3_evm_config, omap3_pandora_config, omap3_zoom1_config and omap3_zoom2_config. Signed-off-by: Michael Evans <horse_dung@hotmail.com> Edited commit message. Signed-off-by: Wolfgang Denk <wd@denx.de>
* ABI: fix build problems due to now needed div64 routine.Wolfgang Denk2009-07-27-0/+1
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* Move api_examples to examples/apiPeter Tyser2009-07-21-0/+1042
| | | | | | | Also add a rule to remove demo.bin which was previously leftover after a "make clean" Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* Move examples/ to examples/standalonePeter Tyser2009-07-21-0/+0
| | | | | | | The current files in examples are all standalone application examples, so put them in their own subdirectory for organizational purposes Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* smc91111_eeprom: move board-specific init into SMC91111_EEPROM_INIT()Mike Frysinger2009-04-04-9/+6
| | | | | | | | | | | Rather than sticking Blackfin-specific stuff into the eeprom example, use an indirect macro so that any board can override it with their own magic sauce in their board config file. Also fix some spurious semi-colons in defines while I'm at it ... Signed-off-by: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
* Fix all linker script to handle all rodata sectionsTrent Piepho2009-03-20-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A 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 this one section, we use a wildcard ".rodata*" to get all rodata linker section gcc has now and might add in the future. However, '*(.rodata*)' by itself will result in sub-optimal section ordering. The sections will be sorted by object file, which causes extra padding between the unaligned rodata.str.1.1 of one object file and the aligned rodata of the next object file. This is easy to fix by using the SORT_BY_ALIGNMENT command. This patch has not be tested one most of the boards modified. Some boards have 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 to 16 bytes, which is what I think the real purpose of the ALIGN call is. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
* smc911x_eeprom: update register APIMike Frysinger2009-03-19-13/+15
| | | | | | | | The smc911x driver changed the naming convention for its register funcs, so update the eeprom code accordingly. Signed-off-by: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
* smc911x_eeprom: new example app for managing newer SMC partsMike Frysinger2009-02-22-3/+386
| | | | | | | | | | | | | A forward port of the last version to work with the newer smc911x driver. I only have a board with a LAN9218 part on it, so that is the only one I've tested. But there isn't anything in this that would make it terribly chip specific afaik. Signed-off-by: Mike Frysinger <vapier@gentoo.org> CC: Sascha Hauer <s.hauer@pengutronix.de> CC: Guennadi Liakhovetski <lg@denx.de> CC: Magnus Lilja <lilja.magnus@gmail.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
* OMAP3: Add common board, interrupt and system infoDirk Behme2009-01-24-0/+4
| | | | | | Add common board, interrupt and system info code. Signed-off-by: Dirk Behme <dirk.behme@googlemail.com>
* Fixed build error due to #define of _LINUX_STRING_H_ in 82559_eeprom.cGraeme Russ2008-12-10-1/+0
| | | | Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
* Align end of bss by 4 bytesSelvamuthukumar2008-11-18-1/+1
| | | | | | | | | | Most of the bss initialization loop increments 4 bytes at a time. And the loop end is checked for an 'equal' condition. Make the bss end address aligned by 4, so that the loop will end as expected. Signed-off-by: Selvamuthukumar <selva.muthukumar@e-coninfotech.com> Signed-off-by: Wolfgang Denk <wd@denx.de>
* rename CFG_ macros to CONFIG_SYSJean-Christophe PLAGNIOL-VILLARD2008-10-18-10/+10
| | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* sh: Fix cannot execute a stand-alone applicationNobuhiro Iwamatsu2008-10-14-2/+4
| | | | | | | Address calculated in EXPORT_FUNC in SuperH was wrong, I revised it. Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
* Update i386 code (sc520_cdp)Graeme Russ2008-09-09-6/+10
| | | | | | Attempt to bring i386 / sc520 inline with master Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
* sh: Add support SH2/SH2A which is CPU of Renesas TechnologyNobuhiro Iwamatsu2008-08-31-0/+3
| | | | | | | Add support SH2/SH2A basic function. Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
* Fix some more print() format errors.Wolfgang Denk2008-07-11-1/+1
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* Fix some more print() format errors.Wolfgang Denk2008-07-10-4/+4
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* Big white-space cleanup.Wolfgang Denk2008-05-21-5/+5
| | | | | | | | | | | This commit gets rid of a huge amount of silly white-space issues. Especially, all sequences of SPACEs followed by TAB characters get removed (unless they appear in print statements). Also remove all embedded "vim:" and "vi:" statements which hide indentation problems. Signed-off-by: Wolfgang Denk <wd@denx.de>
* example/gitignore: update with all generated examplesJean-Christophe PLAGNIOL-VILLARD2008-05-19-0/+4
| | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* SPARC: Added generic support for SPARC architecture.Daniel Hellstrom2008-04-08-0/+80
| | | | Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
* Merge branch 'master' of git://www.denx.de/git/u-boot into new-imageMarian Balakowicz2008-03-12-5/+9
|\
| * examples/Makefile: build "hello_world" on 8xx, too.Wolfgang Denk2008-03-04-3/+3
| | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
| * Fix alignment error on ARM for modulesWoodruff, Richard2008-03-02-2/+6
| | | | | | | | | | | | | | | | Fix alignment fault on ARM when running modules. With out an explicit linker file gcc4.2.1 will half word align __bss_start's value. The word dereference will crash hello_world. signed-off-by Richard Woodruff <r-woodruff2@ti.com>
* | Merge branch 'master' of /home/git/u-bootMarian Balakowicz2008-02-21-23/+29
|\ \ | |/
| * Remove files added by mistake, update CHANGELOG.Wolfgang Denk2008-02-17-0/+0
| | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de>