]> git.sur5r.net Git - u-boot/log
u-boot
6 years agoreset: add sandbox test for bulk API
Neil Armstrong [Tue, 3 Apr 2018 09:40:51 +0000 (11:40 +0200)]
reset: add sandbox test for bulk API

This patch adds the bulk reset API tests for the sandbox test suite.

Unlike the main test, it also check the "other" reset signal using the bulk API
and checks if the resets are correctly asserted/deasserted.

To allow the bulk API to work, and avoid changing the DT, the number of resets
of the sandbox reset controller has been bumped to 101 for the "other" reset
line to be valid.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoreset: Add get/assert/deassert/release for bulk of reset signals
Neil Armstrong [Tue, 3 Apr 2018 09:40:50 +0000 (11:40 +0200)]
reset: Add get/assert/deassert/release for bulk of reset signals

This patch adds a "bulk" API to the reset API in order to get/deassert/
assert/release a group of reset signals associated with a device.

This bulk API will avoid adding a copy of the same code to manage
a group of reset signals in drivers.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agolog: Add units to code-size stats in README.log
Simon Glass [Mon, 2 Apr 2018 08:42:53 +0000 (02:42 -0600)]
log: Add units to code-size stats in README.log

Without the units these numbers are confusing. Add a comment about the
unit being 'bytes' and mention 'buildman' as the source.

Suggested-by: Lukasz Majewski <lukma@denx.de>
Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agolog: Correct missing free() on error in log_add_filter()
Simon Glass [Mon, 2 Apr 2018 08:42:39 +0000 (02:42 -0600)]
log: Correct missing free() on error in log_add_filter()

If there is a problem with the parameters to log_add_filter(), the memory
allocated is currently not freed. Fix this.

Reported-by: Coverity (CID: 171962)
Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agomkimage: do not fail if there is no print_header function
Guillaume GARDET [Fri, 30 Mar 2018 08:28:19 +0000 (10:28 +0200)]
mkimage: do not fail if there is no print_header function

Commit 253c60a breaks the exit value of 'mkimage -T rkimage'
and print the following  error:
  mkimage: Can't print header for Rockchip Boot Image support: Success

It is not a failure to not print headers, so just display the warning message,
and finish the function properly.

Signed-off-by: Guillaume GARDET <guillaume.gardet@free.fr>
Cc: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agoarmv7m: disable icache before linux booting
Patrice Chotard [Fri, 30 Mar 2018 07:22:40 +0000 (09:22 +0200)]
armv7m: disable icache before linux booting

Similarly to ARMV7, on ARMV7M instruction cache memory needs
to be disabled before running linux kernel to avoid kernel to
be stuck.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
6 years agoserial: meson: Update compatible with new Linux bindings
Neil Armstrong [Thu, 29 Mar 2018 12:56:02 +0000 (14:56 +0200)]
serial: meson: Update compatible with new Linux bindings

The Amlogic Meson SoCs serial bindings were not written when serial
support was pushed into Linux and U-Boot.
A clean bindings document has been merged into Linux tree to correctly
handle the multiple clocks feeding the serial peripheral.
This update the U-Boot serial_meson driver with the new compatible
string for Amlogic Meson GX Socs.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoreset: Add Amlogic Meson Reset Controller
Neil Armstrong [Thu, 29 Mar 2018 12:55:25 +0000 (14:55 +0200)]
reset: Add Amlogic Meson Reset Controller

The Amlogic Meson SoCs embeds up to 256 reset lines, add the corresponding
driver.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
6 years agosysreset: syscon: convert to use live dt
Álvaro Fernández Rojas [Sat, 17 Mar 2018 11:22:24 +0000 (12:22 +0100)]
sysreset: syscon: convert to use live dt

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agoMerge tag 'xilinx-for-v2018.05-rc2' of git://git.denx.de/u-boot-microblaze
Tom Rini [Mon, 9 Apr 2018 15:06:21 +0000 (11:06 -0400)]
Merge tag 'xilinx-for-v2018.05-rc2' of git://git.denx.de/u-boot-microblaze

Xilinx changes for v2018.05-rc2

- Various DT changes and sync with mainline kernel
- Various defconfig updates
- Add SPL init for zcu102 revA
- Add new zynqmp boards zcu100/zcu104/zcu106/zcu111/zc12XX
  and zc1751-dc3
- Net fixes - xlnx,phy-type
- 64bit axi ethernet support
- arasan: Fix nand write issue
- fpga fixes
- Maintainer file updates

6 years agoMerge tag 'signed-efi-next' of git://github.com/agraf/u-boot
Tom Rini [Mon, 9 Apr 2018 15:05:44 +0000 (11:05 -0400)]
Merge tag 'signed-efi-next' of git://github.com/agraf/u-boot

Patch queue for efi - 2018-04-09

Highlights this time around:

  - Lots of minor spec compliance fixes
  - Support full range of GOP BLT commands
  - More fine grained error checking
  - Network fixes (init, DP)
  - Lots of other bug fixes...

6 years agoarm64: zynqmp: Add support for Xilinx zcu111-revA
Michal Simek [Wed, 28 Mar 2018 13:55:27 +0000 (15:55 +0200)]
arm64: zynqmp: Add support for Xilinx zcu111-revA

Xilinx zcu111 is a customer board. It is reusing some parts from zcu102.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Add support for Xilinx zcu106-revA
Michal Simek [Wed, 28 Mar 2018 13:43:51 +0000 (15:43 +0200)]
arm64: zynqmp: Add support for Xilinx zcu106-revA

