summaryrefslogtreecommitdiff
path: root/board/keymile/km_arm/km_arm.c
AgeCommit message (Collapse)Author
2018-05-07SPDX: Convert all of our single license tags to Linux Kernel styleTom Rini
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-08-16env: Rename getenv/_f() to env_get()Simon Glass
We are now using an env_ prefix for environment functions. Rename these two functions for consistency. Also add function comments in common.h. Quite a few places use getenv() in a condition context, provoking a warning from checkpatch. These are fixed up in this patch also. Suggested-by: Wolfgang Denk <wd@denx.de> Signed-off-by: Simon Glass <sjg@chromium.org>
2017-08-16env: Rename setenv() to env_set()Simon Glass
We are now using an env_ prefix for environment functions. Rename setenv() for consistency. Also add function comments in common.h. Suggested-by: Wolfgang Denk <wd@denx.de> Signed-off-by: Simon Glass <sjg@chromium.org>
2017-05-15i2c: keymile: Drop use of CONFIG_I2C_HARDSimon Glass
Drop use of this long-deprecated option. Signed-off-by: Simon Glass <sjg@chromium.org>
2015-11-18arm/km_kirkwood: fix the #ifdef for KM_COGE5UN dip switchValentin Longchamp
There was a small typo for KM_COGE5UN that resulted in the dip switch not to behave as expected. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
2015-11-18arm/mgcoge3un: check dip_switch at startupHolger Brunck
Similar to kmcoge5un we need to check the dip switch at startup connected to the kirkwood at MPP43. If it's set we need to set the actual_bank to zero to boot from SW bank zero. Additional to kmcoge5un we need to check also the pin in misc_init to decide wether we wait for the ne to start or not. If the dip_switch is set we don't wait and continue immediately. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
2015-11-18arm/km: Fix LED configuration for 88E1118R PHY (PIGGY3)Tobias Müller
Configure PHY LED register for Marvell 88E1118R PHY used on PIGGY3 to match with printed descriptions on PCB Signed-off-by: Tobias Müller <Tobias.Mueller@keymile.com> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> [trini: Fix typo, CRTL_PAGE -> CTRL_PAGE] Signed-off-by: Tom Rini <trini@konsulko.com>
2015-02-16KM/IVM: remove ivm_read_eeprom(void)Valentin Longchamp
This is not used anymore since the procedure was split into a simple read function and a later alaysis. The ivm_read_eeprom name is now used for the previous ivm_simple_read_eeprom function. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
2015-02-16kirkwood/km_arm: read the IVM eeprom earlierValentin Longchamp
This allows to define the ethaddr env variable according to the the IVM content by reading the IVM in misc_init_r. Later, when HUSH is available the content read earlier is analyzed to populate some non env variables. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
2014-10-23arm: kirkwood: Change naming of dram functions from km_foo() to mvebu_foo()Stefan Roese
Additionally the SDRAM address decoding register address is not hard coded in the C code any more. A define is introduced for this base address. This makes is possible to use those gpio functions from other MVEBU SoC's as well. Signed-off-by: Stefan Roese <sr@denx.de> Tested-by: Luka Perkov <luka@openwrt.org> Acked-by: Prafulla Wadaskar <prafulla@marvell.com>
2014-10-23arm: marvell: Extract kirkwood gpio functions into new common file gpio.cStefan Roese
This makes is possible to use those gpio functions from other MVEBU SoC's as well. Signed-off-by: Stefan Roese <sr@denx.de> Tested-by: Luka Perkov <luka@openwrt.org> Acked-by: Prafulla Wadaskar <prafulla@marvell.com>
2014-10-23arm: marvell: Move arch/kirkwood.h to arch/soc.hStefan Roese
This move makes is possible to use this header not only from kirkwood platforms but from all Marvell mvebu platforms. Signed-off-by: Stefan Roese <sr@denx.de> Tested-by: Luka Perkov <luka@openwrt.org> Acked-by: Prafulla Wadaskar <prafulla@marvell.com>
2014-02-13arm/km: introduce kmsugp1 targetGerlando Falauto
KMSUGP1 is from a u-boot perspective (almost) identical to KMNUSA. The only difference is that the PCIe reset is connected to Kirkwood pin MPP7_PEX_RST_OUTn, we use a dedicated config flag KM_PCIE_RESET_MPP7. Such pin should theoretically be handled by the PCIe subsystem automatically, but this turned out not to be the case. So simply configure this PIN as a GPIO and issue a pulse manually. Signed-off-by: Gerlando Falauto <gerlando.falauto@keymile.com> Cc: Karlheinz Jerg <karlheinz.jerg@keymile.com> Cc: Valentin Longchamp <valenting.longchamp@keymile.com> Cc: Holger Brunck <holger.brunck@keymile.com> Acked-by: Valentin Longchamp <valentin.longchamp@keymile.com>
2014-02-13arm/km: fix wrong error handlingHolger Brunck
miiphy_read and miiphy_write are returning 0 on success. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Acked-by: Valentin Longchamp <valentin.longchamp@keymile.com>
2014-02-13arm/km: make local function startup_allowed staticHolger Brunck
Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Acked-by: Valentin Longchamp <valentin.longchamp@keymile.com>
2014-02-13arm/km: drop unneeded defineHolger Brunck
CONFIG_BOOTCOUNT_LIMIT is used on all boards from this board series. So remove this unneeded define. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Acked-by: Valentin Longchamp <valentin.longchamp@keymile.com>
2013-10-14Coding Style cleanup: remove trailing white spaceWolfgang Denk
Signed-off-by: Wolfgang Denk <wd@denx.de>
2013-07-24Merge branch 'master' of git://git.denx.de/u-boot-i2cTom Rini
The sandburst-specific i2c drivers have been deleted, conflict was just over the SPDX conversion. Conflicts: board/sandburst/common/ppc440gx_i2c.c board/sandburst/common/ppc440gx_i2c.h Signed-off-by: Tom Rini <trini@ti.com>
2013-07-24Add GPL-2.0+ SPDX-License-Identifier to source filesWolfgang Denk
Signed-off-by: Wolfgang Denk <wd@denx.de> [trini: Fixup common/cmd_io.c] Signed-off-by: Tom Rini <trini@ti.com>
2013-07-23i2c, soft-i2c: switch to new multibus/multiadapter supportHeiko Schocher
- added to soft_i2c driver new multibus/multiadpater support - adapted all config files, which uses this driver Signed-off-by: Heiko Schocher <hs@denx.de> Cc: Simon Glass <sjg@chromium.org> Cc: Stephen Warren <swarren@wwwdotorg.org>
2013-06-10arm/km: make local functions staticHolger Brunck
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
2013-01-09kirkwood: make MPP arrays static constAlbert ARIBAUD
This saves stack and code memory for local copy, and consumes initialized data memory. For 22 of the 29 kirkwood-based boards, this results in a global saving of about 30 bytes. For 7 of them, it results in an increase of 6 to 14 bytes. Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
2013-01-09arm/km: remove duplicate codeValentin Longchamp
This patch removes 2 small portions of board specific code that are duplicated with common ARM code and thus unnecessary. These 2 portions of code concern the mach id that is given by u-boot to the Linux kernel to identify the system's MACH. The first one was the possibility to change the MACH thanks to the 'mach_id' enviroment variable. This is possible thanks to the 'machid' env variable (see arch/arm/lib/bootm.c:boot_jump_linux()). The seconde one is the setting of the bi_arch_number. This is already done in arch/arm/lib/board.c:board_init_f() since km_arm.h does #define CONFIG_MACH_TYPE. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Holger Brunck <holger.brunck@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com> Acked-by: Prafulla Wadaskar <Prafulla@marvell.com>
2012-10-03arm/km: add mv88e6352 configuration for kmnusaValentin Longchamp
The kmnusa board uses a mv88e6352 switch that is connected to the main eth interface of the kirkwood. Therefore the switch must be configured so that the kirkwood's egiga eth inferface can be used. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> Cc: Holger Brunck <holger.brunck@keymile.com> Cc: Prafulla Wadaskar <prafulla@marvell.com> Acked-By: Prafulla Wadaskar <prafulla@marvell.com>
2012-10-03arm/km: use kw_sdram_size_adjust to adjust SDRAM sizeHolger Brunck
Some boards may differ only in the SDRAM size. This function allows to fix the size accordingly and we can use the same u-boot binary for both boards. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Gerlando Falauto <gerlando.falauto@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com> cc: Valentin Longchamp <valentin.longchamp@keymile.com>
2012-09-03arm/km: remove unused codeHolger Brunck
For some reasons we had an own implementaion of dram_init and dram_init_banksize. This is not needed anymore, use the standard kirkwood functions instead. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com> cc: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Gerlando Falauto <gerlando.falauto@keymile.com> Acked-By: Prafulla Wadaskar <prafulla@marvell.com>
2012-09-01Consolidate bootcount code into drivers/bootcountStefan Roese
This patch moves all bootcount implementations into a common directory: drivers/bootcount. The generic bootcount driver is now usable not only by powerpc platforms, but others as well. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Heiko Schocher <hs@denx.de> Cc: Valentin Longchamp <valentin.longchamp@keymile.com> Cc: Christian Riesch <christian.riesch@omicron.at> Cc: Manfred Rudigier <manfred.rudigier@omicron.at> Cc: Mike Frysinger <vapier@gentoo.org> Cc: Rob Herring <rob.herring@calxeda.com> Cc: Reinhard Meyer <reinhard.meyer@emk-elektronik.de> Tested-by: Valentin Longchamp <valentin.longchamp@keymile.com> Tested-by: Christian Riesch <christian.riesch@omicron.at> Acked-by: Rob Herring <rob.herring@calxeda.com> Acked-by: Mike Frysinger <vapier@gentoo.org>
2012-07-07arm/km: remove calls to kw_gpio_* in board_early_init_fHolger Brunck
These functions tried to access two static tables before relocation (board_early_init_f is executed before relocation). But these static tables lie in the bss section which is not valid before relocation. These accesses then overwrote some parts of u-boot binary before it was relocated. For the kmnusa build, this results in a corrupted important env variable (bootcmd) but it may be that some other parts of the u-boot binary are corrupted. This patch solves this problem by moving all the kw_gpio_* calls to board_init, which should be early enough in the boot sequence. The only calls that could not be moved is the one for the SOFT (bitbang) I2C, and they have been replaced by a direct access to the GPIO dataout Control register to set the two GPIOs as output. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Holger Brunck <holger.brunck@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com>
2012-07-07arm/km: add implementation for read_dip_switchThomas Herzmann
Add a function to read the dip_switch on kmcoge5un. If the switch is set the actual_bank is set to 0 and this SW is booted. Signed-off-by: Thomas Herzmann <thomas.herzmann@keymile.com> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
2012-07-07arm/km: redefine piggy 4 reg names to avoid conflictsValentin Longchamp
Some very similar #defines for reg addresses are used in a later patch (managed_switch support for km_arm). Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Holger Brunck <holger.brunck@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com>
2012-07-07arm/km: enable BOCO2 FPGA download supportValentin Longchamp
This adds a first support of the FPGA download for a PCIe FPGA based on the BOCO2 CPLD. This takes place in 3 steps, all done accessing the SPICTRL reg of the BOCO2: 1) start the FPGA config with an access to the FPGA_PROG bit 2) later in the boot sequence, wait for the FPGA_DONE bit to toggle to 1 for the end of the FPGA configuration (with a timeout) 3) reset the FPGA 4) finally remove the access to its config EEPROM from the FPGA so that the CPU can update the FPGA configuration when the kernel is running The boards with a PCIe FPGA but without BOCO2 still are supported. The config option name is CONFIG_KM_FPGA_CONFIG Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> Signed-off-by: Holger Brunck <holger.brunck@keymile.com> cc: Gerlando Falauto <gerlando.falauto@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com>
2012-07-07arm/km: remove portl2.h and use km_kirkwood insteadHolger Brunck
The additional headerfile is unneeded here, we can use the generic km_kirkwood.h instead. And we can use the better config option KM_PIGGY4_88E6061 for the specific features for boards with this design in km_arm.c. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Gerlando Falauto <gerlando.falauto@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com>
2012-07-07arm/km: convert mgcoge3un target to km_kirkwoodHolger Brunck
Use the generic header km_kirkwood.h and get rid of the board specific header. changes for v2: rebased because of changes in other patches Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Gerlando Falauto <gerlando.falauto@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com>
2012-07-07arm/km: add kmcoge5un board supportHolger Brunck
For u-boot this board is similar to mgcoge3un. But some differences are present. We have a different SDRAM on it and therefore a new SDRAM config file. Additionaly this board has a direct MAC/MAC connection from the kirkwood to a marvell simple switch without a phy inbetween, this needs a new configuration for the mvgbe driver. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Gerlando Falauto <gerlando.falauto@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com>
2012-07-07arm/km: add kmnusa board supportHolger Brunck
This board is similar to portl2, but it has the u-boot environment in a SPI NOR flash and not in an i2c eeprom like portl2 have. Some other details: - IVM EEPROM is at adress: pca9547:70:9 - PCI is enabled - PIGGY4 is connected via MV88E6352 simple switch. There is no phy between the simple switch and the kirkwood. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Gerlando Falauto <gerlando.falauto@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com>
2012-07-07arm/km: use spi claim bus to switch between SPI and NANDValentin Longchamp
We overwrite these weak functions from the kirkwood spi code to use our own method to be able to switch between the SPI NOR and the NAND flash. This is needed e.g. to update the u-boot. The former command do_spi_toggle can therefore be removed. And the usage of this command is removed from the u-boot update command in the u-boot environment. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com> cc: Holger Brunck <holger.brunck@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com>
2012-07-07kirkwood: fix calls to kirkwood_mpp_confValentin Longchamp
With the new second save argument introduced by the previous patch, all the calls to the function had to be fixed. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Holger Brunck <holger.brunck@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com>
2012-07-07arm/km: use ARRAY_SIZE macroHolger Brunck
Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Gerlando Falauto <gerlando.falauto@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com>
2012-02-12arm/km: checkpatch cleanupHolger Brunck
Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Cc: Valentin Longchamp <valentin.longchamp@keymile.com> Cc: Prafulla Wadaskar <prafulla@marvell.com> Acked-by: Heiko Schocher <hs@denx.de>
2011-11-03arm/km: adapt bootcounter evaluationHolger Brunck
The bootcounter (stored in the RAM) is not enough protected with the 4 Bytes BOOTCOUNT_MAGIC against bit errors due to short power loss or holding a system in RESET. It has been seen, that the bootcounter value has been changed due to a bit flip on a system holding in RESET, but the BOOTCOUNT_MAGIC was still valid. A bit pattern with 4000 bytes (after BOOTCOUNT_MAGIC) has been implemented, which should be enough to detect a bit error. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com>
2011-11-03arm/km: trigger reconfiguration for the Xilinx FPGAHolger Brunck
The Xilinx FPGA must be reconfigured each time the unit reboots. The FPGA is connected to the GPIO pin 39 from kirkwood. This patch triggers this pin for km_kirkwood_pci targets. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com>
2011-11-03ARM: Reintroduce MACH_TYPE_KM_KIRKWOOD for keymile ARM boardsValentin Longchamp
We got dropped from Linux mach-types.h because of a lack of mainline support and this is needed since the last Linux/u-boot mach-types synchro. This patch also defines CONFIG_MACH_TYPE for all keymile boards, as this is a mandatory CONFIG for ARM boards now. The initialization of gd->bd->bi_arch_number is removed form km_arm.c, our board file. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com>
2011-11-03arm/km/mgcoge3un: enhance "waitforne" featureHolger Brunck
The mgcoge3un waits to be released from mgcoge3ne at startup. This patch enhances this feature with the possibility to interrupt this wait if a key is pressed. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com>
2011-10-27ARM: kirkwood: reduce dependence of including platform fileLei Wen
For files like the drivers/serial/serial.c, it must include the platform file, as the CONFIG_SYS_NS16550_COM1 must reference to the definition in the platform definition files. Include the platform definition file in the config file, so that it would decouple the dependence for the driver files. Signed-off-by: Lei Wen <leiwen@marvell.com>
2011-10-24Revert "km_arm: enable POST for these boards"Wolfgang Denk
This reverts commit a2da616311151ecfab8b8fcc510686fc3c0c9a21. THis was applied by accident - a more recent version of this change was already present, see commit 9400f8f 2011-10-05 22:03:11 +0200 km_arm: enable POST for these boards Signed-off-by: Wolfgang Denk <wd@denx.de>
2011-10-22km_arm: enable POST for these boardsValentin Longchamp
The current km_arm boards have a Power-On test jumper. When this jumper is set, this triggers some Power-On tests on the board. This patch enables the support of this jumper for starting the memory_regions test when the jumper is set. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Cc: Prafulla Wadaskar <prafulla@marvell.com>
2011-10-05km_arm: enable POST for these boardsValentin Longchamp
The current km_arm boards have a Power-On test jumper. When this jumper is set, this triggers some Power-On tests on the board. This patch enables the support of this jumper for starting the memory_regions test when the jumper is set. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Cc: Prafulla Wadaskar <prafulla@marvell.com>
2011-07-17Remove volatile qualifier in get_ram_size() callsAlbert ARIBAUD
Checkpatch.pl complains about the volatile qualifier in calls to get_ram_size(). Remove this qualifier in the prototype and in the calls where it is useless, and leave it only in the function body where it is needed. Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
2011-07-04arm/km: add support for portl2 boardValentin Longchamp
This adds support for the keymile Kirkwood BEC portl2 board. This board relies on the km_arm (km_kirkwood) BEC. The egiga driver is configured for a 100M full-duplex, A/N off connnection to the backplane. This board has always ethernet present, because it is connected to the marvell switch similar to mgcoge3un. The reset_phy functionality is also the same to mgcoge3un. Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> Signed-off-by: Holger Brunck <holger.brunck@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com> cc: Heiko Schocher <hs@denx.de>
2011-07-04arm/km: ethernet support for mgcoge3unValentin Longchamp
The phy is also configured with "RGMII clock transitions when data stable" and "Class A driver for the direct backplane connection". Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> Signed-off-by: Holger Brunck <holger.brunck@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com> cc: Heiko Schocher <hs@denx.de>