summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeLines
* ARM: uniphier: add support for PH1-Pro4 Ace and Sanji boardsMasahiro Yamada2016-02-14-0/+223
| | | | | | | | | | Initial commit for PH1-Pro4 Ace and Sanji boards. Note: There are two variants for the Ace board in terms of the amount of DDR memory; 1GB or 2GB. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: dts: uniphier: enable I2C channel 2 of ProXstream2 Gentil boardMasahiro Yamada2016-02-14-0/+5
| | | | | | This is used for on-board inter-connection. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: dts: uniphier: add EEPROM node for ProXstream2 Gentil boardMasahiro Yamada2016-02-14-0/+6
| | | | | | | This board has an EEPROM connected to the I2C channel 0 of the SoC. Its slave address is 0x54. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: drop unnecessary "bootm_low" environment defineMasahiro Yamada2016-02-14-1/+0
| | | | | | | | | | | This environment define has been here to work around the LMB allocation error introduced by commit 9c11135ce053 ("image: fix getenv_bootm_size() function"). It is no longer needed because the root cause was fixed by commit 0cb389dd1a38 ("image: fix getenv_bootm_size() function again"). Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: adjust DDR clock delay line for ProXstream2Masahiro Yamada2016-02-14-2/+10
| | | | | | | | It turned out that DDR channel 2 was not working on ProXstream2 Vodka board. Add the missing ACBLDR0 register setting to adjust the delay between the clock lines and the address/command lines. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: move cmd_ddrmphy.c to fix build errorMasahiro Yamada2016-02-14-0/+0
| | | | | | | If CONFIG_CMD_DDRMPHY_DUMP is enabled, the build fails. Fixes: 93d92d46cd01 ("ARM: uniphier: add dump command for DDR Multi PHY registers") Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: fix makefiles to build cmd_ddr(m)phy.cMasahiro Yamada2016-02-14-1/+8
| | | | | | | | The U-Boot proper building needs to descend arch/arm/mach-uniphier/dram to build these commands. Fixes: 93d92d46cd01 ("ARM: uniphier: add dump command for DDR Multi PHY registers") Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: remove unused header mio-regs.hMasahiro Yamada2016-02-14-20/+0
| | | | | | | | | This header is no longer used. This is the last file in arch/arm/mach-uniphier/include/mach/. At last, I've succeeded in eliminating the mach directory. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: drop unneeded EHCI pin mux settingsMasahiro Yamada2016-02-14-25/+0
| | | | | | | These pin mux settings are cared by the pinctrl drivers. Remove the ad-hoc code. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* usb: remove UniPhier EHCI driverMasahiro Yamada2016-02-14-83/+0
| | | | | | | | | | Now, all this driver does can be covered by the generic EHCI driver (drivers/usb/host/ehci-generic.c). UniPhier SoCs have switched to use it. Delete this driver rather than bothering to convert it to Driver Model. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Marek Vasut <marex@denx.de>
* ARM: uniphier: switch over to generic EHCI driverMasahiro Yamada2016-02-14-8/+12
| | | | | | | | | | | | The UniPhier EHCI driver (drivers/usb/host/ehci-uniphier.c) does nothing special but set the base address and handle reset/clock. Since commit 4feefdcfe916 ("usb: add clock support for generic EHCI"), the generic one (drivers/usb/host/ehci-generic.c) can do those, too. We no longer need to stick to the dedicated driver. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: dts: uniphier: add clocks properties to EHCI nodesMasahiro Yamada2016-02-14-0/+12
| | | | | | This allows the EHCI driver to get clocks from device tree. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: dts: uniphier: add device nodes for MIO control blockMasahiro Yamada2016-02-14-0/+44
| | | | | | | This block provides clock and reset control for MIO (Media I/O) hardware blocks such as USB2.0, SD card, eMMC, etc. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: dts: uniphier: add device nodes for Peripheral control blockMasahiro Yamada2016-02-14-0/+36
| | | | | | | This block provides clock and reset control for peripherals such as UART, I2C, IC card, etc. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: dts: uniphier: add device nodes for System Control blocksMasahiro Yamada2016-02-14-0/+36
| | | | | | These are mainly used for controlling clocks and resets. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: dts: uniphier: add reference clock nodesMasahiro Yamada2016-02-14-0/+33
| | | | | | | | | | Add master clock nodes generated by crystal oscillators. PH1-sLD3, PH1-LD4: 24.576 MHz PH1-Pro4, ProXstream2: 25.000 MHz PH1-Pro5: 20.000 MHz Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* clk: uniphier: add Media I/O clock driver for UniPhier SoCsMasahiro Yamada2016-02-14-0/+414
| | | | | | | This is the initial commit for the UniPhier clock drivers. Currently, only the Media I/O clock is supported. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: support USB boot mode for ProXstream2 / PH1-LD6b SoCMasahiro Yamada2016-02-14-2/+22
| | | | | | | | | | | | | | | | | | The USB boot code is too fat and complicated to be included in SPL (at least for now). So, it was implemented as a separate project (what we call USB-loader). The expected boot sequence is as follows: Boot ROM -> USB-loader -> SPL -> U-Boot proper The USB-loader loads the SPL and U-Boot proper from a USB memory onto the locked L2 cache. Then, SPL needs to copy the U-Boot proper to DRAM, so this mode looks like a NOR boot from the view of SPL. However, we want to distinguish between (genuine) NOR boot and USB boot in some places. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: add missing static qualifierMasahiro Yamada2016-02-14-1/+1
| | | | | | This function is for local use in the file. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: create early page table at run-timeMasahiro Yamada2016-02-14-38/+94
| | | | | | | | | | | | | | | | | | UniPhier SoCs are not equipped with dedicated on-chip SRAM. Instead, locked outer cache is used as RAM area during the early boot stage where DRAM is not ready yet. This effectively means MMU must be always enabled while we are in SPL. Currently, the SPL image for UniPhier SoCs contains the page table statically defined at compile time. It has been a burden because the 16KB page table occupies a quarter memory footprint of the 64KB SPL image. Finally, there is no more room to implement new features in SPL. Setting aside the NOR boot mode, this issue can be solved by creating the page table onto RAM at run time. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: change stack pointer address for SPLMasahiro Yamada2016-02-14-5/+2
| | | | | | | | | | | | | | | | | No special reason for the current stack address 0x0ff08000. Change it to 0x00100000 to simplify the init_page_table. There are two types of SoCs in terms of the load address of SPL. [1] PH1-sLD3, PH1-LD4, PH1-sLD8 SPL is loaded at 0x00040000-0x0004ffff [2] PH1-Pro4, PH1-Pro5, ProXstream2, PH1-LD6b SPL is loaded at 0x00100000-0x0010ffff The new stack area (0x000f8000-0x00100000) should be safe for all the cases. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* spl: define BOOT_DEVICE_USBMasahiro Yamada2016-02-14-0/+1
| | | | | | This enum is referenced from common/spl/spl.c. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: update U-Boot file names in workflowMasahiro Yamada2016-02-14-5/+5
| | | | | | | | | | | | | | Since commit ad1ecd2063da ("fdt: Build a U-Boot binary without device tree") and commit 03c25bcd263a ("fdt: Build an SPL binary without device tree"), we can use shorter file names for the output images. The default configuration for UniPhier SoCs enables CONFIG_OF_SEPARATE and CONFIG_SPL_OF_CONTROL. In this case, spl/u-boot-spl.bin is the same as spl/u-boot-spl-dtb.bin. Likewise, u-boot.img is the same as as u-boot-dtb.img. So, this change of the flow has no impact. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* ARM: uniphier: support some more DRAM use cases on PH1-Pro4 boardsMasahiro Yamada2016-02-14-27/+53
| | | | | | | Some of PH1-Pro4 boards are equipped with larger amount of DRAM than the reference board. Add UMC settings to support them. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: fix nfsboot commandMasahiro Yamada2016-02-14-2/+8
| | | | | | This is no longer working, so needs reworking. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: factor out common part of boot commandsMasahiro Yamada2016-02-14-11/+10
| | | | | | | | The environment "bootm_low" is updated before the "bootz" command. This is common for all the boot modes (NOR, NAND, TFTP, etc.), so can be factored out. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: add default bootm_low to fix FIT bootMasahiro Yamada2016-02-14-0/+1
| | | | | | | | Commit 25d4eb8091f4 ("ARM: uniphier: add bootm_low environment") missed to add "bootm_low" for FIT boot. Set "bootm_low" to the DRAM base address. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* ARM: uniphier: fix NOR boot commandMasahiro Yamada2016-02-14-2/+3
| | | | | | | | | | Commit 89835b3557fe ("ARM: uniphier: allow to run zImage rather than uImage") changed the kernel boot commands. Unlike "bootm", "bootz" does not relocate the kernel image. When the boot device is a NOR flash, the zImage should be copied from the NOR onto the DRAM before it is passed to the "bootz" command. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* Merge branch 'master' of git://git.denx.de/u-boot-videoTom Rini2016-02-11-1/+22
|\
| * video: tegra: Enable the 'lcd' env variable work-aroundSimon Glass2016-02-11-0/+1
| | | | | | | | | | | | | | Enable this option on all tegra boards. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Anatolij Gustschin <agust@denx.de>
| * dm: video: Add a temporary work-around for old stdout varSimon Glass2016-02-11-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | Boards with a saved environment may use 'lcd' in their stdout environment variable, expecting that this will enable output to the LCD. When the board moves to use driver model for video, this will no-longer work. Add a work-around to fix this. A warning messages is printed, and we will remove the work-around at the end of 2016. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Anatolij Gustschin <agust@denx.de> Tested-by: Stephen Warren <swarren@nvidia.com>
| * video: bcm2835: use bus_to_phys() on FB addressStephen Warren2016-02-06-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The FB address is generated by the firmware running on the GPU/VideoCore and is a "bus" address. This address is the other side of an IOMMU from the ARM upon which U-Boot is running. Use bus_to_phys() to convert this to an ARM physical address. Without this, U-Boot seems to work just fine, but once the Linux kernel boots on an RPi2, accessing the FB memory often causes a hard system hang. This is related to: 122426d46e31 ARM: bcm2835: use phys_to_bus() for mbox 5c0beb5c58c8 usb: dwc2: use phys_to_bus/bus_to_phys 79340db7f1f6 ARM: bcm2835: implement phys_to_bus/bus_to_phys Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
* | Revert "common/memsize.c: Simplify RAM size detection"Hans de Goede2016-02-10-21/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | This commit breaks bootup on sunxi boards, the get stuck when running the main u-boot binary at: CPU: Allwinner H3 (SUN8I) I2C: ready DRAM: This reverts commit 8e7cba048baae68ee0916a8f52b4304277328d5e. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* | test/py: capture the entire U-Boot version at bootStephen Warren2016-02-09-8/+3
| | | | | | | | | | | | | | | | | | The existing regex simply ensures that the captured version string doesn't go past the end of a line. We really want to grab as much as possible. Do this by explicitly including a ) character at the end of the regex to match the last character of the version test. Signed-off-by: Stephen Warren <swarren@nvidia.com>
* | test/py: fix off-by-one error in spawn matching codeStephen Warren2016-02-09-1/+1
| | | | | | | | | | | | | | | | A regex match object's .end() value is already the index after the match, not the index of the last character in the match, so there's no need to add 1 to point past the match. Signed-off-by: Stephen Warren <swarren@nvidia.com>
* | test/py: HTML awesome!Stephen Warren2016-02-09-78/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement three improvements to the HTML log file: - Ability to expand/contract sections. All passing sections are contracted at file load time so the user can concentrate on issues requiring action. - The overall status report is copied to the top of the log for easy access. - Add links from the status report to the test logs, for easy navigation. This all relies on Javascript and the jquery library. If the user doesn't have Javascript enabled, or jquery can't be downloaded, the log should look and behave identically to how it did before this patch. A few notes on the diff: - A few more 'with log.section("xxx")' were added, so that all stream blocks are kept within a section block for consistent HTML entity nesting structure. This changed indentation in a few places, making the diff look slightly larger. - HTML entity IDs are cleaned up. We assign simple incrementing integer IDs now, rather than using mangled test names which were possibly invalid. - Sections and streams now use common CSS class names (in addition to the current separate class names) to more easily share the new behaviour. This also reduces the CSS file size since rules don't need to be duplicated. - An "OK" status is logged after some external command executions so that make and flash steps are auto-contracted at log file load time, assuming they passed. Signed-off-by: Stephen Warren <swarren@nvidia.com>
* | test/py: exit(1) if there are problems running py.testStephen Warren2016-02-09-0/+1
| | | | | | | | | | | | | | | | | | | | The test/py/test.py wrapper script catches exceptions thrown when exec()ing py.test in order to print a helpful error message. However, the exception handling code squashes the exception and so the script exits with a non-zero exit code, leading callers to believe that it passed. Fix this. Signed-off-by: Stephen Warren <swarren@nvidia.com>
* | itest: allow map_physmem to return 0 in limited casesStephen Warren2016-02-09-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On some systems, RAM starts at address 0. If the user executes itest against address 0 on such a system, it will call map_physmem(0, ...) which will return 0 back; mapping only changes the address on sandbox. This causes itest to believe map_physmem() has failed, and hence fails the comparison. Fix itest so that it allows map_physmem() to return 0 /if/ the orignal address passed to it was also 0. This fixes "tegra-uboot-flasher flash" on Tegra20. This has the disadvantage that on sandbox, failed mapping attempts for address 0 are not detected. Instead, should the code only call map_physmem() on sandbox? Or, should map_physmem() return its error status some other way. Or, should the special case only be allowed on systems where the base of RAM is 0 somehow? Fixes: 7861204c9af7 ("itest: make memory access work under sandbox") Signed-off-by: Stephen Warren <swarren@nvidia.com>
* | gunzip: remove avail_in recalculationStephen Warren2016-02-09-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current, the following passes: ./u-boot -d arch/sandbox/dts/test.dtb -c 'ut_image_decomp' but the following fails: ./u-boot -d arch/sandbox/dts/test.dtb -c 'ut dm; ut_image_decomp' This is because the gunzip code reads input data beyond the end of its input buffer. In the first case above, this data just happens to be 0, which just happens to trigger gzip to signal the error the decompression unit test expects. In the second case above, the "ut dm" test has written data to the accidentally-read memory, which causes the gzip code to take a different path and so return a different value, which triggers the test failure. The cause of gunzip reading past its input buffer is the re-calculation of s.avail_in in zunzip(), since it can underflow. Not only is the formula non-sensical (it uses the delta between two output buffer pointers to calculate available input buffer size), it also appears to be unnecessary, since the gunzip code already maintains this value itself. This patch removes this re-calculation to avoid the underflow and redundant work. The loop exit condition is also adjusted so that if inflate() has consumed the entire input buffer, without indicating returning Z_STREAM_END (i.e. decompression complete without error), an error is raised. There is still opportunity to simplify the code here by splitting up the loop exit condition into separate tests. However, this patch makes the minimum modifications required to solve the problem at hand, in order to keep the Acked-by: Kees Cook <keescook@chromium.org> diff simple. I am not entirely convinced that the loop in zunzip() is necessary at all. It could only be useful if inflate() can return Z_BUF_ERROR (which typically means that it needs more data in the input buffer, or more space in the output buffer), even though Z_FINISH is set /and/ the full input is available in the input buffer /and/ there is enough space to store the decompressed output in the output buffer. The comment in zlib.h after the prototype of inflate() implies this is never the case. However, I assume there must have been some reason for introducing this loop in the first place, as part of commit "Fix gunzip to work for any gziped uImage size". This patch is similar to the earlier b75650d84d4b "gzip: correctly bounds-check output buffer", which corrected a similar issue for s.avail_out. Cc: Catalin Radu <Catalin@VirtualMetrix.com> Cc: Kees Cook <keescook@chromium.org> Fixes: f039ada5c109 ("Fix gunzip to work for any gziped uImage size") Signed-off-by: Stephen Warren <swarren@nvidia.com>
* | sniper: Drop references to P970Paul Kocialkowski2016-02-08-4/+4
| | | | | | | | | | | | | | | | | | There are various different boards with the same hardware sold as LG Optimus Black, such as P970, P970g and KU5900. Since this port is functional for all variants, it doesn't make sense to keep references to P970. Signed-off-by: Paul Kocialkowski <contact@paulk.fr> Reviewed-by: Tom Rini <trini@konsulko.com>
* | s3c24xx: serial: Remove dead codeDavid Müller (ELSOFT AG)2016-02-08-6/+0
| | | | | | | | Signed-off-by: David Müller <d.mueller@elsoft.ch>
* | doc: Remove any reference to CONFIG_MODEM_SUPPORT, CONFIG_CMD_HWFLOW, ↵David Müller (ELSOFT AG)2016-02-08-100/+0
| | | | | | | | | | | | CONFIG_HWFLOW and friends from the documentation. Signed-off-by: David Müller <d.mueller@elsoft.ch>
* | Remove unused CONFIG_HWFLOW option and associated dead code.David Müller (ELSOFT AG)2016-02-08-35/+0
| | | | | | | | Signed-off-by: David Müller <d.mueller@elsoft.ch>
* | Remove unused CONFIG_CMD_HWFLOW option and associated dead code.David Müller (ELSOFT AG)2016-02-08-31/+0
| | | | | | | | Signed-off-by: David Müller <d.mueller@elsoft.ch>
* | Remove unused CONFIG_MODEM_SUPPORT option and associated dead code.David Müller (ELSOFT AG)2016-02-08-162/+0
| | | | | | | | Signed-off-by: David Müller <d.mueller@elsoft.ch>
* | ARM: rpi: set fdt_high in the default environmentStephen Warren2016-02-08-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | The ARM Linux kernel requires the DT to be in memory accessible early during the boot process. This always happens naturally on the RPi 1, since the maximum memory size of 512MiB, and additionally some of that is reserved for use by the GPU. The RPi 2 has 1GiB of RAM (minus some GPU usage), and so if the DT is relocated to the top of RAM, Linux cannot access it. Prevent this from happening by setting fdt_high. Cc: Daniel Stone <daniels@collabora.com> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
* | ARM: rpi: update memory layout env. var. documentationStephen Warren2016-02-08-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | Update rpi-common.h's documentation that describes the rationale for choosing various addresses for standardized variables used by boot scripts. This comment was correct when written, but not updated when some of the values were changed. Fixes: 14006a567105 ("rpi: set fdt_addr_r to 0x00000100 to match default ...device_tree_address") Cc: Jonathan Liu <net147@gmail.com> Cc: Daniel Stone <daniels@collabora.com> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
* | board_r: fix a typo in comment blockMasahiro Yamada2016-02-08-1/+1
| | | | | | | | | | | | Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* | kbuild: fix build rule of u-boot-spl.dtbMasahiro Yamada2016-02-08-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | The build command of u-boot-spl.dtb is not constant, but dependent on CONFIG_OF_SPL_REMOVE_PROPS. Use $(call if_changed,...) so that the change of CONFIG_OF_SPL_REMOVE_PROPS is detected. Also, add tools/fdtgrep to the dependency to make sure u-boot-spl.dtb is generated by the up-to-date fdtgrep in case the tool is modified. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* | kbuild: add missing FORCE where $(call if_changed, ) is usedMasahiro Yamada2016-02-08-11/+11
| | | | | | | | | | | | | | | | | | FORCE is needed for $(call if_changed,...) to be evaluated every time. Otherwise, the command is not executed when the command line has changed but any prerequisite has not been updated. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org>