Xilinx zcu106 is a customer board. It is reusing some parts from zcu102.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Add support for zcu104 customer board
Michal Simek [Wed, 28 Mar 2018 13:36:36 +0000 (15:36 +0200)]
arm64: zynqmp: Add support for zcu104 customer board

Xilinx zcu104 is another customer board. It is sort of zcu102 clone with
some differences.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Add support for zc12xx boards
Michal Simek [Wed, 28 Mar 2018 13:09:32 +0000 (15:09 +0200)]
arm64: zynqmp: Add support for zc12xx boards

Add support for zc12xx boards. All of them are internal boards for
silicon validation and share very similar base platforms.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Add support for zc1751 dc3
Michal Simek [Wed, 28 Mar 2018 13:00:25 +0000 (15:00 +0200)]
arm64: zynqmp: Add support for zc1751 dc3

zc1751 is based board with dc3 extenstion card which is used for silicon
validation.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Add support for zcu100 aka Ultra96 board
Michal Simek [Wed, 28 Mar 2018 12:37:47 +0000 (14:37 +0200)]
arm64: zynqmp: Add support for zcu100 aka Ultra96 board

Add support for Xilinx zcu100.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Get 200MHz clock early for MMC
Michal Simek [Wed, 4 Apr 2018 08:41:35 +0000 (10:41 +0200)]
arm64: zynqmp: Get 200MHz clock early for MMC

SPL MMC boot requires to have clock early.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Remove pinctrl settings
Michal Simek [Wed, 4 Apr 2018 08:46:49 +0000 (10:46 +0200)]
arm64: zynqmp: Remove pinctrl settings

This part hasn't been pushed to mainline yet that's why remove it.
The patch can be reverted in future when this is pushed there.

Reported-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Alexander Graf <agraf@suse.de>
6 years agoarm64: zynqmp: Remove power domain description
Michal Simek [Wed, 4 Apr 2018 08:43:04 +0000 (10:43 +0200)]
arm64: zynqmp: Remove power domain description

This part hasn't been pushed to mainline yet that's why remove it.
The patch can be reverted in future when this is pushed there.

Reported-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Alexander Graf <agraf@suse.de>
6 years agoarm64: zynqmp: Add low level initialization for zc1751
Michal Simek [Wed, 28 Mar 2018 12:49:43 +0000 (14:49 +0200)]
arm64: zynqmp: Add low level initialization for zc1751

Add psu init for zc1751 dc cards.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Add low level initialization for zcu102-revA
Michal Simek [Wed, 28 Mar 2018 12:47:16 +0000 (14:47 +0200)]
arm64: zynqmp: Add low level initialization for zcu102-revA

Add psu init for zcu102-revA.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Enable Fixed link support
Michal Simek [Wed, 28 Mar 2018 12:18:19 +0000 (14:18 +0200)]
arm64: zynqmp: Enable Fixed link support

This patch enables the fixed link support for
all ZynqMP boards.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Enable mac address randomization for zc1751 dc5
Michal Simek [Wed, 28 Mar 2018 12:30:35 +0000 (14:30 +0200)]
arm64: zynqmp: Enable mac address randomization for zc1751 dc5

There is no memory which stores mac address that's why generate it.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Enable ethernet phys for zc1751 dc5
Michal Simek [Wed, 28 Mar 2018 12:17:19 +0000 (14:17 +0200)]
arm64: zynqmp: Enable ethernet phys for zc1751 dc5

Enable ethernet phys for zc1751 dc5.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Enable booting to ATF
Luca Ceresoli [Mon, 12 Mar 2018 16:18:38 +0000 (17:18 +0100)]
arm64: zynqmp: Enable booting to ATF

U-Boot is now able to boot to ARM Trusted Firmware (ATF). The boot
flow is SPL(EL3) loads ATF and full u-boot and jump to ATF(EL3) which
pass control to full u-boot(EL2). This has been tested on zcu106, so
enable it in this defconfig.

To generate an image that triggers this booting flow, you need to pass
'-O arm-trusted-firmware' to mkimage.

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Enable pxe and dhcp if commands are enabled
Michal Simek [Wed, 28 Mar 2018 13:20:48 +0000 (15:20 +0200)]
arm64: zynqmp: Enable pxe and dhcp if commands are enabled

Targets without net can't use pxe or dhcp boot methods.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agonet: phy: xilinx_phy: Read phytype using property xlnx,phy-type
Siva Durga Prasad Paladugu [Fri, 12 Jan 2018 07:14:54 +0000 (12:44 +0530)]
net: phy: xilinx_phy: Read phytype using property xlnx,phy-type

This patch reads phytype from property "xlnx,phy-type" instead
od simply looking for "phy-type". This is to be inline with
Linux and also fixes the issue of detecting it wrongly in
u-boot.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agoaxi: ethernet: Added support for 64 bit addressing for axi-ethernet
Vipul Kumar [Tue, 23 Jan 2018 09:22:35 +0000 (14:52 +0530)]
axi: ethernet: Added support for 64 bit addressing for axi-ethernet

This patch uses writeq() function to enable greater than 32 bit
addressing of axi-ethernet for the ZynqMP devices.

Signed-off-by: Vipul Kumar <vipulk@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agonand: arasan_nfc: Fixed NAND write issue
Vipul Kumar [Sat, 10 Mar 2018 12:22:23 +0000 (17:52 +0530)]
nand: arasan_nfc: Fixed NAND write issue

