]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
2 years agoarm: mvebu: turris_omnia: Add Winbond SPI flash support
Marek Behún [Wed, 3 Aug 2022 08:53:12 +0000 (10:53 +0200)]
arm: mvebu: turris_omnia: Add Winbond SPI flash support

Some new Omnia boards will come with Winbond SPI flash. Add to
defconfig.

Signed-off-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 years agoarm: mvebu: spl: Always fallback to BootROM boot method
Pali Rohár [Tue, 2 Aug 2022 09:55:19 +0000 (11:55 +0200)]
arm: mvebu: spl: Always fallback to BootROM boot method

BootROM boot method should always work so always add it as fallback method
to spl_boot_list. In case U-Boot SPI driver fails it is better to try using
BootROM than hanging as by default only one boot method is specified.

Signed-off-by: Pali Rohár <pali@kernel.org>
Tested-by: Tony Dinh <mibodhi@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2 years agoarm: mvebu: turris_omnia: Remove hardcoded spi-nor device tree path
Pali Rohár [Mon, 1 Aug 2022 21:58:42 +0000 (23:58 +0200)]
arm: mvebu: turris_omnia: Remove hardcoded spi-nor device tree path

Linux kernel DTS files renamed spi-nor@0 node to flash@0 which effectively
broke U-Boot to boot new Linux kernel versions correctly.

So remove hardcoded spi-nor device tree path from Turris Omnia board code
and replace it by searching for mtd node by compatible string.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 years agogpio: turris_omnia_mcu: Fix usage of CMD_EXT_CONTROL
Pali Rohár [Mon, 1 Aug 2022 10:11:13 +0000 (12:11 +0200)]
gpio: turris_omnia_mcu: Fix usage of CMD_EXT_CONTROL

CMD_GENERAL_CONTROL takes two 8-bit arguments but CMD_EXT_CONTROL takes
two 16-bit arguments. Fix this issue and change CMD_EXT_CONTROL arguments
to 16-bit.

Fixes: 5e4d24ccc115 ("gpio: Add Turris Omnia MCU driver")
Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 years agoarm: mvebu: turris_omnia: Increase fdt size in fixup_mtd_partitions
Pali Rohár [Mon, 1 Aug 2022 10:02:20 +0000 (12:02 +0200)]
arm: mvebu: turris_omnia: Increase fdt size in fixup_mtd_partitions

Sometimes fixup_mtd_partitions() prints during booting kernel error
"Failed fixing SPI NOR partitions!" because it does not have enough space
for creating all paritions nodes. So increase fdt size.

Fixes: 92f36c8e74c1 ("arm: mvebu: turris_omnia: fixup MTD partitions in Linux' DTB")
Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Marek Behún <kabel@kernel.org>
2 years agoarm: mvebu: turris_omnia: Do not fail in fixup_mtd_partitions when partitions do...
Pali Rohár [Mon, 1 Aug 2022 10:02:19 +0000 (12:02 +0200)]
arm: mvebu: turris_omnia: Do not fail in fixup_mtd_partitions when partitions do not exist

All partitions are created by fixup_mtd_partitions() function, so they do
not have to exist just for their removal need.

Fixes: 92f36c8e74c1 ("arm: mvebu: turris_omnia: fixup MTD partitions in Linux' DTB")
Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Marek Behún <kabel@kernel.org>
2 years agoarm: mvebu: turris_omnia: Add support for design with SW reset signals
Pali Rohár [Fri, 29 Jul 2022 11:29:07 +0000 (13:29 +0200)]
arm: mvebu: turris_omnia: Add support for design with SW reset signals

New Turris Omnia HW board revision requires that software controls
peripheral reset signals, namely PERST# signals on mPCIe slots, ethernet
phy reset and lan switch reset. Those pins are connected to MCU controlled
by MCU i2c API as GPIOs. On new HW board revision those pins stay in reset
after board reset and software has to release these peripherals from reset
manually. MCU announce this requirement by FEAT_PERIPH_MCU bit in
CMD_GET_FEATURES command.

On older HW board revisions when FEAT_PERIPH_MCU is not announced, all
those reset signals are automatically released after board finish reset.

Detect FEAT_PERIPH_MCU bit in board_fix_fdt() and ft_board_setup()
functions and insert into device tree blob pcie "reset-gpios" and eth phy
"phy-reset-gpios" properties with corresponding MCU gpio definitions.
PCIe and eth PHY drivers then automatically release resets during device
initialization. Both U-Boot and Linux kernel drivers support those device
tree reset properties.

Initialization of lan switch on new HW board revision is more complicated.
Switch strapping pins are shared with switch RGMII pins. And strapping pins
must be in specific configuration after releasing switch reset. Due to pin
sharing, it is first required to switch A385 side of switch pins into GPIO
mode, set strapping configuration, release switch from reset and after that
switch A385 pins back to RGMII mode.

Because this complicated setup is not supported by switch DSA drivers and
cannot be expressed easily in device tree, implement it manually in SPL
function spl_board_init(). So in proper U-Boot and OS/kernel would be lan
switch initialized and be in same configuration like it was on old HW board
revisions (where reset sequence did those steps at hardware level).

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Marek Behún <kabel@kernel.org>
2 years agoarm: mvebu: turris_omnia: Show MCU type in show_board_info()
Pali Rohár [Fri, 29 Jul 2022 11:29:06 +0000 (13:29 +0200)]
arm: mvebu: turris_omnia: Show MCU type in show_board_info()

Different Turris Omnia HW board revisions contains different MCU.
Show type in show_board_info() to easily identify which MCU is populated.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Marek Behún <kabel@kernel.org>
2 years agoPrepare v2022.10-rc2
Tom Rini [Tue, 9 Aug 2022 00:35:53 +0000 (20:35 -0400)]
Prepare v2022.10-rc2

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoMerge branch '2022-08-08-networking-updates'
Tom Rini [Mon, 8 Aug 2022 19:04:56 +0000 (15:04 -0400)]
Merge branch '2022-08-08-networking-updates'

After checking with Ramon, take a number of reviewed network patches.
This includes:

- A number of dwc_eth_qos updates, mpc8xx_fec DM migration, NPCM7xx EMAC
  driver.
- Other assorted minor updates

2 years agonet: dwc_eth_qos: Add eqos_get_enetaddr callback for stm32
Patrice Chotard [Tue, 2 Aug 2022 08:55:26 +0000 (10:55 +0200)]
net: dwc_eth_qos: Add eqos_get_enetaddr callback for stm32

Add .eqos_get_enetaddr callback defined as eqos_null_ops() to avoid
illegal access.

Fixes: a624251461bf ("net: dwc_eth_qos: introduce eqos hook eqos_get_enetaddr")
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2 years agonet: dwc_eth_qos: Add eqos_get_enetaddr callback for tegra186
Patrice Chotard [Tue, 2 Aug 2022 08:55:25 +0000 (10:55 +0200)]
net: dwc_eth_qos: Add eqos_get_enetaddr callback for tegra186

Add .eqos_get_enetaddr callback defined as eqos_null_ops() to avoid
illegal access.

Fixes: a624251461bf ("net: dwc_eth_qos: introduce eqos hook eqos_get_enetaddr")
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2 years agoARM: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins
Kunihiko Hayashi [Wed, 13 Jul 2022 01:59:45 +0000 (10:59 +0900)]
ARM: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins

UniPhier LD20, PXs2 and PXs3 boards have ethernet phy that has RX/TX delays
of RGMII interface using pull-ups on the RXDLY and TXDLY pins.

So should set the phy-mode to "rgmii-id" to show that RX/TX delays are
enabled.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2 years agonet: ave: Add capability of rgmii-id mode
Kunihiko Hayashi [Wed, 13 Jul 2022 01:59:44 +0000 (10:59 +0900)]
net: ave: Add capability of rgmii-id mode

This allows you to specify the type of rgmii-id that will enable phy
internal delay in ethernet phy-mode.

This adds all RGMII cases to all of get_pinmode() except LD11, because LD11
SoC doesn't support RGMII due to the constraint of the hardware. When RGMII
phy mode is specified in the devicetree for LD11, the driver will abort
with an error.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2 years agonet: phy: possible NULL dereference in fixed_phy_create()
Heinrich Schuchardt [Mon, 11 Jul 2022 17:40:13 +0000 (19:40 +0200)]
net: phy: possible NULL dereference in fixed_phy_create()

We check if phydev is NULL. Only but if it is non-NULL we set one
component of phydev. But even if it is NULL we set another. We should not
dereference NULL in either case.

Fixes: e24b58f5ed4f ("net: phy: don't require PHY interface mode during PHY creation")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Marek Behún <kabel@kernel.org>
2 years agonet: dwc_eth_qos: cosmetic: reorder include files
Patrick Delaunay [Thu, 30 Jun 2022 09:09:41 +0000 (11:09 +0200)]
net: dwc_eth_qos: cosmetic: reorder include files

Reorder include files in the U-Boot expected order.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2 years agonet: phy: Remove inline definitions from convinience functions
Ramon Fried [Sun, 5 Jun 2022 00:44:15 +0000 (03:44 +0300)]
net: phy: Remove inline definitions from convinience functions

The convinience functions are not that small and they caused
bloated text segments because of their usage.
There was no need to inline them in the first place, as
they're not part of a fastpath.

Signed-off-by: Ramon Fried <rfried.dev@gmail.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
2 years agonet: ftgmac100: use bus name in mdio error messages
Zev Weiss [Tue, 17 May 2022 22:16:39 +0000 (15:16 -0700)]
net: ftgmac100: use bus name in mdio error messages

Previously we'd been using a device name retrieved via
ftgmac100_data->phydev, but the mdio read/write functions may be
called before that member is initialized in ftgmac100_phy_init(),
leading to a NULL pointer dereference while printing the error message
issued if the mdio access fails.  We can instead use bus->name, which
is already available at that point.

Signed-off-by: Zev Weiss <zev@bewilderbeest.net>
Fixes: 538e75d3fc54 ("net: ftgmac100: add MDIO bus and phylib support")
Reviewed-by: Cédric Le Goater <clg@kaod.org>
2 years agonet: nuvoton : Add NPCM7xx EMAC driver
Jim Liu [Tue, 17 May 2022 08:28:11 +0000 (16:28 +0800)]
net: nuvoton : Add NPCM7xx EMAC driver

NPCM750 provides identical ethernet MAC controllers for WAN/LAN applications.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2 years agonet: mpc8xx_fec: Migrate to DM_ETH
Christophe Leroy [Thu, 12 May 2022 13:48:51 +0000 (15:48 +0200)]
net: mpc8xx_fec: Migrate to DM_ETH

Migrate mpc8xx_fec driver to DM_ETH.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2 years agonet: dwc_eth_qos: remove use of DWC_NET_PHYADDR
Rasmus Villemoes [Thu, 12 May 2022 07:33:07 +0000 (09:33 +0200)]
net: dwc_eth_qos: remove use of DWC_NET_PHYADDR

Only two boards in the tree set the macro DWC_NET_PHYADDR. Both have
CONFIG_DM_ETH_PHY=y, so should set the phy address in DT if necessary.

The imx8mp_evk does set the correct address in device tree.

The other board seems to be a copy-paste-adapt from an old
version of the imx8mp_evk config header, given the "#ifdef
CONFIG_DWC_ETH_QOS" block that has been removed from imx8mp_evk header
in commit 127fb454955. Its device tree doesn't even enable (i.e., set
'status = "okay"') the &eqos node. But the other ethernet device,
&fec, does get enabled, and does have a phy sitting at address 4 (and
it also has a corresponding legacy #define CONFIG_FEC_MXC_PHYADDR
4). So I believe it should be completely safe to remove it from there
as well.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
[trini: Re-apply to top of tree, update imx93_evk.h]
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agonet: dwc_eth_qos: lift parsing of max-speed DT property to common code
Rasmus Villemoes [Wed, 11 May 2022 14:58:41 +0000 (16:58 +0200)]
net: dwc_eth_qos: lift parsing of max-speed DT property to common code

