summaryrefslogtreecommitdiffstats
path: root/arch/powerpc
Commit message (Collapse)AuthorAgeFilesLines
* mpc83xx: Fix ipic structure definitionJoe Hershberger2011-11-031-4/+5
| | | | | | | | | Signed-off-by: Joe Hershberger <joe.hershberger@ni.com> Cc: Joe Hershberger <joe.hershberger@gmail.com> Added siprr_{b,c} and sepcr for completeness. Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
* mpc83xx: fix global timer structure definitionKim Phillips2011-11-031-1/+1
| | | | | | | | The byte address distance between GTCFR2 and GTMDR1 is 11, not 10. Reported-by: Shawn Bai <programassem@hotmail.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com> Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
* Reduce build timesWolfgang Denk2011-11-032-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | U-Boot Makefiles contain a number of tests for compiler features etc. which so far are executed again and again. On some architectures (especially ARM) this results in a large number of calls to gcc. This patch makes sure to run such tests only once, thus largely reducing the number of "execve" system calls. Example: number of "execve" system calls for building the "P2020DS" (Power Architecture) and "qong" (ARM) boards, measured as: -> strace -f -e trace=execve -o /tmp/foo ./MAKEALL <board> -> grep execve /tmp/foo | wc -l Before: After: Reduction: ================================== P2020DS 20555 15205 -26% qong 31692 14490 -54% As a result, built times are significantly reduced, typically by 30...50%. Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Andy Fleming <afleming@gmail.com> Cc: Kumar Gala <galak@kernel.crashing.org> Cc: Albert Aribaud <albert.aribaud@free.fr> cc: Graeme Russ <graeme.russ@gmail.com> cc: Mike Frysinger <vapier@gentoo.org> Tested-by: Graeme Russ <graeme.russ@gmail.com> Tested-by: Matthias Weisser <weisserm@arcor.de> Tested-by: Sanjeev Premi <premi@ti.com> Tested-by: Simon Glass <sjg@chromium.org> Tested-by: Macpaul Lin <macpaul@gmail.com> Acked-by: Mike Frysinger <vapier@gentoo.org>
* 4xx_pci.c: add error checking, fix GCC 4.6 build warningWolfgang Denk2011-11-031-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-031-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>
* arch/powerpc/lib/board.c: fix build warningWolfgang Denk2011-11-031-1/+3
| | | | | | | | | | | | | | Commit 1272592 "powerpc: Use getenv_ulong() in place of getenv(), strtoul" instroduced a build warning for some PPC systems: board.c: In function 'board_init_r': board.c:626: warning: unused variable 's' Fix it. Signed-off-by: Wolfgang Denk <wd@denx.de> Acked-by: Simon Glass <sjg@chromium.org> Acked-by: Heiko Schocher <hs@denx.de>
* GCC4.6: Squash warnings in mpc86xx/interrupts.cMarek Vasut2011-10-271-6/+6
| | | | | | | | | | | | | | | | | | | | | interrupts.c: In function 'interrupt_init_cpu': interrupts.c:62: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' interrupts.c:69: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'volatile uint *' interrupts.c:72: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'volatile uint *' interrupts.c:75: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'volatile uint *' interrupts.c:79: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'volatile uint *' interrupts.c:83: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'volatile uint *' 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 ddr[123]_dimm_params.cMarek Vasut2011-10-273-3/+3
| | | | | | | | | | | | | | | | | | | | ddr1_dimm_params.c: In function 'compute_ranksize': ddr1_dimm_params.c:44: warning: format '%08x' expects type 'unsigned int', but argument 2 has type 'long long unsigned int' ddr2_dimm_params.c: In function 'compute_ranksize': ddr2_dimm_params.c:43: warning: format '%08x' expects type 'unsigned int', but argument 2 has type 'long long unsigned int' ddr3_dimm_params.c: In function 'compute_ranksize': ddr3_dimm_params.c:74: warning: format '%16lx' expects type 'long unsigned int', but argument 2 has type 'long 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> Acked-by: Kumar Gala <galak@kernel.crashing.org>
* GCC4.6: Squash warnings in 4xx_pcie.cMarek Vasut2011-10-271-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-271-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-271-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-271-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-271-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>
* PowerPC: Squash warning in mpc512x serial.cMarek Vasut2011-10-271-1/+1
| | | | | | | | | | | serial.c: In function 'serial_setbrg_dev': serial.c:143: warning: format '%d' expects type 'int', but argument 4 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>
* powerpc: Correct build warning introduced by getenv_ulong() patchSimon Glass2011-10-241-3/+7
| | | | | | | Commit 1272592 introduced a warning since the variable 's' is no longer always used, depending on the CONFIG options. Signed-off-by: Simon Glass <sjg@chromium.org>
* powerpc/lib/board.c: Call run_post(POST_ROM) before relocatingBernhard Kaindl2011-10-231-7/+7
| | | | | | | | | | | | | | | | | | | The call to run_post(POST_ROM) which can run the POST memory test is currently called too late when gd has already been copied to DRAM. This results in failure to boot Linux after a POST_ROM memory test tested all RAM while gd was already relocated to DRAM due to gd being overwritten by the POST_ROM memory test. Support this by moving the call to run_post(POST_ROM) to run earlier, before U-Boot has started to move data to DRAM (from late board_init_f to early board_init_f) where DRAM is initialized, but not used yet. This allows that an POST memory test can test the whole DRAM, including the area where the board info struct is located. Signed-off-by: Bernhard Kaindl <bernhard.kaindl@thalesgroup.com> Cc: Pieter Voorthuijsen <pieter.voorthuijsen@prodrive.nl>
* powerpc: Use getenv_ulong() in place of getenv(), strtoulSimon Glass2011-10-231-25/+8
| | | | | | | This changes the board code to use the new getenv_ulong() function. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Stefan Roese <sr@denx.de>
* powerpc: cache: define ARCH_DMA_MINALIGN for DMA buffer alignmentAnton Staaf2011-10-231-0/+6
| | | | | | | | | Signed-off-by: Anton Staaf <robotboy@chromium.org> Acked-by: Stefan Roese <sr@denx.de> Cc: Mike Frysinger <vapier@gentoo.org> Cc: Lukasz Majewski <l.majewski@samsung.com> Cc: Wolfgang Denk <wd@denx.de> Cc: Stefan Roese <sr@denx.de>
* consolidate mdelay by providing a common function for all usersAnatolij Gustschin2011-10-223-10/+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>
* mpc85xx: Add inline GPIO acessor functionsKyle Moffett2011-10-211-0/+123
| | | | | | | | | | | | | | | | | | | | | | To ease the implementation of other MPC85xx board ports, several common GPIO helpers are added to <asm/mpc85xx_gpio.h>. Since each of these compiles to no more than 4-5 instructions it would be very inefficient to call them out of line, therefore we put them entirely in the header file. The HWW-1U-1A board port which these were written for strongly prefers to set multiple GPIOs as a single batch operation, so the API is designed around that basis. To assist other board ports, a small set of wrappers are used which provides a standard gpio_request() interface around the MPC85xx-specific functions. This can be enabled with CONFIG_MPC85XX_GENERIC_GPIO Signed-off-by: Kyle Moffett <Kyle.D.Moffett@boeing.com> Cc: Andy Fleming <afleming@gmail.com> Cc: Peter Tyser <ptyser@xes-inc.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* powerpc/85xx: wait for alignment before resetting SERDES RX lanes (SERDES9)Timur Tabi2011-10-201-10/+0
| | | | | | | | The work-around for P4080 erratum SERDES9 says that the SERDES receiver lanes should be reset after the XAUI starts tranmitting alignment signals. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* powerpc/85xx: Update USB device tree status based on pin settingsShengzhou Liu2011-10-181-0/+23
| | | | | | | | | For P3060 and P4080, USB pins are multiplexed with other functions. Update the device tree status for USB ports based on setting of RCW[EC1] & RCW[EC2] which describe if pins are muxed to usb. Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* powerpc/85xx: Add support for RMan LIODN initializationKumar Gala2011-10-188-0/+112
| | | | | | | | | This patch is intended to initialize RMan LIODN related registers on P2041, P304S and P5020 SocS. It also adds the "rman@0" child node to qman-portal nodes, adds "fsl,liodn" property to RMan inbound block nodes. Signed-off-by: Minghuan Lian <Minghuan.Lian@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* powerpc/85xx: Update device tree handling for SRIOKumar Gala2011-10-182-10/+93
| | | | | | | | | | | Update device tree handling for SRIO controller to support updated fsl,srio device tree binding. We handle disabling of individual ports, the whole controller, RMU, and RMAN. Additionally, we setup the SRIO related LIODNs in the device tree. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* powerpc/85xx: Update setting of SRIO LIODNsKumar Gala2011-10-187-6/+72
| | | | | | | | | | | Properly set the LIODN values associated with SRIO controller. On P4080/P3060 we have an LIODN per port and one for the RMU. On P2041/P3041/P5020 we have 2 LIODNs per port. Update the tables for all of these devices to properly handle both styles. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* Merge branch 'master' of git://git.denx.de/u-boot-fdtWolfgang Denk2011-10-151-3/+2
|\ | | | | | | | | | | | | | | * 'master' of git://git.denx.de/u-boot-fdt: powerpc/85xx: use fdt_create_phandle() to create the Fman firmware phandles fdt: update fdt_alloc_phandle to use fdt_get_phandle fdt: check for fdt errors in fdt_create_phandle fdt: Add a do_fixup_by_path_string() function
| * powerpc/85xx: use fdt_create_phandle() to create the Fman firmware phandlesTimur Tabi2011-10-151-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | Function fdt_create_phandle() conveniently creates new phandle properties using both "linux,phandle" and "phandle", so it should be used by all code that wants to create a phandle. The Fman firmware code, which embeds an Fman firmware into the device tree, was creating the phandle properties manually. Instead, change it to use fdt_create_phandle(). Signed-off-by: Timur Tabi <timur@freescale.com>
* | powerpc/p3060: remove all references to RCW bits EC1_EXT, EC2_EXT, and EC3Timur Tabi2011-10-132-30/+0
| | | | | | | | | | | | | | | | The EC1_EXT, EC2_EXT, and EC3 bits in the RCW don't officially exist on the P3060 and should always be set to zero. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* | powerpc/p3041: fixup portal config infoHaiying Wang2011-10-131-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | P3041 has 10 qman portals, we need to configure all of them: * As there are only 4 physical cores sdest can only be 0 to 3 * We assign dqrr & frame data LIODNs for all portals so if they are utilized the proper mapping tables can be setup uniquely (PAMU stashing) * We set Portal 6-10 to LIODN offsets 1-5 as the global LIODN assignments are tuned around an assumption of at most 5 partitions. Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* | powerpc/p2041: fixup portal config infoHaiying Wang2011-10-131-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | P2041 has 10 qman portals, we need to configure all of them: * As there are only 4 physical cores sdest can only be 0 to 3 * We assign dqrr & frame data LIODNs for all portals so if they are utilized the proper mapping tables can be setup uniquely (PAMU stashing) * We set Portal 6-10 to LIODN offsets 1-5 as the global LIODN assignments are tuned around an assumption of at most 5 partitions. Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* | powerpc/p5020: fixup portal config infoHaiying Wang2011-10-131-10/+10
|/ | | | | | | | | | | | | | P5020 has 10 qman portals, we need to configure all of them: * As there are only 2 physical cores sdest can only be 0 or 1 * We assign dqrr & frame data LIODNs for all portals so if they are utilized the proper mapping tables can be setup uniquely (PAMU stashing) * We set Portal 6-10 to LIODN offsets 1-5 as the global LIODN assignments are tuned around an assumption of at most 5 partitions. Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* powerpc/mpc8536ds: Add eSPI support for MPC8536DSXie Xiaobo2011-10-091-0/+5
| | | | | | | | | | 1. The SD_DATA[4:7] signals are shared with the SPI chip selects on 8536DS, so don't set MPC85xx_PMUXCR_SD_DATA that config eSDHC data bus-width to 4-bit and enable SPI signals. 2. Add eSPI controller and SPI-FLASH definition. Signed-off-by: Xie Xiaobo <r63061@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* powerpc/mpc86xx: Disable translation for BAT setupBecky Bruce2011-10-092-29/+68
| | | | | | | | | | | | | | | | | We really shouldn't be overwriting bat registers with translation enabled, especially when we're executing code using one of them for translating the current instruction stream. Instead, disable address translation while doing the final BAT setup. In order to do this, setup_bats has to move back to asm code, because we require translation to be enabled to have a stack for C code. The yucky thing about that is that the assembler doesn't like ULL so we have to switch to using HIGH/LOW pairs for physical addresses that are > 32 bits in length. Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org> Acked-by: York Sun <yorksun@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* powerpc/85xx: fix null pointer dereference when init the SGMII TBI PHYTimur Tabi2011-10-091-1/+8
| | | | | | | | | | | | | | | Function dtsec_configure_serdes() needs to know where the TBI PHY registers are in order to configure SGMII for proper SerDes operation. During SGMII initialzation, fm_eth_init_mac() passing NULL for 'phyregs' when it called init_dtsec(), because it was believed that phyregs was not used. In fact, it is used by dtsec_configure_serdes() to configure the TBI PHY registers. We also need to define the PHY registers in struct fm_mdio. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* powerpc/8xxx: Add support for interactive DDR programming interfaceYork Sun2011-10-094-17/+1726
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Interactive DDR debugging provides a user interface to view and modify SPD, DIMM parameters, board options and DDR controller registers before DDR is initialized. With this feature, developers can fine-tune DDR for board bringup and other debugging without frequently having to reprogram the flash. To enable this feature, define CONFIG_FSL_DDR_INTERACTIVE in board header file and set an environment variable to activate it. Syntax: setenv ddr_interactive on After reset, U-boot prompts before initializing DDR controllers FSL DDR> The available commands are print print SPD and intermediate computed data reset reboot machine recompute reload SPD and options to default and recompute regs edit modify spd, parameter, or option compute recompute registers from current next_step to end next_step shows current next_step help this message go program the memory controller and continue with u-boot The first command should be "compute", which reads data from DIMM SPDs and board options, performs the calculation then stops before setting DDR controller. A user can use "print" and "edit" commands to view and modify anything. "Go" picks up from current step with any modification and compltes the calculation then enables the DDR controller to continue u-boot. "Recompute" does it over from fresh reading. Signed-off-by: York Sun <yorksun@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* net: drop !NET_MULTI codeMike Frysinger2011-10-057-17/+6
| | | | | | | | | | | 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>
* image: push default arch values to arch headersMike Frysinger2011-10-051-0/+4
| | | | | | | | | This pushes the ugly duplicated arch ifdef lists we maintain in various image related files out to the arch headers themselves. Acked-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> Tested-by: Thomas Chou <thomas@wytron.com.tw> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* POST: add post_log_res field for post results in global dataValentin Longchamp2011-10-051-0/+1
| | | | | | | | | | | | | | | | The current post_log_word in global data is currently split into 2x 16 bits: half for the test start, half for the test success. Since we alredy have more than 16 POST tests defined and more could be defined, this may result in an overflow and the post_output_backlog would not work for the tests defined further of these 16 positions. An additional field is added to global data so that we can now support up to 32 (depending of architecture) tests. The post_log_word is only used to record the start of the test and the new field post_log_res for the test success (or failure). The post_output_backlog is for this change also adapted. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
* console: Implement pre-console bufferGraeme Russ2011-10-051-0/+3
| | | | | | | | | | | | | Allow redirection of console output prior to console initialisation to a temporary buffer. To enable this functionality, the board (or arch) must define: - CONFIG_PRE_CONSOLE_BUFFER - Enable pre-console buffer - CONFIG_PRE_CON_BUF_ADDR - Base address of pre-console buffer - CONFIG_PRE_CON_BUF_SZ - Size of pre-console buffer (in bytes) The pre-console buffer will buffer the last CONFIG_PRE_CON_BUF_SZ bytes Any earlier characters are silently dropped.
* Merge branch 'master' of git://git.denx.de/u-boot-mpc85xxWolfgang Denk2011-10-0443-168/+2283
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'master' of git://git.denx.de/u-boot-mpc85xx: powerpc/p3060: Add SoC related support for P3060 platform powerpc/85xx: Add support for setting up RAID engine liodns on P5020 powerpc/85xx: Refactor some defines out of corenet_ds.h fm-eth: Add ability for board code to disable a port powerpc/mpc8548: Add workaround for erratum NMG_LBC103 powerpc/mpc8548: Add workaround for erratum NMG_DDR120 powerpc/mpc85xxcds: Fix PCI speed powerpc/mpc8548cds: Fix booting message powerpc/p4080: Add support for secure boot flow powerpc/85xx: Add Secure Boot support on P1010RDB for NOR, NAND & SPIFLASH powerpc/85xx: Add PBL & SECUREBOOT support on P3041/P5020DS boards powerpc/p2041rdb: remove watch dog related codes powerpc/p2041rdb: updated description of cpld command powerpc/p2041rdb: add more ddr frequencies support powerpc/p2041rdb: set sysclk according to status of physical switch SW1 powerpc/p2041rdb: update cpld reset command according to CPLD 2.0 powerpc/mpc8349emds: Migrate from spd_sdram to unified DDR driver powerpc/mpc83xx: Migrate from spd_sdram to unified DDR driver powerpc/mpc8xxx: Add DDR2 to unified DDR driver powerpc/mpc8xxx: Fix picos_to_mclk() and get_memory_clk_period_ps() powerpc/mpc8xxx: Add SPD EEPROM address for single controller 2 slots powerpc/mpc8xxx: Fix DDR code for empty first DIMM slot and enable DQS_en powerpc/85xx: Refactor P2041RDB to use common p_corenet files powerpc/85xx: refactor common P-Series CoreNet files for FSL boards powerpc/85xx: Enable CMD_REGINFO on corenet boards powerpc/85xx: p2041rdb - Remove unused 'execute' perm in TLB entries powerpc/85xx: Fix USB protocol definitions for P1020RDB powerpc/corenet_ds: Use separated speed tables for UDIMM and RDIMM powerpc/mpc8xxx: Move DDR RCW overriding to common code powerpc/mpc8xxx: Extend CWL table powerpc/85xx: Cleanup how SVR_MAJ() is defined on MPC8536 powerpc/85xx: Cleanup extern in corenet_ds board code powerpc/p2041rdb: Add ethernet support on P2041RDB board powerpc/85xx: Add networking support to P1023RDS powerpc/hydra: Add ethernet support on P5020/P3041 DS boards powerpc/85xx: Add FMan ethernet support to P4080DS powerpc/85xx: Add support for FMan ethernet in Independent mode powerpc/mpc8548cds: Cleanup mpc8548cds.c powerpc/mp: add support for discontiguous cores powerpc/85xx: corenet_ds - Remove unused 'execute' perm in TLB entries fdt: Add new fdt_create_phandle helper fdt: Rename fdt_create_phandle to fdt_set_phandle powerpc/85xx: Fix compile warnings/errors if CONFIG_SYS_DPAA_FMAN isn't set fsl_ifc: Add the workaround for erratum IFC A-003399(enabled on P1010) powerpc/P1010: Add workaround for erratum P1010-A003549 (related to IFC) fsl_ifc: Add the workaround for erratum IFC-A002769 (enable on P1010) powerpc/85xx: Expanding the window of CCSRBAR in AS=1 from 4k to 1M powerpc/85xx: Add NAND/NAND_SPL support to P1010RDB nand: Freescale Integrated Flash Controller NAND support powerpc/85xx: Add basic support for P1010RDB powerpc/85xx: Add support for new P102x/P2020 RDB style boards powerpc/85xx: relocate CCSR before creating the initial RAM area powerpc/85xx: introduce and document CONFIG_SYS_CCSRBAR macros powerpc/85xx: Enable internal USB UTMI PHY on p204x/p3041/p50x0 powerpc/85xx: Add ULPI and UTMI USB Phy support for P1010/P1014
| * powerpc/p3060: Add SoC related support for P3060 platformShengzhou Liu2011-10-038-1/+293
| | | | | | | | | | | | | | | | | | | | | | Add P3060 SoC specific information:cores setup, LIODN setup, etc The P3060 SoC combines six e500mc Power Architecture processor cores with high-performance datapath acceleration architecture(DPAA), CoreNet fabric infrastructure, as well as network and peripheral interfaces. Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * powerpc/85xx: Add support for setting up RAID engine liodns on P5020Kumar Gala2011-10-035-2/+69
| | | | | | | | | | | | | | | | | | Add support for Job Queue/Ring LIODN for the RAID Engine on P5020. Each Job Queue/Ring combo needs one id assigned for a total of 4 (2 JQs/2 Rings per JQ). This just handles RAID Engine in non-DPAA mode. Signed-off-by: Santosh Shukla <santosh.shukla@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * powerpc/mpc8548: Add workaround for erratum NMG_LBC103Kumar Gala2011-10-033-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | The erratum NMG_LBC103 is LBIU3 in MPC8548 errata document. Any local bus transaction may fail during LBIU resynchronization process when the clock divider [CLKDIV] is changing. Ensure there is no transaction on the local bus for at least 100 microseconds after changing clock divider LCRR[CLKDIV]. Refer to the erratum LBIU3 of mpc8548. Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * powerpc/mpc8548: Add workaround for erratum NMG_DDR120Kumar Gala2011-10-033-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | Erratum NMG_DDR120 (DDR19 in MPC8548 errata document) applies to some early version silicons. The default settings of the DDR IO receiver biasing may not work at cold temperature. When a failure occurs, a DDR input latches an incorrect value. The workaround will set the receiver to an acceptable bias point. Signed-off-by: Gong Chen Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * powerpc/p4080: Add support for secure boot flowRuchika Gupta2011-10-035-3/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pre u-boot Flow: 1. User loads the u-boot image in flash 2. PBL/Configuration word is used to create LAW for Flash at 0xc0000000 (Please note that ISBC expects all these addresses, images to be validated, entry point etc within 0 - 3.5G range) 3. ISBC validates the u-boot image, and passes control to u-boot at 0xcffffffc. Changes in u-boot: 1. Temporarily map CONFIG_SYS_MONITOR_BASE to the 1M CONFIG_SYS_PBI_FLASH_WINDOW in AS=1. (The CONFIG_SYS_PBI_FLASH_WINDOW is the address map for the flash created by PBL/configuration word within 0 - 3.5G memory range. The u-boot image at this address has been validated by ISBC code) 2. Remove TLB entries for 0 - 3.5G created by ISBC code 3. Remove the LAW entry for the CONFIG_SYS_PBI_FLASH_WINDOW created by PBL/configuration word after switch to AS = 1 Signed-off-by: Ruchika Gupta <ruchika.gupta@freescale.com> Signed-off-by: Kuldip Giroh <kuldip.giroh@freescale.com> Acked-by: Wood Scott-B07421 <B07421@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * powerpc/mpc83xx: Migrate from spd_sdram to unified DDR driverYork Sun2011-09-299-17/+234
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unified DDR driver is maintained for better performance, robustness and bug fixes. Upgrading to use unified DDR driver for MPC83xx takes advantage of overall improvement. It requires changes for board files to customize platform-dependent parameters. To utilize the unified DDR driver, a board needs to define CONFIG_FSL_DDRx in the header file. No more boards will be accepted without such definition. Note: the workaround for erratum DDR6 for the very old MPC834x Rev 1.0/1.1 and MPC8360 Rev 1.1/1.2 parts is not migrated to unified driver. Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: York Sun <yorksun@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * powerpc/mpc8xxx: Add DDR2 to unified DDR driverYork Sun2011-09-293-17/+235
| | | | | | | | | | | | | | | | | | | | | | | | DDR2 has different ODT table and values. Adding table according to Samsung application note. Fix additive latency calculation to avoid interger underflow. Also converted typedef dynamic_odt_t to struct dynamic_odt. Signed-off-by: York Sun <yorksun@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * powerpc/mpc8xxx: Fix picos_to_mclk() and get_memory_clk_period_ps()York Sun2011-09-291-15/+11
| | | | | | | | | | | | | | Reduce the calculation error to 1ps. Signed-off-by: York Sun <yorksun@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * powerpc/mpc8xxx: Add SPD EEPROM address for single controller 2 slotsYork Sun2011-09-291-4/+7
| | | | | | | | | | | | | | The two slots on the same controller have different addresses. Signed-off-by: York Sun <yorksun@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * powerpc/mpc8xxx: Fix DDR code for empty first DIMM slot and enable DQS_enYork Sun2011-09-292-9/+14
| | | | | | | | | | | | | | | | Check second DIMM slot in case the first one is empty. Honor DQS enable option for SDRAM mode register. Signed-off-by: York Sun <yorksun@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
OpenPOWER on IntegriCloud