In commit 2453c695185f ("arm64: zynqmp: nand: Fixed NAND erase issue for
size 1GiB or more"), ARASAN_NAND_MEM_ADDR1_PAGE_MASK macro changed
to 0xFFFF and the same macro is used in nand write and so that getting
nand write error.
This patch reverted this macro to the 0xFFFF0000 and used
ARASAN_NAND_MEM_ADDR1_COL_MASK in the nand erase function
which is equal to 0xFFFF.

Signed-off-by: Vipul Kumar <vipulk@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agofpga: zynq: Add delay after PCFG_PROG_B change
Siva Durga Prasad Paladugu [Tue, 6 Mar 2018 12:07:09 +0000 (17:37 +0530)]
fpga: zynq: Add delay after PCFG_PROG_B change

There is delay needed after PCFG_PROGB change if
AES key source is efuse. This fixes the issue of
encrypted bitstream loading with AES efuse as key
source.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agofpga: zynqmp: Fix the nonsecure bitstream loading issue
Siva Durga Prasad Paladugu [Wed, 14 Mar 2018 18:47:24 +0000 (00:17 +0530)]
fpga: zynqmp: Fix the nonsecure bitstream loading issue

Xilfpga library expects the size of bitstream in a pointer
but currenly we are passing the size as a value. This patch
fixes this issue.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Nava kishore Manne <navam@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agofpga: zynqmp: Update zynqmp_load() as per latest xilfpga
Siva Durga Prasad Paladugu [Thu, 1 Mar 2018 12:14:47 +0000 (17:44 +0530)]
fpga: zynqmp: Update zynqmp_load() as per latest xilfpga

Latest xilfpga expects to set BIT5 of flags for nonsecure
bitsream and also expects length in bytes instead of words
This patch does the same.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agofpga: zynqmp: Add support to get the PCAP status for fpga info command
Nitin Jain [Fri, 16 Feb 2018 11:59:54 +0000 (17:29 +0530)]
fpga: zynqmp: Add support to get the PCAP status for fpga info command

This patch adds support for ZynqMP platform to print FPGA PCAP status
for "fpga status" command.

Signed-off-by: Nitin Jain <nitinj@xilinx.com>
Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoclk: zynqmp: Add new compatible string for clock driver
Michal Simek [Wed, 21 Feb 2018 12:59:21 +0000 (13:59 +0100)]
clk: zynqmp: Add new compatible string for clock driver

New and old clk drivers are sharing IDs and descriptions.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm: zynq: Use fixed partitions for spi flash for zc770 xm010
Michal Simek [Tue, 27 Mar 2018 11:49:05 +0000 (13:49 +0200)]
arm: zynq: Use fixed partitions for spi flash for zc770 xm010

Sync with mainline.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm: zynq: Fix eeprom dt nodes
Michal Simek [Tue, 27 Mar 2018 11:48:51 +0000 (13:48 +0200)]
arm: zynq: Fix eeprom dt nodes

- Use eeprom for node name
- Use atmel compatible string instead of at.
- Add missing labels

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoARM: dts: zynq: Add generic compatible string for I2C EEPROM
Javier Martinez Canillas [Thu, 15 Jun 2017 18:54:12 +0000 (20:54 +0200)]
ARM: dts: zynq: Add generic compatible string for I2C EEPROM

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@dowhile0.org>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm: zynq: Use i2c-mux instead of i2cswitch for pca9548
Michal Simek [Tue, 6 Feb 2018 13:00:30 +0000 (14:00 +0100)]
arm: zynq: Use i2c-mux instead of i2cswitch for pca9548

i2c muxes should described like this.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm: zynq: Sync up licenses with mainline kernel
Michal Simek [Tue, 27 Mar 2018 11:43:05 +0000 (13:43 +0200)]
arm: zynq: Sync up licenses with mainline kernel

Use different location for SPDX line. Also update dates for new mainline
DTS files.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm: zynq: Remove 0x prefixes from cc108
Michal Simek [Tue, 27 Mar 2018 12:31:42 +0000 (14:31 +0200)]
arm: zynq: Remove 0x prefixes from cc108

The patch fixing issues reported by DTC:
zynq-cc108.dtb: Warning (unit_address_format): Node
/amba/spi@e000d000/flash@0/partition@0x400000 unit name should not have
leading "0x"
zynq-cc108.dtb: Warning (unit_address_format): Node
/amba/spi@e000d000/flash@0/partition@0x800000 unit name should not have
leading "0x"
zynq-cc108.dtb: Warning (unit_address_format): Node
/amba/spi@e000d000/flash@0/partition@0xc00000 unit name should not have
leading "0x"
zynq-cc108.dtb: Warning (unit_address_format): Node
/amba/spi@e000d000/flash@0/partition@0xd00000 unit name should not have
leading "0x"
zynq-cc108.dtb: Warning (unit_address_format): Node
/amba/spi@e000d000/flash@0/partition@0xf00000 unit name should not have
leading "0x"

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Remove double spaces from dts file
Michal Simek [Tue, 27 Mar 2018 14:21:42 +0000 (16:21 +0200)]
arm64: zynqmp: Remove double spaces from dts file

There is no reason to have double spaces for indentation.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Add silabs prefix to u69 for zcu102
Michal Simek [Tue, 27 Mar 2018 10:48:30 +0000 (12:48 +0200)]
arm64: zynqmp: Add silabs prefix to u69 for zcu102

Add vendor prefix to si5341.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Remove number from clock-generator node name
Michal Simek [Tue, 27 Mar 2018 08:39:53 +0000 (10:39 +0200)]
arm64: zynqmp: Remove number from clock-generator node name

There shouldn't be a number appended based on spec.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Remove u-boot commands from dts files
Michal Simek [Tue, 27 Mar 2018 08:47:26 +0000 (10:47 +0200)]
arm64: zynqmp: Remove u-boot commands from dts files

U-Boot commands shouldn't be the part of kernel DTS files.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Update sd properties for dc5
Srinivas Goud [Tue, 22 Aug 2017 09:08:46 +0000 (14:38 +0530)]
arm64: zynqmp: Update sd properties for dc5

This patch adds no-1-8-v below properties to sd node for dc5 board dts.

Signed-off-by: Srinivas Goud <srinivas.goud@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Enable ttcs for zc1751 dc5
Michal Simek [Tue, 27 Mar 2018 14:10:25 +0000 (16:10 +0200)]
arm64: zynqmp: Enable ttcs for zc1751 dc5

Enable TTCs for this target as is done in Linux kernel.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Add eeprom reference to eeprom nodes
Michal Simek [Tue, 27 Mar 2018 11:15:17 +0000 (13:15 +0200)]
arm64: zynqmp: Add eeprom reference to eeprom nodes

eeprom can contain information which can be used by nvmem drivers.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Use atmel prefix instead of at
Michal Simek [Tue, 27 Mar 2018 08:54:25 +0000 (10:54 +0200)]
arm64: zynqmp: Use atmel prefix instead of at

This changes was done in mainline and this patch is just following it.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Fix spi flash partition definition for zc1751 dc2
Michal Simek [Tue, 27 Mar 2018 11:09:15 +0000 (13:09 +0200)]
arm64: zynqmp: Fix spi flash partition definition for zc1751 dc2

Using different node name and label partitions as data.
Also use latest compatible strings based on mainline review.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Use s/_/-/g in node name for zcu102 rev1.0
Michal Simek [Tue, 27 Mar 2018 10:50:04 +0000 (12:50 +0200)]
arm64: zynqmp: Use s/_/-/g in node name for zcu102 rev1.0

Follow spec for node names.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Use keycode from input/input.h
Michal Simek [Tue, 27 Mar 2018 10:13:13 +0000 (12:13 +0200)]
arm64: zynqmp: Use keycode from input/input.h

Instead of hardcoding numbers.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Remove additional comments from dts files
Michal Simek [Tue, 27 Mar 2018 10:01:24 +0000 (12:01 +0200)]
arm64: zynqmp: Remove additional comments from dts files

Remove additional comments which were removed as the part of upstreaming.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Sync up license with mainline kernel
Michal Simek [Tue, 27 Mar 2018 08:36:39 +0000 (10:36 +0200)]
arm64: zynqmp: Sync up license with mainline kernel

Mainline Linux kernel has adopted SPDX header license in a different
format then was used before. This patch is syncing it up.

Also update years in License text and remove Nathalie's email because it
is no longer valid.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Use i2c-mux instead of i2cswitch instead
Michal Simek [Tue, 27 Mar 2018 08:38:08 +0000 (10:38 +0200)]
arm64: zynqmp: Use i2c-mux instead of i2cswitch instead

Based on review from mainline i2c-mux is standard name for i2c switches.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Use maxim prefix for all maxim chips
Michal Simek [Tue, 27 Mar 2018 08:52:40 +0000 (10:52 +0200)]
arm64: zynqmp: Use maxim prefix for all maxim chips

Use vendor prefix for Maxim chips.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Sync alignment with mainline
Michal Simek [Wed, 17 Jan 2018 15:32:33 +0000 (16:32 +0100)]
arm64: zynqmp: Sync alignment with mainline

Sync pcie and lpd_dma nodes with mainline version.
Incorrect locations are causing diff in statistics that's why
synchronizations are needed.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoefi_loader: correctly set the machine type in the PE header
Heinrich Schuchardt [Fri, 6 Apr 2018 13:36:31 +0000 (15:36 +0200)]
efi_loader: correctly set the machine type in the PE header

The portable executable header has a field describing the machine type.
The machine type should match the binary. So on i386 we should use
IMAGE_FILE_MACHINE_I386 and on x86_64 we should use
IMAGE_FILE_MACHINE_AMD64. The actual value is issued by the objcopy
command invoked in scripts/Makefile.lib in depdendence of the value of
EFI_TARGET.

The value is used both for EFI_STUB and for EFI_LOADER.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoMAINTAINERS: ZYNQMP: correct entries
Heinrich Schuchardt [Wed, 4 Apr 2018 07:22:03 +0000 (09:22 +0200)]
MAINTAINERS: ZYNQMP: correct entries

Replace references to non-existent file.

Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Michal Simek <monstr@monstr.eu>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoMAINTAINERS: Fix zynqmp clock driver path
Michal Simek [Tue, 13 Mar 2018 10:50:22 +0000 (11:50 +0100)]
MAINTAINERS: Fix zynqmp clock driver path

Fix c&p error from Zynq.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm: zynq: Handle ENXIO error return value properly
Michal Simek [Fri, 23 Feb 2018 12:39:37 +0000 (13:39 +0100)]
arm: zynq: Handle ENXIO error return value properly

zynq_clk_get_rate() is also returning ENXIO which is not handled now.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoARM: dts: zynq: Rename dts for Z-turn board
Anton Gerasimov [Sat, 24 Mar 2018 17:32:00 +0000 (18:32 +0100)]
ARM: dts: zynq: Rename dts for Z-turn board

Makes naming in line with other Zynq boards.

Signed-off-by: Anton Gerasimov <tossel@gmail.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoARM: dts: zynq: Update dts for Z-turn board
Anton Gerasimov [Sat, 24 Mar 2018 17:31:59 +0000 (18:31 +0100)]
ARM: dts: zynq: Update dts for Z-turn board

Delete devices implemented in PL, stylistic changes.

Signed-off-by: Anton Gerasimov <tossel@gmail.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoCleanup CONFIG_VERSION_VARIABLE migration
Alex Kiernan [Sun, 1 Apr 2018 16:37:54 +0000 (16:37 +0000)]
Cleanup CONFIG_VERSION_VARIABLE migration

CONFIG_VERSION_VARIABLE had already been mostly migrated to Kconfig,
but two headers still referenced it. Also set defaults so that
most of the defconfigs inherit the default rather than needing it
to be set explicitly.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Reviewed-by: Petr Vorel <petr.vorel@gmail.com>
6 years agoMigrate CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG to Kconfig
Alex Kiernan [Sun, 1 Apr 2018 16:37:53 +0000 (16:37 +0000)]
Migrate CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG to Kconfig

Convert CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG to Kconfig

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Petr Vorel <petr.vorel@gmail.com>
Reviewed-by: Petr Vorel <petr.vorel at gmail.com>
6 years agonet: Move enetaddr env access code to env config instead of net config
Alex Kiernan [Sun, 1 Apr 2018 09:22:38 +0000 (09:22 +0000)]
net: Move enetaddr env access code to env config instead of net config

In order that we can use eth_env_* even when CONFIG_NET isn't set, move
these functions to environment code from net code.

This fixes failures such as:

  board/ti/am335x/built-in.o: In function `board_late_init':
  board/ti/am335x/board.c:752: undefined reference to `eth_env_set_enetaddr'
  u-boot/board/ti/am335x/board.c:766: undefined reference to `eth_env_set_enetaddr'

which caters for use cases such as:

commit f411b5cca48f ("board: am335x: Always set eth/eth1addr environment
variable")

when Ethernet is required in Linux, but not U-Boot.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
6 years agoti: am335x: Fix build when networking is disabled
Alex Kiernan [Sun, 1 Apr 2018 09:22:37 +0000 (09:22 +0000)]
ti: am335x: Fix build when networking is disabled

When compiling without CONFIG_CLOCK_SYNTHESIZER (which is implied by
CONFIG_DRIVER_TI_CPSW for am335x_evm), exclude the network setup for
AM335x-ICEv2 to avoid link time failures:

  board/ti/am335x/board.c:683: undefined reference to `setup_clock_synthesizer'

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
6 years agousb: gadget: USB_ETHER requires network support
Alex Kiernan [Sun, 1 Apr 2018 09:22:36 +0000 (09:22 +0000)]
usb: gadget: USB_ETHER requires network support

In order to compile the USB Ethernet gadget support we require that NET
is enabled, add that dependency here.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agoti: am335x: Fix bootargs when building without NET
Alex Kiernan [Sun, 1 Apr 2018 09:22:35 +0000 (09:22 +0000)]
ti: am335x: Fix bootargs when building without NET

If DHCP/PXE commands are disabled then the compilation fails due to
bootargs attempting to use them:

  include/config_distro_bootcmd.h:319:2: error: expected ‘}’ before ‘BOOT_TARGET_DEVICES_references_PXE_without_CONFIG_CMD_DHCP_or_PXE’

