summaryrefslogtreecommitdiff
path: root/arch/powerpc/cpu/ppc4xx
Commit message (Collapse)AuthorAgeLines
* ppc4xx: Remove usbdev.cStefan Roese2011-12-07-274/+0
| | | | | | | As this "driver" doesn't seem to be really used, let's remove it completely. Signed-off-by: Stefan Roese <sr@denx.de>
* iop480_uart.c: Fix GCC 4.6 build warningsStefan Roese2011-11-16-2/+1
| | | | | | | | Fix: iop480_uart.c: In function 'serial_init': iop480_uart.c:137:16: warning: variable 'val' set but not used [-Wunused-but-set-variable] Signed-off-by: Stefan Roese <sr@denx.de>
* 40x_spd_sdram.c: Fix GCC 4.6 build warningsStefan Roese2011-11-16-10/+10
| | | | | | | | | | Fix: 40x_spd_sdram.c: In function 'spd_sdram': 40x_spd_sdram.c:137:6: warning: variable 'sdram0_b3cr' set but not used [-Wunused-but-set-variable] 40x_spd_sdram.c:136:6: warning: variable 'sdram0_b2cr' set but not used [-Wunused-but-set-variable] 40x_spd_sdram.c:129:6: warning: variable 'sdram0_ecccfg' set but not used [-Wunused-but-set-variable] Signed-off-by: Stefan Roese <sr@denx.de>
* 44x_spd_ddr2.c: Fix GCC 4.6 build warningsStefan Roese2011-11-16-31/+1
| | | | | | | | | | | | | | | | 44x_spd_ddr2.c: In function 'initdram': 44x_spd_ddr2.c:450:17: warning: variable 'dimm_spd' set but not used [-Wunused-but-set-variable] 44x_spd_ddr2.c: In function 'program_copt1': 44x_spd_ddr2.c:1003:16: warning: variable 'ddrtype' set but not used [-Wunused-but-set-variable] 44x_spd_ddr2.c: In function 'DQS_calibration_process': 44x_spd_ddr2.c:2498:7: warning: variable 'window_found' set but not used [-Wunused-but-set-variable] 44x_spd_ddr2.c:2497:16: warning: variable 'end_rffd' set but not used [-Wunused-but-set-variable] 44x_spd_ddr2.c:2496:16: warning: variable 'end_rqfd' set but not used [-Wunused-but-set-variable] 44x_spd_ddr2.c:2495:16: warning: variable 'begin_rffd' set but not used [-Wunused-but-set-variable] 44x_spd_ddr2.c:2494:16: warning: variable 'begin_rqfd' set but not used [-Wunused-but-set-variable] 44x_spd_ddr2.c:2493:7: warning: variable 'min_end' set but not used [-Wunused-but-set-variable] Signed-off-by: Stefan Roese <sr@denx.de>
* 44x_spd_ddr.c: Fix GCC 4.6 build warningsStefan Roese2011-11-16-4/+0
| | | | | | | | | Fix: 44x_spd_ddr.c: In function 'program_cfg0': 44x_spd_ddr.c:384:16: warning: variable 'dimm_64bit' set but not used [-Wunused-but-set-variable] 44x_spd_ddr.c:383:16: warning: variable 'dimm_32bit' set but not used [-Wunused-but-set-variable] Signed-off-by: Stefan Roese <sr@denx.de>
* cmd_ecctest.c: Fix GCC 4.6 build warningsStefan Roese2011-11-16-6/+3
| | | | | | | | | | Fix: cmd_ecctest.c: In function 'inject_ecc_error': cmd_ecctest.c:116:6: warning: variable 'val' set but not used [-Wunused-but-set-variable] cmd_ecctest.c: In function 'rewrite_ecc_parity': cmd_ecctest.c:154:6: warning: variable 'val' set but not used [-Wunused-but-set-variable] Signed-off-by: Stefan Roese <sr@denx.de>
* 4xx_ibm_ddr2_autocalib.c: Fix GCC 4.6 build warningsStefan Roese2011-11-16-6/+9
| | | | | | | | | | Fix: 4xx_ibm_ddr2_autocalib.c: In function 'get_membase': 4xx_ibm_ddr2_autocalib.c:157:8: warning: variable 'bxcf' set but not used [-Wunused-but-set-variable] 4xx_ibm_ddr2_autocalib.c: In function 'DQS_calibration_methodB': 4xx_ibm_ddr2_autocalib.c:722:8: warning: variable 'rffd' set but not used [-Wunused-but-set-variable] Signed-off-by: Stefan Roese <sr@denx.de>
* 4xx_pcie.c: Fix GCC 4.6 build warningsStefan Roese2011-11-16-9/+2
| | | | | | | | | | | | Fix: 4xx_pcie.c: In function 'pcie_read_config': 4xx_pcie.c:230:6: warning: variable 'address' set but not used [-Wunused-but-set-variable] 4xx_pcie.c: In function 'pcie_write_config': 4xx_pcie.c:290:6: warning: variable 'address' set but not used [-Wunused-but-set-variable] 4xx_pcie.c: In function 'ppc4xx_setup_pcie_rootpoint': 4xx_pcie.c:1066:17: warning: variable 'rmbase' set but not used [-Wunused-but-set-variable] Signed-off-by: Stefan Roese <sr@denx.de>
* usb_ohci.c: Fix GCC 4.6 build warningsStefan Roese2011-11-16-2/+1
| | | | | | | | Fix: usb_ohci.c: In function 'dl_transfer_length': usb_ohci.c:756:8: warning: variable 'tdINFO' set but not used [-Wunused-but-set-variable] Signed-off-by: Stefan Roese <sr@denx.de>
* 4xx_pci.c: add error checking, fix GCC 4.6 build warningWolfgang Denk2011-11-03-2/+4
| | | | | | | | | | | Fix: 4xx_pci.c: In function 'pci_init_board': 4xx_pci.c:855:6: warning: variable 'busno' set but not used [-Wunused-but-set-variable] Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Stefan Roese <sr@denx.de> Acked-by: Stefan Roese <sr@denx.de>
* 4xx_uart.c: fix GCC 4.6 build warningsWolfgang Denk2011-11-03-12/+14
| | | | | | | | | | Fix: 4xx_uart.c: In function 'get_serial_clock': 4xx_uart.c:204:6: warning: variable 'tmp' set but not used [-Wunused-but-set-variable] Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Stefan Roese <sr@denx.de>
* GCC4.6: Squash warnings in 4xx_pcie.cMarek Vasut2011-10-27-1/+2
| | | | | | | | | | | 4xx_pcie.c: In function 'pcie_read_config': 4xx_pcie.c:268: warning: format '%08x' expects type 'unsigned int', but argument 3 has type 'volatile unsigned char *' Signed-off-by: Marek Vasut <marek.vasut@gmail.com> Cc: Wolfgang Denk <wd@denx.de> Cc: Simon Glass <sjg@chromium.org> Cc: Mike Frysinger <vapier@gentoo.org>
* GCC4.6: Squash warnings in 4xx_ibm_ddr2_autocalib.cMarek Vasut2011-10-27-4/+4
| | | | | | | | | | | | | | | 4xx_ibm_ddr2_autocalib.c: In function 'DQS_calibration_methodB': 4xx_ibm_ddr2_autocalib.c:910: warning: format '%08X' expects type 'unsigned int', but argument 2 has type 'ulong' 4xx_ibm_ddr2_autocalib.c:911: warning: format '%08X' expects type 'unsigned int', but argument 2 has type 'ulong' 4xx_ibm_ddr2_autocalib.c: In function 'DQS_autocalibration': 4xx_ibm_ddr2_autocalib.c:1217: warning: format '%08x' expects type 'unsigned int', but argument 2 has type 'ulong' 4xx_ibm_ddr2_autocalib.c:1230: warning: format '%08x' expects type 'unsigned int', but argument 2 has type 'ulong' Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
* GCC4.6: Squash warnings in 44x_spd_ddr.cMarek Vasut2011-10-27-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | 44x_spd_ddr.c: In function 'program_tr0': 44x_spd_ddr.c:823: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'long unsigned int' 44x_spd_ddr.c: In function 'program_tr1': 44x_spd_ddr.c:1054: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'long unsigned int' 44x_spd_ddr.c: In function 'program_bxcr': 44x_spd_ddr.c:1127: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' 44x_spd_ddr.c:1196: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' 44x_spd_ddr.c:1196: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int' 44x_spd_ddr.c:1196: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int' 44x_spd_ddr.c:1196: warning: format '%d' expects type 'int', but argument 5 has type 'long unsigned int' 44x_spd_ddr.c:1242: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' Signed-off-by: Marek Vasut <marek.vasut@gmail.com> Cc: Wolfgang Denk <wd@denx.de> Cc: Simon Glass <sjg@chromium.org> Cc: Mike Frysinger <vapier@gentoo.org>
* GCC4.6: Squash warnings in denali_spd_ddr2.cMarek Vasut2011-10-27-26/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | denali_spd_ddr2.c: In function 'get_spd_info': denali_spd_ddr2.c:363: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c: In function 'check_frequency': denali_spd_ddr2.c:390: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c: In function 'get_dimm_size': denali_spd_ddr2.c:473: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c:474: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c:475: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c:476: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c: In function 'program_ddr0_03': denali_spd_ddr2.c:571: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c:604: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c:604: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int' denali_spd_ddr2.c:643: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c:644: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c:645: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c:646: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c:676: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c: In function 'program_ddr0_04': denali_spd_ddr2.c:731: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c:733: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c:735: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c: In function 'program_ddr0_05': denali_spd_ddr2.c:772: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c:774: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c: In function 'program_ddr0_06': denali_spd_ddr2.c:831: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c:833: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c: In function 'program_ddr0_11': denali_spd_ddr2.c:860: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c: In function 'program_ddr0_26': denali_spd_ddr2.c:931: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c:933: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c: In function 'program_ddr0_27': denali_spd_ddr2.c:944: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c: In function 'program_ddr0_43': denali_spd_ddr2.c:978: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_spd_ddr2.c: In function 'program_ddr0_44': denali_spd_ddr2.c:1006: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' Signed-off-by: Marek Vasut <marek.vasut@gmail.com> Cc: Wolfgang Denk <wd@denx.de> Cc: Simon Glass <sjg@chromium.org> Cc: Mike Frysinger <vapier@gentoo.org>
* GCC4.6: Squash warnings in denali_data_eye.cMarek Vasut2011-10-27-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | denali_data_eye.c: In function 'denali_core_search_data_eye':denali_spd_ddr2.c:646: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_data_eye.c:320: warning: format '%08lx' expects type 'long unsigned int', but argument 2 has type 'u32' denali_data_eye.c:330: warning: format '%08lx' expects type 'long unsigned int', but argument 2 has type 'u32' denali_spd_ddr2.c:676: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' denali_data_eye.c:340: warning: format '%08lx' expects type 'long unsigned int', but argument 2 has type 'u32' denali_data_eye.c:350: warning: format '%08lx' expects type 'long unsigned int', but argument 2 has type 'u32' denali_data_eye.c:360: warning: format '%08lx' expects type 'long unsigned int', but argument 2 has type 'u32' Signed-off-by: Marek Vasut <marek.vasut@gmail.com> Cc: Wolfgang Denk <wd@denx.de> Cc: Simon Glass <sjg@chromium.org> Cc: Mike Frysinger <vapier@gentoo.org>
* consolidate mdelay by providing a common function for all usersAnatolij Gustschin2011-10-22-1/+0
| | | | | | | | | There are several mdelay() definitions in the driver and board code. Remove them all and provide a common mdelay() in lib/time.c. Signed-off-by: Anatolij Gustschin <agust@denx.de> Acked-by: Mike Frysinger <vapier@gentoo.org>
* net: drop !NET_MULTI codeMike Frysinger2011-10-05-4/+3
| | | | | | | | | | | This is long over due. All but two net drivers have been converted, but those have now been dropped. The only thing left to do is actually delete all references to NET_MULTI and code that is compiled when that is not defined. So here we scrub the core code. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* ppc4xx: Flush dcache after DDR2 autocalibration with caches onStefan Roese2011-09-19-0/+7
| | | | | | | | Flush the dcache before removing the TLB with caches enabled. Otherwise this might lead to problems later on, e.g. while booting Linux (as seen on ICON-440SPe). Signed-off-by: Stefan Roese <sr@denx.de>
* unify version_stringAndreas Bießmann2011-07-28-8/+1
| | | | | | | | | | | | This patch removes the architecture specific implementation of version_string where possible. Some architectures use a special place and therefore we provide U_BOOT_VERSION_STRING definition and a common weak symbol version_string. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com> CC: Mike Frysinger <vapier@gentoo.org> CC: Peter Pan <pppeterpppan@gmail.com> Acked-by: Mike Frysinger <vapier@gentoo.org>
* PPC405EX CHIP_21 erratumSteven A. Falco2011-05-12-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | APM errata CHIP_21 for the 405EX/EXr (from the rev 1.09 document dated 4/27/11) states that rev D processors may wake up with the wrong feature set. This patch implements the APM-proposed workaround. To enable this patch for your board, add the appropriate define for your CPU to your board header file. See kilauea.h for more information. The following variants are supported: #define CONFIG_SYS_4xx_CHIP_21_405EX_NO_SECURITY #define CONFIG_SYS_4xx_CHIP_21_405EX_SECURITY #define CONFIG_SYS_4xx_CHIP_21_405EXr_NO_SECURITY #define CONFIG_SYS_4xx_CHIP_21_405EXr_SECURITY Please note that if you select the wrong define, your board will not boot, and JTAG will be required to recover. Tested on custom boards using: CONFIG_SYS_4xx_CHIP_21_405EX_NO_SECURITY <sfalco@harris.com> CONFIG_SYS_4xx_CHIP_21_405EX_SECURITY <eibach@gdsys.de> Signed-off-by: Steve Falco <sfalco@harris.com> Acked-by: Dirk Eibach <eibach@gdsys.de> Signed-off-by: Stefan Roese <sr@denx.de>
* Revert "PowerPC: Add support for -msingle-pic-base"Wolfgang Denk2011-04-20-20/+2
| | | | | | | This reverts commit 39768f7715ed637ef02f49fc7de664cc1aaf14b3. Reson: it breaks a number of boards with embedded environment as the code size grows in some places.
* PowerPC: Add support for -msingle-pic-baseJoakim Tjernlund2011-04-11-2/+20
| | | | | | | | | | | | | -msingle-pic-base is a new gcc option for ppc and it reduces the size of my u-boot with 6-8 KB. While at it, add -fno-jump-tables too to save a few more bytes. -msingle-pic-base will be in gcc 4.6, however backported patches are available at http://bugs.gentoo.org/show_bug.cgi?id=347281 Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
* PowerPC: Move -fPIC flag to common placeJoakim Tjernlund2011-04-11-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The -fPIC flag belongs with -mrelocatable, move it there. Also change -fPIC to -fpic as this produces smaller binaries. However, currently -mrelocatable promotes -fpic to -fPIC, a fix for this is in upcoming gcc 4.6 or you can apply this small patch to gcc: diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h index 8da8410..e4b8280 100644 --- a/gcc/config/rs6000/sysv4.h +++ b/gcc/config/rs6000/sysv4.h @@ -227,7 +227,8 @@ do { \ } \ \ else if (TARGET_RELOCATABLE) \ - flag_pic = 2; \ + if (!flag_pic) \ + flag_pic = 2; \ } while (0) #ifndef RS6000_BI_ARCH -- Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
* rename _end to __bss_end__Po-Yu Chuang2011-03-27-3/+3
| | | | | | | Currently, _end is used for end of BSS section. We want _end to mean end of u-boot image, so we rename _end to __bss_end__ first. Signed-off-by: Po-Yu Chuang <ratbert@faraday-tech.com>
* ppc4xx: Fix compilation breakage in miiphy.cStefan Roese2011-01-11-1/+1
| | | | | | | | Patch 8ef583a0 [miiphy: convert to linux/mii.h] introduced a small problem in the ppc4xx miiphy.c version. This patch fixes this problem. Signed-off-by: Stefan Roese <sr@denx.de> Acked-by: Mike Frysinger <vapier@gentoo.org>
* miiphy: convert to linux/mii.hMike Frysinger2011-01-09-36/+36
| | | | | | | | The include/miiphy.h header duplicates a lot of things from linux/mii.h. So punt all the things that overlap to keep the API simple and to make merging between U-Boot and Linux simpler. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* PowerPC: Add relocation support for -fpicJoakim Tjernlund2010-12-17-2/+3
| | | | | | | | | By rearranging the linker script we get support for relocation of -fpic for free. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> Acked-by: Scott Wood <scottwood@freescale.com> Acked-by: Kim Phillips <kim.phillips@freescale.com>
* xilinx-ppc4xx-generic: Use common u-boot.ldsRicardo Ribalda Delgado2010-12-17-1/+9
| | | | | | | Use common ppc4xx linker script for xilinx ppc440 and ppc405 related boards. Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Signed-off-by: Stefan Roese <sr@denx.de>
* ppc4xx: Clarify comment about boot chip-select in start.SStefan Roese2010-12-17-12/+14
| | | | | | | Ths old comment was quite screwed up. Replace it with a new version that should be a bit more descriptive. Signed-off-by: Stefan Roese <sr@denx.de>
* do_reset: unify duplicate prototypesMike Frysinger2010-11-28-1/+0
| | | | | | | The duplication of the do_reset prototype has gotten out of hand, and they're not all in sync. Unify them all in command.h. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* ppc4xx: Flush complete dcache in relocate_code()Stefan Roese2010-11-28-6/+7
| | | | | | | | | When the cache is enabled in SDRAM we need to flush not only the global data area but also the bd_info struct in relocate_code. This patch now flushed the complete dcache (all dcache lines) via flush_dcache() instead of adding a flush_dcache_range() call for bd_info since this is faster. Signed-off-by: Stefan Roese <sr@denx.de>
* powerpc: cmd_ecctest: Use return value of cmd_usageThomas Weber2010-11-27-4/+2
| | | | | | | | Use the return value of cmd_usage instead of ignoring this and returning a 1. Signed-off-by: Thomas Weber <weber@corscience.de> Acked-by: Mike Frysinger <vapier@gentoo.org>
* ppc4xx: Cleanup for partial linking and --gc-sectionsWolfgang Denk2010-11-27-43/+10
| | | | | | | | | | | | | | | | | This commit adapts 4xx boards for partial linking with --gc-sections. Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Stefan Roese <sr@denx.de> Cc: Tirumala Marri <tmarri@apm.com> Cc: David Updegraff <dave@cray.com> Cc: Matthias Fuchs <matthias.fuchs@esd-electronics.com> Cc: Dirk Eibach <eibach@gdsys.de> Cc: Larry Johnson <lrj@acm.org> Cc: Peter De Schrijver <p2@mind.be> Cc: Niklaus Giger <niklaus.giger@netstal.com> Cc: Daniel Poirot <dan.poirot@windriver.com> Acked-by: Stefan Roese <sr@denx.de>
* arch/powerpc/*/config.mk: make CONFIG_SYS_LDSCRIPT settings workWolfgang Denk2010-11-26-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | As we try to get rid of board specific config.mk files we must provide a way for board specific settings of the LDSCRIPT variable (path to the linker script) where needed. We now implement the following hierarchy: - Highest priority has a "#define CONFIG_SYS_LDCONFIG" in the board config file. - If CONFIG_SYS_LDCONFIG is not set, and the system is booting from NAND (CONFIG_NAND_SPL is set), then a board specific linker script board/$(BOARDDIR)/u-boot-nand.lds gets used. - If we are not booting from NAND, we test if a processor specific linker script arch/powerpc/cpu/$(CPU)/u-boot.lds exists; if so we use that. - As default, arch/powerpc/config.mk gets used. Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Stefan Roese <sr@denx.de> Cc: Kim Phillips <kim.phillips@freescale.com> Cc: Kumar Gala <kumar.gala@freescale.com> Cc: Andy Fleming <afleming@gmail.com> Acked-by: Stefan Roese <sr@denx.de>
* cpu/ppc4xx/Makefile: build only needed object filesWolfgang Denk2010-11-26-22/+10
| | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Stefan Roese <sr@denx.de> Acked-by: Stefan Roese <sr@denx.de>
* Switch from archive libraries to partial linkingSebastien Carlier2010-11-17-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Before this commit, weak symbols were not overridden by non-weak symbols found in archive libraries when linking with recent versions of binutils. As stated in the System V ABI, "the link editor does not extract archive members to resolve undefined weak symbols". This commit changes all Makefiles to use partial linking (ld -r) instead of creating library archives, which forces all symbols to participate in linking, allowing non-weak symbols to override weak symbols as intended. This approach is also used by Linux, from which the gmake function cmd_link_o_target (defined in config.mk and used in all Makefiles) is inspired. The name of each former library archive is preserved except for extensions which change from ".a" to ".o". This commit updates references accordingly where needed, in particular in some linker scripts. This commit reveals board configurations that exclude some features but include 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>
* PowerPC: Don't destroy fixup table while doing fixupsJoakim Tjernlund2010-11-14-1/+1
| | | | | | | | | The fixup procedure just stored a constant value in the fixup table rather than just adjusting the table. Although that doesn't seem to do any harm, it prevents relocation more that once. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
* Replace CONFIG_SYS_GBL_DATA_SIZE by auto-generated valueWolfgang Denk2010-10-26-1/+2
| | | | | | | | | | | | | | | | | | CONFIG_SYS_GBL_DATA_SIZE has always been just a bad workarond for not being able to use "sizeof(struct global_data)" in assembler files. Recent experience has shown that manual synchronization is not reliable enough. This patch renames CONFIG_SYS_GBL_DATA_SIZE into GENERATED_GBL_DATA_SIZE which gets automatically generated by the asm-offsets tool. In the result, all definitions of this value can be deleted from the board config files. We have to make sure that all files that reference such data include the new <asm-offsets.h> file. No other changes have been done yet, but it is obvious that similar changes / simplifications can be done for other, related macro definitions as well. Signed-off-by: Wolfgang Denk <wd@denx.de> Acked-by: Kumar Gala <galak@kernel.crashing.org>
* Rename CONFIG_SYS_INIT_RAM_END into CONFIG_SYS_INIT_RAM_SIZEWolfgang Denk2010-10-26-11/+11
| | | | | | | | | | | | | | | | | | CONFIG_SYS_INIT_RAM_END was a misnomer as it suggests this might be some end address; to make the meaning more clear we rename it into CONFIG_SYS_INIT_RAM_SIZE No other code changes are performed in this patch, only minor editing of white space (due to the changed length) and the comments was done, where noticed. Note that the code for the PATI and cmi_mpc5xx board configurations looks seriously broken. Last known maintainers on Cc: Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Denis Peter <d.peter@mpl.ch> Cc: Martin Winistoerfer <martinwinistoerfer@gmx.ch> Acked-by: Kumar Gala <galak@kernel.crashing.org>
* ppc4xx: Change tsr/tcr macros to upper caseStefan Roese2010-10-20-21/+5
| | | | | | Remove uneccessary functions to access the TCR/TSR registers as well. Signed-off-by: Stefan Roese <sr@denx.de>
* powerpc: do not fixup NULL ptrsJoakim Tjernlund2010-10-18-1/+3
| | | | | | | | | | | | | | The fixup routine must not fixup NULL pointers. Problem can be seen by char *testfun(void) __attribute__((weak)); char *(*myfun)(void) = testfun; Then add printf("myfun:%p, &myfun:%p\n", myfun, &myfun); before relocation and after relocation. myfun should be NULL in both cases but it is not. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
* powerpc: Remove warm reset entry pointPeter Tyser2010-10-12-1/+5
| | | | | | No boards utilize the warm reset entry point, so remove it. Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* APM821xx: Add CPU supportTirumala Marri2010-10-04-7/+103
| | | | | | | | | APM821XX is a new line of SoCs which are derivatives of PPC44X family of processors. This patch adds support of CPU, cache, tlb, 32k ocm, bootstraps, PLB and AHB bus. Signed-off-by: Tirumala R Marri <tmarri@apm.com> Signed-off-by: Stefan Roese <sr@denx.de>
* Merge branch 'next' of /home/wd/git/u-boot/nextWolfgang Denk2010-09-28-833/+258
|\ | | | | | | | | | | | | Conflicts: include/ppc4xx.h Signed-off-by: Wolfgang Denk <wd@denx.de>
| * ppc4xx: Disable trace broadcast for 44x non debug modeVictor Gallardo2010-09-23-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default the trace broadcast is enabled on 44x systems. To reduce power consumption when instruction tracing is not needed, disable trace broadcast. Check External Debug Mode (EDM) bit to detect if it should be disabled or not. Resetting system via a debugger will set the DBCR0[EDM] bit. Resetting via u-boot or OS will not. Signed-off-by: Victor Gallardo <vgallardo@apm.com> Signed-off-by: Stefan Roese <sr@denx.de>
| * ppc4xx: Cleanup of PVR detection code in cpu.cStefan Roese2010-09-23-71/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch cleans the PVR detection code in check_cpu() up a bit. Basically the strings are better seperated, resulting in an easier to understand and maintain code version. The #ifdef's couldn't be removed easily because of two reasons: - Some SoC revisions have the same PVR, so need a way to differentiate between those two SoC's. - In some case statements registers only available in this SoC variant are referenced. Instead I moved the CONFIG_440 #ifdef a bit, so that 405 platforms don't add this 440 detection code and vice versa. Resulting in this U-Boot image size change: 405EX (Kilauea): 408 bytes less 440EPx (Sequoia): 604 bytes less 460EX (Canyonlands): 564 bytes less Signed-off-by: Stefan Roese <sr@denx.de> Cc: Wolfgang Denk <wd@denx.de>
| * ppc4xx: Use common NS16550 driver for PPC4xx UARTStefan Roese2010-09-23-698/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the PPC4xx UART driver. Instead the common NS16550 driver is used, since all PPC4xx SoC's use this peripheral device. The file 4xx_uart.c now only implements the UART clock calculation function which also sets the SoC internal UART divisors. All PPC4xx board config headers are changed to use this common NS16550 driver now. Tested on these boards: acadia, canyonlands, katmai, kilauea, sequoia, zeus Signed-off-by: Stefan Roese <sr@denx.de>
| * ppc4xx: Big header cleanup part 2, mostly PPC405 relatedStefan Roese2010-09-23-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This cleanup is done by creating header files for all SoC versions and moving the SoC specific defines into these special headers. This way the common header ppc405.h and ppc440.h can be cleaned up finally. As a part from this cleanup, the GPIO definitions for PPC405EP are corrected. The high and low parts of the registers (for example CONFIG_SYS_GPIO0_OSRL vs. CONFIG_SYS_GPIO0_OSRH) have been defined in the wrong order. This patch now fixes this issue by switching these xxxH and xxxL values. This brings the GPIO 405EP port in sync with all other PPC4xx ports. Signed-off-by: Stefan Roese <sr@denx.de>
| * ppc4xx: Big header cleanup, mostly PPC440 relatedStefan Roese2010-09-23-31/+33
| | | | | | | | | | | | | | | | | | | | | | This patch starts a bit PPC4xx header cleanup. First patch mostly touches PPC440 files. A later patch will touch the PPC405 files as well. This cleanup is done by creating header files for all SoC versions and moving the SoC specific defines into these special headers. This way the common header ppc405.h and ppc440.h can be cleaned up finally. Signed-off-by: Stefan Roese <sr@denx.de>