Diego Santa Cruz [Tue, 23 Dec 2014 09:50:21 +0000 (10:50 +0100)]
mmc: computation of eMMC GP partition size was missing 512 KiB factor
Signed-off-by: Diego Santa Cruz <Diego.SantaCruz@spinetix.com>
Diego Santa Cruz [Tue, 23 Dec 2014 09:50:20 +0000 (10:50 +0100)]
mmc: incomplete test to switch to high-capacity group size definitions
The eMMC spec mandates that the high-capacity group size definitions
should be enabled when the device is partitioned (by setting
ERASE_GROUP_DEF in EXT_CSD). The current test to determine when this is
required misses a few cases. In particular a device may have been
partitioned without setting the enhanced attribute on any partition
or partitioning may be completed without creating any extra partitions.
This change moves the code to set ERASE_GROUP_DEF to after reading
all partition information. It is also enabled when
PARTITIONING_SETTING_COMPLETED is set as it is necessary to enable
ERASE_GROUP_DEF before setting that bit, so it means that the user
previously switched to the high capacity definitions.
Signed-off-by: Diego Santa Cruz <Diego.SantaCruz@spinetix.com>
Diego Santa Cruz [Tue, 23 Dec 2014 09:50:19 +0000 (10:50 +0100)]
mmc: skip mmcinfo partition info processing for eMMC < 4.41
eMMC partitions are defined as of eMMC 4.41, but mmcinfo process
partition info for eMMC >= 4.0, change it to do it for >= 4.41
Signed-off-by: Diego Santa Cruz <Diego.SantaCruz@spinetix.com>
Diego Santa Cruz [Tue, 23 Dec 2014 09:50:18 +0000 (10:50 +0100)]
mmc: make eMMC general purpose partition numbering match spec
The eMMC spec numbers general purpose partitions starting at 1, but
the mmcinfo output follows the internal numbering which starts at 0.
Make the mmcinfo command output number partitions as in the eMMC
spec to avoid confusion.
Signed-off-by: Diego Santa Cruz <Diego.SantaCruz@spinetix.com>
Diego Santa Cruz [Tue, 23 Dec 2014 09:50:17 +0000 (10:50 +0100)]
mmc: extend mmcinfo to show enhanced partition attribute
This extends the mmcinfo command's output to show which eMMC partitions
have the enhanced attribute set. Note that the eMMC spec says that
if the enhanced attribute is supported then the boot and RPMB
partitions are of the enhanced type.
The output of mmcinfo becomes:
Device: OMAP SD/MMC
Manufacturer ID: fe
OEM: 14e
Name: MMC16
Tran Speed:
52000000
Rd Block Len: 512
MMC version 4.41
High Capacity: Yes
Capacity: 13.8 GiB
Bus Width: 4-bit
User Capacity: 13.8 GiB ENH
Boot Capacity: 16 MiB ENH
RPMB Capacity: 128 KiB ENH
GP1 Capacity: 64 MiB ENH
GP2 Capacity: 64 MiB ENH
Signed-off-by: Diego Santa Cruz <Diego.SantaCruz@spinetix.com>
Diego Santa Cruz [Tue, 23 Dec 2014 09:50:16 +0000 (10:50 +0100)]
mmc: show hardware partition sizes in mmcinfo output
There is currently no command that will provide an overview of the hardware
partitions present on an eMMC device, one has to switch to every partition
via "mmc dev" and run mmcinfo for each to get the partition's capacity.
This commit adds a few lines of output to mmcinfo with the sizes of the
present partitions, like this:
Device: OMAP SD/MMC
Manufacturer ID: fe
OEM: 14e
Name: MMC16
Tran Speed:
52000000
Rd Block Len: 512
MMC version 4.41
High Capacity: Yes
Capacity: 13.8 GiB
Bus Width: 4-bit
User Capacity: 13.8 GiB
Boot Capacity: 16 MiB
RPMB Capacity: 128 KiB
GP1 Capacity: 64 MiB
GP2 Capacity: 64 MiB
panto: Minor edit removing superfluous parentheses.
Signed-off-by: Diego Santa Cruz <Diego.SantaCruz@spinetix.com>
Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Nobuhiro Iwamatsu [Tue, 16 Dec 2014 23:03:00 +0000 (08:03 +0900)]
mmc: rmobile: Add SDHC support for Renesas rmobile ARM SoC
This adds Renesas rmobile ARM SoC's SD/MMC host support.
This drivers tested with Gose board and Koelsch board.
Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Acked-by: Pantelis Antoniou <panto@antoniou-consulting.com>
Tom Rini [Thu, 15 Jan 2015 19:05:31 +0000 (14:05 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-ti
Masahiro Yamada [Thu, 15 Jan 2015 08:13:24 +0000 (17:13 +0900)]
powerpc: 74xx_7xx: remove 74xx_7xx cpu support
All the 74xx_7xx boards are still non-generic boards:
P3G4, ZUMA, ppmc7xx, ELPPC, mpc7448hpc2
Acked-by: Marek Vasut <marex@denx.de>
Acked-by: Stefan Roese <sr@denx.de>
Acked-by: York Sun <yorksun@freescale.com>
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Wolfgang Denk <wd@denx.de>
Cc: Nye Liu <nyet@zumanetworks.com>
Cc: Roy Zang <tie-fei.zang@freescale.com>
Masahiro Yamada [Thu, 15 Jan 2015 08:12:19 +0000 (17:12 +0900)]
mpc8xx: remove unused linker script
Now TQM8xx is the only remaining board family of mpc8xx.
It uses its own linker script, board/tqc/tqm8xx/u-boot.lds.
arch/powerpc/cpu/mpc8xx/u-boot.lds is not used by any boards.
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Wolfgang Denk <wd@denx.de>
Masahiro Yamada [Thu, 15 Jan 2015 08:10:56 +0000 (17:10 +0900)]
ppc4xx: remove dead code
Since commit
843125daebd7 (ppc4xx: remove HH405 board), CONFIG_HH405
is not defined.
Since commit
d52633047913 (ppc4xx: remove PMC405), CONFIG_PMC405
is not defined.
Acked-by: Stefan Roese <sr@denx.de>
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Matthias Fuchs <matthias.fuchs@esd.eu>
Tom Rini [Thu, 15 Jan 2015 15:18:05 +0000 (10:18 -0500)]
Merge branch 'buildman' of git://git.denx.de/u-boot-x86
Simon Glass [Tue, 2 Dec 2014 00:34:07 +0000 (17:34 -0700)]
buildman: Add an option to write the full build output
Normally buildman runs with 'make -s' meaning that only errors and warnings
appear in the log file. Add a -V option to run make in verbose mode, and
with V=1, causing a full build log to be created.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 00:34:06 +0000 (17:34 -0700)]
buildman: Add the option to download toolchains from
The site at https://www.kernel.org/pub/tools/crosstool/ is a convenient
repository of toolchains which can be used for U-Boot. Add a feature to
download and install a toolchain for a selected architecture automatically.
It isn't clear how long this site will stay in the current place and
format, but we should be able to rely on bug reports if it changes.
Suggested-by: Marek VaĊĦut <marex@denx.de>
Suggested-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 00:34:05 +0000 (17:34 -0700)]
buildman: Allow architecture to alias to multiple toolchains
Some archs have need than one alias, so support a list of alises in the
..buildman file.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 00:34:04 +0000 (17:34 -0700)]
buildman: Don't use the local settings when running tests
We should create a test setting file when running testes, not use whatever
happens to be on the local machine.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 00:34:03 +0000 (17:34 -0700)]
buildman: Don't complain about missing sections in ~/.buildman
Silently ignore this since it is valid to have missing sections.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 00:34:02 +0000 (17:34 -0700)]
buildman: Add documentation about the .buildman file
This file is only partially documented. Add some more details.
Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Wolfgang Denk <wd@denx.de>
Simon Glass [Tue, 2 Dec 2014 00:34:01 +0000 (17:34 -0700)]
buildman: Add a note about Python pre-requisites
Since we need a few modules which might not be available in a bare-bones
distribution, add a note about that to the README.
Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Wolfgang Denk <wd@denx.de>
Simon Glass [Tue, 2 Dec 2014 00:34:00 +0000 (17:34 -0700)]
buildman: Add an option to use the full tool chain path
In some cases there may be multiple toolchains with the same name in the
path. Provide an option to use the full path in the CROSS_COMPILE
environment variable.
Note: Wolfgang mentioned that this is dangerous since in some cases there
may be other tools on the path that are needed. So this is set up as an
option, not the default. I will need test confirmation (i.e. that this
commit fixes a real problem) before merging it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Steve Rae <srae@broadcom.com>
Simon Glass [Tue, 2 Dec 2014 00:33:59 +0000 (17:33 -0700)]
buildman: Put the toolchain path first instead of last in PATH
If:
1. Toolchains A and B have the same filename
2. Toolchain A is in the PATH
3. Toolchain B is given in ~/.buildman and buildman uses it to build
then buildman will add toolchain B to the end of its path but will not
necessarily use it since U-Boot will find toolchain A first in the PATH.
Try to fix this by putting the toolchain first in the path instead of
last.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 00:33:58 +0000 (17:33 -0700)]
buildman: Try to avoid hard-coded string parsing
The assumption that the compiler name will always end in gcc is incorrect
for clang and apparently on BSD.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 00:33:57 +0000 (17:33 -0700)]
buildman: Allow specifying a range of commits to build
Adjust the -b flag to permit a range expression as well as a branch.
Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Tested-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Simon Glass [Tue, 2 Dec 2014 00:33:56 +0000 (17:33 -0700)]
buildman: Don't remove entire output directory when testing
When running tests the output directory is often wiped. This is only safe if
a branch is being built. The output directory may contain other things
besides the buildman test output.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 00:33:55 +0000 (17:33 -0700)]
buildman: Add an option to flatten output directory trees
When building current source for a single board, buildman puts the output
in <output_dir>/current/current/<board>. Add an option to make it use
<output_dir>/<board> instead. This removes the unnecessary directories
in that case, controlled by the --no-subdirs/-N option.
Suggested-by: Tom Rini <trini@ti.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 00:33:54 +0000 (17:33 -0700)]
buildman: Try to guess the upstream commit
Buildman normally obtains the upstream commit by asking git. Provided that
the branch was created with 'git checkout -b <branch> <some_upstream>' then
this normally works.
When there is no upstream, we can try to guess one, by looking up through
the commits until we find a branch. Add a function to try this and print
a warning if buildman ends up relying on it.
Also update the documentation to match.
Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Wolfgang Denk <wd@denx.de>
Simon Glass [Tue, 2 Dec 2014 00:33:53 +0000 (17:33 -0700)]
buildman: Don't prune output space for 'current source' build
This is not needed since we always do a full (non-incremental) build. Also
it might be dangerous since it will try to delete everything below the
base directory.
Fix this potentially nasty bug.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 00:33:52 +0000 (17:33 -0700)]
buildman: Put build in 'current', not 'current/current'
Buildman currently puts current-source builds in a current/current
subdirectory, but there is no need for the extra depth.
Suggested-by: Albert Aribaud <albert.u.boot@aribaud.net>
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 00:33:51 +0000 (17:33 -0700)]
buildman: Add tests that check the correct output directory is used
Add a few tests of the output directory logic.
Signed-off-by: Simon Glass <sjg@chromium.org>
Tom Rini [Wed, 14 Jan 2015 21:26:15 +0000 (16:26 -0500)]
Merge branch 'next' of git://git.denx.de/u-boot-video
Michal Simek [Wed, 14 Jan 2015 15:00:39 +0000 (16:00 +0100)]
net: Declare physical address as phys_addr_t unsigned type
Use phys_addr_t instead of int for addresses.
Addresses can't be < 0.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 14 Jan 2015 14:36:35 +0000 (15:36 +0100)]
ARM: armv8: Fix typo in commentary
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 14 Jan 2015 14:36:34 +0000 (15:36 +0100)]
doc: ARM: Use the right function name
Trivial fix.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Alexey Brodkin [Tue, 13 Jan 2015 15:49:01 +0000 (18:49 +0300)]
Kconfig: move CONFIG_SYS_CLK_FREQ to Kconfig
It makes sense to specify CONFIG_SYS_CLK_FREQ in "configs/xx_defconfig"
instead of "include/configs/xxx.h" because then header will be reusable
across boards with different CPU clocks.
Also this nice to have an ability for end user to tune this value
himself via "menuconfig".
For now I'm only applying this change to all ARC configs because
otherwise scope of change will be huge.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Tom Rini <trini@ti.com>
Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Hans de Goede <hdegoede@redhat.com>
cc: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@ti.com>
Masahiro Yamada [Thu, 8 Jan 2015 10:23:35 +0000 (19:23 +0900)]
spl: spl_nor: surround Linux-load code with #ifdef CONFIG_SPL_OS_BOOT
If CONFIG_SPL_NOR_SUPPORT is defined, spl_nor_load_image() requires
spl_start_uboot(), CONFIG_SYS_OS_BASE, CONFIG_SYS_SPL_ARGS_ADDR,
CONFIG_SYS_FDT_BASE to be defined even if users just want to run
U-Boot, not Linux. This is inconvenient.
This patch is following the codying style of common/spl/spl_nand.c.
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Marek Vasut [Tue, 16 Dec 2014 13:07:22 +0000 (14:07 +0100)]
image: Enable OpenRTOS booting via fitImage
Allow booting the OpenRTOS payloads via fitImage image type.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Marek Vasut [Tue, 16 Dec 2014 13:07:21 +0000 (14:07 +0100)]
image: bootm: Add OpenRTOS image type
Add separate image type for the Wittenstein OpenRTOS .
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Evgeni Dobrev [Mon, 8 Dec 2014 16:49:42 +0000 (17:49 +0100)]
Add support for Seagate BlackArmor NAS220
Add support for Seagate BlackArmor NAS220
Signed-off-by: Evgeni Dobrev <evgeni@studio-punkt.com>
Bill Pringlemeir [Wed, 3 Dec 2014 18:40:58 +0000 (13:40 -0500)]
arm: vf610: Remove duplicate MTD defines.
Some MTD defines are repeated twice; once with UBI and then with MTD.
Remove the duplicate MTD defines from the UBI grouping.
Signed-off-by: Bill Pringlemeir <bpringlemeir@nbsps.com>
Simon Glass [Tue, 2 Dec 2014 20:17:40 +0000 (13:17 -0700)]
lzo: Update dst_len even on error
This allows the caller to easily detect how much of the destination buffer
has been used.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 20:17:39 +0000 (13:17 -0700)]
gunzip: Update lenp even on error
This allows the caller to easily detect how much of the destination buffer
has been used.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 20:17:38 +0000 (13:17 -0700)]
bzlib: Update destLen even on error
This allows the caller to easily detect how much of the destination buffer
has been used.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 20:17:37 +0000 (13:17 -0700)]
bootm: Factor out common parts of image decompression code
Adjust the code so that the error reporting can all be done at the end,
and is the same for each decompression method. Try to detect when
decompression fails due to lack of space. Keep the behaviour of
resetting on failure even though there should be no memory corruption
now.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 20:17:36 +0000 (13:17 -0700)]
bootm: Use print_decomp_msg() in all cases
Refactor to allow this function to be used to announce the image being
loaded regardless of compression type and even when there is no
decompression.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 20:17:35 +0000 (13:17 -0700)]
test: Add unit tests for bootm image decompression
Use each compression method (including uncompressed). Test for normal
operation, insufficient space and corrupted data.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 20:17:34 +0000 (13:17 -0700)]
test: Rename test_compression to ut_compression
Try to keep the names of the unit test commands consistent.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 20:17:33 +0000 (13:17 -0700)]
bootm: Export bootm_decomp_image()
Export this function for testing. Also add a parameter so that values other
than CONFIG_SYS_BOOTM_LEN can be used for the maximum uncompressed size.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 20:17:32 +0000 (13:17 -0700)]
test: Add DEBUG output option to test-fit.py
Sometimes it is useful to see the output from U-Boot, so add an option to
make this easier.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 20:17:31 +0000 (13:17 -0700)]
sandbox: Correct ordering of 'sb save' commands
Prior to commit d455d87 there was an inconsistency between the position of
the 'address' parameter in 'sb load' and 'sb save'. This was corrected but
it broke some tests. Fix the tests and also the help for 'sb save'.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 20:17:30 +0000 (13:17 -0700)]
bootm: Move compression progress/error messages into a function
This code is repeated in several places, and does not detect a common
fault where the image is too large. Move it into its own function and
provide a more helpful messages in this case, for compression schemes
which support this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 2 Dec 2014 20:17:29 +0000 (13:17 -0700)]
lzma: fix buffer bound check error further
Commit
4d3b8a0d fixed a problem with lzma decompress where it would
run out of bytes to decompress. The algorithm needs to know how many
uncompressed bytes it is expected to produce.
However, the fix introduced a potential buffer overrun, and causes
the compression test to fail (test_compression command in sandbox).
The correct fix seems to be to use the minimum of the expected number
of uncompressed bytes and the amount of output space available. That
way things work normally when there is enough space, and return an
error (without overrunning available space) when there is not.
Signed-off-by: Antonios Vamporakis <ant@area128.com>
CC: Kees Cook <keescook@chromium.org>
CC: Simon Glass <sjg@chromium.org>
CC: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
CC: Luka Perkov <luka@openwrt.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Wolfgang Denk [Tue, 21 Oct 2014 20:14:10 +0000 (22:14 +0200)]
common/memsize.c: Coding style cleanup
Prepare code to make later modifications checkpatch-clean.
Signed-off-by: Wolfgang Denk <wd@denx.de>
Meier, Roger [Wed, 19 Nov 2014 14:26:18 +0000 (15:26 +0100)]
.travis.yml: build u-boot on travis-ci
Goal:
- building all variants of U-Boot with multiple configurations
- code quality checks and metrics
- https://travis-ci.org/u-boot/u-boot/builds
Tom Rini [Wed, 14 Jan 2015 16:00:38 +0000 (11:00 -0500)]
Merge branch 'buildman' of git://git.denx.de/u-boot-x86
Conflicts:
tools/buildman/control.py
Signed-off-by: Tom Rini <trini@ti.com>
Masahiro Yamada [Wed, 14 Jan 2015 03:35:24 +0000 (12:35 +0900)]
README.scrapyard: fill commit and date fields
This commit was generated by the following command:
scripts/fill_scrapyard.py
The commit-ID of CPCIISER4 removal has been fixed by hand because
the board was removed by commit
370572601027 (ppc4xx: remove CPCIISER4
board), but it was added to README.scrapyard by commit
9a4018e09a2f
(ppc4xx: remove DP405 board).
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Masahiro Yamada [Wed, 14 Jan 2015 03:35:23 +0000 (12:35 +0900)]
scripts: add a utility to fill blank fields of doc/README.scrapyard
We are removing bunch of non-generic boards these days.
Updating doc/README.scrapyard is a really tedious task, but it can
be automated. I hope this tool will make our life easier.
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Hans de Goede [Sun, 11 Jan 2015 18:33:35 +0000 (19:33 +0100)]
sunxi: usbc: Add support for usb-vbus0 controller by axp drivebus pin
The axp221 / axp223's N_VBUSEN pin can be configured as an output rather
then an input, and this is used on some boards to control usb-vbus0, add
support for this.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Wed, 7 Jan 2015 14:26:06 +0000 (15:26 +0100)]
sunxi: usbc: Add support for usb0 to the common usbc code
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Wed, 7 Jan 2015 14:08:43 +0000 (15:08 +0100)]
sunxi: Move usb-controller init code out of ehci-sunxi.c for reuse for otg
Most of the usb-controller init code found in ehci-sunxi.c also is necessary
to init the otg usb controller, so move it to a common place.
While at it also update various #ifdefs / defines for sun8i support.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Sun, 11 Jan 2015 18:58:03 +0000 (19:58 +0100)]
sunxi: axp221: Add support for controlling the drivebus pin
The axp221 / axp223's N_VBUSEN pin can be configured as an output rather
then an input, add axp_drivebus_enable() and _disable() functions to set
the pin in output mode and control it.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Sun, 11 Jan 2015 18:43:56 +0000 (19:43 +0100)]
sunxi: axp221: Protect axp221_init against multiple calls
The voltage setting code knows it needs to call axp221_init before calling
the various voltage setting functions.
But users of axp utility functions like axp221_get_sid() do not know this,
so the utility functions always call axp221_init() to ensure that the
p2wi / rsb setup magic has been done.
Since doing this repeatedly is quite expensive, add a check to axp221_init
so that it only does the initialization once.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Chen-Yu Tsai [Sat, 3 Jan 2015 02:17:24 +0000 (10:17 +0800)]
sunxi: axp221: correct ALDO2 description for sun6i
ALDO2 is used to power LPDDR2 SDRAM on both the reference design and the
Hummingbird A31, when this type of RAM is present.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Chen-Yu Tsai [Mon, 12 Jan 2015 10:02:12 +0000 (18:02 +0800)]
sunxi: Hummingbird_A31_defconfig: Enable VGA output through external DAC
The Hummingbird A31 uses an external DAC connected to the LCD0 outputs
for the on board VGA output. The DAC has a power control that's toggled
by GPIO.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Chen-Yu Tsai [Mon, 12 Jan 2015 10:02:11 +0000 (18:02 +0800)]
sunxi: video: Add support for external DAC enable pin
The external DAC for VGA output might have either a power or reset
control pin that needs to be pulled up, as is the case on the
Hummingbird A31.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Chen-Yu Tsai [Mon, 12 Jan 2015 10:02:10 +0000 (18:02 +0800)]
sunxi: video: Allow external DACs for VGA on platforms without TV encoders
Using an external DAC for VGA output was available on sun5i. Since
some other SoCs don't have a builtin TV encoder, but might have
use for a VGA output, enable the option for the platforms that
don't have TV encoders.
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Siarhei Siamashka [Thu, 8 Jan 2015 07:02:32 +0000 (09:02 +0200)]
sunxi: Enable pre-console buffer
This allows to always have a complete log on the VGA/HDMI/LCD console.
Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Siarhei Siamashka [Thu, 8 Jan 2015 07:02:31 +0000 (09:02 +0200)]
console: Use pre-console buffer to get complete log on all consoles
Currently the pre-console buffer can accumulate early log messages
and flush them to the serial console as soon as it becomes available.
This patch just adds one more pre-console buffer flushing point and
does all the same for the other consoles too. This is particularly
useful for the vga/hdmi/lcd console, where we can see all the older
messages now (except for the log messages from SPL).
Naturally, we don't want to get an extra copy of the log messages
on the serial console again at the second flushing point, so the
serial console has to be explicitly filtered out.
Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Tom Rini <trini@ti.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Jan Kiszka [Wed, 31 Dec 2014 12:46:42 +0000 (13:46 +0100)]
sun7i: Move psci_arch_init close to text_end
"adr rX, text_end" only works if the label is close. Adding further code
to the other functions will prevent this. So move the containing
function close to label. No functional change.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Jan Kiszka [Wed, 31 Dec 2014 12:46:40 +0000 (13:46 +0100)]
sun7i: Add support for taking CPUs offline via PSCI
Based on the original version by Marc Zyngier. It adds a psci_cpu_off
implementation for the A20 SoC. The mechanism works by first preparing
the calling CPU to go offline (disable and flush cache, disable SMP),
then requesting CPU 0 to pull the plug. The request is sent as FIQ on
SGI15.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Thu, 1 Jan 2015 21:04:34 +0000 (22:04 +0100)]
sunxi: video: Add lvds support
Add support for lvds lcd panels
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Anatolij Gustschin <agust@denx.de>
Zoltan HERPAI [Tue, 6 Jan 2015 00:09:18 +0000 (01:09 +0100)]
sunxi: add Linksprite pcDuino v1/v2 support
Add support for a sun4i board built by Linksprite. This addition covers
both v1 and v2 versions. As the board has been working with 408MHz memory
setting in the u-boot-sunxi branch, and has been proven to be running stable
during my tests as well, a respective new DRAM config file is added as well.
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Hans de Goede [Sun, 28 Dec 2014 08:13:21 +0000 (09:13 +0100)]
sunxi: video: Add a hpd_delay parameter to configure hpd delay
In some extreme cases it may be necessary to wait 1.5 seconds or more for a hpd
signal to show up (and be able to read edid info), but we do not want to
penalize all headless boots with an extra second boot delay, so add a hpd_delay
parameter which can be set through the video-mode env. variable.
While at it raise the default from 300ms to 500ms as 300 may very well be too
low in many cases.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Thu, 25 Dec 2014 12:58:06 +0000 (13:58 +0100)]
sunxi: video: Add VGA output support
Add support for VGA directly from the sunxi SoC / display engine.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Thu, 25 Dec 2014 12:52:04 +0000 (13:52 +0100)]
sunxi: video: Fallback from HDMI to VGA on boards with VGA
If a board has no LCD, but does have VGA fallback to VGA when no HDMI cable
is connected (unless hpd=0).
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Sat, 27 Dec 2014 14:19:23 +0000 (15:19 +0100)]
sunxi: video: Add support for using PORTD hsync/vsync pins with tcon1
Add support for using PORTD hsync/vsync pins with tcon1, this is a preparation
patch for adding native VGA support.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Wed, 24 Dec 2014 18:50:11 +0000 (19:50 +0100)]
sunxi: video: Use sunxi_lcdc_get_clk_delay to calculate tcon1 delay
Use sunxi_lcdc_get_clk_delay to calculate tcon1 delay instead of hardcoding
it to 30. We will still end up using 30 for most modes, but for e.g. 800x600
this makes a (small) difference.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Wed, 24 Dec 2014 18:47:14 +0000 (19:47 +0100)]
sunxi: video: Remove sunxi_display.enabled variable
Having both a sunxi_display.enabled variable and
sunxi_display.monitor == sunxi_monitor_none duplicates state, use
sunxi_display.monitor = sunxi_monitor_none when ever we do not have a display.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Tue, 23 Dec 2014 15:08:38 +0000 (16:08 +0100)]
sunxi: Ippo_q8h defconfigs: Enable the LCD panel found on these tablets.
Enable the new LCD support on Ippo_q8h tablets.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Tested-by: Chen-Yu Tsai <wens@csie.org>
Hans de Goede [Wed, 24 Dec 2014 15:00:38 +0000 (16:00 +0100)]
sunxi: A13-OLinuXino defconfigs: Enable VGA output, add lcd-mode for 7" LCD
Enable VGA output on the A13-OLinuXino and A13-OLinuXinoM now that we've
support for it.
Also add LCD timing and gpio info for the Olimex 7" LCD module. We can safely
put this in the default config on this boards, since by default we will always
use VGA, and the LCD timing info will only get used if the user explicitly
sets monitor=lcd in the video-mode env. variable.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Wed, 24 Dec 2014 15:08:30 +0000 (16:08 +0100)]
sunxi: sunxi-common.h: Reduce bootm_size to take the framebuffer into account
Before video output support can be enabled on the A13-OLinuXinoM, bootm_size
must first be reduced to take into account that the framebuffer is shaved of
the top of the DRAM. For other boards this is not an issue since bootm was set
to 256M and all boards have at least 512M except for the A13-OLinuXinoM.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Wed, 24 Dec 2014 11:17:07 +0000 (12:17 +0100)]
sunxi: video: Add support for VGA via external DACs connected to the LCD pins
Add support for external DACs connected to the parallel LCD interface driving
a VGA connector, such as found on the Olimex A13 boards.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Tue, 23 Dec 2014 22:04:35 +0000 (23:04 +0100)]
sunxi: video: Enable video on sun8i, which supports LCD but not HDMI
The A23 (sun8i) only has lcd output support, so allow building the video code
without HDMI support for use with the A23.
Also the A23 has the same reset bits (and necessity to enable the DRC block)
as the sun6i, so enable those bits for sun8i too.
Note building without HDMI support is useful for the A13 (sun5i variant) too,
as that one does not have HDMI either.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Sun, 21 Dec 2014 15:28:32 +0000 (16:28 +0100)]
sunxi: video: Add lcd output support
Add lcd output support, see the new Kconfig entries and doc/README.video for
how to enable / configure this.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Tue, 23 Dec 2014 17:39:52 +0000 (18:39 +0100)]
sunxi: video: Move sunxi_drc_init
Move sunxi_drc_init to directly above sunxi_engines_init, to avoid
unnecessary #ifdef-ery in later patches.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Sun, 21 Dec 2014 15:27:45 +0000 (16:27 +0100)]
sunxi: video: Modify sunxi_lcdc_pll_set to work with both tcon0 and tcon1
Modify sunxi_lcdc_pll_set to work with both tcon0 and tcon1, this is a
preparation patch for adding lcd support.
While at it also swap the divider search order, searching from low to
high, as the comment above the code says we should do. In cases where there
are multiple solutions this will result in picking a lower pll clock and
divider, which is more stable and saves power.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Sun, 21 Dec 2014 13:49:34 +0000 (14:49 +0100)]
sunxi: video: Prepare for lcd support
Refactor sunxi_mode_set into a bunch of helpers, and make it do a switch
case on sunxi_display.monitor to decide what to do.
Also rename sunxi_lcdc_mode_set to sunxi_lcdc_tcon1_mode_set, as it sets the
timings for tcon1, and for lcd support we need a similar function operating
on tcon0.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Sun, 21 Dec 2014 13:37:45 +0000 (14:37 +0100)]
sunxi: video: Improve monitor video-mode option handling
Add a sunxi_monitor enum and parse the monitor option string into this enum
once, rather then doing strcmp-s on it in various places. This also adds
checking for it being a valid value.
This also adds new "none" and "lcd" values in preparation for lcd support.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Wed, 24 Dec 2014 18:34:38 +0000 (19:34 +0100)]
sunxi: gpio: Add support for gpio pins on the AXP209 pmic
Some boards use GPIO-s on the pmic, one example of this is the A13-OLinuXino
board, which uses gpio0 of the axp209 for the lcd-power signal.
This commit adds support for gpio pins on the AXP209 pmic, the sunxi_gpio.c
changes are universal, adding gpio support for the other AXP pmics (when
necessary) should be a matter of adding the necessary axp_gpio_foo functions
to their resp. drivers, and add "#define AXP_GPIO" to their header file.
Note this commit only adds support for the non device-model version of the
gpio code, patches for adding support to the device-model version are very
welcome.
The string representation for these gpio-s is AXP0-#, the 0 in the AXP0 prefix
is there in case we need to support gpio-s on more then 1 pmic in the future.
At least A80 boards have 2 pmics, and we may end up needing to support gpio-s
on both.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Mon, 22 Dec 2014 10:39:57 +0000 (11:39 +0100)]
sunxi: gpio: Properly sort mux defines by port number
Move a few mux defines around so that all the mux defines are properly sorted
by port number.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Sat, 20 Dec 2014 12:51:16 +0000 (13:51 +0100)]
sunxi: video: Set input sync enable
Add a write to the "unknown" (*) register to enable auto input sync, when
initially adding sunxi hdmi output support this magic write from the android
kernel code was missed, causing lcdc -> hdmi encoder sync problems.
With this write added, we can drop the modesetting retries and the extra
delays added to work around these sync problems.
With the retries dropped there also is no need to 0 all the enable flags at
the beginning of the modeset, as they are initialized to 0 already by
engines_init.
*) "unknown" is the actual name of this register in the android kernel sources
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Acked-by: Anatolij Gustschin <agust@denx.de>
Hans de Goede [Sat, 20 Dec 2014 14:15:23 +0000 (15:15 +0100)]
sunxi: video: Give hotplug-detect (hpd) signal some time to show up
When using a hdmi powered hdmi to vga dongle, and cold booting a sunxi
device, the hpd detect code would not see the dongle (until a warm reboot),
because the dongle needs some time to boot.
Testing has shown that this dongle needs 213ms to respond on a cold boot,
so wait up to 300ms for a hpd signal to show up before giving up.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Acked-by: Anatolij Gustschin <agust@denx.de>
Hans de Goede [Sat, 20 Dec 2014 13:31:45 +0000 (14:31 +0100)]
sunxi: video: When using edid use CEA681 extension blocks to select hdmi output
When using edid use CEA681 edid extension blocks to select between dvi and
hdmi output formats, so that u-boot will automatically do the right thing.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Acked-by: Anatolij Gustschin <agust@denx.de>
Hans de Goede [Sat, 20 Dec 2014 13:01:48 +0000 (14:01 +0100)]
sunxi: video: Add sunxi_hdmi_edid_get_block helper function
Add a sunxi_hdmi_edid_get_block helper function, this is a preparation patch
for adding support for parsing EDID extension blocks.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Acked-by: Anatolij Gustschin <agust@denx.de>
Hans de Goede [Sat, 20 Dec 2014 12:38:06 +0000 (13:38 +0100)]
sunxi: video: Add hdmi support
So far we've been programming the hdmi-encoder to send out dvi data over the
hdmi connector. This works well for most devices, including hdmi devices, but
not all devices accept dvi data on a hdmi input.
Add support for sending proper hdmi data over the hdmi output found on most
sunxi boards. This can be turned on by adding monitor=hdmi as option to the
video-mode env. variable.
A follow up patch will determine whether to send dvi or hdmi automatically when
EDID is used.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Acked-by: Anatolij Gustschin <agust@denx.de>
Hans de Goede [Fri, 19 Dec 2014 15:05:12 +0000 (16:05 +0100)]
sunxi: video: Add DDC & EDID support
Add DDC & EDID support and use it to automatically select the native mode of
the attached monitor. This can be disabled by adding edid=0 as option
to the video-mode env. variable.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Acked-by: Anatolij Gustschin <agust@denx.de>
Hans de Goede [Fri, 19 Dec 2014 14:13:57 +0000 (15:13 +0100)]
sunxi: video: Add hpd option
Allow the user to specify hpd=0 as option in the video-mode env. variable,
if hpd is set to 0 then the hdmi output will be brought up even if no cable
is connected.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Acked-by: Anatolij Gustschin <agust@denx.de>
Hans de Goede [Fri, 19 Dec 2014 13:03:40 +0000 (14:03 +0100)]
sunxi: video: Add support for video-mode environment variable
Add support for the standard video-mode environment variable using the
videomodes.c video_get_ctfb_res_modes() helper function.
This will allow users to specify the resolution e.g. :
setenv video-mode sunxi:video-mode=1280x1024-24@60
saveenv
Also make the reserved fb mem slightly larger to allow 1920x1200 to work.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Acked-by: Anatolij Gustschin <agust@denx.de>
Hans de Goede [Fri, 19 Dec 2014 12:46:33 +0000 (13:46 +0100)]
sunxi: video: Use video-mode/-timing from videomodes
Switch from fb_videomode to ctfb_res_modes and use the predefined videotimings
from videomodes.c, rather then defining our own.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Acked-by: Anatolij Gustschin <agust@denx.de>
Hans de Goede [Sat, 20 Dec 2014 13:30:27 +0000 (14:30 +0100)]
edid: Add struct and defines for cea681 extension blocks
Add a struct describing the (fixed) bits of cea681 edid extension blocks,
and defines for accessing various bitfields.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Anatolij Gustschin <agust@denx.de>
Hans de Goede [Mon, 24 Nov 2014 12:47:13 +0000 (13:47 +0100)]
edid: Add an edid_check_checksum() helper function
Add a helper function to check the checksum of an EDID data block.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Anatolij Gustschin <agust@denx.de>