Ensure that if the command aren't enabled, we don't try and use them.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agoMigrate CONFIG_DRIVER_TI_CPSW to Kconfig
Alex Kiernan [Sun, 1 Apr 2018 09:22:34 +0000 (09:22 +0000)]
Migrate CONFIG_DRIVER_TI_CPSW to Kconfig

This converts CONFIG_DRIVER_TI_CPSW to Kconfig

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agotreewide: Convert CONFIG_HOSTNAME to a string option
Mario Six [Wed, 28 Mar 2018 12:38:20 +0000 (14:38 +0200)]
treewide: Convert CONFIG_HOSTNAME to a string option

CONFIG_HOSTNAME is defined as a "plain" preprocessor string, but every
use is couched by __stringify(...).

Hence, convert it to a proper string option.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agotreewide: Migrate CONFIG_FSL_ESDHC to Kconfig
Mario Six [Wed, 28 Mar 2018 12:38:19 +0000 (14:38 +0200)]
treewide: Migrate CONFIG_FSL_ESDHC to Kconfig

Migrate the CONFIG_FSL_ESDHC option to Kconfig.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agotreewide: Migrate CONFIG_TSEC_ENET to Kconfig
Mario Six [Wed, 28 Mar 2018 12:38:18 +0000 (14:38 +0200)]
treewide: Migrate CONFIG_TSEC_ENET to Kconfig

