summaryrefslogtreecommitdiff
path: root/board/microchip
AgeCommit message (Collapse)Author
2026-03-13riscv: don't imply non-existent CONFIG_IP_DYNHeinrich Schuchardt
The symbol CONFIG_IP_DYN does not exist, but multiple contributors copied an imply statement. Remove the imply IP_DYN statements. Fixes: 3fda0262c33f ("riscv: Add SiFive FU540 board support") Fixes: 64413e1b7caf ("riscv: Add Microchip MPFS Icicle Kit support") Fixes: 70415e1e528d ("board: sifive: add HiFive Unmatched board support") Fixes: 6f902b85b6ee ("board: starfive: Add Kconfig for StarFive VisionFive v2 Board") Signed-off-by: Heinrich Schuchardt <[email protected]> Acked-by: Conor Dooley <[email protected]>
2025-12-08riscv: mpfs: move SoC level options to the CPU KconfigConor Dooley
There are multiple boards that use the PolarFire SoC, so extract the Kconfig sections that are determined at a CPU level from the board Kconfigs now that we have a CPU Kconfig. Signed-off-by: Conor Dooley <[email protected]>
2025-12-08riscv: create a custom CPU implementation for PolarFire SoCConor Dooley
PolarFire SoC needs a custom implementation of top_of_ram(), so stop using the generic CPU & create a custom CPU instead. Signed-off-by: Conor Dooley <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2025-10-06Merge branch 'next'Tom Rini
Merge the outstanding changes from the 'next' branch to master.
2025-09-30board: mpfs_icicle: fix pointer assignment in board_fdt_blob_setup()Jamie Gibbons
Correct the assignment in board_fdt_blob_setup() to use *fdtp instead of fdtp, ensuring the caller receives the correct FDT address. This resolves an issue where the device tree pointer was not properly set due to assigning to the local parameter rather than the dereferenced pointer. Fixes: 7c16ebba1ed ("board: mpfs_icicle: implement board_fdt_blob_setup()/board_fit_config_name_match()") Signed-off-by: Jamie Gibbons <[email protected]> Reviewed-by: Conor Dooley <[email protected]>
2025-09-19board: microchip: mpfs_generic: include processing of dtbosJamie Gibbons
Include the use of the process dtbo functionality added in the MPFS system controller driver. Signed-off-by: Jamie Gibbons <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2025-09-19board: microchip: icicle: rename all icicle files to genericJamie Gibbons
Make all Icicle Kit files generic. This supports the addition of upcoming support for other MPFS boards. Signed-off-by: Jamie Gibbons <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2025-08-14board: microchip: mpfs_icicle: update to use system controllerJamie Gibbons
A new system controller driver has been created to make code modular and improve and clean code. Update and remove functions to account for these additional drivers. Signed-off-by: Jamie Gibbons <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2025-08-14board: microchip: mpfs_icicle: enable new driver configsJamie Gibbons
Enable the MPFS mailbox and system controller drivers for use with the Icicle kit. These functions are crucial for the board setup functions that run in the Icicle board file - mpfs_icicle.c. Signed-off-by: Jamie Gibbons <[email protected]> Acked-by: Leo Yu-Chi Liang <[email protected]>
2025-08-14board: microchip: mpfs_icicle: make use of ft_board_setup()Jamie Gibbons
Move ethernet mac address setting to ft_board_setup() to remove the need for fdt set in custom boot script. Signed-off-by: Jamie Gibbons <[email protected]> Acked-by: Leo Yu-Chi Liang <[email protected]>
2025-07-17board: mpfs_icicle: fix board_fit_config_name_match()Conor Dooley
The loop in the icicle implementation of board_fit_config_name_match() runs strtok() to split off the vendor portion of the compatible string using , as the delimiter. strtok() modifies a string in place, so where the first config and compatible do not match, the compatible has been modified by the time the loop hits the second iteration. Since stringlists in dt land are null separated strings, the nulls strtok() inserts to replace the delimiter increase the number of strings in the compatible list. When the second iteration of the loop calls fdt_stringlist_get(), it gets the vendorless portion of the first compatible string, rather than the second compatible string. Copy each compatible before calling strtok() to avoid this problem. The temporary string the compatible is copied to is statically allocated, as attempts to dynamically allocate it at this stage of boot were met with "alloc space exhausted" errors. Fixes: 7c16ebba1ed ("board: mpfs_icicle: implement board_fdt_blob_setup()/board_fit_config_name_match()") Signed-off-by: Conor Dooley <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2025-07-03board: mpfs_icicle: implement ↵Conor Dooley
board_fdt_blob_setup()/board_fit_config_name_match() The firmware on the Icicle is capable of providing a devicetree in a1 to U-Boot, but until now the devicetree has been packaged in a "payload" [1] alongside U-Boot (or other bootloaders/RTOSes) and appended to the image. The address of this appended devicetree is placed in a1 by the firmware. This meant that the mechanism used by OF_SEPARATE to locate the devicetree at the end of the image would pick up the one provided by the firmware when u-boot-nodtb.bin was in the payload and U-Boot's devicetree when u-boot.bin was. The firmware is now going to be capable of providing a minimal devicetree (quite cut down due to severe space constraints), but this devicetree is linked into the firmware that runs out of the L2 rather than at the end of the U-Boot image. Implement board_fdt_blob_setup() so that this devicetree can be optionally used, and the devicetree provided in the "payload" can be used without relying on "happening" to implement the same strategy as OF_SEPARATE expects in combination with u-boot-nodtb.bin. Unlike other RISC-V boards, the firmware provided devicetree is only used when OF_BOARD is set, so that the almost certainly more complete devicetree in U-Boot will be used unless explicitly requested otherwise. Implement board_fit_config_name_match(), so that, using the firmware provided cut-down/minimal dtb, U-Boot can select one of several devicetrees when MULTI_DTB_FIT is enabled. Enabling both MULTI_DTB_FIT and OF_BOARD will lead to a conflict between the two options, with the latter taking priority due to board_fdt_blob_setup() being executed before board_fit_config_name_match(), which causes gd->fdt_blob to be overwritten with a pointer to the minimal devicetree rather than the location of the fit image containing the multiple dtbs. Let MULTI_DTB_FIT take priority in this case, by explicitly blocking the override when MULTI_DTB_FIT is enabled. Link: https://github.com/polarfire-soc/hart-software-services/blob/master/tools/hss-payload-generator/README.md [1] Signed-off-by: Conor Dooley <[email protected]> Acked-by: Leo Yu-Chi Liang <[email protected]>
2024-10-29board: mpfs_icicle: imply new clk driver dependenciesConor Dooley
The clock driver for PolarFire SoC now requires syscon and regmap features, so imply them to preserve implication of the clock driver. Signed-off-by: Conor Dooley <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2024-07-01Merge branch 'next'Tom Rini
2024-06-27board: mpfs_icicle: change maintainer to ConorConor Dooley
Padmarao is leaving Microchip soon, and suggested that I should take over maintaining the Icicle in U-Boot in his stead. Suggested-by: Padmarao Begari <[email protected]> Signed-off-by: Conor Dooley <[email protected]>
2024-06-04Merge tag 'v2024.07-rc4' into nextTom Rini
Prepare v2024.070-rc4
2024-05-30board: microchip: icicle: make both ethernets optionalConor Dooley
A given AMP configuration for a board may make either one, or neither of, the ethernet ports available to U-Boot. The Icicle's init code will fail if mac1 is not present, so move it to the optional approach taken for mac0. Signed-off-by: Conor Dooley <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2024-05-30board: microchip: icicle: correct type for node offsetConor Dooley
Node offsets returned by libfdt can contain negative error numbers, so the variable type should be "int". As things stand, if the ethernet nodes are not found in the early init callback, the if (node < 0) tests pass and the code errors out while trying to set the local-mac-address for a non-existent node. Fixes: 64413e1b7c ("riscv: Add Microchip MPFS Icicle Kit support") Signed-off-by: Conor Dooley <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2024-05-20Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"Tom Rini
As part of bringing the master branch back in to next, we need to allow for all of these changes to exist here. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-19Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""Tom Rini
When bringing in the series 'arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"' I failed to notice that b4 noticed it was based on next and so took that as the base commit and merged that part of next to master. This reverts commit c8ffd1356d42223cbb8c86280a083cc3c93e6426, reversing changes made to 2ee6f3a5f7550de3599faef9704e166e5dcace35. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-07board: microchip: Remove <common.h> and add needed includesTom Rini
Remove <common.h> from this board vendor directory and when needed add missing include files directly. Signed-off-by: Tom Rini <[email protected]>
2024-01-29treewide: Remove clk_freeSean Anderson
This function is a no-op. Remove it. Signed-off-by: Sean Anderson <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2024-01-22mtd: Make CONFIG_MTD be the gate symbol for the menuTom Rini
The help for CONFIG_MTD explains that it needs to be enabled for various things like NAND, etc to be available. It however then doesn't enforce this dependency and so if you have none of these systems present you still need to disable a number of options. Fix this by making places that select/imply one type of flash, but did not do the same, also do this for "MTD". Make boards which hadn't been enabling MTD already but need it now, do so. In a few places, disable CONFIG_CMD_MTDPARTS as it wasn't previously enabled but was now being implied. Signed-off-by: Tom Rini <[email protected]>
2024-01-22cmd/mtdparts: Make this select MTD_PARTITIONSTom Rini
Rather than rely on someone selecting or implying this hidden symbol that the command requires, select it explicitly. Signed-off-by: Tom Rini <[email protected]>
2023-07-06board: microchip: set mac address for ethernet1 on icicleConor Dooley
The dts sync from Linux leaves mac0/ethernet1 enabled on icicle, but U-Boot does not currently set a mac address for it. Expand on the code which currently sets the mac for mac1/ethernet0 to optionally set the mac address for the second ethernet. Reviewed-by: Padmarao Begari <[email protected]> Tested-by: Padmarao Begari <[email protected]> Signed-off-by: Conor Dooley <[email protected]>
2022-11-03riscv: Update Microchip MPFS Icicle Kit supportPadmarao Begari
This patch updates Microchip MPFS Icicle Kit support. For now, add Microchip QSPI driver and a small 4MB reservation is made at the end of 32-bit DDR to provide some memory for the HSS to use. Signed-off-by: Padmarao Begari <[email protected]> Reviewed-by: Conor Dooley <[email protected]> Reviewed-by: Rick Chen <[email protected]>
2022-10-31Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASESimon Glass
The current name is inconsistent with SPL which uses CONFIG_SPL_TEXT_BASE and this makes it imposible to use CONFIG_VAL(). Rename it to resolve this problem. Signed-off-by: Simon Glass <[email protected]>
2021-12-02riscv: Update Microchip MPFS Icicle Kit supportPadmarao Begari
This patch updates Microchip MPFS Icicle Kit support. For now, add Microchip I2C driver, set environment variables for mac addresses and default build for SBI_V02. Signed-off-by: Padmarao Begari <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2021-02-02common: Drop asm/global_data.h from common headerSimon Glass
Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2021-01-18riscv: Add Microchip MPFS Icicle Kit supportPadmarao Begari
This patch adds Microchip MPFS Icicle Kit support. For now, only NS16550 Serial, Microchip clock, Cadence eMMC and MACB drivers are enabled. The Microchip MPFS Icicle defconfig by default builds U-Boot for S-Mode because U-Boot on Microchip PolarFire SoC will run in S-Mode as payload of HSS + OpenSBI. Signed-off-by: Padmarao Begari <[email protected]> Reviewed-by: Anup Patel <[email protected]> Reviewed-by: Bin Meng <[email protected]> Tested-by: Bin Meng <[email protected]>
2020-05-18common: Drop init.h from common headerSimon Glass
Move this uncommon header out of the common header. Signed-off-by: Simon Glass <[email protected]>
2020-02-05dm: core: Create a new header file for 'compat' featuresSimon Glass
At present dm/device.h includes the linux-compatible features. This requires including linux/compat.h which in turn includes a lot of headers. One of these is malloc.h which we thus end up including in every file in U-Boot. Apart from the inefficiency of this, it is problematic for sandbox which needs to use the system malloc() in some files. Move the compatibility features into a separate header file. Signed-off-by: Simon Glass <[email protected]>
2019-06-05riscv: Add Microchip MPFS Icicle board supportPadmarao Begari
This patch adds Microchip MPFS Icicle board support. For now, NS16550 serial driver is only enabled. The Microchip MPFS Icicle defconfig by default builds U-Boot for M-Mode with SMP support. Signed-off-by: Padmarao Begari <[email protected]> Reviewed-by: Bin Meng <[email protected]> Reviewed-by: Lukas Auer <[email protected]>
2018-05-07SPDX: Convert all of our single license tags to Linux Kernel styleTom Rini
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <[email protected]>
2016-06-19clk: convert API to match reset/mailbox styleStephen Warren
The following changes are made to the clock API: * The concept of "clocks" and "peripheral clocks" are unified; each clock provider now implements a single set of clocks. This provides a simpler conceptual interface to clients, and better aligns with device tree clock bindings. * Clocks are now identified with a single "struct clk", rather than requiring clients to store the clock provider device and clock identity values separately. For simple clock consumers, this isolates clients from internal details of the clock API. * clk.h is split so it only contains the client/consumer API, whereas clk-uclass.h contains the provider API. This aligns with the recently added reset and mailbox APIs. * clk_ops .of_xlate(), .request(), and .free() are added so providers can customize these operations if needed. This also aligns with the recently added reset and mailbox APIs. * clk_disable() is added. * All users of the current clock APIs are updated. * Sandbox clock tests are updated to exercise clock lookup via DT, and clock enable/disable. * rkclk_get_clk() is removed and replaced with standard APIs. Buildman shows no clock-related errors for any board for which buildman can download a toolchain. test/py passes for sandbox (which invokes the dm clk test amongst others). Signed-off-by: Stephen Warren <[email protected]> Acked-by: Simon Glass <[email protected]>
2016-05-26MIPS: Move CONFIG_SYS_TEXT_BASE to KconfigPaul Burton
Move CONFIG_SYS_TEXT_BASE to Kconfig, and add default values in board Kconfig files matching what was present in their config headers. This will make it cleaner to conditionalise the value for Malta based on 32 vs 64 bit builds. Signed-off-by: Paul Burton <[email protected]>
2016-02-01board: Add Microchip PIC32MZ[DA]-Starter-Kit board.Purna Chandra Mandal
This adds support for Microchip PIC32MZ[DA] StarterKit board based on a PIC32MZ[DA] family of microcontroller. Signed-off-by: Purna Chandra Mandal <[email protected]> Reviewed-by: Daniel Schwierzeck <[email protected]>