Tom Rini [Sat, 3 Jun 2017 22:05:04 +0000 (18:05 -0400)]
Merge git://git.denx.de/u-boot-fsl-qoriq
Tom Rini [Sat, 3 Jun 2017 22:04:54 +0000 (18:04 -0400)]
Merge git://git.denx.de/u-boot-sunxi
Tom Rini [Fri, 2 Jun 2017 15:03:50 +0000 (11:03 -0400)]
Kconfig: Migrate FS_FAT / FAT_WRITE
Now that these symbols are in Kconfig, migrate all users. Use imply on
a number of platforms that default to having this enabled. As part of
this we must migrate some straglers for CMD_FAT and DOS_PARTITION.
Signed-off-by: Tom Rini <trini@konsulko.com>
Sekhar Nori [Fri, 2 Jun 2017 12:24:04 +0000 (17:54 +0530)]
board: ti: enable support for writing to fat partition
Enable support for writing to FAT partitions on
TI's boards.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Sekhar Nori [Fri, 2 Jun 2017 12:24:02 +0000 (17:54 +0530)]
config_fallbacks: add additional fallbacks for fat filesystem
Add fallbacks needed to keep all boards building
while they are migrated to use Kconfig symbols
instead of defines in <board>_config.h files for
FAT filesystem.
These should eventually go away once Kconfig select
or imply statements are put in place and duplicated
defines in <board>_config.h removed.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
[trini: Update logic since CMD_FAT / CONFIG_SPL_FAT_SUPPORT are
selecting FS_FAT]
Signed-off-by: Tom Rini <trini@konsulko.com>
Sekhar Nori [Fri, 2 Jun 2017 12:24:01 +0000 (17:54 +0530)]
configs: k2g_evm: make sure config fallbacks take effect
Since config fallbacks contained in include/config_fallbacks.h
come into k2g_evm.h file through ti_armv7_keystone2.h, it should
be the last file included.
Without this, #define of FAT_WRITE when environment is in FAT
does not happen as the environment location is decided later
in the file.
Similar issues can come with other config fallbacks implemented.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Sekhar Nori [Fri, 2 Jun 2017 12:24:00 +0000 (17:54 +0530)]
configs: k2*_evm: let each board decide env location
Not all TI Keystone2 EVMs want environment in NAND flash.
K2G EVM which has an MMC/SD slot, keep environment in a
FAT partition on SD card.
Since ti_armv7_keystone2.h defines environment is in NAND,
boards which do not follow that have to #undef'ine that
configuration. This leads to ugly ordering issues around
where exactly the include of ti_armv7_keystone2.h can come
in within the k2*_evm.h files.
Move environment location to config file of each board.
This should make it easy to change it for any one board
without affecting all other boards.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Sekhar Nori [Fri, 2 Jun 2017 12:23:59 +0000 (17:53 +0530)]
fs: fat: add kbuild configuration support
Add Kconfig symbols for various configurations
supported by FAT filesystem support code.
CONFIG_SUPPORT_VFAT has been left out since its
force enabled in include/fat.h and probably
should get removed at some point.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
[trini: add select FS_FAT for CMD_FAT and SPL_FAT_SUPPORT]
Signed-off-by: Tom Rini <trini@konsulko.com>
Jagan Teki [Wed, 24 May 2017 19:18:08 +0000 (19:18 +0000)]
sun50i: h5: Add initial Orangepi Prime support
Orangepi Prime is an open-source single-board computer
using the Allwinner h5 SOC.
H5 Orangepi Prime has
- Quad-core Cortex-A53
- 2GB DDR3
- Debug TTL UART
- 1000M/100M Ethernet RJ45
- Three USB 2.0
- HDMI
- Audio and MIC
- Wifi + BT
- IR receiver
- HDMI
- Wifi + BT
Boot from MMC:
-------------
U-Boot SPL
2017.05-00662-ga3f4c05-dirty (May 25 2017 - 13:30:14)
DRAM: 2048 MiB
Trying to boot from MMC1
NOTICE: BL3-1: Running on H5 (1718) in SRAM A2 (@0x44000)
NOTICE: Configuring SPC Controller
NOTICE: BL3-1: v1.0(debug):
aa75c8d
NOTICE: BL3-1: Built : 18:28:27, May 24 2017
INFO: BL3-1: Initializing runtime services
INFO: BL3-1: Preparing for EL3 exit to normal world
INFO: BL3-1: Next image address: 0x4a000000, SPSR: 0x3c9
U-Boot
2017.05-00662-ga3f4c05-dirty (May 25 2017 - 13:30:14 +0000) Allwinner Technology
CPU: Allwinner H5 (SUN50I)
Model: OrangePi Prime
DRAM: 2 GiB
MMC: SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: phy interface7
eth0: ethernet@
1c30000
starting USB...
USB0: USB EHCI 1.00
USB1: USB OHCI 1.0
scanning bus 0 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot: 0
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
York Sun [Mon, 15 May 2017 15:52:03 +0000 (08:52 -0700)]
armv8: ls1046ardb: Enable loading PPA during SPL stage for SD boot
Signed-off-by: York Sun <york.sun@nxp.com>
York Sun [Mon, 15 May 2017 15:52:02 +0000 (08:52 -0700)]
armv8: ls1046a: Enable spl_board_init() function
CONFIG_SPL_BOARD_INIT is used for SPL boot. It is only enabled for
secure boot at this moment. Enable it in defconfig files for SPL
build.
Signed-off-by: York Sun <york.sun@nxp.com>
York Sun [Mon, 15 May 2017 15:52:01 +0000 (08:52 -0700)]
armv8: ls1043ardb: Enable loading PPA during SPL stage for SD boot
Signed-off-by: York Sun <york.sun@nxp.com>
York Sun [Mon, 15 May 2017 15:52:00 +0000 (08:52 -0700)]
armv8: layerscape: Enabling loading PPA during SPL stage
Loading PPA in SPL puts the rest of U-Boot (including RAM version
loaded later) in EL2 with MMU and cache enabled. Once PPA is loaded,
PSCI is available.
Signed-off-by: York Sun <york.sun@nxp.com>
York Sun [Mon, 15 May 2017 15:51:59 +0000 (08:51 -0700)]
armv8: layerscape: Make U-Boot EL2 safe
When U-Boot boots from EL2, skip some lowlevel init code requiring
EL3, including CCI-400/CCN-504, trust zone, GIC, etc. These
initialization tasks are carried out before U-Boot runs. This applies
to the RAM version image used for SPL boot if PPA is loaded first.
Signed-off-by: York Sun <york.sun@nxp.com>
Santan Kumar [Fri, 5 May 2017 10:12:29 +0000 (15:42 +0530)]
armv8: ls2080aqds: Add support for SD boot
Signed-off-by: Santan Kumar <santan.kumar@nxp.com>
Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
Signed-off-by: Abhimanyu Saini <abhimanyu.saini@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
Santan Kumar [Fri, 5 May 2017 10:12:28 +0000 (15:42 +0530)]
armv8: ls2080a: Reorganise NAND_BOOT code in config flag
Add CONFIG_NAND_BOOT config flag to organise
NAND_BOOT specific code in config flag like
-nand-boot specfic errata errata_rcw_src()
-CONFIG_SYS_NAND_U_BOOT_DST,etc
Signed-off-by: Santan Kumar <santan.kumar@nxp.com>
Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
Signed-off-by: Abhimanyu Saini <abhimanyu.saini@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
Zhao Qiang [Thu, 25 May 2017 01:47:40 +0000 (09:47 +0800)]
QE: add QE support on SD boot
modify u_qe_init to upload QE firmware from SD card when it is SD
boot
Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
Bogdan Purcareata [Wed, 24 May 2017 16:40:22 +0000 (16:40 +0000)]
drivers: net: fsl-mc: Include MAC addr fixup to DPL
Previous to MC v10.x, port mac address was specified via DPL. Since
newer MC versions are compatible with old style DPLs, make the u-boot
env mac addresses visible there. This applies only to DPLs that have
an older version.
DPLs use 32 bit values for specifying MAC addresses. U-boot
environment variables take precedence over the MAC addresses already
visible in the DPL/DPC.
Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
Signed-off-by: Heinz Wrobel <heinz.wrobel@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
Bogdan Purcareata [Wed, 24 May 2017 16:40:21 +0000 (16:40 +0000)]
drivers: net: fsl-mc: Link MC boot to PHY_RESET_R
DPAA2 platforms boot the Management Complex based on the u-boot env
variable "mcinitcmd". Instead of doing this step on each platform
individually, define a single mc_env_boot function in the MC driver,
since it's semantically tied to it.
Call the function in a per-board reset_phy hook, as it gets called at a
later moment, when all board PHY devices have been initialized.
Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
Signed-off-by: Heinz Wrobel <heinz.wrobel@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
Jagan Teki [Thu, 25 May 2017 18:26:41 +0000 (18:26 +0000)]
arm64: dts: sun50i: h5: orangepi-pc2: Use GPIO flag binding macro
Instead of defining numerical value on GPIO flag
better to use existing binding macro.
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Jagan Teki [Thu, 25 May 2017 18:15:36 +0000 (18:15 +0000)]
arm64: dts: sun50i: Add sun50i-h5.dtsi
The Allwinner H5 SoC is pin-compatible to the H3 SoC,
but uses Cortex-A53 cores instead.
So move the shared cpu based and peripherals nodes into
sun50i-h5.dtsi so, that it can shared among the sun50i-h5
board dts files.
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Simon Glass [Fri, 19 May 2017 02:10:02 +0000 (20:10 -0600)]
sandbox: Move to use live tree
This updates sandbox to use a live device tree. This means that after
relocation (from board_init_r() onwards) it no-longer uses flat device
tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:10:01 +0000 (20:10 -0600)]
dm: gpio: power: Convert pm8916 drivers to livetree
This PMIC driver (power and GPIO) is used by the sandbox SPMI tests.
Update the drivers to support a live device tree so that the tests pass.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:10:00 +0000 (20:10 -0600)]
dm: test: Fix nit with position of backslash
Line up this backslash with all the others.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:59 +0000 (20:09 -0600)]
dm: sandbox: sysreset: Convert driver to livetree
Update this driver to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:58 +0000 (20:09 -0600)]
dm: sandbox: spi: Convert driver to support livetree
Update this driver to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:57 +0000 (20:09 -0600)]
dm: spi-flash: Convert uclass to livetree
Update the SPI flash uclass to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:56 +0000 (20:09 -0600)]
dm: sandbox: i2c_rtc: Drop fdtdec.h header
This is not needed in this driver. Drop it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:55 +0000 (20:09 -0600)]
dm: sandbox: i2c: Drop fdtdec.h header
This is not needed in this driver. Drop it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:54 +0000 (20:09 -0600)]
dm: spi: Convert uclass to livetree
Update the SPI uclass to support a live device tree. Also adjust
spi_slave_ofdata_to_platdata() to accept a device instead of a blob and
offset.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:53 +0000 (20:09 -0600)]
cros_ec: Update the cros_ec keyboard driver to livetree
Update this driver and key_matrix to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:52 +0000 (20:09 -0600)]
dm: Update the I2C eeprom driver for livetree
Update this driver so that it works with livetree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:51 +0000 (20:09 -0600)]
dm: pci: Update uclass to support livetree
Update the PCI uclass to support livetree. This mostly involves fixing
the address decoding from the device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:50 +0000 (20:09 -0600)]
dm: reset: Update uclass to support livetree
Update the reset domain uclass to support livetree. Fix the xlate() method
which has no callers.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:49 +0000 (20:09 -0600)]
dm: power-domain: Update uclass to support livetree
Update the power domain uclass to support livetree. Fix the xlate() method
which has no callers.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:48 +0000 (20:09 -0600)]
sandbox: phy: Update driver for livetree
Update the sandbox phy driver to support livetree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:47 +0000 (20:09 -0600)]
dm: phy: Update uclass to support livetree
Update the phy uclass to support livetree. Fix the xlate() method
which has no callers.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:46 +0000 (20:09 -0600)]
dm: mailbox: Update uclass to support livetree
Update the mailbox uclass to support livetree. Fix the xlate() method
in all callers.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:45 +0000 (20:09 -0600)]
dm: phy: Update tests to use ut_asserteq()
Use ut_asserteq() to test equality since this gives a better error message
on failure. Also make a few of the tests more specific.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:44 +0000 (20:09 -0600)]
dm: test: Disable the fdt_offset test with livetree
We cannot run this test with livetree since it uses device tree offsets.
Mark it as flat tree only.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:43 +0000 (20:09 -0600)]
dm: test: Separate out the bus DT offset test
We cannot access the device tree via an offset when running in livetree
mode. Separate out that part of the bus' children tests and mark it as
for the flat tree only.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:42 +0000 (20:09 -0600)]
dm: clk: fixed: Update to support livetree
Update the fixed-rate clock driver to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Wed, 31 May 2017 03:47:29 +0000 (21:47 -0600)]
dm: clk: Update uclass to support livetree
Update the clk uclass to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:40 +0000 (20:09 -0600)]
clk: Modify xlate() method for livetree
Update the xlate() method to use ofnode_phandle_args instead of the fdtdec
variant. This will allow drivers to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:39 +0000 (20:09 -0600)]
sandbox: usb: Convert emulators to livetree
Update the sandbox flash and hub USB emulators to support a live device
tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:38 +0000 (20:09 -0600)]
dm: usb: Convert uclass to livetree
Update the usb uclass to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:37 +0000 (20:09 -0600)]
dm: adc: Convert uclass to livetree
Update the adc uclass to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:36 +0000 (20:09 -0600)]
dm: mmc: Convert uclass to livetree
Update the mmc uclass to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:35 +0000 (20:09 -0600)]
dm: regulator: Update fixed regulator to support livetree.
Update this driver to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:34 +0000 (20:09 -0600)]
dm: regulator: Convert regulator uclass to support livetree
Update the regulator uclass to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:33 +0000 (20:09 -0600)]
sandbox: pmic: Convert pmic emulator to support livetree
Update this driver to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:32 +0000 (20:09 -0600)]
dm: pmic: Convert uclass to livetree
Update the pmic uclass and all pmics to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:31 +0000 (20:09 -0600)]
samsung: Move pmic header out of config file
We should not be including a PMIC header file in the board config. Move it
to a C file.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:30 +0000 (20:09 -0600)]
dm: i2c: Convert uclass to livetree
Update the i2c uclass to support a live device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:29 +0000 (20:09 -0600)]
string: Add strcspn()
Add an implementation of strcspn() which returns the number of initial
characters that do not match any in a rejection list.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:28 +0000 (20:09 -0600)]
string: Add strchrnul()
This functions works like strchr() but returns the end of the string if
the character is not found. Add an implementation of this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:27 +0000 (20:09 -0600)]
dm: Add more livetree helpers and definitions
Add some definitions and helpers for livetree in the main of.h header
file. These include:
- reading multi-cell integers
- default number of address/size cells
- functions for comparing names
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:26 +0000 (20:09 -0600)]
fdt: Rename a few functions in fdt_support
These two functions have an of_ prefix which conflicts with naming used
in of_addr. Rename them:
fdt_read_number
fdt_support_bus_default_count_cells
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:25 +0000 (20:09 -0600)]
test: Update 'make test' to run more tests
The standard sandbox board cannot run the of-platdata test since it needs
SPL. Also, we should test the flat tree version of sandbox.
Add these tests to the default test script.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:24 +0000 (20:09 -0600)]
sandbox: Add a new sandbox_flattree board
Add a sandbox board to test the non-livetree build (i.e. with
CONFIG_OF_FLAT disabled). This increases our build and test coverage.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:23 +0000 (20:09 -0600)]
cros_ec: Convert to support live tree
Convert this driver to support the live device tree and remove the old
fdtdec support.
The keyboard is not yet converted.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:22 +0000 (20:09 -0600)]
cros_ec: Fix debug() statement in ec_command_inptr()
This prints out the wrong pointers. Fix it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Wed, 31 May 2017 03:47:09 +0000 (21:47 -0600)]
dm: gpio: Add live tree support
Add support for requesting GPIOs with a live device tree.
This involves adjusting the function signature for the legacy function
gpio_request_by_name_nodev(), so fix up all callers.
Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes to stm32f746-disco.c:
Signed-off-by: Tom Rini <trini@konsulko.com>
Simon Glass [Fri, 19 May 2017 02:09:20 +0000 (20:09 -0600)]
dm: gpio: sandbox: Use dev_read...() functions to access DT
Use the new dev_read...() functions to access the device tree, so that a
live tree can be used.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:19 +0000 (20:09 -0600)]
dm: gpio: Drop blank line in gpio_xlate_offs_flags() comment
This is not needed. Drop it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:18 +0000 (20:09 -0600)]
dm: gpio: Refactor to prepare for live tree support
Move the main part of the GPIO request function into a separate function
so that it can be used by the live tree function when added. Update the
xlate method to use a node reference.
Update all GPIO drivers to handle the modified xlate() method.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:17 +0000 (20:09 -0600)]
dm: core: Run tests with both livetree and flat tree
Some tests require either livetree or flat tree. Add flags to allow the
tests to specify this. Adjust the test runner to run with livetree (if
supported) and then flat tree.
Some video tests are quite slow and running on flat tree adds little extra
test value, so run these on livetree only.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:16 +0000 (20:09 -0600)]
dm: test: Add support for running tests with livetree
It is useful to run the driver model tests with both livetree and flat
tree in case something is different between the two. Add this feature to
the test runner.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:15 +0000 (20:09 -0600)]
dm: test: Show the test filename when running
Show the filename of the test being run. Skip the path and show just the
base name.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:14 +0000 (20:09 -0600)]
dm: test: Move test running code into a separate function
We want to run the same test on flat and live trees. In preparation for
this, create a new function which handles running a test.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:13 +0000 (20:09 -0600)]
sandbox: Add a way to reset sandbox state for tests
Running a new test should reset the sandbox state to avoid tests
interferring with each other. Move the existing state-reset code into a
function so it can be used from tests.
Also update the code to reset the SPI devices and adjust the test code to
call it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:12 +0000 (20:09 -0600)]
dm: core: Update uclass_find_device_by_phandle() for livetree
Adjust this function to work with livetree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:11 +0000 (20:09 -0600)]
dm: simple-bus: Add support for livetree
Modify simple-bus to support livetree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:10 +0000 (20:09 -0600)]
dm: regmap: Add support for livetree
Modify regmap to support livetree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:09 +0000 (20:09 -0600)]
dm: core: Add a way to find a device by ofnode
Add a function which looks up a device by its node (either in live tree
or flat tree).
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:08 +0000 (20:09 -0600)]
dm: core: Scan the live tree when setting up driver model
When starting up driver model with a live tree we need to scan the tree
for devices. Add code to handle this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:07 +0000 (20:09 -0600)]
dm: core: Update device_bind_driver_to_node() to use ofnode
Adjust this function to us an ofnode instead of an offset, so it can be
used with livetree. This involves updating all callers.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:06 +0000 (20:09 -0600)]
dm: core: Update lists_bind_fdt() to use ofnode
Adjust this function to use an ofnode instead of an offset, so it can be
used with livetree. This involves updating all callers.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:05 +0000 (20:09 -0600)]
dm: core: Allow binding a device from a live tree
When a live tree is being used we need to record the node that was used to
create the device. Update device_bind_with_driver_data() to support this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:04 +0000 (20:09 -0600)]
dm: core: Implement live tree 'read' functions
When the live tree is supported some functions need to change a little.
Add an implementation which is used when not inlining these functions.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:03 +0000 (20:09 -0600)]
dm: core: Add device-based 'read' functions to access DT
It is common to read a device-tree property from the node associated with
a device. Add convenience functions to do this so that drivers do not need
to deal with accessing the ofnode from the device.
These functions all start with 'dev_read_' to provide consistent naming
for all functions which read information from a device's device tree node.
These are inlined when using the flat DT to save code size. The live tree
implementation is added in a later commit.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:02 +0000 (20:09 -0600)]
dm: core: Add a place to put extra device-tree reading functions
Some functions deal with structured data rather than simple data types.
It makes sense to have these in their own file. For now this just has a
function to read a flashmap entry. Move the data types also.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:01 +0000 (20:09 -0600)]
dm: core: Add address operations on device tree references
Add functions to add addresses in the device tree using ofnode references.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:09:00 +0000 (20:09 -0600)]
fdt: Update fdt_get_base_address() to use const
This function does not change the device tree so adjust it to use const
for this parameter.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:08:59 +0000 (20:08 -0600)]
dm: core: Add livetree address functions
Add functions to access addresses in the device tree. These are brought
in from Linux 4.10.
Also fix up the header guard for fdtaddr.h to avoid confusion.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:08:58 +0000 (20:08 -0600)]
dm: core: Add operations on device tree references
Since U-Boot supports both a live tree and a flat tree, we need an easy
way to access the tree without worrying about which is currently active.
To support this, U-Boot has the concept of an ofnode, which can refer
either to a live tree node or a flat tree node.
For the live tree, the reference contains a pointer to the node (struct
device_node *) or NULL if the node is invalid. For the flat tree, the
reference contains the node offset or -1 if the node is invalid.
Add a basic set of operations using ofnodes. These are implemented by
using either libfdt functions (in the case of a flat DT reference) or
the live-tree of_...() functions.
Note that it is not possible to have both live and flat references active
at the same time. As soon as the live tree is available, everything in
U-Boot should switch to using that. This avoids confusion and allows us to
assume that the type of a reference is simply based on whether we have a
live tree yet, or not.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:08:57 +0000 (20:08 -0600)]
dm: core: Rename of_device_is_compatible()
The of_ prefix conflicts with the livetree version of this function.
Rename it to avoid problems when we add livetree support.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:08:56 +0000 (20:08 -0600)]
dm: Build a live tree after relocation
If enabled, build a live device tree after relocation. This can then be
used by driver model.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:08:55 +0000 (20:08 -0600)]
dm: Add a function to create a 'live' device tree
This function converts the flat device tree into a hierarchical one with
C structures and pointers. This is easier to access.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:08:54 +0000 (20:08 -0600)]
dm: core: Add livetree access functions
Add a basic assortment of functions to access the live device tree. These
come from Linux v4.9 and are modified for U-Boot to the minimum extent
possible. While these functions are now very stable in Linux, it will be
possible to merge in fixes if needed.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:08:53 +0000 (20:08 -0600)]
dm: core: Add livetree definitions
Add a Kconfig option to enable a live device tree, built at run time from
the flat tree. Also add structure definitions and a root node.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:08:52 +0000 (20:08 -0600)]
Update WARN_ON() to return a value
In linux v4.9 this returns a value. This saves checking the warning
condition twice in some code.
Update the U-Boot version to do this also.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 19 May 2017 02:08:51 +0000 (20:08 -0600)]
dm: core: Set return value first in lists_bind_fdt()
Adjust the order to make it clear that *devp is set to NULL by default.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 24 Apr 2017 02:02:11 +0000 (20:02 -0600)]
tegra: Convert MMC to use driver model for operations
Enable CONFIG_DM_MMC_OPS and CONFIG_BLK for all Tegra devices. This moves
Tegra to use driver model fully for MMC.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 24 Apr 2017 02:02:10 +0000 (20:02 -0600)]
dm: mmc: Rewrite mmc_blk_probe()
This function is called when the MMC block device is being probed. There
is a recursive call in this function since find_mmc_device() itself can
cause the MMC device to be probed.
Admittedly the MMC device should already be probed, since we would not be
probing its child otherwise, but the current code is unnecessarily
convoluted.
Rewrite this to access the MMC structure directly.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 24 Apr 2017 02:02:09 +0000 (20:02 -0600)]
dm: mmc: Check that drivers have operations
When binding a new MMC device, make sure that it has the required
operations. Since for now we still support *not* having the operations
(with CONFIG_DM_MMC_OPS not enabled) it makes sense to add this check.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 24 Apr 2017 02:02:07 +0000 (20:02 -0600)]
dm: blk: Improve block device claiming
The intention with block devices is that the device number (devnum field
in its descriptor) matches the alias of its parent device. For example,
with:
aliases {
mmc0 = "/sdhci@
700b0600";
mmc1 = "/sdhci@
700b0400";
}
we expect that the block devices for mmc0 and mmc1 would have device
numbers of 0 and 1 respectively.
Unfortunately this does not currently always happen. If there is another
MMC device earlier in the driver model data structures its block device
will be created first. It will therefore get device number 0 and mmc0
will therefore miss out. In this case the MMC device will have sequence
number 0 but its block device will not.
To avoid this, allow a device to request a device number and bump any
existing device number that is using it. This all happens during the
binding phase so it is safe to change these numbers around. This allows
device numbers to match the aliases in all circumstances.
Add a test to verify the behaviour.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 24 Apr 2017 02:02:06 +0000 (20:02 -0600)]
dm: blk: Add a function to find the next block device number
At present this code is inline. Move it into a function to allow it to
be used elsewhere.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 24 Apr 2017 02:02:05 +0000 (20:02 -0600)]
dm: blk: Allow finding block devices without probing
Sometimes it is useful to be able to find a block device without also
probing it. Add a function for this as well as the associated test.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 24 Apr 2017 02:02:04 +0000 (20:02 -0600)]
dm: mmc: Don't re-init when accessing environment
With driver model MMC is probed automatically when needed. We should not
re-init MMC each time.
Signed-off-by: Simon Glass <sjg@chromium.org>