Migrate the CONFIG_TSEC_ENET option to Kconfig.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agotreewide: Migrate CONFIG_DISPLAY_BOARDINFO_LATE to Kconfig
Mario Six [Wed, 28 Mar 2018 12:38:17 +0000 (14:38 +0200)]
treewide: Migrate CONFIG_DISPLAY_BOARDINFO_LATE to Kconfig

Migrate the CONFIG_DISPLAY_BOARDINFO_LATE option to Kconfig.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
[trini: Re-run migration]
Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agotreewide: Migrate CONFIG_LAST_STAGE_INIT to Kconfig
Mario Six [Wed, 28 Mar 2018 12:38:16 +0000 (14:38 +0200)]
treewide: Migrate CONFIG_LAST_STAGE_INIT to Kconfig

Migrate the CONFIG_LAST_STAGE_INIT option to Kconfig.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agotreewide: Migrate CONFIG_BOARD_EARLY_INIT_R to Kconfig
Mario Six [Wed, 28 Mar 2018 12:38:15 +0000 (14:38 +0200)]
treewide: Migrate CONFIG_BOARD_EARLY_INIT_R to Kconfig

Migrate the CONFIG_BOARD_EARLY_INIT_R option to Kconfig.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agotreewide: Migrate CONFIG_SYS_ALT_MEMTEST to Kconfig
Mario Six [Wed, 28 Mar 2018 12:38:14 +0000 (14:38 +0200)]
treewide: Migrate CONFIG_SYS_ALT_MEMTEST to Kconfig

