summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-08-11spl: opensbi: convert scratch options to configNikita Shubin
Convert hardcoded "opensbi_info.options" to config provided value, this allows changing options passed to OpenSBI. SPL_OPENSBI_SCRATCH_OPTIONS is defaulted to SBI_SCRATCH_NO_BOOT_PRINTS. Link: https://github.com/riscv-software-src/opensbi/blob/master/docs/firmware/fw_dynamic.md Signed-off-by: Nikita Shubin <n.shubin@yadro.com> Reviewed-by: Anup Patel <anup@brainfault.org> Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2022-08-11spl: opensbi: fix typoNikita Shubin
s/obensbi_info/opensbi_info/ Signed-off-by: Nikita Shubin <n.shubin@yadro.com> Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2022-08-11riscv: ae350: Fix XIP config boot failureLeo Yu-Chi Liang
The booting flow is SPL -> OpenSBI -> U-Boot. The boot hart may change after OpenSBI and may not always be hart0, so wrap the related branch instruction with M-MODE. Current DTB setup for XIP is not valid. There is no chance for CONFIG_SYS_FDT_BASE, the DTB address used in XIP mode, to be returned. Fix this. Fixes: 2e8d2f88439d ("riscv: Remove OF_PRIOR_STAGE from RISC-V boards") Signed-off-by: Rick Chen <rick@andestech.com> Signed-off-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2022-08-11riscv: cpu: set gp before board_init_f_init_reserveNikita Shubin
Restore global pointer before board_init_f_init_reserve call, as "a0" can be set in harts_early_init call and we end up with invalid global pointer. Signed-off-by: Nikita Shubin <n.shubin@yadro.com> Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2022-08-10Merge branch '2022-08-10-assorted-updates'Tom Rini
- An assortment of bugfixes and minor updates
2022-08-10MAINTAINERS: Update e-mail addressJoao Marcos Costa
Replace former professional address by my personal e-mail. Signed-off-by: Joao Marcos Costa <jmcosta944@gmail.com>
2022-08-10lz4: Fix compile warning comparison of distinct pointer typesPali Rohár
In file included from include/linux/bitops.h:22, from include/log.h:15, from include/linux/printk.h:4, from include/common.h:20, from lib/lz4_wrapper.c:6: lib/lz4_wrapper.c: In function ‘ulz4fn’: include/linux/kernel.h:184:17: warning: comparison of distinct pointer types lacks a cast (void) (&_min1 == &_min2); \ ^~ lib/lz4_wrapper.c:104:18: note: in expansion of macro ‘min’ size_t size = min((ptrdiff_t)block_size, end - out); ^~~ Signed-off-by: Pali Rohár <pali@kernel.org>
2022-08-10scripts/config: pick config script from kernel scriptsMilan P. Stanić
pulled from kernel tag v5.18
2022-08-10Makefile: avoid false positive -Wmaybe-uninitializedHeinrich Schuchardt
When compiling with -Og gcc reports false positive -Wmaybe-uninitialized as reported in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78394. Silence these warnings when building with CONFIG_CC_OPTIMIZE_FOR_DEBUG. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2022-08-10common: Drop display_options.h from common headerSimon Glass
Move this out of the common header and include it only where needed. Signed-off-by: Simon Glass <sjg@chromium.org>
2022-08-10power: regulator: Remove i2c header from gpio regulatorMichal Simek
i2c is not used that's why header is not needed. Signed-off-by: Michal Simek <michal.simek@amd.com>
2022-08-10cmd: inconsistent return type of command_process()Heinrich Schuchardt
The declarations in the header and in the implementation must match. Reported-by: Sergei Antonov <saproj@gmail.com> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2022-08-10test: Add some tests for kconfig.hSimon Glass
The macros in this file are a little confusing and we currently have no tests to check that they work as expected. Add some tests which check the macros in C code. Add a few tests which check that the build errors are generated correctly too, using buildman's -a option. Signed-off-by: Simon Glass <sjg@chromium.org>
2022-08-10lmb: Fix LMB_MEMORY_REGIONS flag usagePatrice Chotard
This patch is fixing a broken boot observed on stm32mp157c-dk2 board. IS_ENABLED macro should be used to check if a compilation flag is set to "y" or "m". LMB_MEMORY_REGIONS is set to a numerical value, IS_ENABLED macro is not suitable in this case. Fixes: 7c1860fce4e3 ("lmb: Fix lmb property's defination under struct lmb") Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Acked-by: Michal Simek <michal.simek@amd.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2022-08-10Makefile: Correct the rule removing old of-platdata filesSimon Glass
This makes use of makefile variables that don't exist anymore. Fix it and also remove the object files in that directory. Also add FORCE as a dependency as required by the if_changed macro. Fixes 354d2324635 ("Makefile: Remove old of-platdata files before regenerating") Reported-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Signed-off-by: Simon Glass <sjg@chromium.org>
2022-08-10mmc: Do not send status of send_status is falseMarek Vasut
Commit 44645f87de5 ("mmc: Fix mmc_switch excessive timeout") introduced a side effect where CMD13 SEND_STATUS is issued in case mmc_wait_dat0() does not return -ENOSYS and $send_status is not set. This happens on all hardware which does implement .mmc_wait_dat0 callback, e.g. i.MX8M . This leads to lengthy timeout before booting OS in case of eMMC in one of the HS200/HS400 modes, since the card cannot respond to CMD13 while downgrading from HS200/HS400 to regular HS mode. Fix this by adding the missing conditional. Fixes: 44645f87de5 ("mmc: Fix mmc_switch excessive timeout") Signed-off-by: Marek Vasut <marex@denx.de> Cc: Jaehoon Chung <jh80.chung@samsung.com> Cc: Kirill Kapranov <kirill.kapranov@compulab.co.il> Cc: Marek Behún <marek.behun@nic.cz> Cc: Pantelis Antoniou <panto@antoniou-consulting.com> Cc: Ye Li <ye.li@nxp.com> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2022-08-09Merge https://source.denx.de/u-boot/custodians/u-boot-marvellTom Rini
- mvebu/turris_omina: Misc fixes and improvements (Pali & Marek) - mvebu: spl: Always fallback to BootROM boot method (Pali) - mvebu: Cleanup u-boot,dm-pre-reloc code (Pali) - gpio: Remove mvgpio driver (Chris) - SBx81LIFKW/SBx81LIFXCAT disable KIRKWOOD_GPIO (Chris) - misc: atsha204a: Don't check for error when waking up the device (Pali)
2022-08-09Merge tag 'u-boot-amlogic-20220809' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-amlogic - fixup error on efuse commands return - add documentation on boot flow
2022-08-09misc: atsha204a: Don't check for error when waking up the devicePali Rohár
The device ignores any levels or transitions on the SCL pin when the device is idle, asleep or during waking up. Linux kernel driver for atsha204a (atmel-sha204a.ko) also ignores return value from i2c wakeup send command, see: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/crypto/atmel-i2c.c?h=v5.19#n174 And also userspace Turris libatsha204 library ignores return value from wakeup send command, see: https://gitlab.nic.cz/turris/libatsha204/-/blob/v29.2/src/libatsha204/layer_ni2c.c#L75-76 U-Boot driver should do same thing. Fixes waking up ATSHA204 on Turris 1.x boards. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de> Tested-by: Paweł Anikiel <pan@semihalf.com> Reviewed-by: Marek Behún <kabel@kernel.org>
2022-08-09pci: pci_mvebu: Add support for reset-gpiosPali Rohár
Release PERST# signal via GPIO when "reset-gpios" is defined in device tree. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Stefan Roese <sr@denx.de>
2022-08-09arm64: a37xx: pinctrl: Improve description for pinmux commandPali Rohár
In more cases group name consist of function name followed by function number. So if function name is just prefix of group name, show group name. So in 'pinmux status -a' command output would be visible also extended function number, which is useful for debugging. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-08-09arm64: a37xx: pinctrl: Remove unused macro PIN_GRP()Pali Rohár
Macro PIN_GRP() is not used, remove it. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-08-09arm64: a37xx: pinctrl: Fix definitions for MPP pins 20-22Pali Rohár
All 3 MPP pins (20, 21 and 22) can be configured individually and also can be configured to GPIO functions. Fix definitions for these MPP pins in existing pin groups. After this change GPIO function can be enabled just for one of these 3 pins. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-08-09gpio: Remove mvgpio driverChris Packham
The last user of this driver was removed in commit dee08b1999e2 ("arm: Remove gplugd board"). Remove the unused driver. Signed-off-by: Chris Packham <judge.packham@gmail.com> Acked-by: Pali Rohár <pali@kernel.org>
2022-08-09ARM: kirkwood: SBx81LIFXCAT: disable KIRKWOOD_GPIOChris Packham
DM_GPIO was already enabled so the MVEBU_GPIO was already available. Disable KIRKWOOD_GPIO as it was unnecessary. Signed-off-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2022-08-09ARM: kirkwood: SBx81LIFKW: enable CONFIG_NET_RANDOM_ETHADDRChris Packham
When booting a fresh board having a random Ethernet address enables using the network device to program the board. Signed-off-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2022-08-09ARM: kirkwood: SBx81LIFKW: disable KIRKWOOD_GPIOChris Packham
DM_GPIO was already enabled so the MVEBU_GPIO was already available. Having updated the board code to use the DM_GPIO APIs the KIRKWOOD_GPIO driver became unnecessary. Disable it for SBx81LIFKW. Signed-off-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2022-08-09ARM: kirkwood: SBx81LIFKW: enable CMD_GPIOChris Packham
For debugging it is convenient to query/access GPIOs from the command line. Signed-off-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2022-08-09ARM: kirkwood: SBx81LIFKW: update for DM_GPIOChris Packham
Update mv88e61xx_hw_reset() to use the DM_GPIO API to toggle the reset line for the linkstreet switch. Signed-off-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2022-08-09ARM: kirkwood: SBx81LIFKW: remove direct access of GPIO registersChris Packham
Replace code that accessed the GPIO registers directly with code that makes use of the LED_GPIO driver. Signed-off-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2022-08-09arm: mvebu: armada-38x-controlcenterdc.dts: Move u-boot, dm-pre-reloc to ↵Pali Rohár
-u-boot.dtsi Move U-Boot specific device tree property u-boot,dm-pre-reloc into U-Boot specific device tree include file armada-38x-controlcenterdc-u-boot.dtsi. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-08-09arm: mvebu: armada-xp-theadorable.dts: Move u-boot, dm-pre-reloc to -u-boot.dtsiPali Rohár
Move U-Boot specific device tree property u-boot,dm-pre-reloc into U-Boot specific device tree include file armada-xp-theadorable-u-boot.dtsi. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de> Tested-by: Stefan Roese <sr@denx.de>
2022-08-09arm: mvebu: Remove redundant u-boot, dm-pre-reloc from all 32-bit Armada SoCsPali Rohár
Replace it by including of mvebu-u-boot.dtsi file. When board does not use -u-boot.dtsi then mvebu-u-boot.dtsi is included automatically by makefile scripts/Makefile.lib. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de> Tested-by: Stefan Roese <sr@denx.de>
2022-08-09arm: mvebu: Introduce mvebu-u-boot.dtsi for 32-bit Armada SoCsPali Rohár
Set u-boot,dm-pre-reloc for /soc/, /soc/internal-regs/ and &uart0 nodes as it is required on every 32-bit Armada SoCs. And set also u-boot,dm-pre-reloc for &spi0 when going to boot from SPI because otherwise SPL SPI drivers do not load. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de> Tested-by: Stefan Roese <sr@denx.de>
2022-08-09arm: mvebu: dts: Build only arch-compatible dts filesPali Rohár
64-bit Armada DTS files are not build correctly during compilation of 32-bit Armada boards and vice versa. So fix makefile build system to compile only those dts files which are compatible for the current build (64-bit Armada DTS files only for 64-bit builds and 32-bit Armada DTS files only for 32-bit builds). Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-08-09arm: mvebu: turris_omnia: Add Winbond SPI flash supportMarek Behún
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>
2022-08-09arm: mvebu: spl: Always fallback to BootROM boot methodPali Rohár
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>
2022-08-09arm: mvebu: turris_omnia: Remove hardcoded spi-nor device tree pathPali Rohár
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>
2022-08-09gpio: turris_omnia_mcu: Fix usage of CMD_EXT_CONTROLPali Rohár
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>
2022-08-09arm: mvebu: turris_omnia: Increase fdt size in fixup_mtd_partitionsPali Rohár
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>
2022-08-09arm: mvebu: turris_omnia: Do not fail in fixup_mtd_partitions when ↵Pali Rohár
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>
2022-08-09arm: mvebu: turris_omnia: Add support for design with SW reset signalsPali Rohár
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>
2022-08-09arm: mvebu: turris_omnia: Show MCU type in show_board_info()Pali Rohár
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>
2022-08-08Prepare v2022.10-rc2v2022.10-rc2Tom Rini
Signed-off-by: Tom Rini <trini@konsulko.com>
2022-08-08Merge branch '2022-08-08-networking-updates'Tom Rini
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
2022-08-08net: dwc_eth_qos: Add eqos_get_enetaddr callback for stm32Patrice Chotard
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>
2022-08-08net: dwc_eth_qos: Add eqos_get_enetaddr callback for tegra186Patrice Chotard
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>
2022-08-08ARM: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pinsKunihiko Hayashi
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>
2022-08-08net: ave: Add capability of rgmii-id modeKunihiko Hayashi
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>
2022-08-08net: phy: possible NULL dereference in fixed_phy_create()Heinrich Schuchardt
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>