Benoît Thébaudeau [Tue, 14 Aug 2012 11:03:59 +0000 (11:03 +0000)]
mx35: Define MAX and AIPS registers
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Tue, 14 Aug 2012 08:43:29 +0000 (08:43 +0000)]
mx31: Add more CCM access macros
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Tue, 14 Aug 2012 05:19:12 +0000 (05:19 +0000)]
mx5: Optimize lowlevel_init code size
Optimize mx5 lowlevel_init.S code size:
- Compute values at compile time rather than at runtime where possible.
- Assign r4 to hold the zero value rather than setting registers to 0 again and
again.
- Associate a function to setup_pll rather than expanding its large macro code
multiple times.
- Allocate constant values in section only if used.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Tested-by: Stefano Babic <sbabic@denx.de>
Acked-by: Stefano Babic <sbabic@denx.de>
Otavio Salvador [Wed, 26 Sep 2012 11:37:01 +0000 (11:37 +0000)]
mx6qsabreauto: Use ttymxc3 as console
The mx6qsabreauto console is different than mx6qsabresd so the console
configuration is now set in the board file.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Acked-by: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:28:29 +0000 (10:28 +0000)]
mx25: Fix eSDHC support
The MMC driver appropriate for the i.MX25 is fsl_esdhc, which has nothing to do
with mxcmmc.
Also, each eSDHC instance has a dedicated clock, so gd->sdhc_clk must be set
accordingly. This is good for the case only a single SDHC instance is used
(initialization made with fsl_esdhc_mmc_init()). A future patch will fix the
multi-instance use case (initialization made directly with
fsl_esdhc_initialize()).
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Eric Bénard <eric@eukrea.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:28:09 +0000 (10:28 +0000)]
mx25: Define cpu_eth_init() only if needed
The FEC is the only SoC Ethernet support available on i.MX25, so define
cpu_eth_init() only for it instead of returning a misleading success code.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:27:57 +0000 (10:27 +0000)]
mx25: Clean up clocks API
Use the standard mxc_get_clock() instead of exporting internal functions and
using literal constant values.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:27:44 +0000 (10:27 +0000)]
mx25 clocks: Fix MXC_FEC_CLK
mxc_get_clock(MXC_FEC_CLK) should return the IPG clock, not the AHB clock.
Also, imx_get_fecclk() was correct but reimplemented the calculation of the IPG
clock, so remove the duplicated code.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:27:28 +0000 (10:27 +0000)]
mx25: Define more standard clocks
Define AHB, IPG and CSPI clocks.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:27:14 +0000 (10:27 +0000)]
mx25: Clean up clock calculations
Avoid possible overflow in clock calculations, and do not waste calls to lldiv()
to divide simple ulongs.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:26:54 +0000 (10:26 +0000)]
mx25: Fix decode_pll
The MFN bit-field of the PLL registers represents a signed value. See the
reference manual.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:24:37 +0000 (10:24 +0000)]
mx5/6 clocks: Fix SDHC clocks
The i.MX5 eSDHC clocks were considered as coming from the IPG clock although
they have dedicated clock paths.
Also, on i.MX5/6, each SDHC instance has a dedicated clock, so gd->sdhc_clk must
be set accordingly. This is good for the case only a single SDHC instance is
used (initialization made with fsl_esdhc_mmc_init()). A future patch will fix
the multi-instance use case (initialization made directly with
fsl_esdhc_initialize()).
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Eric Bénard <eric@eukrea.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:24:13 +0000 (10:24 +0000)]
mx51: Fix I2C clock ID check
There are only 2 I²C instances on i.MX51, but 3 on i.MX53.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:23:58 +0000 (10:23 +0000)]
mx5 clocks: Fix MXC_FEC_CLK
The FEC clock does not come from PLL1, but from the IPG clock. The previous code
was even inconsistent with itself, returning the IPG clock as expected for
imx_get_fecclk(), but the PLL1 clock for mxc_get_clock(MXC_FEC_CLK).
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:23:42 +0000 (10:23 +0000)]
mx5 clocks: Simplify imx_get_cspiclk()
The code handling the dividers was duplicated for each possible input clock, and
this function can benefit from the newly introduced get_standard_pll_sel_clk()
function instead of duplicating this mux handling code.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:23:23 +0000 (10:23 +0000)]
mx5 clocks: Fix get_uart_clk()
This function returned
66500000 instead of the correct lp_apm clock frequency if
the CCM.CSCMR1.uart_clk_sel mux is set to 3.
This patch fixes this issue by introducing the get_standard_pll_sel_clk()
function that will be used by future patches to handle identical muxes used by
many other clocks.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:23:08 +0000 (10:23 +0000)]
mx5 clocks: Fix get_ipg_per_clk()
This fixes the "IPG PERCLK" frequency printed by the clocks command. The issue
was that get_ipg_per_clk() used periph_clk instead of lp_apm in the case
CCM.CBCMR.perclk_lp_apm_sel is set.
It also fixes I²C support.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:22:51 +0000 (10:22 +0000)]
mx5 clocks: Fix get_periph_clk()
In the case periph_clk comes from periph_apm_clk, the latter is selected by the
CCM.CBCMR.periph_apm_sel mux, which can source the lp_apm clock from its
input ♯2. get_periph_clk() returned 0 instead of the lp_apm clock frequency in
this case.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:22:37 +0000 (10:22 +0000)]
mx5 clocks: Fix get_lp_apm()
If CCM.CCSR.lp_apm is set, the lp_apm clock is not necessarily 32768 Hz x 1024.
In that case:
- on i.MX51, this clock comes from the output of the FPM,
- on i.MX53, this clock comes from the output of PLL4.
This patch fixes the code accordingly.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:22:22 +0000 (10:22 +0000)]
mx5 clocks: Add and use CCSR definitions
This fixes config_pll_clk(), which used 0x20 instead of 0x200 for PLL4_CLOCK.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Fri, 28 Sep 2012 07:09:03 +0000 (07:09 +0000)]
mx51: Fix USB PHY clocks
The i.MX51 has a single USB PHY clock, while the i.MX53 has two. These 3 clocks
have different clock gate control bit-fields.
The existing code was correct only for i.MX53, so this patch fixes the i.MX51
use case.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Marek Vasut <marex@denx.de>
Cc: Jana Rapava <fermata7@gmail.com>
Cc: Wolfgang Grandegger <wg@denx.de>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:21:22 +0000 (10:21 +0000)]
mx5: Fix clock gate values
The clock gate values are 2-bit bit-fields. Hence, setting or clearing only one
of these bits like what was done is wrong and can lead to unpredictable behavior
depending on the original value of these bit-fields.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:21:00 +0000 (10:21 +0000)]
mx5: Use explicit clock gate names
Use clock gate definitions having names showing clearly the gated clock instead
of names giving only a register field index.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:20:33 +0000 (10:20 +0000)]
mx5 clocks: Cleanup
Clean up the i.MX5 clock driver:
- Use readl() and writel() instead of their __raw_ counterparts.
- Use the clr/setbits_le32() family of macros rather than expanding code.
- Use accessor macros for bit-fields instead of _MASK and _OFFSET.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Benoît Thébaudeau [Thu, 27 Sep 2012 10:19:58 +0000 (10:19 +0000)]
mx5/6: Define default SoC input clock frequencies
Define default SoC input clock frequencies for i.MX5/6 in order to get rid of
duplicated definitions.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Jason Liu <r64343@freescale.com>
Cc: Matt Sealey <matt@genesi-usa.com>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Matthias Weisser [Mon, 24 Sep 2012 02:46:53 +0000 (02:46 +0000)]
imx: Use MXC_I2C_CLK in imx i2c driver
i2c didn't work on imx25 due to missing MXC_IPG_PERCLK. Now using
MXC_I2C_CLK on all imx systems using i2c.
Signed-off-by: Matthias Weisser <weisserm@arcor.de>
Acked-by: Stefano Babic <sbabic@denx.de>
Eric Benard [Sun, 23 Sep 2012 02:03:05 +0000 (02:03 +0000)]
mx25: add CPU revision 1.2
tested on a MCIMX257CJM4A which now reports :
CPU: Freescale i.MX25 rev1.2 at 399 MHz
Signed-off-by: Eric Bénard <eric@eukrea.com>
Acked-by: Otavio Salvador <otavio@ossystems.com.br>
Fabio Estevam [Mon, 24 Sep 2012 08:09:33 +0000 (08:09 +0000)]
mx6q: Add basic support for mx6qsabreauto
mx6qsabreauto is a board based on mx6q SoC with the following features:
- 2GB of DDR3
- 2 USB ports
- 1 HDMI output port
- SPI NOR
- 2 LVDS LCD ports
- Gigabit Ethernet
- Camera
- eMMC and SD card slot
- Multichannel Audio
- CAN
- SATA
- NAND
- PCIE
- Video Input
Add very basic support for it.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Fabio Estevam [Mon, 24 Sep 2012 08:09:32 +0000 (08:09 +0000)]
configs: mx6: Add a common config file
Add a common mx6 config file that can be shared between some mx6 boards.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Eric Nelson [Tue, 18 Sep 2012 15:26:32 +0000 (15:26 +0000)]
i.MX6: get rid of redundant struct src_regs (dupe of struct src)
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Eric Nelson [Wed, 19 Sep 2012 08:32:31 +0000 (08:32 +0000)]
i.MX6: define struct iomuxc and IOMUX_GPR2 register bitfields
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Acked-by: Stefano Babic <sbabic@denx.de>
Eric Nelson [Wed, 19 Sep 2012 08:29:46 +0000 (08:29 +0000)]
i.MX6: Add ANATOP_PFD_480 bitfield constants
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Acked-by: Stefano Babic <sbabic@denx.de>
Eric Nelson [Fri, 21 Sep 2012 11:41:42 +0000 (11:41 +0000)]
i.MX6: define IOMUX_GPR3 register bitfields
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Eric Nelson [Wed, 19 Sep 2012 08:33:50 +0000 (08:33 +0000)]
i.MX6: define bitfields for CHSCCDR register
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Eric Nelson [Mon, 17 Sep 2012 10:20:50 +0000 (10:20 +0000)]
i.MX6: change register name for CCM_CHSCCDR to match ref. manual
Register CCM_CHSCCDR (offset 0x34 in CCM) is named CCM_CHSCCDR in
reference manual, but was named chscdr in struct mxc_ccm_reg.
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Eric Nelson [Fri, 21 Sep 2012 07:33:51 +0000 (07:33 +0000)]
i.MX6: provide functional names for CCM_CCGR0-CCGR6 bit fields
Add meaningful constants for each clock channels and use them for
enabling and disabling i.MX6 clocks.
Includes an update to enable/disable the IPU1 clock in
drivers/video/ipu_common to remove IMX5x register access
when used on i.MX6 as discussed in V1:
http://patchwork.ozlabs.org/patch/185129/
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Fabio Estevam [Tue, 18 Sep 2012 09:27:49 +0000 (09:27 +0000)]
mx6qsabresd: Add 8-bit USDHC support
USDHC3 has 8 pins wired in mx6qsabresd. Configure the extra pins.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Fabio Estevam [Tue, 18 Sep 2012 17:24:23 +0000 (17:24 +0000)]
mx6qsabresd: Add Ethernet support
mx6qsabresd has a AR8031 Gigabit PHY.
Add support for it.
Also increase CONFIG_SYS_MALLOC_LEN so that FEC buffer allocation does not fail.
Tested on 1Gbp and 100Mbps networks.
Suggested-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Kim Phillips <kim.phillips@freescale.com>
Fabio Estevam [Thu, 13 Sep 2012 03:18:20 +0000 (03:18 +0000)]
mx6: Add basic support for mx6qsabresd board.
mx6qsabresd is a board based on mx6q SoC with the following features:
- 1GB of DDR3
- 1 USB OTG port
- 1 HDMI output port
- SPI NOR
- LVDS panel
- Gigabit Ethernet
- Camera Connector
- eMMC and SD card slot
- Audio
Add very basic support for it.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Fabio Estevam [Thu, 13 Sep 2012 03:18:19 +0000 (03:18 +0000)]
mx6q: Factor out common DDR3 init code
Factor out common DDR3 initialization code, allowing easier maintainance of such
scripts.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Lukasz Dalek [Tue, 2 Oct 2012 22:51:06 +0000 (00:51 +0200)]
pxa: Add code to examine cpu model and revision
Add function which return CPU model and revision which can be used for
cpu detection.
Signed-off-by: Lukasz Dalek <luk0104@gmail.com>
Lucas Stach [Sat, 29 Sep 2012 10:02:09 +0000 (10:02 +0000)]
tegra: nand: add board pinmux
Boards may require a different pinmux setup for NAND than the default one.
Add a way to call into board specific code to set this up.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Lucas Stach [Sat, 29 Sep 2012 10:02:08 +0000 (10:02 +0000)]
tegra: clean up board include hell
The prototypes used in board files were all scattered out, which lead to
code duplication between SPL and normal U-Boot and some prototypes not actually
being used. Consolidate this in a common board header.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Lucas Stach [Thu, 27 Sep 2012 13:04:27 +0000 (13:04 +0000)]
tegra: add funcmux entry for NAND attached to KBC
Secondary config for the Flash attachment.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Lucas Stach [Tue, 25 Sep 2012 20:21:14 +0000 (20:21 +0000)]
tegra20: rework UART GPIO handling
Rename board provided gpio_config_uart() to
gpio_early_init_uart() as it does the same thing as the equally
called function provided by the uart-switch code. This allows
to simply call this function in early board init whether or not
we are building with CONFIG_UART_SWITCH defined.
Also provide a weak symbol for this function, to avoid the
need to provide this function for boards that don't need any
fixup.
This patch supersedes the earlier posted
"tegra: convert gpio_config_uart to weak symbol".
Build tested with MAKEALL -s tegra20
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Acked-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Lucas Stach [Tue, 25 Sep 2012 20:21:13 +0000 (20:21 +0000)]
tegra20: add clock_set_pllout function
Common practice on Tegra 2 boards is to use the pllp_out4 FO
to generate the ULPI reference clock. For this to work we have
to override the default hardware generated output divider.
This function adds a clean way to do so.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Lucas Stach [Tue, 25 Sep 2012 09:59:12 +0000 (09:59 +0000)]
tegra20: complete periph_id enum
Most Tegra boards output the ULPI reference clock on pad DEV2.
Complete the periph_id enum so that we are able to enable this
clock output circuit.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Acked-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Stephen Warren [Tue, 25 Sep 2012 13:32:26 +0000 (13:32 +0000)]
tegra: enable CONFIG_CMD_PART
This is extremely likely to be used from the boot.scr that Tegra's default
bootcmd locates and executes.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Tom Warren [Wed, 19 Sep 2012 22:50:56 +0000 (15:50 -0700)]
Tegra20: Move some include files to arch-tegra for sharing with Tegra30
The move is pretty straight-forward. ap20.h and tegra20.h were renamed to ap.h and tegra.h.
Some files remain in arch-tegra20 but 'include' a file in 'arch-tegra' with #defines & structs
that will be common between T20 and T30 HW. HW-specific #defines, etc. stay in the 'arch-tegra20'
'root' file.
All boards build OK w/MAKEALL -s tegra20. Checkpatch.pl runs clean. Seaboard works OK.
Signed-off-by: Tom Warren <twarren@nvidia.com>
Tom Warren [Wed, 19 Sep 2012 21:08:52 +0000 (14:08 -0700)]
Tegra20: Move some code files to common directories for upcoming Tegra30 patches.
Move files that are going to be common between T20 and T30 into 'tegra-common'
subdirs in AVP (arm720t), CPU (armv7), and shared (arch/arm/cpu/.) areas. Any
files that are left behind in '/tegra20' will be copied to '/tegra30' subdirs
and modified for that SoC. The 'common' files should need only minor changes.
Include files (arch/arm/include/asm/arch-tegra/tegra20) will be done in a
follow-on patch.
Builds fine w/MAKEALL -s tegra20. Checkpatch.pl is clean.
Signed-off-by: Tom Warren <twarren@nvidia.com>
Thierry Reding [Wed, 19 Sep 2012 00:37:21 +0000 (00:37 +0000)]
tegra: Rename Medcom to Medcom-Wide
Medcom is the marketing name for an older, PXA-based version of the same
device. In order to avoid confusion, rename the Tegra-based version to
the new marketing name.
Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Thierry Reding [Wed, 19 Sep 2012 00:37:20 +0000 (00:37 +0000)]
tegra: Update Avionic Design vendor prefix
The official vendor prefix for Avionic Design is now "ad". Update the
board DTS files accordingly.
Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Joe Hershberger [Thu, 4 Oct 2012 08:31:00 +0000 (08:31 +0000)]
tools: Add a README note about fw_printenv lock file
Add a mention of the lock file to the README for the fw_printenv tool.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reported-by: Luka Perkov <uboot@lukaperkov.net>
Joe Hershberger [Wed, 3 Oct 2012 09:38:50 +0000 (09:38 +0000)]
env: Check for NULL pointer in envmatch()
If the pointer passed into envmatch() is NULL, return -1 instead of
crashing.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger [Wed, 3 Oct 2012 09:38:49 +0000 (09:38 +0000)]
tools/env: Serialize calls to fw_*env
Use a lock file at /var/lock/fw_printenv.lock.
Avoids seriously confusing the MTD driver.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger [Wed, 3 Oct 2012 09:38:48 +0000 (09:38 +0000)]
tools/env: Don't call env_init() in fw_getenv()
We will only call fw_getenv when the env has already been initialized.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger [Wed, 3 Oct 2012 09:38:47 +0000 (09:38 +0000)]
tools/env: Remove unneeded complexity
The length included the name length, and then it was subtracted back
out on each use. Now we don't include it in the first place. Also
realloc as we process arguments and eliminate memset. Use memcpy
instead of manually copying each byte.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger [Wed, 3 Oct 2012 09:38:46 +0000 (09:38 +0000)]
tools/env: Use a board-specific default env
Originally added in
aa701b94336b358798d676eef12a7b90bdac23f5
Before this patch, there was a hard-coded env that was used as default
if the env in flash is detected as invalid. Now this tool (compiled
for a given board) will share the default env with the u-boot for the
board.
Fix include of config.h
Need to define "TEXT_BASE" when building the fw_env tool so that the
default env will be correct for environments which use it.
Define __ASSEMBLY__ when calling #include <config.h> so that we only
get #defines (all we're interested in).
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Daniel Schwierzeck [Wed, 3 Oct 2012 08:36:11 +0000 (08:36 +0000)]
common: cmd_bdinfo: fix type of value in print_lnum
This fixes a warning when compiling with ELDK-5.2.1 for MIPS64:
cmd_bdinfo.c: In function 'print_lnum':
cmd_bdinfo.c:56:2: warning: format '%llX' expects argument of type 'long long unsigned int', but argument 3 has type 'u64' [-Wformat]
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Simon Glass [Thu, 27 Sep 2012 15:18:43 +0000 (15:18 +0000)]
input: Add debugging for key matrix key codes
These are read from the fdt - add a debug feature to display the mapping
on start-up.
See that we get debug output listing the keycodes
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 27 Sep 2012 15:18:42 +0000 (15:18 +0000)]
input: Allow key ghosting filter to be disabled
Some keyboards will not need a key ghosting filter, so make this feature
optional.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 27 Sep 2012 15:18:41 +0000 (15:18 +0000)]
input: Separate out keyboard repeat/delay from init
It is inconvenient to have to specify the keyboard repeat and delay at
init time if it is not yet available, so move this into a separate
function.
Some drivers will want to do this when their keyboard init routine
is actually called.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 27 Sep 2012 15:18:40 +0000 (15:18 +0000)]
input: Correct key_matrix fdt decoding
Some issues with this were not addressed in the previous series. Fix up
the binding decoding to deal with what is actually expected in the fdt.
This corrects the broken keyboard on seaboard.
Signed-off-by: Simon Glass <sjg@chromium.org>
Fabio Estevam [Fri, 28 Sep 2012 03:36:14 +0000 (03:36 +0000)]
tools: Add cleanpatch
There are some errors reported by checkpatch.pl that can be easily cleaned up by
using the cleanpatch tool.
Import the cleanpatch script from linux kernel 3.5.4 stable version as from the
following commit:
commit
cb3ed5b7e09c6c0462e396d55e3fecc0980a333a
Author: H. Peter Anvin <hpa@zytor.com>
Date: Fri May 25 17:58:26 2007 -0700
scripts: Make cleanfile/cleanpatch warn about long lines
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Simon Glass [Thu, 27 Sep 2012 15:33:46 +0000 (15:33 +0000)]
patman: Handle checkpatch.pl not providing file/line info
Sometimes we don't get a valid filename or line number from checkpatch.pl,
for example if the patch is in a bad format. Deal with this by using a
default value, rather than a stack trace.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 27 Sep 2012 15:06:02 +0000 (15:06 +0000)]
patman: Support Series-name tag to name a series
Sometimes it is possible to forget the name of the branch you used to
generate an upstream series. To assist with this, add an optional
patman does not use this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Kim Phillips [Thu, 27 Sep 2012 14:57:34 +0000 (14:57 +0000)]
MAKEALL: add a -C/--check option to enable build checking
thanks to Tom Rini for the good idea.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Kim Phillips [Fri, 21 Sep 2012 12:28:17 +0000 (12:28 +0000)]
add check infrastructure, default sparse
Add support for running source code checkers on u-boot source, e.g.,
using sparse to aid with typechecking. This comes in especially
handy as SoC vendors mix and match cores and devices with different
endianness, thus here we add CHECK_ENDIAN to the otherwise linux
kernel default CHECKFLAGS.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Pavel Herrmann [Thu, 27 Sep 2012 23:18:04 +0000 (23:18 +0000)]
sata.h: Make all sata/ata drivers include <sata.h>
- block_dev_desc_t says that block_(read|write) take lbaint_t for blkcnt
not ulong.
- We also move the extern of sata_dev_desc into <sata.h>
- Remove now duplicate declarations from driver-specific headers.
Signed-off-by: Tom Rini <trini@ti.com>
Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
Tom Rini [Sat, 29 Sep 2012 14:36:43 +0000 (07:36 -0700)]
ide.h: Make ide_(read|write) match block_dev_desc_t block_(read|write)
block_dev_desc_t says that block_(read|write) take lbaint_t for blkcnt
not ulong
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Sat, 29 Sep 2012 14:57:25 +0000 (07:57 -0700)]
sil_sata: Make sata_write() comply with <part.h>
sata_write() takes a const void as the last argument. Fixing this means
we also need to make ata_low_level_rw_lba{28,48} also take a const void.
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Sat, 29 Sep 2012 14:57:04 +0000 (07:57 -0700)]
sata_dwc: Make sata_write() use const void, per <part.h>
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Sat, 29 Sep 2012 14:56:31 +0000 (07:56 -0700)]
pata_bfin: Make sata_{read,write}() comply with <part.h>
These functions take lbaint_t for blkcnt.
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Sat, 29 Sep 2012 14:55:11 +0000 (07:55 -0700)]
fsl_sata: Make sata_{read,write}() comply with <part.h>
- sata_write() takes a const void as the last argument. Fixing this
means we also need to make ata_low_level_rw_lba{28,48} also take a
const void.
- Both sata_{read,write} take lbaint_t for blkcnt and ulong for blknr
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Sat, 29 Sep 2012 14:53:06 +0000 (07:53 -0700)]
dwc_ahsata: Make sata_write() comply with <part.h>
sata_write() takes a const void as the last argument. Fixing this means
we also need to make ata_low_level_rw_lba{28,48} also take a const void.
Acked-by: Stefano Babic <sbabic@denx.de>
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Sat, 29 Sep 2012 14:52:48 +0000 (07:52 -0700)]
ata_piix: sata_write must take a const void argument.
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Sat, 29 Sep 2012 14:35:12 +0000 (07:35 -0700)]
ata_piix: Fix checkpatch issues
While in here also:
- Switch to debug from custom PRINTF for debugging.
- Use mdelay rather than custom msleep.
Signed-off-by: Tom Rini <trini@ti.com>
Lukasz Dalek [Tue, 2 Oct 2012 15:04:33 +0000 (17:04 +0200)]
usb.h: Add udc_disconnect prototype to usb.h
PXA25x gadget implements common function usb_disconnect().
This patch adds this function prototype into usb.h for boards using it.
Signed-off-by: Lukasz Dalek <luk0104@gmail.com>
Lukasz Dalek [Tue, 2 Oct 2012 15:04:32 +0000 (17:04 +0200)]
pxa25x: Add support for USB ethernet gadget
Add to pxa25x based devices support for USB ethernet gadget. This is a
port of pxa25x UDC driver from Linux kernel.
Signed-off-by: Lukasz Dalek <luk0104@gmail.com>
Lukasz Dalek [Tue, 2 Oct 2012 15:04:31 +0000 (17:04 +0200)]
usbether: Removed DEV_CONFIG_{CDC,SUBSET}
Removed DEV_CONFIG_CDC and DEV_CONFIG_SUBSET and replaced it with
CONFIG_USB_ETH_CDC and CONFIG_USB_ETH_SUBSET.
Signed-off-by: Lukasz Dalek <luk0104@gmail.com>
Lukasz Dalek [Tue, 2 Oct 2012 15:04:30 +0000 (17:04 +0200)]
usbether: Define CONFIG_USB_ETH_{CDC,SUBSET}
Introduced CONFIG_USB_ETH_CDC and CONFIG_USB_ETH_SUBSET as preparation
for removal DEV_CONFIG_CDC and DEV_CONFIG_SUBSET
Signed-off-by: Lukasz Dalek <luk0104@gmail.com>
Lukasz Dalek [Tue, 2 Oct 2012 15:04:29 +0000 (17:04 +0200)]
usbether: Fixed bug when using with PXA25X chips
PXA25X chips don't support alternate settings so driver uses non-CDC
driver.
But only code defined between DEV_CONFIG_CDC signals that network is up.
This patch is fixing this bug by signaling that network is up after USB
SET_INTERFACE request.
Signed-off-by: Lukasz Dalek <luk0104@gmail.com>
Lucas Stach [Sun, 30 Sep 2012 22:44:35 +0000 (00:44 +0200)]
tegra20: add USB ULPI init code
This adds the required code to set up a ULPI USB port. It is
mostly a port of the Linux ULPI setup code with some tweaks
added for more correctness, discovered along the way of
debugging this.
To use this both CONFIG_USB_ULPI and CONFIG_USB_ULPI_VIEWPORT
have to be set in the board configuration file.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Lucas Stach [Sun, 30 Sep 2012 22:44:34 +0000 (00:44 +0200)]
usb: ulpi: add indicator configuration function
Allows for easy configuration of the VBUS indicator related ULPI
config bits.
Also move the external indicator setup from ulpi_set_vbus() to
the new function.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Lucas Stach [Thu, 27 Sep 2012 22:26:19 +0000 (00:26 +0200)]
usb: ehci: don't print debug output
This is clearly some sort of debug output and should not
be printed during normal operation.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Lucas Stach [Tue, 25 Sep 2012 22:14:37 +0000 (00:14 +0200)]
tegra20: port to new ehci interface
EHCI interface now supports more than one controller. Wire up our usb functions
to use this new interface.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Lucas Stach [Tue, 25 Sep 2012 22:14:36 +0000 (00:14 +0200)]
usb: add support for multiple usb controllers
Allows to initialize more than one USB controller at once.
v2: print message when controller stop fails
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Reviewed-by: Marek Vasut <marex@denx.de>
Lucas Stach [Tue, 25 Sep 2012 22:14:35 +0000 (00:14 +0200)]
usb: ehci: rework to take advantage of new lowlevel interface
Kill off ehci-core.h
It was used to specify some static controller data. To support more than
one controller being active at any time we have to carry the controller
data ourselfes. Change the ehci interface accordingly.
NOTE: OMAP implemented the ehci stuff a bit backwards and should be fixed
to do the same thing as other platforms. But the change for now is at least
compile clean.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Reviewed-by: Marek Vasut <marex@denx.de>
Lucas Stach [Tue, 25 Sep 2012 22:14:34 +0000 (00:14 +0200)]
usb: lowlevel interface change to support multiple controllers
Carry an index in the lowlevel usb functions to make specify the
respective usb controller.
Also pass through an controller struct from lowlevel_init to the
creation of the root usb device of this controller.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Reviewed-by: Marek Vasut <marex@denx.de>
Igor Grinberg [Fri, 28 Sep 2012 10:04:46 +0000 (12:04 +0200)]
pmc405de and zeus: remove the env_ptr externs
The env_ptr is already declared in environment.h, so there is no need to
redeclare in board files (especially after including the environment.h)
Remove those declarations.
Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Stefan Roese <sr@denx.de>
Acked-by: Matthias Fuchs <matthias.fuchs@esd.eu>
Stefan Roese [Wed, 19 Sep 2012 13:18:52 +0000 (15:18 +0200)]
ppc4xx: Remove AP1000 board support
As the board seems to be unmaintained for some time, lets remove
the support in mainline completely.
Signed-off-by: Stefan Roese <sr@denx.de>
Cc: James MacAulay <james.macaulay@amirix.com>
Acked-by: Marek Vasut <marex@denx.de>
Stefan Roese [Wed, 19 Sep 2012 13:18:51 +0000 (15:18 +0200)]
ppc4xx: Remove ML2 board support
As the board seems to be unmaintained for some time, lets remove
the support in mainline completely.
Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Peter De Schrijver <p2@mind.be>
Acked-by: Marek Vasut <marex@denx.de>
Stefan Roese [Wed, 19 Sep 2012 12:33:52 +0000 (14:33 +0200)]
ppc4xx: Remove IOP480 support
Since the IOP480 (PPC401/3 variant from PLX) is only used on 2
boards that are not actively maintained, lets remove support
for it completely. This way the ppc4xx code will get a bit cleaner.
Signed-off-by: Stefan Roese <sr@denx.de>
Acked-by: Matthias Fuchs <matthias.fuchs@esd.eu>
Acked-by: Marek Vasut <marex@denx.de>
Marek Vasut [Sun, 16 Sep 2012 16:54:22 +0000 (18:54 +0200)]
serial: Enhance the manual relocation
Enhance the manual relocation of drivers operations structure by
checking if the entries are NULL and increment them only if they
are not. This allows for setting any entry to NULL and it will
survive the manual relocation.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Tom Rini <trini@ti.com>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Stefan Roese <sr@denx.de>
Marek Vasut [Fri, 14 Sep 2012 21:46:48 +0000 (23:46 +0200)]
serial: Compile drivers/serial/serial.c by default
Compile drivers/serial/serial.c by default both into SPL and into
non-SPL builds, since CONFIG_SERIAL_MULTI is now the default state.
Also having common/serial.c in by default now, it's pointless to keep
-DCONFIG_SERIAL_MULTI in CPPFLAGS any longer, so remove it as well.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Tom Rini <trini@ti.com>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Stefan Roese <sr@denx.de>
Marek Vasut [Fri, 14 Sep 2012 21:45:51 +0000 (23:45 +0200)]
serial: Remove CONFIG_SERIAL_MULTI from remaining sources
Remove the parts depending either on disabled CONFIG_SERIAL_MULTI
or ifdefs around CONFIG_SERIAL_MULTI parts since CONFIG_SERIAL_MULTI
is now enabled by default.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Tom Rini <trini@ti.com>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Stefan Roese <sr@denx.de>
Marek Vasut [Fri, 14 Sep 2012 21:44:09 +0000 (23:44 +0200)]
serial: Remove CONFIG_SERIAL_MULTI from serial drivers
Remove the support for not-CONFIG_SERIAL_MULTI part from serial
port drivers and some board files. Since CONFIG_SERIAL_MULTI is
now enabled by default, that part is a dead code. Remove it.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Stefan Roese <sr@denx.de>
Signed-off-by: Tom Rini <trini@ti.com>
Marek Vasut [Fri, 14 Sep 2012 21:39:52 +0000 (23:39 +0200)]
serial: Remove CONFIG_SERIAL_MULTI from config files
Remove any notion of CONFIG_SERIAL_MULTI from board config files.
Since CONFIG_SERIAL_MULTI is now enabled by default, it is useless
to specify this config option in the board config files. Therefore
remove it.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Stefan Roese <sr@denx.de>
Signed-off-by: Tom Rini <trini@ti.com>
Marek Vasut [Fri, 14 Sep 2012 21:20:05 +0000 (23:20 +0200)]
serial: Unconditionally enable CONFIG_SERIAL_MULTI
Enable CONFIG_SERIAL_MULTI for all builds of U-Boot. That includes
both SPL builds and non-SPL builds, everything. To avoid poluting
this patch with removal of ifdef-endif constructions containing
CONFIG_SERIAL_MULTI, the CONFIG_SERIAL_MULTI is temporarily added
into CPPFLAGS in config.mk . This will be again removed in following
patch.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Tom Rini <trini@ti.com>
Marek Vasut [Sat, 29 Sep 2012 16:16:28 +0000 (18:16 +0200)]
serial: Move common/serial.c to drivers/serial/
Move the common/serial.c into driver/serial/, since this file
provides serial multiplexing functions and it is imperative to
be linked with libserial.o instead of libcommon.o.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Tom Rini <trini@ti.com>