Migrate the CONFIG_SYS_ALT_MEMTEST option to Kconfig.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
[trini: Re-run migration after also including CMD_MEMTEST]
Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agoconfigs: Resync with savedefconfig
Tom Rini [Sun, 8 Apr 2018 00:27:54 +0000 (20:27 -0400)]
configs: Resync with savedefconfig

Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agoconfigs: Finish migration of CONFIG_ATMEL_SPI
Tom Rini [Sat, 7 Apr 2018 17:11:01 +0000 (13:11 -0400)]
configs: Finish migration of CONFIG_ATMEL_SPI

With the previous temporary reverts, we need to re-complete the
migration of CONFIG_ATMEL_SPI here now.

Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agoRevert "spi: atmel: Drop non-dm code"
Tom Rini [Sat, 7 Apr 2018 13:15:50 +0000 (09:15 -0400)]
Revert "spi: atmel: Drop non-dm code"

As we aren't quite able to convert some platforms with a very small size
limit in SPL yet, we need to revert this for now.

This reverts commit 7b0947787358c6b277431d6b76ce043d8bec641d.

Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agoRevert "spi: atmel: Drop atmel_spi.h"
Tom Rini [Sat, 7 Apr 2018 13:15:06 +0000 (09:15 -0400)]
Revert "spi: atmel: Drop atmel_spi.h"

As we aren't quite able to convert some platforms with a very small size
limit in SPL yet, we need to revert this for now.

This reverts commit 37434db29be495ef41f204a97b8bf13b1418f97d.

Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agocmd: Add command for calculating binary operations
Mario Six [Wed, 28 Mar 2018 12:39:18 +0000 (14:39 +0200)]
cmd: Add command for calculating binary operations

This patch adds a command that enables the calculation of bit operations
(AND, OR, XOR) on binary data from the command line. Memory locations as
well as the contents of environment variables are eligible as sources
and destination of the binary data used in the operations.

The possible applications are manifold: Setting specific bits in
registers using the regular read-OR-write pattern, masking out bits in
bit values, implementation of simple OTP encryption using the XOR
operation, etc.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agocmd: ximg: Respect cache line size for flushing
Mario Six [Wed, 28 Mar 2018 12:39:10 +0000 (14:39 +0200)]
cmd: ximg: Respect cache line size for flushing

Make sure that the cache line size if respected when flushing the cache.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agogpio: uclass: Fix debug string
Mario Six [Wed, 28 Mar 2018 12:39:01 +0000 (14:39 +0200)]
gpio: uclass: Fix debug string

A debug string still has the old name of a function being called; update
it.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agowatchdog: Fix Kconfig alignment for WDT_SANDBOX
Michal Simek [Wed, 28 Mar 2018 10:57:54 +0000 (12:57 +0200)]
watchdog: Fix Kconfig alignment for WDT_SANDBOX

Fix Kconfig alignment which should be <tab><space><space>.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoimage: fit: Show information about OS type in firwmare case too
Michal Simek [Mon, 26 Mar 2018 14:31:27 +0000 (16:31 +0200)]
image: fit: Show information about OS type in firwmare case too

SPL ATF implementation requires FIT image with partitions where the one
is Firmware/ATF and another one Firmware/U-Boot. OS field is used for
recording that difference that's why make sense to show values there for
Firmware types.

For example:
 Image 0 (atf)
  Description:  ATF bl31.bin
  Created:      Mon Mar 26 15:58:14 2018
  Type:         Firmware
  Compression:  uncompressed
  Data Size:    51152 Bytes = 49.95 KiB = 0.05 MiB
  Architecture: ARM
  OS:           ARM Trusted Firmware
  Load Address: 0xfffe0000
  Hash algo:    md5
  Hash value:   36a4212bbb698126bf5a248f0f4b5336
 Image 1 (uboot)
  Description:  u-boot.bin
  Created:      Mon Mar 26 15:58:14 2018
  Type:         Firmware
  Compression:  uncompressed
  Data Size:    761216 Bytes = 743.38 KiB = 0.73 MiB
  Architecture: ARM
  OS:           U-Boot
  Load Address: 0x08000000
  Hash algo:    md5
  Hash value:   f22960fe429be72296dc8dc59a47d566

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jun Nie <jun.nie@linaro.org>
6 years agoimage: fit: Show firmware configuration property if present
Michal Simek [Mon, 26 Mar 2018 14:31:26 +0000 (16:31 +0200)]
image: fit: Show firmware configuration property if present