I have an iMX8MP with a ti,dp83867 phy in front of the eqos
interface. The phy is Gbit capable - however, the C and D differential
pairs are not physically routed to the RJ45 connector. So I need to
prevent the phy from advertising 1000Mbps.

The necessary code is almost already there in the form of a
phy_set_supported() call in eqos_start(), but the max-speed DT
property is currently only parsed in
eqos_probe_resources_stm32(). Lift that parsing to eqos_probe().

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2 years agonet: dwc_eth_qos: fix double resource leak in eqos_remove()
Rasmus Villemoes [Wed, 11 May 2022 14:12:50 +0000 (16:12 +0200)]
net: dwc_eth_qos: fix double resource leak in eqos_remove()

Not only does eqos_remove() fail to free the buffers that have been
allocated by eqos_probe_resources_core(), it repeats those allocations
and thus drops twice as much memory on the floor.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2 years agonet: dm9000: Correctly handle empty FIFO
Marek Vasut [Mon, 25 Apr 2022 18:28:05 +0000 (20:28 +0200)]
net: dm9000: Correctly handle empty FIFO

Assign packet pointer only in case the MAC reports anything in the FIFO.
In case the MAC indicates empty FIFO, return 0 to pass that information
to the network stack.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Ramon Fried <rfried.dev@gmail.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2 years agonet: phy: marvell: Add support for 88E1240 PHY
Stefan Roese [Thu, 31 Mar 2022 09:43:07 +0000 (11:43 +0200)]
net: phy: marvell: Add support for 88E1240 PHY

This patch adds basic support for the Marvell 88E1240 PHY.

This will be used by the upcoming ethernet support addition for the
Marvell MIPS Octeon EBB7304 platform.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Ramon Fried <rfried.dev@gmail.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Aaron Williams <awilliams@marvell.com>
Cc: Chandrakala Chavva <cchavva@marvell.com>
Reviewed-by: Marek Behún <marek.behun@nic.cz>
2 years agonet: phy: marvell: Support reg config via "marvell, reg-init" DT property
Stefan Roese [Thu, 31 Mar 2022 09:43:06 +0000 (11:43 +0200)]
net: phy: marvell: Support reg config via "marvell, reg-init" DT property

This patch adds support for the "marvell,reg-init" DT property, which
is used to describe board specific Marvell PHY register configurations
in the board dts file. This DT property is supported in the Linux Kernel
since a longer time. Adding it to U-Boot now, enables the boards which
describe the register settings in their DT files here as well.

I've included calling this marvell_of_reg_init() to all foo_config()
functions in this patch as well. If CONFIG_DM_ETH is not set, there is
no ofnode, or no "marvell,reg-init" property, the PHY initialization is
unchanged.

The function marvell_of_reg_init() is a port of the Linux version.
Please note that I explicitly did not add error checking and handling
to the U-Boot version, as this is basically not done for phy_read/write
in this Marvell PHY code.

This will be used by the upcoming ethernet support on the MIPS
Octeon EBB 7304 board.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Ramon Fried <rfried.dev@gmail.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Aaron Williams <awilliams@marvell.com>
Cc: Chandrakala Chavva <cchavva@marvell.com>
Cc: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Marek Behún <marek.behun@nic.cz>
2 years agonet: bootp: Make root path (option 17) length configurable
Andre Kalb [Fri, 28 Jan 2022 08:40:32 +0000 (09:40 +0100)]
net: bootp: Make root path (option 17) length configurable

to adjust the root path length.
Eg to 256 from Linux Kernel

Signed-off-by: Andre Kalb <andre.kalb@sma.de>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
[trini: Guard extern so that !CONFIG_NET platforms will build]
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoMerge branch '2022-08-05-buildman-integrate-boardscfg'
Tom Rini [Fri, 5 Aug 2022 17:22:44 +0000 (13:22 -0400)]
Merge branch '2022-08-05-buildman-integrate-boardscfg'

To quote Simon:
This series drops the need for the genboardscfg.py script, so that the
boards.cfg file is produced (and consumed) entirely within buildman. The
file is not entirely removed since it does have some uses and we need some
sort of cache for the information. The genboardscfg.py script is
effectively incorporated in buildman.

It also improves operation from an IDE with a new -I option and fixes up
some of the pylint warnings in buildman.

Finally, this series also fixes a bug which allows use to drop support for
CONFIG_SYS_EXTRA_OPTIONS which is long-standing desire. It also fixes a
minor bug that causes 'Invalid line' spam when checking for function bloat
with the -B option.

2 years agobuildman: Drop a TODO that is done
Simon Glass [Tue, 12 Jul 2022 01:04:13 +0000 (19:04 -0600)]
buildman: Drop a TODO that is done

Buildman now uses worktrees when available, instead of doing a full clone.
This was done in this commit:

   76de29fc4f buildman: Use git worktrees instead of git clones when possible

Drop the TODO.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobuildman: Drop a Python 2.7 comment
Simon Glass [Tue, 12 Jul 2022 01:04:12 +0000 (19:04 -0600)]
buildman: Drop a Python 2.7 comment

This is well out of date, but it is still reasonable to use a list. Drop
the comment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobuildman: Allow lines without a symbol
Simon Glass [Tue, 12 Jul 2022 01:04:11 +0000 (19:04 -0600)]
buildman: Allow lines without a symbol

The 'nm' tool can produce lines without a symbol, for example:

   00000004 t

Silently skip these and anything else without three fields. Drop the
warning since there is nothing the user can do about it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Tom Rini <trini@konsulko.com>
2 years agoDrop genboardscfg.py
Simon Glass [Tue, 12 Jul 2022 01:04:10 +0000 (19:04 -0600)]
Drop genboardscfg.py

Now that buildman can generate this with the -R option, drop the script.

Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Tom Rini <trini@konsulko.com>
2 years agogitlab/azure: Use buildman instead of genboardscfg
Simon Glass [Tue, 12 Jul 2022 01:04:09 +0000 (19:04 -0600)]
gitlab/azure: Use buildman instead of genboardscfg

Use the equivalent buildman functionality to check maintainer info.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2 years agobuildman: Return an error if there are maintainer warnings
Simon Glass [Tue, 12 Jul 2022 01:04:08 +0000 (19:04 -0600)]
buildman: Return an error if there are maintainer warnings

