[PATCH 6/9] net: macb: Add HPE GSC GEM Ethernet support

Jorge Cisneros jorge.cisneros at hpe.com
Wed Apr 8 21:24:18 CEST 2026


Add support for the HPE GSC SoC's Cadence GEM Ethernet MAC. The GSC
integrates a GEM controller with SGMII interface, gigabit capability,
jumbo frames, and PTP timestamping support.

The GSC GEM instance does not require software clock initialization
as clocking is handled by the SoC integration layer, so the clock
init callback is a no-op.

Signed-off-by: Jorge Cisneros <jorge.cisneros at hpe.com>
---
 drivers/net/macb.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index cbf5f605518..c1e7044e7bb 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -619,6 +619,12 @@ static int macb_sama7g5_clk_init(struct udevice *dev, ulong rate)
 	return clk_enable(&clk);
 }
 
+static int macb_gsc_clk_init(struct udevice *dev, ulong rate)
+{
+	/* Clock is handled by the GSC IP block, no programming needed */
+	return 0;
+}
+
 int __weak macb_linkspd_cb(struct udevice *dev, unsigned int speed)
 {
 #ifdef CONFIG_CLK
@@ -1360,6 +1366,15 @@ static const struct macb_config sama7g5_emac_config = {
 	.usrio = &sama7g5_usrio,
 };
 
+static const struct macb_config gsc_config = {
+	.caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE |
+		MACB_CAPS_JUMBO | MACB_CAPS_GEM_HAS_PTP,
+	.dma_burst_length = 8,
+	.hw_dma_cap = HW_DMA_CAP_32B,
+	.clk_init = macb_gsc_clk_init,
+	.usrio = &macb_default_usrio,
+};
+
 static const struct udevice_id macb_eth_ids[] = {
 	{ .compatible = "cdns,macb" },
 	{ .compatible = "cdns,at91sam9260-macb" },
@@ -1374,6 +1389,8 @@ static const struct udevice_id macb_eth_ids[] = {
 	{ .compatible = "cdns,zynq-gem" },
 	{ .compatible = "sifive,fu540-c000-gem",
 	  .data = (ulong)&sifive_config },
+	{ .compatible = "hpe,gsc-gem",
+	  .data = (ulong)&gsc_config },
 	{ }
 };
 

-- 
2.43.0



More information about the U-Boot mailing list