SPL ATF support requires to have firmware property which should be also
listed by mkimage -l when images is created.

The patch is also using this macro in spl_fit to match keyword.

When image is created:
 Default Configuration: 'config'
 Configuration 0 (config)
  Description:  ATF with full u-boot
  Kernel:       unavailable
  Firmware:     atf
  FDT:          dtb

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jun Nie <jun.nie@linaro.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agoconfigs: am43xx_evm_qspiboot_defconfig: Move to DM
Vignesh R [Mon, 26 Mar 2018 07:57:03 +0000 (13:27 +0530)]
configs: am43xx_evm_qspiboot_defconfig: Move to DM

Move am43xx_evm_qspiboot_defconfig to DM. This is required as SPI core
and TI QSPI driver no longer supports non DM interfaces.

Signed-off-by: Vignesh R <vigneshr@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
6 years agoARM: dts: Add new "generic" am4372 device tree file.
Vignesh R [Mon, 26 Mar 2018 07:57:02 +0000 (13:27 +0530)]
ARM: dts: Add new "generic" am4372 device tree file.

With U-boot runtime board detect for DTB selection a "default" dtb needs
to be created. This will be used temporarily until the "proper" dtb is
selected.

Also, add -u-boot.dtsi for AM437x SK and IDK to enable I2C for
board detection via DM_I2C.

Signed-off-by: Vignesh R <vigneshr@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
6 years agoboard: ti: am43xx: Define embedded_dtb_select for runtime DTB selection in U-boot
Vignesh R [Mon, 26 Mar 2018 07:57:01 +0000 (13:27 +0530)]
board: ti: am43xx: Define embedded_dtb_select for runtime DTB selection in U-boot

AM437x QSPI boot is a single stage boot and hence needs runtime DTB
selection to support AM437x-SK and AM437x-IDK with DM enabled. This is
required to move am43xx_evm_qspiboot_defconfig to use DM/DT.

Signed-off-by: Vignesh R <vigneshr@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
6 years agoenv: Properly check for BLK support
Sjoerd Simons [Thu, 22 Mar 2018 21:53:50 +0000 (22:53 +0100)]
env: Properly check for BLK support

Use CONFIG_IS_ENABLED to see if CONFIG_BLK is enabled. Otherwise
SPL compilation breaks on boards which do have CONFIG_BLK enabled but
not DM_MMC for the SPL as follows:

env/mmc.c: In function ‘init_mmc_for_env’:
env/mmc.c:164:6: warning: implicit declaration of function ‘blk_get_from_parent’; did you mean ‘efi_get_ram_base’? [-Wimplicit-function-declaration]
  if (blk_get_from_parent(mmc->dev, &dev))
      ^~~~~~~~~~~~~~~~~~~
      efi_get_ram_base
env/mmc.c:164:29: error: ‘struct mmc’ has no member named ‘dev’
  if (blk_get_from_parent(mmc->dev, &dev))
                             ^~

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoconfigs: k2hk_hs_evm: Resync defconfig with non-HS defconfig
Andrew F. Davis [Thu, 22 Mar 2018 20:44:40 +0000 (15:44 -0500)]
configs: k2hk_hs_evm: Resync defconfig with non-HS defconfig

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Lokesh vutla <lokeshvutla@ti.com>
6 years agoconfigs: k2e_hs_evm: Resync defconfig with non-HS defconfig
Andrew F. Davis [Thu, 22 Mar 2018 20:44:39 +0000 (15:44 -0500)]
configs: k2e_hs_evm: Resync defconfig with non-HS defconfig

Signed-off-by: Andrew F. Davis <afd@ti.com>
6 years agoconfigs: k2g_hs_evm: Resync defconfig with non-HS defconfig
Andrew F. Davis [Thu, 22 Mar 2018 20:44:38 +0000 (15:44 -0500)]
configs: k2g_hs_evm: Resync defconfig with non-HS defconfig

Signed-off-by: Andrew F. Davis <afd@ti.com>
6 years agortc: rx8025: remove redundant code in rtc_reset
Chris Packham [Wed, 21 Mar 2018 02:40:37 +0000 (15:40 +1300)]
rtc: rx8025: remove redundant code in rtc_reset

As of commit 1a1fa2406689 ("rtc: Set valid date after reset") the
command "date reset" will set the date/time to 2000-01-01 0:00:00 after
calling rtc_reset(). This means that the rx8025 implementation of
rtc_reset() does not need to call rtc_set().

Signed-off-by: Chris Packham <judge.packham@gmail.com>
6 years agortc: rs5c372: remove redundant code in rtc_reset
Chris Packham [Wed, 21 Mar 2018 02:40:36 +0000 (15:40 +1300)]
rtc: rs5c372: remove redundant code in rtc_reset

As of commit 1a1fa2406689 ("rtc: Set valid date after reset") the
command "date reset" will set the date/time to 2000-01-01 0:00:00 after
calling rtc_reset(). This means that the rs5c372 implementation of
rtc_reset() does not need to call rtc_set().

Signed-off-by: Chris Packham <judge.packham@gmail.com>
6 years agortc: mx27rtc: remove redundant code in rtc_reset
Chris Packham [Wed, 21 Mar 2018 02:40:35 +0000 (15:40 +1300)]
rtc: mx27rtc: remove redundant code in rtc_reset