Detect warnings about missing maintain info and return result code 2 in
that case.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agoRevert "Revert "global: Remove CONFIG_SYS_EXTRA_OPTIONS support""
Simon Glass [Tue, 12 Jul 2022 01:04:07 +0000 (19:04 -0600)]
Revert "Revert "global: Remove CONFIG_SYS_EXTRA_OPTIONS support""

This is not needed now that CONFIG_SYS_TARGET_NAME is correctly determined
when scanning Kconfig.

This reverts commit 25b8acee2ea11a9edc100c42a61f5d6187eb6167.

Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2 years agobuildman: Replace the Options column with config name
Simon Glass [Tue, 12 Jul 2022 01:04:06 +0000 (19:04 -0600)]
buildman: Replace the Options column with config name

This appears in boards.cfg but we want to remove it. Drop support for
generating it and reading it. Detect an old boards.cfg file that has
this field and regenerate it, to avoid problems.

Instead, add the config name in that place. This fixes a subtle bug in
the generation code, since it uses 'target' for the config name and then
overwrites the value in scan() by setting params['target'] to the name
of the defconfig. The defconfig name is not the same as the
SYS_CONFIG_NAME variable.

With this change, we still have the config name and it can be searched
by buildman, e.g. with:

   buildman -nv sun5i

Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Tom Rini <trini@konsulko.com>
2 years agobuildman: Tidy up pylint problems in boards module
Simon Glass [Tue, 12 Jul 2022 01:04:05 +0000 (19:04 -0600)]
buildman: Tidy up pylint problems in boards module

Fix all the pylint warnings. Also tidy up the comments so that they show
type information, as required.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobuildman: Incorporate the genboardscfg.py tool
Simon Glass [Tue, 12 Jul 2022 01:04:04 +0000 (19:04 -0600)]
buildman: Incorporate the genboardscfg.py tool

Bring this tool into buildman, so we don't have to run it separately. The
board.cfg file is still produced as part of the build, to save time when
doing another build in the same working directory. If it is out of date
with respect to the Kconfig, it is updated.

Time to regenerate on a recent single-thread machine is 4.6s (1.3s on a
32-thread machine), so we do need some sort of cache if we want buildman
to be useful on incremental builds. We could use Python's pickle format
but:

- it seems useful to allow boards.cfg to be regenerated, at least for a
  while, in case other tools use it