As of commit 1a1fa2406689 ("rtc: Set valid date after reset") the
command "date reset" will set the date/time to 2000-01-01 0:00:00 after
calling rtc_reset(). This means that the mx27rtc implementation of
rtc_reset() can be an empty stub function.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
6 years agortc: ds1374: remove redundant code in rtc_reset
Chris Packham [Wed, 21 Mar 2018 02:40:34 +0000 (15:40 +1300)]
rtc: ds1374: remove redundant code in rtc_reset

As of commit 1a1fa2406689 ("rtc: Set valid date after reset") the
command "date reset" will set the date/time to 2000-01-01 0:00:00 after
calling rtc_reset(). This means that the ds1374 implementation of
rtc_reset() doesn't need to call rtc_set().

Signed-off-by: Chris Packham <judge.packham@gmail.com>
6 years agortc: ds1307: remove redundant code in rtc_reset
Chris Packham [Wed, 21 Mar 2018 02:40:33 +0000 (15:40 +1300)]
rtc: ds1307: remove redundant code in rtc_reset

As of commit 1a1fa2406689 ("rtc: Set valid date after reset") the
command "date reset" will set the date/time to 2000-01-01 0:00:00 after
calling rtc_reset(). This means that the ds1307 implementation of
rtc_reset() doesn't need to call rtc_set().

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agobootvx: use program header for loading
Christian Gmeiner [Tue, 20 Mar 2018 13:18:25 +0000 (14:18 +0100)]
bootvx: use program header for loading

The section header address is a VMA whereas the address found in
the program header is a physical one. With this change it is
possible to load and start a vx7 intel generic based image.

$ readelf -l /tmp/vx7

Elf file type is EXEC (Executable file)
Entry point 0x408000
There are 2 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x001000 0x00408000 0x00408000 0x04000 0x04000 RWE 0x1000
  LOAD           0x005000 0xe040c000 0x0040c000 0x583a84 0x5ccc70 RWE 0x1000

 Section to Segment mapping:
  Segment Sections...
   00     .text.locore .data.locore
   01     .text .eh_frame .wrs_build_vars .data .tls_data .tls_vars .bss

$ readelf -S /tmp/vx7
There are 13 section headers, starting at offset 0x588af8:

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .text.locore      PROGBITS        00408000 001000 00011e 00  AX  0   0 16
  [ 2] .data.locore      PROGBITS        00409000 002000 003000 00  WA  0   0 4096
  [ 3] .text             PROGBITS        e040c000 005000 4802a0 00 WAX  0   0 32
  [ 4] .eh_frame         PROGBITS        e088c2a0 4852a0 0a1ed0 00   A  0   0  4
  [ 5] .wrs_build_vars   PROGBITS        e092e170 527170 000190 00  Ax  0   0  1
  [ 6] .data             PROGBITS        e092f000 528000 060a70 00  WA  0   0 4096
  [ 7] .tls_data         PROGBITS        e098fa70 588a70 000004 00   A  0   0  4
  [ 8] .tls_vars         PROGBITS        e098fa78 588a78 00000c 00  WA  0   0  4
  [ 9] .bss              NOBITS          e098faa0 588a84 0491d0 00  WA  0   0 32
  [10] .shstrtab         STRTAB          00000000 588a84 000074 00      0   0  1
  [11] .symtab           SYMTAB          00000000 588d00 056ee0 10     12 9758  4
  [12] .strtab           STRTAB          00000000 5dfbe0 05f48a 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)

For completeness here are the same information for an old vx5 based image. After
this change it is possible to boot vx5 and vx7 (intel generic) images.

$ readelf -l /tmp/vx5

Elf file type is EXEC (Executable file)
Entry point 0x308000
There are 1 program headers, starting at offset 52

Program Headers:
 Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
 LOAD           0x000060 0x00308000 0x00308000 0x3513a0 0x757860 RWE 0x20

Section to Segment mapping:
 Segment Sections...
  00     .text .data .bss
[christian@chgm-pc ~]$ readelf -S /tmp/vx5
There are 12 section headers, starting at offset 0x356580:

Section Headers:
 [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
 [ 0]                   NULL            00000000 000000 000000 00      0   0  0
 [ 1] .text             PROGBITS        00308000 000060 319b10 00 WAX  0   0 32
 [ 2] .data             PROGBITS        00621b20 319b80 037880 00  WA  0   0 32
 [ 3] .bss              NOBITS          006593a0 351400 4064c0 00  WA  0   0 16
 [ 4] .debug_aranges    PROGBITS        00000000 351400 000060 00      0   0  1
 [ 5] .debug_pubnames   PROGBITS        00000000 351460 00018b 00      0   0  1
 [ 6] .debug_info       PROGBITS        00000000 3515eb 003429 00      0   0  1
 [ 7] .debug_abbrev     PROGBITS        00000000 354a14 000454 00      0   0  1
 [ 8] .debug_line       PROGBITS        00000000 354e68 0016a4 00      0   0  1
 [ 9] .shstrtab         STRTAB          00000000 35650c 000071 00      0   0  1
 [10] .symtab           SYMTAB          00000000 356760 0440e0 10     11 8574  4
 [11] .strtab           STRTAB          00000000 39a840 03e66c 00      0   0  1
Key to Flags:
 W (write), A (alloc), X (execute), M (merge), S (strings)
 I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
 O (extra OS processing required) o (OS specific), p (processor specific)

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>