- it is possible to grep the file easily, e.g. to find boards which use
  a particular SoC (similar to 'buildman -nv <soc>'

Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Tom Rini <trini@konsulko.com>
2 years agobuildman: Split out Boards into its own file
Simon Glass [Tue, 12 Jul 2022 01:04:03 +0000 (19:04 -0600)]
buildman: Split out Boards into its own file

Use a separate file for the Boards class so that its name matches the
module name.

Fix up the function names to match the pylint style and fix some other
warnings.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobuildman: Convert camel case in board.py
Simon Glass [Tue, 12 Jul 2022 01:04:02 +0000 (19:04 -0600)]
buildman: Convert camel case in board.py

Convert this file to snake case and update all files which use it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobuildman: Drop use of 'board' in board module
Simon Glass [Tue, 12 Jul 2022 01:04:01 +0000 (19:04 -0600)]
buildman: Drop use of 'board' in board module

Use brds instead so that we can reserve 'boards' and 'board' as module
names.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobuildman: Drop use of 'boards' in control
Simon Glass [Tue, 12 Jul 2022 01:04:00 +0000 (19:04 -0600)]
buildman: Drop use of 'boards' in control

Use brds instead so that we can reserve 'boards' for a module name.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobuildman: Fix use of 'boards' in test
Simon Glass [Tue, 12 Jul 2022 01:03:59 +0000 (19:03 -0600)]
buildman: Fix use of 'boards' in test

We want to create a module called 'boards' so avoid use of this variable
name in this module. Change the global to be capitalised, as required by
Python style.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobuildman: Fix use of 'boards' in func_test
Simon Glass [Tue, 12 Jul 2022 01:03:58 +0000 (19:03 -0600)]
buildman: Fix use of 'boards' in func_test

We want to create a module called 'boards' so avoid use of this variable
name in this module. Change the global to be capitalised, as required by
Python style.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobuildman: Avoid using board as a variable
Simon Glass [Tue, 12 Jul 2022 01:03:57 +0000 (19:03 -0600)]
buildman: Avoid using board as a variable

We have a module called 'board'. Sometimes buildman uses 'brd' as an
instance variable but sometimes it uses 'board', which is confusing and
can mess with the module handling. Update the code to use 'brd'
consistently, making it easier for tools to determine when the module
is being referenced.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobuildman: Support running from an IDE
Simon Glass [Tue, 12 Jul 2022 01:03:56 +0000 (19:03 -0600)]
buildman: Support running from an IDE

Add a flag to allow buildman to behave properly for use from an IDE. This
shows error/warning output on stderr and drops all summary and progress
information.

This should normally only be used when building a single board.

Fix up a confusing comment for GetResultSummary() while we are here, since
we want to use the Outcome object to access the unprocessed error lines
from the build.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobuildman: Drop -I option
Simon Glass [Tue, 12 Jul 2022 01:03:55 +0000 (19:03 -0600)]
buildman: Drop -I option

This has been deprecated with a notice that it will be removed after April
2021. Drop it now.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agoMerge tag 'tpm-030822' of https://source.denx.de/u-boot/custodians/u-boot-tpm
Tom Rini [Fri, 5 Aug 2022 12:01:32 +0000 (08:01 -0400)]
Merge tag 'tpm-030822' of https://source.denx.de/u-boot/custodians/u-boot-tpm

EFI_RNG_PROTOCOL with a TPM

2 years agoconfigs: Resync with savedefconfig
Tom Rini [Thu, 4 Aug 2022 20:57:36 +0000 (16:57 -0400)]
configs: Resync with savedefconfig

Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoMerge branch '2022-08-04-Kconfig-migrations'
Tom Rini [Thu, 4 Aug 2022 20:53:39 +0000 (16:53 -0400)]
Merge branch '2022-08-04-Kconfig-migrations'

- Further migrations to Kconfig and associated dead code removal.

2 years agoConvert CONFIG_SYS_FSL_DDR_INTLV_256B to Kconfig
Tom Rini [Sat, 23 Jul 2022 17:05:12 +0000 (13:05 -0400)]
Convert CONFIG_SYS_FSL_DDR_INTLV_256B to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_FSL_DDR_INTLV_256B

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_SYS_FSL_CORES_PER_CLUSTER to Kconfig
Tom Rini [Sat, 23 Jul 2022 17:05:11 +0000 (13:05 -0400)]
Convert CONFIG_SYS_FSL_CORES_PER_CLUSTER to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_FSL_CORES_PER_CLUSTER

As part of this, correct the dependencies on SYS_FSL_THREADS_PER_CORE.

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_FSL_MEMAC et al to Kconfig
Tom Rini [Sat, 23 Jul 2022 17:05:10 +0000 (13:05 -0400)]
Convert CONFIG_FSL_MEMAC et al to Kconfig

This converts the following to Kconfig:
   CONFIG_FSL_MEMAC
   CONFIG_SYS_MEMAC_LITTLE_ENDIAN

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_SYS_FSL_CCSR_GUR_BE et al to Kconfig
Tom Rini [Sat, 23 Jul 2022 17:05:09 +0000 (13:05 -0400)]
Convert CONFIG_SYS_FSL_CCSR_GUR_BE et al to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_FSL_CCSR_GUR_BE
   CONFIG_SYS_FSL_CCSR_SCFG_BE
   CONFIG_SYS_FSL_ESDHC_BE
   CONFIG_SYS_FSL_IFC_BE
   CONFIG_SYS_FSL_PEX_LUT_BE
   CONFIG_SYS_FSL_CCSR_GUR_LE
   CONFIG_SYS_FSL_CCSR_SCFG_LE
   CONFIG_SYS_FSL_ESDHC_LE
   CONFIG_SYS_FSL_IFC_LE
   CONFIG_SYS_FSL_PEX_LUT_LE

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_FSL_CORENET to Kconfig
Tom Rini [Sat, 23 Jul 2022 17:05:08 +0000 (13:05 -0400)]
Convert CONFIG_FSL_CORENET to Kconfig

This converts the following to Kconfig:
   CONFIG_FSL_CORENET

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoconfigs: Remove a number of unreferenced CONFIG options.
Tom Rini [Sat, 23 Jul 2022 17:05:07 +0000 (13:05 -0400)]
configs: Remove a number of unreferenced CONFIG options.

There are a large number of options under CONFIG_SYS (but some of these
are elsewhere, spotted while cleaning CONFIG_SYS) that are never
referenced, or only used slightly later in the config file.  Remove or
restructure these.

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_SYS_FMAN_V3 to Kconfig
Tom Rini [Sat, 23 Jul 2022 17:05:06 +0000 (13:05 -0400)]
Convert CONFIG_SYS_FMAN_V3 to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_FMAN_V3

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_SYS_FLASH_QUIET_TEST to Kconfig
Tom Rini [Sat, 23 Jul 2022 17:05:05 +0000 (13:05 -0400)]
Convert CONFIG_SYS_FLASH_QUIET_TEST to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_FLASH_QUIET_TEST

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_SYS_MAX_FLASH_SECT to Kconfig
Tom Rini [Sat, 23 Jul 2022 17:05:04 +0000 (13:05 -0400)]
Convert CONFIG_SYS_MAX_FLASH_SECT to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_MAX_FLASH_SECT

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoAudit <flash.h> inclusion
Tom Rini [Sat, 23 Jul 2022 17:05:03 +0000 (13:05 -0400)]
Audit <flash.h> inclusion

A large number of files include <flash.h> as it used to be how various
SPI flash related functions were found, or for other reasons entirely.
In order to migrate some further CONFIG symbols to Kconfig we need to
not include flash.h in cases where we don't have a NOR flash of some
sort enabled.  Furthermore, in cases where we are in common code and it
doesn't make sense to try and further refactor the code itself in to new
files we need to guard this inclusion.

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_FLASH_CFI_LEGACY to Kconfig
Tom Rini [Sat, 23 Jul 2022 17:05:02 +0000 (13:05 -0400)]
Convert CONFIG_FLASH_CFI_LEGACY to Kconfig

This converts the following to Kconfig:
   CONFIG_FLASH_CFI_LEGACY

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoflash: Remove pic32_flash.c
Tom Rini [Sat, 23 Jul 2022 17:05:01 +0000 (13:05 -0400)]
flash: Remove pic32_flash.c

As the only pic32 platform does not enable flash, this is dead code.
Remove it.

Cc: Purna Chandra Mandal <purna.mandal@microchip.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_SYS_FLASH_ERASE_TOUT et al to Kconfig
Tom Rini [Sat, 23 Jul 2022 17:05:00 +0000 (13:05 -0400)]
Convert CONFIG_SYS_FLASH_ERASE_TOUT et al to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_FLASH_ERASE_TOUT
   CONFIG_SYS_FLASH_LOCK_TOUT
   CONFIG_SYS_FLASH_UNLOCK_TOUT
   CONFIG_SYS_FLASH_WRITE_TOUT

In practice, for two m68k platforms we move to hard-coding with a
comment the timeout values, rather than try and make convoluted Kconfig
logic.  We add options for the write and erase options to the pic32
flash driver, as this driver does make use of them.  Everywhere else
these are unreferenced values.

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_SYS_FLASH_CHECKSUM to Kconfig
Tom Rini [Sat, 23 Jul 2022 17:04:59 +0000 (13:04 -0400)]
Convert CONFIG_SYS_FLASH_CHECKSUM to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_FLASH_CHECKSUM

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoP1010RDB: Drop support for not-CONFIG_SYS_DDR_RAW_TIMING
Tom Rini [Sat, 23 Jul 2022 17:04:58 +0000 (13:04 -0400)]
P1010RDB: Drop support for not-CONFIG_SYS_DDR_RAW_TIMING

All platforms today define CONFIG_SYS_DDR_RAW_TIMING, so drop the code
for this option being unset.

Cc: Qiang Zhao <qiang.zhao@nxp.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agomalta: Switch to using CONFIG_SYS_SDRAM_SIZE
Tom Rini [Sat, 23 Jul 2022 17:04:57 +0000 (13:04 -0400)]
malta: Switch to using CONFIG_SYS_SDRAM_SIZE

This is the only platform defining and using CONFIG_SYS_MEM_SIZE, switch
to using CONFIG_SYS_SDRAM_SIZE for consistency.

Cc: Paul Burton <paul.burton@mips.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agopowerpc: Move CONFIG_SYS_DDR_SIZE to CONFIG_SYS_SDRAM_SIZE
Tom Rini [Sat, 23 Jul 2022 17:04:56 +0000 (13:04 -0400)]
powerpc: Move CONFIG_SYS_DDR_SIZE to CONFIG_SYS_SDRAM_SIZE

We have a number of CONFIG_SYS_xxx_SIZE options to describe the amount
main memory available.  Rework CONFIG_SYS_DDR_SIZE, which described a
size in number of MiB to use CONFIG_SYS_SDRAM_SIZE which is most often
used as a number of bytes.  Use shifts of this option when required.

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_SYS_FLASH_EMPTY_INFO to Kconfig
Tom Rini [Sat, 23 Jul 2022 17:04:55 +0000 (13:04 -0400)]
Convert CONFIG_SYS_FLASH_EMPTY_INFO to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_FLASH_EMPTY_INFO

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agonet: Remove CONFIG_SYS_DIRECT_FLASH_TFTP
Tom Rini [Sat, 23 Jul 2022 17:04:54 +0000 (13:04 -0400)]
net: Remove CONFIG_SYS_DIRECT_FLASH_TFTP

No platforms enable the functionality to tftp directly to NOR flash, and
this is discouraged by the documentation.  Remove this code.  Further,
this highlights an oddity of the code.  Un-indent the start of this
function.

Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agosh: Remove unused code in arch/sh/lib/bootm.c
Tom Rini [Sat, 23 Jul 2022 17:04:53 +0000 (13:04 -0400)]
sh: Remove unused code in arch/sh/lib/bootm.c

There are no callers of the hexdump function that is guarded by
CONFIG_SYS_DEBUG, so remove the section.

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoMerge branch '2022-08-04-assorted-fixed'
Tom Rini [Thu, 4 Aug 2022 20:02:42 +0000 (16:02 -0400)]
Merge branch '2022-08-04-assorted-fixed'

- Assorted TI, aspeed, xen updates
- Assorted return / error checking fixes in commands
- SPL MMC bugfix to get the correct device in some cases
- SPL related depends fixes
- Remove deprecated LCD command
- Some tool fixes

2 years agotools: mkimage: fix build with LibreSSL
Michal Vasilek [Fri, 22 Jul 2022 17:55:53 +0000 (19:55 +0200)]
tools: mkimage: fix build with LibreSSL

RSA_get0_* functions are not available in LibreSSL

Signed-off-by: Michal Vasilek <michal.vasilek@nic.cz>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agotools: kwboot: use pkg-config to get -ltinfo
Heiko Thiery [Wed, 20 Jul 2022 10:31:35 +0000 (12:31 +0200)]
tools: kwboot: use pkg-config to get -ltinfo

Instead of hardcoding -ltinfo as the flags needed to build
kwboot, use pkg-config when available.

We gracefully fallback on the previous behavior of hardcoding -ltinfo
if pkg-config is not available or fails with an error.

Reviewed-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2 years agotools: mkeficapsule: use pkg-config to get -luuid and -lgnutls
Heiko Thiery [Wed, 20 Jul 2022 10:31:33 +0000 (12:31 +0200)]
tools: mkeficapsule: use pkg-config to get -luuid and -lgnutls

Instead of hardcoding -luuid -lgnutls as the flags needed to build
mkeficapsule, use pkg-config when available.

We gracefully fallback on the previous behavior of hardcoding -luuid
-lgnutls if pkg-config is not available or fails with an error.

Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2 years agoarm: mach-k3: security: Remove certificate if detected on GP device
Andrew Davis [Fri, 15 Jul 2022 16:34:35 +0000 (11:34 -0500)]
arm: mach-k3: security: Remove certificate if detected on GP device

If the device is a GP and we detect a signing certificate then remove it.
It would fail to authenticate otherwise as the device is GP and has no
secure authentication services in SYSFW.

This shouldn't happen often as trying to boot signed images on GP devices
doesn't make much sense, but if we run into a signed image we should at
least try to ignore the certificate and boot the image anyway. This could
help with users of GP devices who only have HS images available.

If this does happen, print a nice big warning.

Signed-off-by: Andrew Davis <afd@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2 years agoarm: mach-k3: security: Bypass image signing at runtime for GP devices
Andrew Davis [Fri, 15 Jul 2022 16:34:34 +0000 (11:34 -0500)]
arm: mach-k3: security: Bypass image signing at runtime for GP devices

We can skip the image authentication check at runtime if the device is GP.
This reduces the delta between GP and HS U-Boot builds. End goal is
to re-unify the two build types into one build that can run on all
device types.

Signed-off-by: Andrew Davis <afd@ti.com>
2 years agoarm: mach-k3: security: Allow signing bypass if type is HS-FS
Andrew Davis [Fri, 15 Jul 2022 16:34:33 +0000 (11:34 -0500)]
arm: mach-k3: security: Allow signing bypass if type is HS-FS

On HS-FS devices signing boot images is optional. To ease use
we check if we are HS-FS and if no certificate is attached
to the image we skip the authentication step with a warning
that this will fail when the device is set to security enforcing.

Signed-off-by: Andrew Davis <afd@ti.com>
2 years agoarm: mach-k3: Add support for device type detection
Andrew Davis [Fri, 15 Jul 2022 16:34:32 +0000 (11:34 -0500)]
arm: mach-k3: Add support for device type detection

K3 SoCs are available in a number of device types such as
GP, HS-FS, EMU, etc. Like OMAP SoCs we can detect this at runtime
and should print this out as part of the SoC information line.
We add this as part of the common.c file as it will be used
to also modify our security state early in the device boot.

Signed-off-by: Andrew Davis <afd@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2 years agocmd: remove deprecated LCD support
Heinrich Schuchardt [Thu, 14 Jul 2022 06:53:46 +0000 (08:53 +0200)]
cmd: remove deprecated LCD support

No board uses lcd_clear() anymore. So we can remove support for it.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agovpl: fix reference in comment to non-existing SPL_SERIAL_SUPPORT
Quentin Schulz [Tue, 12 Jul 2022 15:44:22 +0000 (17:44 +0200)]
vpl: fix reference in comment to non-existing SPL_SERIAL_SUPPORT

Since commit 2a7360666871 ("serial: Rename SERIAL_SUPPORT to SERIAL")
SPL_SERIAL_SUPPORT is named SPL_SERIAL. So let's update the comment to
point to the correct Kconfig option in the comment of VPL_SERIAL.

Fixes: 747093dd408 ("vpl: Add Kconfig options for VPL")
Cc: Quentin Schulz <foss+uboot@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoimx: imx8mp_rsb3720a1: fix incorrect ifdef check on SPL_MMC
Quentin Schulz [Tue, 12 Jul 2022 15:44:21 +0000 (17:44 +0200)]
imx: imx8mp_rsb3720a1: fix incorrect ifdef check on SPL_MMC

Since commit 103c5f180694 ("mmc: Rename MMC_SUPPORT to MMC"),
SPL_MMC_SUPPORT is named SPL_MMC, so let's fix the ifdef.

Fixes: fbc6b1414342 ("imx: imx8mp_rsb3720a1: convert to DM_SERIAL")
Cc: Quentin Schulz <foss+uboot@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
2 years agomx7ulp_com: fix incorrect select for SPL options
Quentin Schulz [Tue, 12 Jul 2022 15:44:20 +0000 (17:44 +0200)]
mx7ulp_com: fix incorrect select for SPL options

SPL_GPIO_SUPPORT is named SPL_GPIO since commit 83061dbd1c89 ("Rename
GPIO_SUPPORT to GPIO"), SPL_MMC_SUPPORT is named SPL_MMC since commit
103c5f180694 ("mmc: Rename MMC_SUPPORT to MMC"), SPL_SERIAL_SUPPORT is
named SPL_SERIAL since commit 2a7360666871 ("serial: Rename
SERIAL_SUPPORT to SERIAL") so let's select the correct Kconfig options.

Fixes: 8b71576f3842 ("mx7ulp_com: add support for SPL")
Cc: Quentin Schulz <foss+uboot@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
2 years agogpio: fix incorrect depends on for SPL_GPIO_HOG
Quentin Schulz [Tue, 12 Jul 2022 15:44:19 +0000 (17:44 +0200)]
gpio: fix incorrect depends on for SPL_GPIO_HOG

Since commit 83061dbd1c89 ("Rename GPIO_SUPPORT to GPIO"),
SPL_GPIO_SUPPORT has been renamed to SPL_GPIO, meaning that SPL_GPIO_HOG
can never be enabled.

Let's fix this by using the proper name for the Kconfig option.

Fixes: 1d99e673c752 ("gpio: Enable hogging support in SPL")
Cc: Quentin Schulz <foss+uboot@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoARM: dts: npcm7xx: add npcm750 full function node
Jim Liu [Tue, 12 Jul 2022 09:24:07 +0000 (17:24 +0800)]
ARM: dts: npcm7xx: add npcm750 full function node

add npcm750 BMC full function node

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
2 years agocmd: undefined return value of do_extension_apply()
Heinrich Schuchardt [Mon, 11 Jul 2022 18:01:12 +0000 (20:01 +0200)]
cmd: undefined return value of do_extension_apply()

If 'extension apply all' is executed and no extension is found, the return
value of do_extension_apply() is undefined. Return CMD_RET_FAILURE in this
case.

Fixes: 2f84e9cf06d3 ("cmd: add support for a new "extension" command")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>
2 years agospl: mmc: Use correct MMC device when loading image
Harald Seiler [Mon, 11 Jul 2022 12:35:32 +0000 (14:35 +0200)]
spl: mmc: Use correct MMC device when loading image

When attempting to load images from multiple MMC devices in sequence,
spl_mmc_load() chooses the wrong device from the second attempt onwards.

The reason is that MMC initialization is only done on its first call and
spl_mmc_load() will then continue using this same device for all future
calls.

Fix this by checking the devnum of the "cached" device struct against
the one which is requested.  If they match, use the cached one but if
they do not match, initialize the new device.

This fixes specifying multiple MMC devices in the SPL's boot order to
fall back when U-Boot Proper is corrupted or missing on the first
attempted MMC device.

Fixes: e1eb6ada4e38 ("spl: Make image loader infrastructure more universal")
Signed-off-by: Harald Seiler <hws@denx.de>
2 years agodrivers: xen: events: fix build issues with disabled Xen HVC
Dmytro Firsov [Mon, 4 Jul 2022 12:05:38 +0000 (12:05 +0000)]
drivers: xen: events: fix build issues with disabled Xen HVC

Some setups do not use Xen hypervisor console for logging, e.g. they
use emulated PL011 hardware or shared peripherals (real UART). In such
cases Xen HVC will be disabled on a build time and will cause issues in
current driver implementation.

This commit fixes build issues in Xen event channel driver, caused
by absense of console event channel, that is not available when console
config is disabled. Now console related code will be removed when
Xen HVC is turned off.

Signed-off-by: Dmytro Firsov <dmytro_firsov@epam.com>
Reviewed-by: Anastasiia Lukianenko <vicooodin@gmail.com>
Reviewed-by: Anastasiia Lukianenko <vicooodin@gmail.com<mailto:vicooodin@gmail.com>>
Signed-off-by: Dmytro Firsov <dmytro_firsov@epam.com<mailto:dmytro_firsov@epam.com>>
2 years agocmd: fix do_adc_single()
Vyacheslav Bocharov [Sun, 3 Jul 2022 12:49:09 +0000 (15:49 +0300)]
cmd: fix do_adc_single()

The source code contains an error:
- argv[2] contains <channel> arg, variable for env_set is in argv[3]
- number of args is 4

Revert 54d24d72601321f4470c4edf31c6b29adae424a7
  cmd: simplify do_adc_single()

Fixes 9de612ae4ded53f742f5f99929c06d0839471ced
  cmd: adc: Add support for storing ADC result in env variable
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agopwm: aspeed: Select SYSCON to get parent detail.
Billy Tsai [Fri, 29 Apr 2022 03:50:48 +0000 (11:50 +0800)]
pwm: aspeed: Select SYSCON to get parent detail.

To work correctly, this driver depends on SYSCON to get the base address
from the parent dts node.

Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com>
Reviewed-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
2 years agotest: rng: Add a UT testcase for the rng command
Sughosh Ganu [Fri, 22 Jul 2022 16:02:09 +0000 (21:32 +0530)]
test: rng: Add a UT testcase for the rng command

The 'rng' command dumps a number of random bytes on the console. Add a
set of tests for the 'rng' command. The test function performs basic
sanity testing of the command.

Since a unit test is being added for the command, enable it by default
in the sandbox platforms.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agodoc: rng: Add documentation for the rng command
Sughosh Ganu [Fri, 22 Jul 2022 16:02:08 +0000 (21:32 +0530)]
doc: rng: Add documentation for the rng command

Add a usage document for the 'rng' u-boot command.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agocmd: rng: Use a statically allocated array for random bytes
Sughosh Ganu [Fri, 22 Jul 2022 16:02:07 +0000 (21:32 +0530)]
cmd: rng: Use a statically allocated array for random bytes

Use a statically allocated buffer on stack instead of using malloc for
reading the random bytes. Using a local array is faster than
allocating heap memory on every initiation of the command.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agocmd: rng: Add support for selecting RNG device
Sughosh Ganu [Fri, 22 Jul 2022 16:02:06 +0000 (21:32 +0530)]
cmd: rng: Add support for selecting RNG device

The 'rng' u-boot command is used for printing a select number of
random bytes on the console. Currently, the RNG device from which the
random bytes are read is fixed. However, a platform can have multiple
RNG devices, one example being qemu, which has a virtio RNG device and
the RNG pseudo device through the TPM chip.

Extend the 'rng' command so that the user can provide the RNG device
number from which the random bytes are to be read. This will be the
device index under the RNG uclass.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Tested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agotpm: Add the RNG child device
Sughosh Ganu [Fri, 22 Jul 2022 16:02:05 +0000 (21:32 +0530)]
tpm: Add the RNG child device

The TPM device comes with the random number generator(RNG)
functionality which is built into the TPM device. Add logic to add the
RNG child device in the TPM uclass post probe callback.

The RNG device can then be used to pass a set of random bytes to the
linux kernel, need for address space randomisation through the
EFI_RNG_PROTOCOL interface.

No compatible string is provided because this is not available in
the binding defined by Linux. If multiple rand devices are in the
system, then some method of selecting them (other than device tree)
will need to be used, or a binding will need to be added.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agotpm: rng: Add driver model interface for TPM RNG device
Sughosh Ganu [Fri, 22 Jul 2022 16:02:04 +0000 (21:32 +0530)]
tpm: rng: Add driver model interface for TPM RNG device

The TPM device has a builtin random number generator(RNG)
functionality. Expose the RNG functions of the TPM device to the
driver model so that they can be used by the EFI_RNG_PROTOCOL if the
protocol is installed.

Also change the function arguments and return type of the random
number functions to comply with the driver model api.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_loader: initialize the RNG protocol after the TCC2
Ilias Apalodimas [Fri, 22 Jul 2022 16:02:03 +0000 (21:32 +0530)]
efi_loader: initialize the RNG protocol after the TCC2

Due to U-Boot's lazy binding the RNG presented by the TCG is not available
until the EFI_TCG2 protocol has been initialized.  Since the TPM has a
built-in RNG device we can use for the OS randomization, move the RNG
protocol installation after the TCG.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agotpm: Export the TPM-version functions
Simon Glass [Fri, 22 Jul 2022 16:02:02 +0000 (21:32 +0530)]
tpm: Export the TPM-version functions

These functions should really be available outside the TPM code, so that
other callers can find out which version the TPM is. Rename them to have
a tpm_ prefix() and add them to the header file.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoMAINTAINERS: Change POWERPC MPC85XX maintainer to Marek Behún
Marek Behún [Mon, 25 Jul 2022 15:06:15 +0000 (17:06 +0200)]
MAINTAINERS: Change POWERPC MPC85XX maintainer to Marek Behún

After a discussion with Tom Rini, we've agreed that I am going to take
over custodianship of the MPC85XX platform, since it seems other people
do not have necessary interest or time and getting things done over
there takes too long.

Since I am only working on one MPC85XX board, Turris 1.x, and do not
have time to do thorough reviews of patches for this entire platform
(other than those concerning Turris 1.x board), for other boards I will
only run patches through CI and checkpatch, and then send them via PR
upwards to Tom.

Signed-off-by: Marek Behún <kabel@kernel.org>
Acked-by: Tom Rini <trini@konsulko.com>
2 years agoMerge tag 'fsl-qoriq-2022-7-29' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Mon, 1 Aug 2022 01:08:50 +0000 (21:08 -0400)]
Merge tag 'fsl-qoriq-2022-7-29' of https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq

mpc85xx: support for generating QorIQ pre-PBL eSDHC boot sector
p1_p2_rdb_pc: Remove I-flag from second L2 SRAM mapping
p1_p2_rdb_pc: Fix parsing inverted bits from boot input data
p1_p2_rdb_pc: Simplify SPL offset macros

2 years agoMerge tag 'doc-2022-10-rc2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Fri, 29 Jul 2022 17:24:11 +0000 (13:24 -0400)]
Merge tag 'doc-2022-10-rc2' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request for doc-2022-10-rc2

Documentation:

* Detail how configuration signatures are calculated
* Further expand on Image locations and provide example
* Describe system configuration