From patchwork Wed Nov 28 18:23:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004717 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="V3DOd/Ua"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434px53Mbdz9s0n for ; Thu, 29 Nov 2018 05:25:29 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 389D4C222EB; Wed, 28 Nov 2018 18:24:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 834CAC222EB; Wed, 28 Nov 2018 18:24:00 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 881A7C222E1; Wed, 28 Nov 2018 18:23:54 +0000 (UTC) Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by lists.denx.de (Postfix) with ESMTPS id 05E3BC222D8 for ; Wed, 28 Nov 2018 18:23:54 +0000 (UTC) Received: by mail-wr1-f66.google.com with SMTP id v6so27307777wrr.12 for ; Wed, 28 Nov 2018 10:23:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=63600xUfWqf9O7FFWWyYWxK5NZBWpS84oiPlIQMchGo=; b=V3DOd/UabB5qXrjoOQxUmdG6FG9bm9cDqaqNJKN/Rqm7C4gx0PFk1vFljJJj1KR+/5 RsAPvtLvAVPgK1BtMerngZxORIcWduVwib00fivI4/69GdckFXIl6k18noT/fINTQh2G EC2yMCZwZLKa9/VuA4M+3crzWrQ1Mb3QooGZ1rA4k3VVXzDn0DlEW191YC2pC0OVtt63 mev3rqx/NXQkh6dc1kvK3K0MNue6MAAOqiBXJ20+r/61iUIvSxzR5Q1MDvszDOPGHYav BeMfUs/iUBFyRaBg6q90LYQGRzbzkH8whN1KvOCmj1UZ96W8dAHX7dhqKl0iCxwY8ZQd gy9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=63600xUfWqf9O7FFWWyYWxK5NZBWpS84oiPlIQMchGo=; b=iIV1YclqfDb0QvKcTOgilPi5geCJcY+OjcTe5CQEmtAmbrhodRuY4/TM8OKl9bEwjn yV9Ze8eQGuvwJ0hlNrGiMO1PzASmrhJF9VizqBl1JoG0cQy3Dojr02nKBPqY0p4VyFSU 6MksYP58snUM7WyJP5uukhCcUobCwvjOmZJepnM8e3NeaItLBn+niPtJkNdrY1DHY94w 9u9gD0dNTv0yMgHTKZtjz1oRFTMYP6BypAEIJyZ+igXHPDNw4i3dXGuu5iN3jHO2Qsom GLTcok+5GdhRzGpCYDb54cslrN9wyXk5nt1S55DZWwmemaYgAXZ5L6Z4ccCTzwBL/T8z NRIA== X-Gm-Message-State: AA+aEWasNro1a8SNO19t99yzte9D2XlzLScqqQYHo8LebNrBJSfSr7Cw upxtvbMQ1g9DS0pK3kgoN0+V8DUY X-Google-Smtp-Source: AFSGD/XcRvDu3xzYRu/oxrqyCfwdsdDsrSeqmdy3EhECKQ0EtSUsYGlBpV1Gqbr4MPEeL8zq0wcnlw== X-Received: by 2002:a5d:6487:: with SMTP id r7mr33053345wru.263.1543429433084; Wed, 28 Nov 2018 10:23:53 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.23.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:23:52 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:22 +0100 Message-Id: <20181128182349.10330-2-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 01/28] dma: add bcm6348-iudma support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" BCM6348 IUDMA controller is present on multiple BMIPS (BCM63xx) SoCs. Signed-off-by: Álvaro Fernández Rojas --- v9: introduce dma_prepare_rcv_buf dma op: - bcm6348_iudma_chan_stop: switch to mdelay when resetting channel. - bcm6348_iudma_receive: track dirty dma descriptors and no longer trigger dma rx channel. - bcm6348_iudma_send: reorder to properly flush cache and set dma descriptor config. - bcm6348_iudma_prepare_rcv_buf: implemented to clear dirty dma descriptors. v8: Introduce changes from Grygorii Strashko v5: Several fixes and improvements: - Remove unused defines. - Increment rx descriptors. - Fix flow control issues. - Error checking now depends on hw. - Remove unneeded interrupts. v4: Fix issues reported by Grygorii Strashko and other fixes: - Remove usage of net_rx_packets as buffer. - Allocate dynamic rx buffer. - Check dma errors and discard invalid packets. v3: no changes v2: Fix dma rx burst config and select DMA_CHANNELS. drivers/dma/Kconfig | 9 + drivers/dma/Makefile | 1 + drivers/dma/bcm6348-iudma.c | 576 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 586 insertions(+) create mode 100644 drivers/dma/bcm6348-iudma.c diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig index 8a4162eccd..1820676d7a 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig @@ -26,6 +26,15 @@ config SANDBOX_DMA Enable support for a test DMA uclass implementation. It stimulates DMA transfer by simple copying data between channels. +config BCM6348_IUDMA + bool "BCM6348 IUDMA driver" + depends on ARCH_BMIPS + select DMA_CHANNELS + help + Enable the BCM6348 IUDMA driver. + This driver support data transfer from devices to + memory and from memory to devices. + config TI_EDMA3 bool "TI EDMA3 driver" help diff --git a/drivers/dma/Makefile b/drivers/dma/Makefile index aff31f986a..b5f9147e0a 100644 --- a/drivers/dma/Makefile +++ b/drivers/dma/Makefile @@ -7,6 +7,7 @@ obj-$(CONFIG_DMA) += dma-uclass.o obj-$(CONFIG_FSLDMAFEC) += MCD_tasksInit.o MCD_dmaApi.o MCD_tasks.o obj-$(CONFIG_APBH_DMA) += apbh_dma.o +obj-$(CONFIG_BCM6348_IUDMA) += bcm6348-iudma.o obj-$(CONFIG_FSL_DMA) += fsl_dma.o obj-$(CONFIG_SANDBOX_DMA) += sandbox-dma-test.o obj-$(CONFIG_TI_KSNAV) += keystone_nav.o keystone_nav_cfg.o diff --git a/drivers/dma/bcm6348-iudma.c b/drivers/dma/bcm6348-iudma.c new file mode 100644 index 0000000000..284735fff3 --- /dev/null +++ b/drivers/dma/bcm6348-iudma.c @@ -0,0 +1,576 @@ +/* + * Copyright (C) 2018 Álvaro Fernández Rojas + * + * Derived from linux/drivers/dma/bcm63xx-iudma.c: + * Copyright (C) 2015 Simon Arlott + * + * Derived from linux/drivers/net/ethernet/broadcom/bcm63xx_enet.c: + * Copyright (C) 2008 Maxime Bizon + * + * Derived from bcm963xx_4.12L.06B_consumer/shared/opensource/include/bcm963xx/63268_map_part.h: + * Copyright (C) 2000-2010 Broadcom Corporation + * + * Derived from bcm963xx_4.12L.06B_consumer/bcmdrivers/opensource/net/enet/impl4/bcmenet.c: + * Copyright (C) 2010 Broadcom Corporation + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include +#include +#include +#include + +#define DMA_RX_DESC 6 +#define DMA_TX_DESC 1 + +DECLARE_GLOBAL_DATA_PTR; + +#define ALIGN_END_ADDR(type, ptr, size) \ + ((unsigned long)(ptr) + roundup((size) * sizeof(type), \ + ARCH_DMA_MINALIGN)) + +/* DMA Channels */ +#define DMA_CHAN_FLOWC(x) ((x) >> 1) +#define DMA_CHAN_MAX 16 +#define DMA_CHAN_SIZE 0x10 +#define DMA_CHAN_TOUT 500 + +/* DMA Global Configuration register */ +#define DMA_CFG_REG 0x00 +#define DMA_CFG_ENABLE_SHIFT 0 +#define DMA_CFG_ENABLE_MASK (1 << DMA_CFG_ENABLE_SHIFT) +#define DMA_CFG_FLOWC_ENABLE(x) BIT(DMA_CHAN_FLOWC(x) + 1) +#define DMA_CFG_NCHANS_SHIFT 24 +#define DMA_CFG_NCHANS_MASK (0xf << DMA_CFG_NCHANS_SHIFT) + +/* DMA Global Flow Control registers */ +#define DMA_FLOWC_THR_LO_REG(x) (0x04 + DMA_CHAN_FLOWC(x) * 0x0c) +#define DMA_FLOWC_THR_HI_REG(x) (0x08 + DMA_CHAN_FLOWC(x) * 0x0c) +#define DMA_FLOWC_ALLOC_REG(x) (0x0c + DMA_CHAN_FLOWC(x) * 0x0c) +#define DMA_FLOWC_ALLOC_FORCE_SHIFT 31 +#define DMA_FLOWC_ALLOC_FORCE_MASK (1 << DMA_FLOWC_ALLOC_FORCE_SHIFT) + +/* DMA Global Reset register */ +#define DMA_RST_REG 0x34 +#define DMA_RST_CHAN_SHIFT 0 +#define DMA_RST_CHAN_MASK(x) (1 << x) + +/* DMA Channel Configuration register */ +#define DMAC_CFG_REG(x) (DMA_CHAN_SIZE * (x) + 0x00) +#define DMAC_CFG_ENABLE_SHIFT 0 +#define DMAC_CFG_ENABLE_MASK (1 << DMAC_CFG_ENABLE_SHIFT) +#define DMAC_CFG_PKT_HALT_SHIFT 1 +#define DMAC_CFG_PKT_HALT_MASK (1 << DMAC_CFG_PKT_HALT_SHIFT) +#define DMAC_CFG_BRST_HALT_SHIFT 2 +#define DMAC_CFG_BRST_HALT_MASK (1 << DMAC_CFG_BRST_HALT_SHIFT) + +/* DMA Channel Max Burst Length register */ +#define DMAC_BURST_REG(x) (DMA_CHAN_SIZE * (x) + 0x0c) + +/* DMA SRAM Descriptor Ring Start register */ +#define DMAS_RSTART_REG(x) (DMA_CHAN_SIZE * (x) + 0x00) + +/* DMA SRAM State/Bytes done/ring offset register */ +#define DMAS_STATE_DATA_REG(x) (DMA_CHAN_SIZE * (x) + 0x04) + +/* DMA SRAM Buffer Descriptor status and length register */ +#define DMAS_DESC_LEN_STATUS_REG(x) (DMA_CHAN_SIZE * (x) + 0x08) + +/* DMA SRAM Buffer Descriptor status and length register */ +#define DMAS_DESC_BASE_BUFPTR_REG(x) (DMA_CHAN_SIZE * (x) + 0x0c) + +struct bcm6348_dma_desc { + uint16_t length; + + uint16_t status; +#define DMAD_ST_CRC_SHIFT 8 +#define DMAD_ST_CRC_MASK (1 << DMAD_ST_CRC_SHIFT) +#define DMAD_ST_WRAP_SHIFT 12 +#define DMAD_ST_WRAP_MASK (1 << DMAD_ST_WRAP_SHIFT) +#define DMAD_ST_SOP_SHIFT 13 +#define DMAD_ST_SOP_MASK (1 << DMAD_ST_SOP_SHIFT) +#define DMAD_ST_EOP_SHIFT 14 +#define DMAD_ST_EOP_MASK (1 << DMAD_ST_EOP_SHIFT) +#define DMAD_ST_OWN_SHIFT 15 +#define DMAD_ST_OWN_MASK (1 << DMAD_ST_OWN_SHIFT) + +#define DMAD6348_ST_OV_ERR_SHIFT 0 +#define DMAD6348_ST_OV_ERR_MASK (1 << DMAD6348_ST_OV_ERR_SHIFT) +#define DMAD6348_ST_CRC_ERR_SHIFT 1 +#define DMAD6348_ST_CRC_ERR_MASK (1 << DMAD6348_ST_CRC_ERR_SHIFT) +#define DMAD6348_ST_RX_ERR_SHIFT 2 +#define DMAD6348_ST_RX_ERR_MASK (1 << DMAD6348_ST_RX_ERR_SHIFT) +#define DMAD6348_ST_OS_ERR_SHIFT 4 +#define DMAD6348_ST_OS_ERR_MASK (1 << DMAD6348_ST_OS_ERR_SHIFT) +#define DMAD6348_ST_UN_ERR_SHIFT 9 +#define DMAD6348_ST_UN_ERR_MASK (1 << DMAD6348_ST_UN_ERR_SHIFT) + + uint32_t address; +} __attribute__((aligned(1))); + +struct bcm6348_chan_priv { + void __iomem *dma_buff; + void __iomem *dma_ring; + uint8_t dma_ring_size; + uint8_t desc_id; + uint8_t dirty_cnt; + uint8_t dirty_desc; +}; + +struct bcm6348_iudma_hw { + uint16_t err_mask; +}; + +struct bcm6348_iudma_priv { + const struct bcm6348_iudma_hw *hw; + void __iomem *base; + void __iomem *chan; + void __iomem *sram; + struct bcm6348_chan_priv **ch_priv; + uint8_t n_channels; +}; + +static inline bool bcm6348_iudma_chan_is_rx(uint8_t ch) +{ + return !(ch & 1); +} + +static void bcm6348_iudma_chan_stop(struct bcm6348_iudma_priv *priv, + uint8_t ch) +{ + unsigned int timeout = DMA_CHAN_TOUT; + + do { + uint32_t cfg, halt; + + if (timeout > DMA_CHAN_TOUT / 2) + halt = DMAC_CFG_PKT_HALT_MASK; + else + halt = DMAC_CFG_BRST_HALT_MASK; + + /* try to stop dma channel */ + writel_be(halt, priv->chan + DMAC_CFG_REG(ch)); + mb(); + + /* check if channel was stopped */ + cfg = readl_be(priv->chan + DMAC_CFG_REG(ch)); + if (!(cfg & DMAC_CFG_ENABLE_MASK)) + break; + + udelay(1); + } while (--timeout); + + if (!timeout) + pr_err("unable to stop channel %u\n", ch); + + /* reset dma channel */ + setbits_be32(priv->base + DMA_RST_REG, DMA_RST_CHAN_MASK(ch)); + mdelay(1); + clrbits_be32(priv->base + DMA_RST_REG, DMA_RST_CHAN_MASK(ch)); +} + +static int bcm6348_iudma_disable(struct dma *dma) +{ + struct bcm6348_iudma_priv *priv = dev_get_priv(dma->dev); + + bcm6348_iudma_chan_stop(priv, dma->id); + + if (bcm6348_iudma_chan_is_rx(dma->id)) + writel_be(DMA_FLOWC_ALLOC_FORCE_MASK, + DMA_FLOWC_ALLOC_REG(dma->id)); + + return 0; +} + +static int bcm6348_iudma_enable(struct dma *dma) +{ + const struct bcm6348_iudma_priv *priv = dev_get_priv(dma->dev); + struct bcm6348_chan_priv *ch_priv = priv->ch_priv[dma->id]; + struct bcm6348_dma_desc *dma_desc; + void __iomem *dma_buff = ch_priv->dma_buff; + uint8_t i; + + /* init dma rings */ + dma_desc = ch_priv->dma_ring; + for (i = 0; i < ch_priv->dma_ring_size; i++) { + uint16_t status; + + if (bcm6348_iudma_chan_is_rx(dma->id)) { + status = DMAD_ST_OWN_MASK; + dma_desc->length = PKTSIZE_ALIGN; + dma_desc->address = virt_to_phys(dma_buff); + dma_buff += PKTSIZE_ALIGN; + } else { + status = 0; + dma_desc->length = 0; + dma_desc->address = 0; + } + + if (i == ch_priv->dma_ring_size - 1) + status |= DMAD_ST_WRAP_MASK; + + dma_desc->status = status; + + dma_desc++; + } + + /* init to first descriptor */ + ch_priv->desc_id = 0; + ch_priv->dirty_desc = 0; + ch_priv->dirty_cnt = 0; + + /* force cache writeback */ + flush_dcache_range((ulong)ch_priv->dma_ring, + ALIGN_END_ADDR(struct bcm6348_dma_desc, ch_priv->dma_ring, + ch_priv->dma_ring_size)); + + /* clear sram */ + writel_be(0, priv->sram + DMAS_STATE_DATA_REG(dma->id)); + writel_be(0, priv->sram + DMAS_DESC_LEN_STATUS_REG(dma->id)); + writel_be(0, priv->sram + DMAS_DESC_BASE_BUFPTR_REG(dma->id)); + + /* set dma ring start */ + writel_be(virt_to_phys(ch_priv->dma_ring), + priv->sram + DMAS_RSTART_REG(dma->id)); + + /* set flow control */ + if (bcm6348_iudma_chan_is_rx(dma->id)) { + u32 val; + + setbits_be32(priv->base + DMA_CFG_REG, + DMA_CFG_FLOWC_ENABLE(dma->id)); + + val = ch_priv->dma_ring_size / 3; + writel_be(val, priv->base + DMA_FLOWC_THR_LO_REG(dma->id)); + + val = (ch_priv->dma_ring_size * 2) / 3; + writel_be(val, priv->base + DMA_FLOWC_THR_HI_REG(dma->id)); + + writel_be(0, priv->base + DMA_FLOWC_ALLOC_REG(dma->id)); + } + + /* set dma max burst */ + writel_be(ch_priv->dma_ring_size, + priv->chan + DMAC_BURST_REG(dma->id)); + + /* kick dma channel */ + setbits_be32(priv->chan + DMAC_CFG_REG(dma->id), DMAC_CFG_ENABLE_MASK); + + return 0; +} + +static int bcm6348_iudma_request(struct dma *dma) +{ + const struct bcm6348_iudma_priv *priv = dev_get_priv(dma->dev); + struct bcm6348_chan_priv *ch_priv; + + /* check if channel is valid */ + if (dma->id >= priv->n_channels) + return -ENODEV; + + /* alloc channel private data */ + priv->ch_priv[dma->id] = calloc(1, sizeof(struct bcm6348_chan_priv)); + if (!priv->ch_priv[dma->id]) + return -ENOMEM; + ch_priv = priv->ch_priv[dma->id]; + + /* alloc dma ring */ + if (bcm6348_iudma_chan_is_rx(dma->id)) + ch_priv->dma_ring_size = DMA_RX_DESC; + else + ch_priv->dma_ring_size = DMA_TX_DESC; + + ch_priv->dma_ring = + malloc_cache_aligned(sizeof(struct bcm6348_dma_desc) * + ch_priv->dma_ring_size); + if (!ch_priv->dma_ring) + return -ENOMEM; + + if (bcm6348_iudma_chan_is_rx(dma->id)) { + ch_priv->dma_buff = + malloc_cache_aligned(PKTSIZE_ALIGN * + ch_priv->dma_ring_size); + if (!ch_priv->dma_buff) + return -ENOMEM; + } else { + ch_priv->dma_buff = NULL; + } + + return 0; +} + +static int bcm6348_iudma_receive(struct dma *dma, void **dst, void *metadata) +{ + const struct bcm6348_iudma_priv *priv = dev_get_priv(dma->dev); + const struct bcm6348_iudma_hw *hw = priv->hw; + struct bcm6348_chan_priv *ch_priv = priv->ch_priv[dma->id]; + struct bcm6348_dma_desc *dma_desc; + void __iomem *dma_buff; + int ret; + + if (ch_priv->dirty_cnt == ch_priv->dma_ring_size) { + pr_err("dma rx ring full of dirty descriptors\n"); + return -EAGAIN; + } + + /* get dma ring descriptor address */ + dma_desc = ch_priv->dma_ring; + dma_desc += ch_priv->desc_id; + + /* invalidate cache data */ + invalidate_dcache_range((ulong)dma_desc, + ALIGN_END_ADDR(struct bcm6348_dma_desc, dma_desc, 1)); + + /* check dma own */ + if (dma_desc->status & DMAD_ST_OWN_MASK) + return -EAGAIN; + + /* check pkt */ + if (!(dma_desc->status & DMAD_ST_EOP_MASK) || + !(dma_desc->status & DMAD_ST_SOP_MASK) || + (dma_desc->status & hw->err_mask)) { + pr_err("invalid pkt received (ch=%ld) (st=%04x)\n", + dma->id, dma_desc->status); + ret = -EAGAIN; + } else { + uint16_t length; + + /* get dma buff descriptor address */ + dma_buff = phys_to_virt(dma_desc->address); + + /* invalidate cache data */ + invalidate_dcache_range((ulong)dma_buff, + (ulong)(dma_buff + PKTSIZE_ALIGN)); + + /* remove crc */ + length = dma_desc->length - 4; + + /* copy data */ + memcpy(*dst, dma_buff, length); + + ret = length; + } + + /* increment dma descriptor */ + ch_priv->desc_id = (ch_priv->desc_id + 1) % ch_priv->dma_ring_size; + ch_priv->dirty_cnt++; + + return ret; +} + +static int bcm6348_iudma_send(struct dma *dma, void *src, size_t len, + void *metadata) +{ + const struct bcm6348_iudma_priv *priv = dev_get_priv(dma->dev); + struct bcm6348_chan_priv *ch_priv = priv->ch_priv[dma->id]; + struct bcm6348_dma_desc *dma_desc; + uint16_t status; + + /* flush cache */ + flush_dcache_range((ulong)src, (ulong)src + PKTSIZE_ALIGN); + + /* get dma ring descriptor address */ + dma_desc = ch_priv->dma_ring; + dma_desc += ch_priv->desc_id; + + /* config dma descriptor */ + status = (DMAD_ST_OWN_MASK | + DMAD_ST_EOP_MASK | + DMAD_ST_CRC_MASK | + DMAD_ST_SOP_MASK); + if (ch_priv->desc_id == ch_priv->dma_ring_size - 1) + status |= DMAD_ST_WRAP_MASK; + + dma_desc->address = virt_to_phys(src); + dma_desc->length = len; + dma_desc->status = status; + + /* flush cache */ + flush_dcache_range((ulong)dma_desc, + ALIGN_END_ADDR(struct bcm6348_dma_desc, dma_desc, 1)); + + /* kick tx dma channel */ + setbits_be32(priv->chan + DMAC_CFG_REG(dma->id), DMAC_CFG_ENABLE_MASK); + + /* poll dma status */ + do { + /* invalidate cache */ + invalidate_dcache_range((ulong)dma_desc, + ALIGN_END_ADDR(struct bcm6348_dma_desc, dma_desc, 1)); + + if (!(dma_desc->status & DMAD_ST_OWN_MASK)) + break; + } while(1); + + /* increment dma descriptor */ + ch_priv->desc_id = (ch_priv->desc_id + 1) % ch_priv->dma_ring_size; + + return 0; +} + +int bcm6348_iudma_prepare_rcv_buf(struct dma *dma, void *dst, size_t size) +{ + const struct bcm6348_iudma_priv *priv = dev_get_priv(dma->dev); + struct bcm6348_chan_priv *ch_priv = priv->ch_priv[dma->id]; + + /* init dma rings */ + while (ch_priv->dirty_cnt) { + struct bcm6348_dma_desc *dma_desc = ch_priv->dma_ring; + uint16_t status = DMAD_ST_OWN_MASK; + + /* get dirty dma descriptor */ + dma_desc += ch_priv->dirty_desc; + + /* reinit dirty dma descriptor */ + if (ch_priv->dirty_desc == ch_priv->dma_ring_size - 1) + status |= DMAD_ST_WRAP_MASK; + dma_desc->length = PKTSIZE_ALIGN; + dma_desc->status = status; + + /* flush cache */ + flush_dcache_range((ulong)dma_desc, + ALIGN_END_ADDR(struct bcm6348_dma_desc, dma_desc, 1)); + + /* tell dma engine we allocated one buffer */ + writel_be(1, DMA_FLOWC_ALLOC_REG(dma->id)); + + /* bump dirty dma descriptor */ + ch_priv->dirty_desc = (ch_priv->dirty_desc + 1) % + ch_priv->dma_ring_size; + + /* kick rx dma channel */ + ch_priv->dirty_cnt--; + if (!ch_priv->dirty_cnt) + setbits_be32(priv->chan + DMAC_CFG_REG(dma->id), + DMAC_CFG_ENABLE_MASK); + } + + return 0; +} + +static const struct dma_ops bcm6348_iudma_ops = { + .disable = bcm6348_iudma_disable, + .enable = bcm6348_iudma_enable, + .prepare_rcv_buf = bcm6348_iudma_prepare_rcv_buf, + .request = bcm6348_iudma_request, + .receive = bcm6348_iudma_receive, + .send = bcm6348_iudma_send, +}; + +static const struct bcm6348_iudma_hw bcm6348_hw = { + .err_mask = (DMAD6348_ST_OV_ERR_MASK | + DMAD6348_ST_CRC_ERR_MASK | + DMAD6348_ST_RX_ERR_MASK | + DMAD6348_ST_OS_ERR_MASK | + DMAD6348_ST_UN_ERR_MASK), +}; + +static const struct bcm6348_iudma_hw bcm6368_hw = { + .err_mask = 0, +}; + +static const struct udevice_id bcm6348_iudma_ids[] = { + { + .compatible = "brcm,bcm6348-iudma", + .data = (ulong)&bcm6348_hw, + }, { + .compatible = "brcm,bcm6368-iudma", + .data = (ulong)&bcm6368_hw, + }, { /* sentinel */ } +}; + +static int bcm6348_iudma_probe(struct udevice *dev) +{ + struct dma_dev_priv *uc_priv = dev_get_uclass_priv(dev); + struct bcm6348_iudma_priv *priv = dev_get_priv(dev); + const struct bcm6348_iudma_hw *hw = + (const struct bcm6348_iudma_hw *)dev_get_driver_data(dev); + fdt_addr_t addr; + uint8_t ch; + int i; + + uc_priv->supported = (DMA_SUPPORTS_DEV_TO_MEM | + DMA_SUPPORTS_MEM_TO_DEV); + priv->hw = hw; + + /* try to enable clocks */ + for (i = 0; ; i++) { + struct clk clk; + int ret; + + ret = clk_get_by_index(dev, i, &clk); + if (ret < 0) + break; + if (clk_enable(&clk)) + pr_err("failed to enable clock %d\n", i); + clk_free(&clk); + } + + /* try to perform resets */ + for (i = 0; ; i++) { + struct reset_ctl reset; + int ret; + + ret = reset_get_by_index(dev, i, &reset); + if (ret < 0) + break; + if (reset_deassert(&reset)) + pr_err("failed to deassert reset %d\n", i); + reset_free(&reset); + } + + /* dma global base address */ + addr = devfdt_get_addr_name(dev, "dma"); + if (addr == FDT_ADDR_T_NONE) + return -EINVAL; + priv->base = ioremap(addr, 0); + + /* dma channels base address */ + addr = devfdt_get_addr_name(dev, "dma-channels"); + if (addr == FDT_ADDR_T_NONE) + return -EINVAL; + priv->chan = ioremap(addr, 0); + + /* dma sram base address */ + addr = devfdt_get_addr_name(dev, "dma-sram"); + if (addr == FDT_ADDR_T_NONE) + return -EINVAL; + priv->sram = ioremap(addr, 0); + + /* disable dma controller */ + clrbits_be32(priv->base + DMA_CFG_REG, DMA_CFG_ENABLE_MASK); + + /* get number of channels */ + priv->n_channels = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev), + "dma-channels", 8); + if (priv->n_channels > DMA_CHAN_MAX) + return -EINVAL; + + /* alloc channel private data pointers */ + priv->ch_priv = calloc(priv->n_channels, + sizeof(struct bcm6348_chan_priv*)); + if (!priv->ch_priv) + return -ENOMEM; + + /* stop dma channels */ + for (ch = 0; ch < priv->n_channels; ch++) + bcm6348_iudma_chan_stop(priv, ch); + + /* enable dma controller */ + setbits_be32(priv->base + DMA_CFG_REG, DMA_CFG_ENABLE_MASK); + + return 0; +} + +U_BOOT_DRIVER(bcm6348_iudma) = { + .name = "bcm6348_iudma", + .id = UCLASS_DMA, + .of_match = bcm6348_iudma_ids, + .ops = &bcm6348_iudma_ops, + .priv_auto_alloc_size = sizeof(struct bcm6348_iudma_priv), + .probe = bcm6348_iudma_probe, +}; From patchwork Wed Nov 28 18:23:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004733 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="VtTCqyY2"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qBW4t4Pz9s0n for ; Thu, 29 Nov 2018 05:37:07 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 6D214C222FA; Wed, 28 Nov 2018 18:26:13 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 6FCBCC222F7; Wed, 28 Nov 2018 18:24:27 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id AF61BC222D8; Wed, 28 Nov 2018 18:23:58 +0000 (UTC) Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by lists.denx.de (Postfix) with ESMTPS id EAA05C222DE for ; Wed, 28 Nov 2018 18:23:54 +0000 (UTC) Received: by mail-wm1-f65.google.com with SMTP id g67so3561777wmd.2 for ; Wed, 28 Nov 2018 10:23:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LKh6Lh/FfiHYvVLNe35cDWK5Es2BVLMzdrFFslHX7X8=; b=VtTCqyY2lida4nPlsKyNa518RljpIAOKD/n4aqDG18ZQHjMIx8oH9buxlKif3dzJbG OBy6os+VNcM+yJhkjM9LxqQD5mgI5IeZugu8p356NsULMgRu5QqINFRoCMAJeyAt9j/g s4PhR/m9nLf1L1sDLEpqAFDyCvL7rwT7LMqWEcdSp8uRAO1AdImmeApVNAm+jsyrK8aE 5dIU4RsqwGcwhGBeSCIXrgwqHF9xrhXNJFi6qa1Q777PdB+xD7Rpy3R4fa+x2QAVRH3N Lz9wbUj/pccgwSYBy1NBgiIpiy9MK40I+tNRiZCLG3nD8ARK7bR+H6b+ttSg1fL3wXqx /Fuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=LKh6Lh/FfiHYvVLNe35cDWK5Es2BVLMzdrFFslHX7X8=; b=PCU7DL0twFpqYjZIbb2HraY5xuZplEhAHepov+87mAKgeSZtDO1Z3BKaZ/o8zUcfzI KR1iP/9QGbY9hw/ivfXejQ0YWNISRwqJc3Af8a0OO4KrzFhSiNn551nxoTP+fDQqwOua TTkn146Bc7IZGKK97ZRi5yCimBXpmG5iO1mv9bTEzfrDhgV91rFZ4HfkzJEtN/zDULtS RYELVeNiX5LpY05YXZOx8YzjUHGbNcapRl2qy+U7Ygd85YC1R/H2PZ2k/pvDGq9TfL1r Jekzapt/nXcVDNjojyotigf0gQsuc8C/acNOkFZihJRMD+WQH6DvCtGO4yDFssRWqaZW at7w== X-Gm-Message-State: AA+aEWbwAB9ZMmBq2hP0uves9RDxzoK3FXuLPLq4p26vuCLdTPZapLZy VyL/uif8UoLuXmUikALfuVBKqUJI X-Google-Smtp-Source: AFSGD/VM2yAjlXLzUiVefnXzFsD1PPEyQDkLVe1O2qgcDCyOXyp2er58UaqP4zsuJYVJ4Si7nvTKEA== X-Received: by 2002:a1c:cc19:: with SMTP id h25mr3712767wmb.80.1543429434256; Wed, 28 Nov 2018 10:23:54 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.23.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:23:53 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:23 +0100 Message-Id: <20181128182349.10330-3-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 02/28] bmips: bcm6338: add bcm6348-iudma support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: no changes v5: no changes v4: no changes v3: no changes v2: no changes arch/mips/dts/brcm,bcm6338.dtsi | 14 ++++++++++++++ include/dt-bindings/dma/bcm6338-dma.h | 15 +++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 include/dt-bindings/dma/bcm6338-dma.h diff --git a/arch/mips/dts/brcm,bcm6338.dtsi b/arch/mips/dts/brcm,bcm6338.dtsi index bbd58cf803..990355481c 100644 --- a/arch/mips/dts/brcm,bcm6338.dtsi +++ b/arch/mips/dts/brcm,bcm6338.dtsi @@ -4,6 +4,7 @@ */ #include +#include #include #include #include "skeleton.dtsi" @@ -130,5 +131,18 @@ reg = <0xfffe3100 0x38>; u-boot,dm-pre-reloc; }; + + iudma: dma-controller@fffe2400 { + compatible = "brcm,bcm6348-iudma"; + reg = <0xfffe2400 0x1c>, + <0xfffe2500 0x60>, + <0xfffe2600 0x60>; + reg-names = "dma", + "dma-channels", + "dma-sram"; + #dma-cells = <1>; + dma-channels = <6>; + resets = <&periph_rst BCM6338_RST_DMAMEM>; + }; }; }; diff --git a/include/dt-bindings/dma/bcm6338-dma.h b/include/dt-bindings/dma/bcm6338-dma.h new file mode 100644 index 0000000000..5dd66239b4 --- /dev/null +++ b/include/dt-bindings/dma/bcm6338-dma.h @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2018 Álvaro Fernández Rojas + * + * Derived from linux/drivers/net/ethernet/broadcom/bcm63xx_enet.c + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __DT_BINDINGS_DMA_BCM6338_H +#define __DT_BINDINGS_DMA_BCM6338_H + +#define BCM6338_DMA_ENET_RX 0 +#define BCM6338_DMA_ENET_TX 1 + +#endif /* __DT_BINDINGS_DMA_BCM6338_H */ From patchwork Wed Nov 28 18:23:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004719 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ZKfHMM7M"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434pzZ2lMYz9ryk for ; Thu, 29 Nov 2018 05:27:38 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 0E1FFC222F8; Wed, 28 Nov 2018 18:25:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 343DAC22302; Wed, 28 Nov 2018 18:24:15 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B251BC22302; Wed, 28 Nov 2018 18:24:00 +0000 (UTC) Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by lists.denx.de (Postfix) with ESMTPS id 18AC6C222F7 for ; Wed, 28 Nov 2018 18:23:56 +0000 (UTC) Received: by mail-wr1-f65.google.com with SMTP id v6so27307882wrr.12 for ; Wed, 28 Nov 2018 10:23:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=X2YTN1HJC8qQXn3Z76ay0DEueixGWQiESrbIOuSgEPg=; b=ZKfHMM7M9Af6wKtR6I/v9RWuKarcgLo1zz9FzvY3IBofpLMIP4SFzr5452cH2VAXmj S0t7inWjk8+GbzNrDJ5k8st2f8RyLB2qLzkw9jyaV+Q63ll+MXzR2e1D6e9zJ4SVUgo3 BH/GqujH0OQByMyy4WgtQz0JbO37QMupr+F51s4jKRETU2BkTjG6Xwn9quXfxpCFbICh 8EilZofXRe1ir6gEEPS9N0FQuwkawGHMXsyHyd40l0UGIAzFpzhKISFDoehp0t+BdeMn 7mnfNIhOXMarJ9ND6TxVTfHXUXzzWPLIFhGo9zVnMISjaI2wwxh5lqUAdavQaI3UMWHG 7JGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=X2YTN1HJC8qQXn3Z76ay0DEueixGWQiESrbIOuSgEPg=; b=fthnSCkTogBCj3ZUhTpJSp1LUwm8B94dGgHILlu0+XTAs7aoeAoslpmonjFMlI7h02 yElllb48JRea39g6w6ZMqGeZCc0Oz0gx8fAOd8AsEbXQwpwEz/R+006/xnYpmp/QEkQE dWT3+DubuSVC2X81WvlT752RJ3JpQh0aVPmDGCPx8HsUsC9oayW5eDWRHk9aACQWvahu upfe5HWrUCdKyHGc3xMblkirDLLVwcGyLjjXaEwlUhFqONNp9C0EI3ocL92+8fu0xXsP isBqbq9U72dkz3rGe22S+Ol6iOsVgGafywKgt5n2i3Qnmz5NoEhYbk/JEqBCIQvoAzVB ohmw== X-Gm-Message-State: AA+aEWZQ4Sf9L+pzwWQ7LQ6TWVP24G5+bKuceO4ZGFWMVF6MqUrOHh5A ywCoIbaQGFsPnc3xo3Xh4qoz+ae/ X-Google-Smtp-Source: AFSGD/Wz0lDwLzk0GUV/3pDp2YmA9T+iWjR2p9mydaze8iB9WCE3CC6eQBgX+scNIHe77dayPhaoQg== X-Received: by 2002:adf:e18d:: with SMTP id k13mr32878209wri.36.1543429435379; Wed, 28 Nov 2018 10:23:55 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.23.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:23:54 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:24 +0100 Message-Id: <20181128182349.10330-4-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 03/28] bmips: bcm6348: add bcm6348-iudma support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: no changes v5: no changes v4: no changes v3: no changes v2: no changes arch/mips/dts/brcm,bcm6348.dtsi | 16 ++++++++++++++++ include/dt-bindings/dma/bcm6348-dma.h | 17 +++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 include/dt-bindings/dma/bcm6348-dma.h diff --git a/arch/mips/dts/brcm,bcm6348.dtsi b/arch/mips/dts/brcm,bcm6348.dtsi index cc80bbc808..875de232ca 100644 --- a/arch/mips/dts/brcm,bcm6348.dtsi +++ b/arch/mips/dts/brcm,bcm6348.dtsi @@ -4,6 +4,7 @@ */ #include +#include #include #include #include "skeleton.dtsi" @@ -159,5 +160,20 @@ reg = <0xfffe2300 0x38>; u-boot,dm-pre-reloc; }; + + iudma: dma-controller@fffe7000 { + compatible = "brcm,bcm6348-iudma"; + reg = <0xfffe7000 0x1c>, + <0xfffe7100 0x40>, + <0xfffe7200 0x40>; + reg-names = "dma", + "dma-channels", + "dma-sram"; + #dma-cells = <1>; + dma-channels = <4>; + clocks = <&periph_clk BCM6348_CLK_ENET>; + resets = <&periph_rst BCM6348_RST_ENET>, + <&periph_rst BCM6348_RST_DMAMEM>; + }; }; }; diff --git a/include/dt-bindings/dma/bcm6348-dma.h b/include/dt-bindings/dma/bcm6348-dma.h new file mode 100644 index 0000000000..a1d3a6456d --- /dev/null +++ b/include/dt-bindings/dma/bcm6348-dma.h @@ -0,0 +1,17 @@ +/* + * Copyright (C) 2018 Álvaro Fernández Rojas + * + * Derived from linux/drivers/net/ethernet/broadcom/bcm63xx_enet.c + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __DT_BINDINGS_DMA_BCM6348_H +#define __DT_BINDINGS_DMA_BCM6348_H + +#define BCM6348_DMA_ENET0_RX 0 +#define BCM6348_DMA_ENET0_TX 1 +#define BCM6348_DMA_ENET1_RX 2 +#define BCM6348_DMA_ENET1_TX 3 + +#endif /* __DT_BINDINGS_DMA_BCM6348_H */ From patchwork Wed Nov 28 18:23:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004718 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="kUKh0bdR"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434pzB29hDz9ryk for ; Thu, 29 Nov 2018 05:27:13 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 628A7C222D8; Wed, 28 Nov 2018 18:25:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id B11B1C222E3; Wed, 28 Nov 2018 18:24:08 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 4AAA2C22303; Wed, 28 Nov 2018 18:24:01 +0000 (UTC) Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by lists.denx.de (Postfix) with ESMTPS id D6B6EC222F3 for ; Wed, 28 Nov 2018 18:23:56 +0000 (UTC) Received: by mail-wr1-f66.google.com with SMTP id c14so21681598wrr.0 for ; Wed, 28 Nov 2018 10:23:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aSdUPsL8fAoFjuNfCHN50l5a0TxIgP4nmymS7Vz+CEY=; b=kUKh0bdRIM22C5v2/C3+NHneJ6H/XeXJ3L+9Ok4C82n2N0GzsAHtVqzPGnCogLpqbB 12djuh2aCKECZ+LbBPH/8Fv4yj/kpauzS8wyAB2HESb8/6ahHafpkzCw6JIXVgKI5M+b bFFGiJXuqJIcPSXDdxg5B49FIV2+xZVTt/w0HOCTzNbPE/OhPRjdUYYd2MYyM07BEKV3 wSA+u/BtJWDLpHjkBhIpHYrLyf2QcWugZlH6AD6EB8nXPoQ4qobXJiysQ0IBjnkKl0tC zp27WmYzWbVI8bMuBT2Fcg0Kk8EmF3FxaqyTnyXx97mKzmWSHDB3yTRfkBF38EhN3wkk IDpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=aSdUPsL8fAoFjuNfCHN50l5a0TxIgP4nmymS7Vz+CEY=; b=E9tvouuXbSn+Le1CxJRYCnuvnc2piVyNUO8EkJaXCUBPpT/StFhdQeBnZAiGDP8T6r 1amMKEs4UGvX3PFch1BxUVdDvYSDLF04hn3b/U+AYLg0V9KLX3YkI7XX6VPYLSYSdya0 lr1c1NBCjLMIF/SNOCVWs+dXNup2MQQ4uhw9hk6cCqpHX8wTQiY90J1Im4wqwOpakBb7 r47yszBH3meYcAJwgggxIs35m0Hb6ajYt76JASi7qGSMnb3ImZdDN4BbKBJLUi9KJbfJ Zz09aCwbbfyYYSsVeUAemo93qSpfi54/Uog3LlYTVa9FkEMBR/vcyyIaiiA0yItTLcCh tC5Q== X-Gm-Message-State: AA+aEWZa4DVfGVCadK3XaYNSC6eO9nKQnnPDzYiu6O0Y4rsC+QMOJiip CF5gx4rbRykNM9Vw/4+5S3aBfmj7 X-Google-Smtp-Source: AFSGD/VSaVym94ygrWGO/lSb6CMyh0KEBdTu8B9ML5gh/dUyyL3zi6oQXYfIDehuyV+Tg6KW/d16rQ== X-Received: by 2002:a05:6000:1251:: with SMTP id j17mr31394159wrx.315.1543429436296; Wed, 28 Nov 2018 10:23:56 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.23.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:23:55 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:25 +0100 Message-Id: <20181128182349.10330-5-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 04/28] bmips: bcm6358: add bcm6348-iudma support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: no changes v5: no changes v4: no changes v3: no changes v2: no changes arch/mips/dts/brcm,bcm6358.dtsi | 18 ++++++++++++++++++ include/dt-bindings/dma/bcm6358-dma.h | 17 +++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 include/dt-bindings/dma/bcm6358-dma.h diff --git a/arch/mips/dts/brcm,bcm6358.dtsi b/arch/mips/dts/brcm,bcm6358.dtsi index 0617b46e92..5605723e83 100644 --- a/arch/mips/dts/brcm,bcm6358.dtsi +++ b/arch/mips/dts/brcm,bcm6358.dtsi @@ -4,6 +4,7 @@ */ #include +#include #include #include #include "skeleton.dtsi" @@ -190,5 +191,22 @@ status = "disabled"; }; + + iudma: dma-controller@fffe5000 { + compatible = "brcm,bcm6348-iudma"; + reg = <0xfffe5000 0x24>, + <0xfffe5100 0x80>, + <0xfffe5200 0x80>; + reg-names = "dma", + "dma-channels", + "dma-sram"; + #dma-cells = <1>; + dma-channels = <8>; + clocks = <&periph_clk BCM6358_CLK_EMUSB>, + <&periph_clk BCM6358_CLK_USBSU>, + <&periph_clk BCM6358_CLK_EPHY>; + resets = <&periph_rst BCM6358_RST_ENET>, + <&periph_rst BCM6358_RST_EPHY>; + }; }; }; diff --git a/include/dt-bindings/dma/bcm6358-dma.h b/include/dt-bindings/dma/bcm6358-dma.h new file mode 100644 index 0000000000..3b1fcf8540 --- /dev/null +++ b/include/dt-bindings/dma/bcm6358-dma.h @@ -0,0 +1,17 @@ +/* + * Copyright (C) 2018 Álvaro Fernández Rojas + * + * Derived from linux/drivers/net/ethernet/broadcom/bcm63xx_enet.c + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __DT_BINDINGS_DMA_BCM6358_H +#define __DT_BINDINGS_DMA_BCM6358_H + +#define BCM6358_DMA_ENET0_RX 0 +#define BCM6358_DMA_ENET0_TX 1 +#define BCM6358_DMA_ENET1_RX 2 +#define BCM6358_DMA_ENET1_TX 3 + +#endif /* __DT_BINDINGS_DMA_BCM6358_H */ From patchwork Wed Nov 28 18:23:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004722 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="bGnX1uwT"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434q2H5ndgz9ryk for ; Thu, 29 Nov 2018 05:29:59 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 8AFFDC222FA; Wed, 28 Nov 2018 18:25:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 51A63C2230D; Wed, 28 Nov 2018 18:24:19 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B0D87C22303; Wed, 28 Nov 2018 18:24:03 +0000 (UTC) Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by lists.denx.de (Postfix) with ESMTPS id BCF08C222FB for ; Wed, 28 Nov 2018 18:23:58 +0000 (UTC) Received: by mail-wm1-f65.google.com with SMTP id y185so4595778wmd.1 for ; Wed, 28 Nov 2018 10:23:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/zHbJ+QLGxnhNj5Jdi+W/P+9+tJmdbR7P+kSWdAXIvU=; b=bGnX1uwTPt+OacrshNPWhd0f7JLGQipsBgOiwAQBWo6t3BNj6KskxMRb3qz7a8BmsH 0hAAwRpQr0s1R37LAlaAbLZdWmlygP498JThvRKnSf7z+7FI8fWxRw+k9KhFGk5NyBuf bQLJa6/d+kDBVNyj1KIuBkDoseGpOsBXUxYMgqdxdxMzzGwW7mwN71y62ksHbS1gY9Ps fm3rsBglmkuTCHDQpQj/RrilXtHaPABXMywBFp9xUo5yRDAJ7Gocg2FUKqg9mSsWs/mx 5MkiG64VaRrU9rdCUWp6eSBuMdk3M43K8KeQ99g9Hcc4xvS+7ithUU2t7THpTJO/EOhC cLKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/zHbJ+QLGxnhNj5Jdi+W/P+9+tJmdbR7P+kSWdAXIvU=; b=q6zVIVfEPMtgwwYtg+uXg1IsscySb5xPkO92YhOykflZauIb6G3NeCu1aOX+GWSggc z6JmCKDf454ckuKH+nlxdkQPo0hdgok5DF+h/B1+7DGTQFpGuUPa2fw6G7KvPZZF5whg HBIy3QFLfgqOIIMbuHYKvsZq3E7smq9J3DFtDHeppgUEFuLjEK8nViJKfadym5VBSJzc 5MwIu3YO2xRBjVIxZ4ymGhAkzm+rsjOh/7wiKleFKzuipdZbhfCNAofK7jcRpLFs04aV e30nrniFawZe1KdBO252DAQ+LQ2sTVbiatRgVo1XcXxhalkehIBbIC1KYWgpd2ArnHZH zF9w== X-Gm-Message-State: AA+aEWY0Ha/5fQ4Hv/lc+sKxf5Sot0EK16FndZVViiGeVZKPG0ARlWOD v/vRMoGjF/vxc9YakL+eA//g9FQ/ X-Google-Smtp-Source: AFSGD/WBA4cnMAvj8H7Fi+0EWgChry5jPdeFWxS4RAIOFExbxbXtz5MzBugjOQuXLDK649k6WkvBqA== X-Received: by 2002:a1c:1b95:: with SMTP id b143mr3868604wmb.3.1543429438249; Wed, 28 Nov 2018 10:23:58 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.23.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:23:56 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:26 +0100 Message-Id: <20181128182349.10330-6-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 05/28] bmips: bcm6368: add bcm6348-iudma support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/brcm,bcm6368.dtsi | 13 +++++++++++++ include/dt-bindings/dma/bcm6368-dma.h | 15 +++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 include/dt-bindings/dma/bcm6368-dma.h diff --git a/arch/mips/dts/brcm,bcm6368.dtsi b/arch/mips/dts/brcm,bcm6368.dtsi index 65d769ab4f..30047f6360 100644 --- a/arch/mips/dts/brcm,bcm6368.dtsi +++ b/arch/mips/dts/brcm,bcm6368.dtsi @@ -4,6 +4,7 @@ */ #include +#include #include #include #include "skeleton.dtsi" @@ -192,5 +193,17 @@ status = "disabled"; }; + + iudma: dma-controller@10006800 { + compatible = "brcm,bcm6368-iudma"; + reg = <0x10006800 0x80>, + <0x10006a00 0x80>, + <0x10006c00 0x80>; + reg-names = "dma", + "dma-channels", + "dma-sram"; + #dma-cells = <1>; + dma-channels = <8>; + }; }; }; diff --git a/include/dt-bindings/dma/bcm6368-dma.h b/include/dt-bindings/dma/bcm6368-dma.h new file mode 100644 index 0000000000..45ffb89e0a --- /dev/null +++ b/include/dt-bindings/dma/bcm6368-dma.h @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2018 Álvaro Fernández Rojas + * + * Derived from linux/drivers/net/ethernet/broadcom/bcm63xx_enet.c + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __DT_BINDINGS_DMA_BCM6368_H +#define __DT_BINDINGS_DMA_BCM6368_H + +#define BCM6368_DMA_ENETSW_RX 0 +#define BCM6368_DMA_ENETSW_TX 1 + +#endif /* __DT_BINDINGS_DMA_BCM6368_H */ From patchwork Wed Nov 28 18:23:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004728 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="XrmZ+jk2"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434q7t695Yz9ryk for ; Thu, 29 Nov 2018 05:34:50 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 8CD64C2232E; Wed, 28 Nov 2018 18:25:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 58EF3C2230C; Wed, 28 Nov 2018 18:24:26 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 41E1FC22304; Wed, 28 Nov 2018 18:24:04 +0000 (UTC) Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by lists.denx.de (Postfix) with ESMTPS id D7B29C222E3 for ; Wed, 28 Nov 2018 18:23:59 +0000 (UTC) Received: by mail-wm1-f66.google.com with SMTP id l3so3018868wme.0 for ; Wed, 28 Nov 2018 10:23:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3tkP6BUwrhzIESfq99alfjA3Dmwn5d5fdHwFBD4dZk8=; b=XrmZ+jk2SM2yFMh2hd0OO5/abd1L77PW2BrPrwKnfBlkhX5V+nMSS1wTctNvjJVCsn 3F7xAjSjL9IaEDteNHJU+PIPMsMqF3CsZ9Br5i86AxPSvOA+JMCaotySDb/2BD3WqobT a/tPNwQtUbL7lso5tDqH6DUgmy5i0jGmOg0yCVsTvpn03r/fndS65uJdYr45b2UNJ6nA piXhJ8fg7cVc8oV3uQXYaFb/nE6lEonMJZHO1VbP8LvqCU9ge94dUzcl2YtWBdOLW/na wHU/riP4X5k/2gDASJYlAK/PvePYVzYACNgKkDjn8f5z3WfGnCCKdGg+kZaeh45XNJj+ urtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3tkP6BUwrhzIESfq99alfjA3Dmwn5d5fdHwFBD4dZk8=; b=obNRGvf8B1tZhtc1U/qmQOYgz8NRcPILlbyfj61s0P1Mz9csPo5pbeBX8vcCadZRAw WTd70rKfOetWWyxhwfp2L/OaZ9+s6TGIv+/b6mXAOLebB2ZD3NyJ8Pe4jdnVOke25wsM hypnIsb2MZ9A5zrBz0bMG4KGB+4HbfQFWv8C+S10s2bQnVkrPAfLYCS6KXAnJOUJxlgZ uG7+i2okwcYWrUQYw2XYS75+CDAVaN6b8gvDNn2Y8DWn4FshPhzLpZLuNDrAaw27mqDI 2OE9iWdItaErEmVAnDiFVZOu6Oca1gFZkV8eAmR+VgiYhEU1r6QwRiyFdRVIWl2DiY+s ddzQ== X-Gm-Message-State: AA+aEWa9b7aTA4k3W+Dr6qSDzZc/gJEYwAcshC5ESs4MDcKV0TB8jmkb sV8HS8WqNXXzv7a9+qmegibkfiR1 X-Google-Smtp-Source: AFSGD/WLZsVGU3VVPZ6T/qTFiht0yWw6FKHrL98SMe2EE/IlapTCI5Gcew6hqc7MP+1p2gQMbHfuRA== X-Received: by 2002:a1c:ee07:: with SMTP id m7mr3194258wmh.33.1543429439358; Wed, 28 Nov 2018 10:23:59 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.23.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:23:58 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:27 +0100 Message-Id: <20181128182349.10330-7-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 06/28] bmips: bcm6328: add bcm6348-iudma support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/brcm,bcm6328.dtsi | 13 +++++++++++++ include/dt-bindings/dma/bcm6328-dma.h | 15 +++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 include/dt-bindings/dma/bcm6328-dma.h diff --git a/arch/mips/dts/brcm,bcm6328.dtsi b/arch/mips/dts/brcm,bcm6328.dtsi index e00a2950e2..6fa49e22bb 100644 --- a/arch/mips/dts/brcm,bcm6328.dtsi +++ b/arch/mips/dts/brcm,bcm6328.dtsi @@ -4,6 +4,7 @@ */ #include +#include #include #include #include @@ -187,5 +188,17 @@ reg = <0x10003000 0x864>; u-boot,dm-pre-reloc; }; + + iudma: dma-controller@1000d800 { + compatible = "brcm,bcm6368-iudma"; + reg = <0x1000d800 0x80>, + <0x1000da00 0x80>, + <0x1000dc00 0x80>; + reg-names = "dma", + "dma-channels", + "dma-sram"; + #dma-cells = <1>; + dma-channels = <8>; + }; }; }; diff --git a/include/dt-bindings/dma/bcm6328-dma.h b/include/dt-bindings/dma/bcm6328-dma.h new file mode 100644 index 0000000000..508a5dc523 --- /dev/null +++ b/include/dt-bindings/dma/bcm6328-dma.h @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2018 Álvaro Fernández Rojas + * + * Derived from linux/drivers/net/ethernet/broadcom/bcm63xx_enet.c + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __DT_BINDINGS_DMA_BCM6328_H +#define __DT_BINDINGS_DMA_BCM6328_H + +#define BCM6328_DMA_ENETSW_RX 0 +#define BCM6328_DMA_ENETSW_TX 1 + +#endif /* __DT_BINDINGS_DMA_BCM6328_H */ From patchwork Wed Nov 28 18:23:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004747 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="jGWB1BzE"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qJq1dRvz9s0n for ; Thu, 29 Nov 2018 05:42:35 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id F2EEAC222DE; Wed, 28 Nov 2018 18:30:35 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id E4F09C2235B; Wed, 28 Nov 2018 18:25:36 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 494BBC222D4; Wed, 28 Nov 2018 18:24:05 +0000 (UTC) Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by lists.denx.de (Postfix) with ESMTPS id 0BA3BC222E8 for ; Wed, 28 Nov 2018 18:24:01 +0000 (UTC) Received: by mail-wm1-f67.google.com with SMTP id y185so4595829wmd.1 for ; Wed, 28 Nov 2018 10:24:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=thQpzRyMzod9p6XZZvElYnKpNXvwIakn8BFQB5C0pXI=; b=jGWB1BzEIp3ltBZNetdk1DvEUCkGHsa+LjA91cMQxgle2Dmaffyh94kOGL9Yh1pI2g fQtXbpQReqiV+aGez43YN0kBxBDOOUcmpOMhvpHlTNNSm+shT/UiZoCHnIxroJo8blqG pxPSaxd7voeT8wubFswiO0Uc07Wo969dpiSxYuuKkYBthAsrXF+xwMd+e9k76L54LaDn 3Tn/xNoi533JpCVrXyU2a3RWYWO389KbvO9Dpr3s0jj+nGbxzUlKmqvsJUI4n291R9qI voz6rOnAj4gDbQgvyWdTYfFClY/U01XNy/gcuZuY4vpGfJ+xPhQ6ShZPUHfw5eziA/BY h7qA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=thQpzRyMzod9p6XZZvElYnKpNXvwIakn8BFQB5C0pXI=; b=AoDlH3iNVInxODv03nwDnn4Y+GoLRZ0lPFTQBGQobHuJ7nQPBY2oYx3Ca6pP2bQ+dc 19FE0F5TW0B2l0/y4RZC3SPsgaFES4m6EBzPK5vhiYfjyWdAuK59giHfo/9nikjWecOQ NZzfCaMJbXOmb7R+VrLtp98oIJz0KiH/mZzvMYyx4OTs0Mp6pRcqANcg9yn2mGq0e+/r OQ37NvE3e9MKkhB3jhwgB7eNxIrUM7Jeau25L5NqIr3I9PcYM/JS+WlTDrur8KZNHXpv 36IlzhYew4C2FBHZAS/DyDoZyk15rhj4qDR9U4S4oKyiFYnj8IDbLyhLzKc336iYBJiy lyag== X-Gm-Message-State: AA+aEWaGILcDm70hW+LOH2BcJhrmuRBx09mHUylFKelNjhNpjCLAV5PY 2zRTrVN+7cP7QriQw6hAZ/Mnb1jW X-Google-Smtp-Source: AFSGD/XeBB0XvlcbZy6gz/F7/Dzcs/8B+smUwkNVD3q0ERhe6QpZa1bqhohV+FcdUXXTSruC+UlIuQ== X-Received: by 2002:a1c:110b:: with SMTP id 11mr3680995wmr.83.1543429440430; Wed, 28 Nov 2018 10:24:00 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.23.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:23:59 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:28 +0100 Message-Id: <20181128182349.10330-8-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 07/28] bmips: bcm6362: add bcm6348-iudma support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/brcm,bcm6362.dtsi | 13 +++++++++++++ include/dt-bindings/dma/bcm6362-dma.h | 15 +++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 include/dt-bindings/dma/bcm6362-dma.h diff --git a/arch/mips/dts/brcm,bcm6362.dtsi b/arch/mips/dts/brcm,bcm6362.dtsi index 3047b82b21..94e7de096d 100644 --- a/arch/mips/dts/brcm,bcm6362.dtsi +++ b/arch/mips/dts/brcm,bcm6362.dtsi @@ -4,6 +4,7 @@ */ #include +#include #include #include #include @@ -211,5 +212,17 @@ reg = <0x10003000 0x864>; u-boot,dm-pre-reloc; }; + + iudma: dma-controller@1000d800 { + compatible = "brcm,bcm6368-iudma"; + reg = <0x1000d800 0x80>, + <0x1000da00 0x80>, + <0x1000dc00 0x80>; + reg-names = "dma", + "dma-channels", + "dma-sram"; + #dma-cells = <1>; + dma-channels = <8>; + }; }; }; diff --git a/include/dt-bindings/dma/bcm6362-dma.h b/include/dt-bindings/dma/bcm6362-dma.h new file mode 100644 index 0000000000..b90b3ffeb6 --- /dev/null +++ b/include/dt-bindings/dma/bcm6362-dma.h @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2018 Álvaro Fernández Rojas + * + * Derived from linux/drivers/net/ethernet/broadcom/bcm63xx_enet.c + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __DT_BINDINGS_DMA_BCM6362_H +#define __DT_BINDINGS_DMA_BCM6362_H + +#define BCM6362_DMA_ENETSW_RX 0 +#define BCM6362_DMA_ENETSW_TX 1 + +#endif /* __DT_BINDINGS_DMA_BCM6362_H */ From patchwork Wed Nov 28 18:23:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004736 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="VZse4NnN"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qDb03V5z9ryk for ; Thu, 29 Nov 2018 05:38:54 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id A6653C222CF; Wed, 28 Nov 2018 18:30:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id EA142C2230B; Wed, 28 Nov 2018 18:25:37 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B0B73C22302; Wed, 28 Nov 2018 18:24:06 +0000 (UTC) Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by lists.denx.de (Postfix) with ESMTPS id 2135BC22303 for ; Wed, 28 Nov 2018 18:24:02 +0000 (UTC) Received: by mail-wm1-f66.google.com with SMTP id y1so3659048wmi.3 for ; Wed, 28 Nov 2018 10:24:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=VuLtM43sisWm5eyPkJgx5FmBchG9wjQH+mLBi0esROk=; b=VZse4NnNTf1AlfacJWYVFGyCvBgum1L4CGvYmhRuIilRNt6NzkP7lzi1UCM8rCxeVB i6BaIScAYCu02VsxmlRS+l60NUbU+Z1yNeY6XO6/UJ6yGp4cpaAxpmqvDQc0LYLkfONu YUEWgj9WWtGTJp0Q/SFstiveyJQK5im+BYiXhZi3I5TnJc9SJfslMlqGSWim01P21g2L 7kFmO7+35SeloWg2UN3hZ4XrFqHyz+BSt6Zc1tY7RLe6mdhNIZM2+KsDD0e11N5zktEt Ij6ljZjwdi8F9MrRvMR1Wd21LsklLNH0C/QljdyFdbz2i8tz9SpRj6ZATQ3H1z6FgWnD pglw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VuLtM43sisWm5eyPkJgx5FmBchG9wjQH+mLBi0esROk=; b=llFjI7zUS2EkWleG83IY0WH20isM6CgjYeXWxAoVOCDq3Tt8Nkpmr4Mjj5uhxvWtqw 7hqvb0MDA3raFPHsmAPpRUzcQFdUrvmv5kpzkpljtAkJnG3fRQJgqM8JlxHr83icDzax +cZgZkRzIDf2zEbJHUXsJg5Rzna1ul9DORvK1h25eptyheJ4IWayAqc+eGJhXEH2cInY IJ+Z/xdpg2ujJa01LjmQLgyco+yxGvbT131Pn9BE8Q17j6dKSGww/VWRvaDz+or7wUr6 4+Fm2jyxIwihUxB9WHlqUfZC+k5WPhiuVYOHVzXTa38dRKirIo4iq+9jgy+e8PSaMGZS IpOA== X-Gm-Message-State: AA+aEWZcut9unnmeQ4BjYa9RE7nSEVDdWhwFxWjMepb4D6weorpQmbmA 1Nd+247+96LllRU+oxu680tUoB2G X-Google-Smtp-Source: AFSGD/X7XqK7Af573esF8fYl8LKef6o6BJDbinxv++cEUmYdjvTA6Ki4jj3n8bnsqXwAbFc+pf6MNw== X-Received: by 2002:a1c:a08:: with SMTP id 8mr2284302wmk.81.1543429441499; Wed, 28 Nov 2018 10:24:01 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:00 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:29 +0100 Message-Id: <20181128182349.10330-9-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 08/28] bmips: bcm63268: add bcm6348-iudma support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/brcm,bcm63268.dtsi | 13 +++++++++++++ include/dt-bindings/dma/bcm63268-dma.h | 15 +++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 include/dt-bindings/dma/bcm63268-dma.h diff --git a/arch/mips/dts/brcm,bcm63268.dtsi b/arch/mips/dts/brcm,bcm63268.dtsi index 62c440e675..c7ad83c306 100644 --- a/arch/mips/dts/brcm,bcm63268.dtsi +++ b/arch/mips/dts/brcm,bcm63268.dtsi @@ -4,6 +4,7 @@ */ #include +#include #include #include #include @@ -217,5 +218,17 @@ reg = <0x10003000 0x894>; u-boot,dm-pre-reloc; }; + + iudma: dma-controller@1000d800 { + compatible = "brcm,bcm6368-iudma"; + reg = <0x1000d800 0x80>, + <0x1000da00 0x80>, + <0x1000dc00 0x80>; + reg-names = "dma", + "dma-channels", + "dma-sram"; + #dma-cells = <1>; + dma-channels = <8>; + }; }; }; diff --git a/include/dt-bindings/dma/bcm63268-dma.h b/include/dt-bindings/dma/bcm63268-dma.h new file mode 100644 index 0000000000..d5d7453be1 --- /dev/null +++ b/include/dt-bindings/dma/bcm63268-dma.h @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2018 Álvaro Fernández Rojas + * + * Derived from linux/drivers/net/ethernet/broadcom/bcm63xx_enet.c + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __DT_BINDINGS_DMA_BCM63268_H +#define __DT_BINDINGS_DMA_BCM63268_H + +#define BCM63268_DMA_ENETSW_RX 0 +#define BCM63268_DMA_ENETSW_TX 1 + +#endif /* __DT_BINDINGS_DMA_BCM63268_H */ From patchwork Wed Nov 28 18:23:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004724 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="flKD/i07"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434q4C6jjFz9ryk for ; Thu, 29 Nov 2018 05:31:39 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 96E1FC22303; Wed, 28 Nov 2018 18:28:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 9716CC22329; Wed, 28 Nov 2018 18:25:06 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B7219C2233A; Wed, 28 Nov 2018 18:24:07 +0000 (UTC) Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by lists.denx.de (Postfix) with ESMTPS id EA734C222E2 for ; Wed, 28 Nov 2018 18:24:02 +0000 (UTC) Received: by mail-wr1-f65.google.com with SMTP id v6so27308223wrr.12 for ; Wed, 28 Nov 2018 10:24:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1eilcWc+zeI0xzzO11WMAfWlAve1ndaOyHIECLWrg8Q=; b=flKD/i077IkauCtvZbEDjtMAvLR2YfzhKxPR0g40WcKVtTPe0DWJezM1ZAAuHszc/o /8IRS8eAt1gFUXIDHKRnRcelvpZL5XB7H0RKi1PM0kQlauq4hLqK4Svab8PPR6lM7yNU vPaJa6NtZa0HgFW3PvLTRU0tbOcWaQRt/kGbVCV8R0UigW14MB8uKOeKeh2tXWzr2GcR JswvCz+g5v4yzjbBOY3Xa5FfJGOIyONAo8b70ZSBD0dSwVlKHnEOWVcloZPDu2UpANa9 Wn1SJ8TlfmOWtqiGHX1nPI4IV9lP/QI+hownf2DARCMiIYnHLoqPh3vDWY+QufSOWMQp /rFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1eilcWc+zeI0xzzO11WMAfWlAve1ndaOyHIECLWrg8Q=; b=m32n0x7mh1LKDvN7Hx++A4tA/nxpoF8XKFUCbLvNWeVB1iuTg2NM9B0Sl4oBOqaVuZ KT8MnICkxP9DbWnsJGJqAvDfG2nvgJJ5bA8gykopSl2Nv7fTskZWcpUHLsZg4BCqZlIi ph2zKeehm+TohM/F9bFywWbDesb+zDyEfVQwSGt/EPuEuc6QPdR0yAzRxngun+B0DMKS sVw52rXn0iFEMGCI4wKlW7Ln3W8Y/u3ll0nv2/rbo0/xL8SZzLUm2lrmTTgmZzVvafHB 1eYIVpl9VyQW2yIHJAT5amocPfFqlVqkUlRvXz+Bc3gL9sRSfgxEYq2mjeXcb7P8vR7M R3Jg== X-Gm-Message-State: AA+aEWY/qvwPvsiXFUdq8PVmsSCRkyJa1HHTWHUm2Vx+WN8QhV9ti0e5 XhhCpjhgU0wq84ELMl/wowM5IoFp X-Google-Smtp-Source: AFSGD/Xd38tjBHnm94ScwYEk1wA+YJ121e2Osm9UpZOlMxTBHbPc12L2JSvCvZJ1gxhBcjGwQpzhxw== X-Received: by 2002:a5d:6187:: with SMTP id j7mr32431944wru.300.1543429442461; Wed, 28 Nov 2018 10:24:02 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:01 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:30 +0100 Message-Id: <20181128182349.10330-10-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 09/28] bmips: bcm6318: add bcm6348-iudma support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/brcm,bcm6318.dtsi | 19 +++++++++++++++++++ include/dt-bindings/dma/bcm6318-dma.h | 15 +++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 include/dt-bindings/dma/bcm6318-dma.h diff --git a/arch/mips/dts/brcm,bcm6318.dtsi b/arch/mips/dts/brcm,bcm6318.dtsi index f75988be12..d04b7cbb01 100644 --- a/arch/mips/dts/brcm,bcm6318.dtsi +++ b/arch/mips/dts/brcm,bcm6318.dtsi @@ -4,6 +4,7 @@ */ #include +#include #include #include #include @@ -54,6 +55,12 @@ reg = <0x10000004 0x4>; #clock-cells = <1>; }; + + ubus_clk: ubus-clk { + compatible = "brcm,bcm6345-clk"; + reg = <0x10000008 0x4>; + #clock-cells = <1>; + }; }; ubus { @@ -182,5 +189,17 @@ status = "disabled"; }; + + iudma: dma-controller@10088000 { + compatible = "brcm,bcm6368-iudma"; + reg = <0x10088000 0x80>, + <0x10088200 0x80>, + <0x10088400 0x80>; + reg-names = "dma", + "dma-channels", + "dma-sram"; + #dma-cells = <1>; + dma-channels = <8>; + }; }; }; diff --git a/include/dt-bindings/dma/bcm6318-dma.h b/include/dt-bindings/dma/bcm6318-dma.h new file mode 100644 index 0000000000..c039391395 --- /dev/null +++ b/include/dt-bindings/dma/bcm6318-dma.h @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2018 Álvaro Fernández Rojas + * + * Derived from linux/drivers/net/ethernet/broadcom/bcm63xx_enet.c + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __DT_BINDINGS_DMA_BCM6318_H +#define __DT_BINDINGS_DMA_BCM6318_H + +#define BCM6318_DMA_ENETSW_RX 0 +#define BCM6318_DMA_ENETSW_TX 1 + +#endif /* __DT_BINDINGS_DMA_BCM6318_H */ From patchwork Wed Nov 28 18:23:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004720 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="QhDXynUq"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434q0D1w9wz9s0n for ; Thu, 29 Nov 2018 05:28:12 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id E10E7C22326; Wed, 28 Nov 2018 18:26:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 1FB3EC2232C; Wed, 28 Nov 2018 18:24:46 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id A412BC222D8; Wed, 28 Nov 2018 18:24:08 +0000 (UTC) Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by lists.denx.de (Postfix) with ESMTPS id 66A64C222D0 for ; Wed, 28 Nov 2018 18:24:04 +0000 (UTC) Received: by mail-wr1-f65.google.com with SMTP id c14so21681956wrr.0 for ; Wed, 28 Nov 2018 10:24:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5jzK/o1rj1DGl3jLj5UGawfBCB4EaxfgbXT8+bzWF3M=; b=QhDXynUqiq0Tk5Z6l/h5/06uQwYJEeN4hGNdf3azcRkKjfg89y1Sx0NFWTk2nBe3dY 5r7iqKXkY4EJ7Rch+WKx17BInzcG6BZ1HOuXVG7OG7BUzeYgsIMt6GF91u268zHdFaKo 5eeY7Vlv8DiTApkQlh7Qq/Bp9L0cFmIiOhlThY3A2Xwwi+U2KsFIKHrTHfJalShT+Tqe gZ3v+nCTaIxY9rVlAwHOTM7ZSDCjm1xQWVzf7MmcArRZQHbOnOekurl40a9IJLxWNNXP twX+W538dtFG0s2XXrN5zEvfveuxd6Qqs052Z4/hqzbX5pEt6KVWfdbY8OgUYhHa2O80 inag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5jzK/o1rj1DGl3jLj5UGawfBCB4EaxfgbXT8+bzWF3M=; b=bv+OBLaTTbrrXqHTbW+oL2UZgPIR/flIbXGDfIyLP/tWW4hAn7Kie07xIRGF9slWDy IeiyESD+0tnxQujNFaqmljxgNjGJSAaN1tgaVQVXPc/ENNlxofKRqowvZOSfIWNqwI9T /NpnBDUzd7+N8q818LAqYni4QadWjFcA0RhePs1QtPp/42TBnqqWLZpPS3mn2UJSU7RN hDCnBCgXHkHPKRgjFoX8/fe4YnFZyq+XTrHNv39JnoSNFYI4lENa+357gzMJaKvhXU5G 2LY7J+uQT98YCffjt+cf6YWqA17Opk8IC5LV6v67/Isr3OdjznTMZJSgZX9lnBLZv1Yr vaoA== X-Gm-Message-State: AA+aEWZkg3D7hoRoSq88BMMsoz6UoQVOVUMT213wIHo8RqkRllHuJHET 1K5HVTak6NF6Eh+8dRat/uMqrkdi X-Google-Smtp-Source: AFSGD/XIceogqYXbPIC62GCC4AY67H4uPB3sqxwiwL1CpTNMJ4feVJB1pqokJF5TNw9Jmp+5SI/jhw== X-Received: by 2002:adf:9323:: with SMTP id 32mr30808099wro.213.1543429443522; Wed, 28 Nov 2018 10:24:03 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:02 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:31 +0100 Message-Id: <20181128182349.10330-11-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 10/28] net: add support for bcm6348-enet X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: use dma_prepare_rcv_buf and remove dma rx channel reset: - bcm6348_eth_recv: clear dirty dma descriptors only when packets are copied from rx dma. - bcm6348_eth_send: remove dma rx channel reset when sending packet. v8: Introduce changes from Grygorii Strashko v5: Receive as much packets as possible from bcm6348-eth and cache them in net_rx_packets. This is needed in order to fix flow control issues. v4: Fix issues reported by Grygorii Strashko and other fixes: - Copy received dma buffer to net_rx_packets in order to avoid possible dma overwrites. - Reset dma rx channel when sending a new packet to prevent flow control issues. - Fix packet casting on bcm6348_eth_recv/send. v3: no changes v2: select DMA_CHANNELS. drivers/net/Kconfig | 10 + drivers/net/Makefile | 1 + drivers/net/bcm6348-eth.c | 576 +++++++++++++++++++++++++++++++++++++++++ include/configs/bmips_common.h | 5 +- 4 files changed, 591 insertions(+), 1 deletion(-) create mode 100644 drivers/net/bcm6348-eth.c diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 8fb365fc5d..2b7cec8804 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -72,6 +72,16 @@ config BCM_SF2_ETH_GMAC by the BCM_SF2_ETH driver. Say Y to any bcmcygnus based platforms. +config BCM6348_ETH + bool "BCM6348 EMAC support" + depends on DM_ETH && ARCH_BMIPS + select DMA + select DMA_CHANNELS + select MII + select PHYLIB + help + This driver supports the BCM6348 Ethernet MAC. + config DWC_ETH_QOS bool "Synopsys DWC Ethernet QOS device support" depends on DM_ETH diff --git a/drivers/net/Makefile b/drivers/net/Makefile index 99056aa041..2647d4dd23 100644 --- a/drivers/net/Makefile +++ b/drivers/net/Makefile @@ -6,6 +6,7 @@ obj-$(CONFIG_ALTERA_TSE) += altera_tse.o obj-$(CONFIG_AG7XXX) += ag7xxx.o obj-$(CONFIG_ARMADA100_FEC) += armada100_fec.o +obj-$(CONFIG_BCM6348_ETH) += bcm6348-eth.o obj-$(CONFIG_DRIVER_AT91EMAC) += at91_emac.o obj-$(CONFIG_DRIVER_AX88180) += ax88180.o obj-$(CONFIG_BCM_SF2_ETH) += bcm-sf2-eth.o diff --git a/drivers/net/bcm6348-eth.c b/drivers/net/bcm6348-eth.c new file mode 100644 index 0000000000..24a44d83cb --- /dev/null +++ b/drivers/net/bcm6348-eth.c @@ -0,0 +1,576 @@ +/* + * Copyright (C) 2018 Álvaro Fernández Rojas + * + * Derived from linux/drivers/net/ethernet/broadcom/bcm63xx_enet.c: + * Copyright (C) 2008 Maxime Bizon + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define ETH_RX_DESC PKTBUFSRX +#define ETH_MAX_MTU_SIZE 1518 +#define ETH_TIMEOUT 100 +#define ETH_TX_WATERMARK 32 + +/* ETH Receiver Configuration register */ +#define ETH_RXCFG_REG 0x00 +#define ETH_RXCFG_ENFLOW_SHIFT 5 +#define ETH_RXCFG_ENFLOW_MASK (1 << ETH_RXCFG_ENFLOW_SHIFT) + +/* ETH Receive Maximum Length register */ +#define ETH_RXMAXLEN_REG 0x04 +#define ETH_RXMAXLEN_SHIFT 0 +#define ETH_RXMAXLEN_MASK (0x7ff << ETH_RXMAXLEN_SHIFT) + +/* ETH Transmit Maximum Length register */ +#define ETH_TXMAXLEN_REG 0x08 +#define ETH_TXMAXLEN_SHIFT 0 +#define ETH_TXMAXLEN_MASK (0x7ff << ETH_TXMAXLEN_SHIFT) + +/* MII Status/Control register */ +#define MII_SC_REG 0x10 +#define MII_SC_MDCFREQDIV_SHIFT 0 +#define MII_SC_MDCFREQDIV_MASK (0x7f << MII_SC_MDCFREQDIV_SHIFT) +#define MII_SC_PREAMBLE_EN_SHIFT 7 +#define MII_SC_PREAMBLE_EN_MASK (1 << MII_SC_PREAMBLE_EN_SHIFT) + +/* MII Data register */ +#define MII_DAT_REG 0x14 +#define MII_DAT_DATA_SHIFT 0 +#define MII_DAT_DATA_MASK (0xffff << MII_DAT_DATA_SHIFT) +#define MII_DAT_TA_SHIFT 16 +#define MII_DAT_TA_MASK (0x3 << MII_DAT_TA_SHIFT) +#define MII_DAT_REG_SHIFT 18 +#define MII_DAT_REG_MASK (0x1f << MII_DAT_REG_SHIFT) +#define MII_DAT_PHY_SHIFT 23 +#define MII_DAT_PHY_MASK (0x1f << MII_DAT_PHY_SHIFT) +#define MII_DAT_OP_SHIFT 28 +#define MII_DAT_OP_WRITE (0x5 << MII_DAT_OP_SHIFT) +#define MII_DAT_OP_READ (0x6 << MII_DAT_OP_SHIFT) + +/* ETH Interrupts Mask register */ +#define ETH_IRMASK_REG 0x18 + +/* ETH Interrupts register */ +#define ETH_IR_REG 0x1c +#define ETH_IR_MII_SHIFT 0 +#define ETH_IR_MII_MASK (1 << ETH_IR_MII_SHIFT) + +/* ETH Control register */ +#define ETH_CTL_REG 0x2c +#define ETH_CTL_ENABLE_SHIFT 0 +#define ETH_CTL_ENABLE_MASK (1 << ETH_CTL_ENABLE_SHIFT) +#define ETH_CTL_DISABLE_SHIFT 1 +#define ETH_CTL_DISABLE_MASK (1 << ETH_CTL_DISABLE_SHIFT) +#define ETH_CTL_RESET_SHIFT 2 +#define ETH_CTL_RESET_MASK (1 << ETH_CTL_RESET_SHIFT) +#define ETH_CTL_EPHY_SHIFT 3 +#define ETH_CTL_EPHY_MASK (1 << ETH_CTL_EPHY_SHIFT) + +/* ETH Transmit Control register */ +#define ETH_TXCTL_REG 0x30 +#define ETH_TXCTL_FD_SHIFT 0 +#define ETH_TXCTL_FD_MASK (1 << ETH_TXCTL_FD_SHIFT) + +/* ETH Transmit Watermask register */ +#define ETH_TXWMARK_REG 0x34 +#define ETH_TXWMARK_WM_SHIFT 0 +#define ETH_TXWMARK_WM_MASK (0x3f << ETH_TXWMARK_WM_SHIFT) + +/* MIB Control register */ +#define MIB_CTL_REG 0x38 +#define MIB_CTL_RDCLEAR_SHIFT 0 +#define MIB_CTL_RDCLEAR_MASK (1 << MIB_CTL_RDCLEAR_SHIFT) + +/* ETH Perfect Match registers */ +#define ETH_PM_CNT 4 +#define ETH_PML_REG(x) (0x58 + (x) * 0x8) +#define ETH_PMH_REG(x) (0x5c + (x) * 0x8) +#define ETH_PMH_VALID_SHIFT 16 +#define ETH_PMH_VALID_MASK (1 << ETH_PMH_VALID_SHIFT) + +/* MIB Counters registers */ +#define MIB_REG_CNT 55 +#define MIB_REG(x) (0x200 + (x) * 4) + +/* ETH data */ +struct bcm6348_eth_priv { + void __iomem *base; + /* RX */ + uint8_t rx_desc; + uint8_t rx_pend; + int rx_ret[ETH_RX_DESC]; + /* DMA */ + struct dma rx_dma; + struct dma tx_dma; + /* PHY */ + int phy_id; + struct phy_device *phy_dev; +}; + +DECLARE_GLOBAL_DATA_PTR; + +static void bcm6348_eth_mac_disable(struct bcm6348_eth_priv *priv) +{ + /* disable emac */ + clrsetbits_be32(priv->base + ETH_CTL_REG, ETH_CTL_ENABLE_MASK, + ETH_CTL_DISABLE_MASK); + + /* wait until emac is disabled */ + if (wait_for_bit_be32(priv->base + ETH_CTL_REG, + ETH_CTL_DISABLE_MASK, false, + ETH_TIMEOUT, false)) + pr_err("error disabling emac\n"); +} + +static void bcm6348_eth_mac_enable(struct bcm6348_eth_priv *priv) +{ + setbits_be32(priv->base + ETH_CTL_REG, ETH_CTL_ENABLE_MASK); +} + +static void bcm6348_eth_mac_reset(struct bcm6348_eth_priv *priv) +{ + /* reset emac */ + writel_be(ETH_CTL_RESET_MASK, priv->base + ETH_CTL_REG); + wmb(); + + /* wait until emac is reset */ + if (wait_for_bit_be32(priv->base + ETH_CTL_REG, + ETH_CTL_RESET_MASK, false, + ETH_TIMEOUT, false)) + pr_err("error resetting emac\n"); +} + +static int bcm6348_eth_free_pkt(struct udevice *dev, uchar *packet, int len) +{ + struct bcm6348_eth_priv *priv = dev_get_priv(dev); + + /* sanity check */ + if (packet != net_rx_packets[priv->rx_pend]) { + pr_err("rx_pend %d: packet is not matched,\n", priv->rx_pend); + return -EAGAIN; + } + + /* free pending packet */ + priv->rx_ret[priv->rx_pend] = 0; + priv->rx_pend = (priv->rx_pend + 1) % ETH_RX_DESC; + + return 0; +} + +static int _bcm6348_eth_recv(struct bcm6348_eth_priv *priv) +{ + uint8_t pkt = priv->rx_desc; + + /* check if packet is free */ + if (priv->rx_ret[pkt] > 0) + return -EAGAIN; + + /* try to receive a new packet */ + priv->rx_ret[pkt] = dma_receive(&priv->rx_dma, + (void **)&net_rx_packets[pkt], + NULL); + if (priv->rx_ret[pkt] > 0) + priv->rx_desc = (priv->rx_desc + 1) % ETH_RX_DESC; + + return priv->rx_ret[pkt]; +} + +static int bcm6348_eth_recv(struct udevice *dev, int flags, uchar **packetp) +{ + struct bcm6348_eth_priv *priv = dev_get_priv(dev); + + /* receive packets if queue is empty */ + if (priv->rx_ret[priv->rx_pend] <= 0) { + uint8_t pkt_cnt = 0; + + /* try to receive packets */ + while (_bcm6348_eth_recv(priv) > 0) + pkt_cnt++; + + dma_prepare_rcv_buf(&priv->rx_dma, NULL, 0); + + if (pkt_cnt) + debug("%s: received %u packet(s)\n", __func__, pkt_cnt); + } + + /* return current packet */ + if (priv->rx_ret[priv->rx_pend] > 0) + *packetp = net_rx_packets[priv->rx_pend]; + + return priv->rx_ret[priv->rx_pend]; +} + +static int bcm6348_eth_send(struct udevice *dev, void *packet, int length) +{ + struct bcm6348_eth_priv *priv = dev_get_priv(dev); + + return dma_send(&priv->tx_dma, packet, length, NULL); +} + +static int bcm6348_eth_adjust_link(struct udevice *dev, + struct phy_device *phydev) +{ + struct bcm6348_eth_priv *priv = dev_get_priv(dev); + + /* mac duplex parameters */ + if (phydev->duplex) + setbits_be32(priv->base + ETH_TXCTL_REG, ETH_TXCTL_FD_MASK); + else + clrbits_be32(priv->base + ETH_TXCTL_REG, ETH_TXCTL_FD_MASK); + + /* rx flow control (pause frame handling) */ + if (phydev->pause) + setbits_be32(priv->base + ETH_RXCFG_REG, + ETH_RXCFG_ENFLOW_MASK); + else + clrbits_be32(priv->base + ETH_RXCFG_REG, + ETH_RXCFG_ENFLOW_MASK); + + return 0; +} + +static int bcm6348_eth_start(struct udevice *dev) +{ + struct bcm6348_eth_priv *priv = dev_get_priv(dev); + int ret, i; + + priv->rx_desc = 0; + priv->rx_pend = 0; + for (i = 0; i < ETH_RX_DESC; i++) + priv->rx_ret[i] = 0; + + /* enable dma rx channel */ + dma_enable(&priv->rx_dma); + + /* enable dma tx channel */ + dma_enable(&priv->tx_dma); + + ret = phy_startup(priv->phy_dev); + if (ret) { + pr_err("could not initialize phy\n"); + return ret; + } + + if (!priv->phy_dev->link) { + pr_err("no phy link\n"); + return -EIO; + } + + bcm6348_eth_adjust_link(dev, priv->phy_dev); + + /* zero mib counters */ + for (i = 0; i < MIB_REG_CNT; i++) + writel_be(0, MIB_REG(i)); + + /* enable rx flow control */ + setbits_be32(priv->base + ETH_RXCFG_REG, ETH_RXCFG_ENFLOW_MASK); + + /* set max rx/tx length */ + writel_be((ETH_MAX_MTU_SIZE << ETH_RXMAXLEN_SHIFT) & + ETH_RXMAXLEN_MASK, priv->base + ETH_RXMAXLEN_REG); + writel_be((ETH_MAX_MTU_SIZE << ETH_TXMAXLEN_SHIFT) & + ETH_TXMAXLEN_MASK, priv->base + ETH_TXMAXLEN_REG); + + /* set correct transmit fifo watermark */ + writel_be((ETH_TX_WATERMARK << ETH_TXWMARK_WM_SHIFT) & + ETH_TXWMARK_WM_MASK, priv->base + ETH_TXWMARK_REG); + + /* enable emac */ + bcm6348_eth_mac_enable(priv); + + /* clear interrupts */ + writel_be(0, priv->base + ETH_IRMASK_REG); + + return 0; +} + +static void bcm6348_eth_stop(struct udevice *dev) +{ + struct bcm6348_eth_priv *priv = dev_get_priv(dev); + + /* disable dma rx channel */ + dma_disable(&priv->rx_dma); + + /* disable dma tx channel */ + dma_disable(&priv->tx_dma); + + /* disable emac */ + bcm6348_eth_mac_disable(priv); +} + +static int bcm6348_eth_write_hwaddr(struct udevice *dev) +{ + struct eth_pdata *pdata = dev_get_platdata(dev); + struct bcm6348_eth_priv *priv = dev_get_priv(dev); + bool running = false; + + /* check if emac is running */ + if (readl_be(priv->base + ETH_CTL_REG) & ETH_CTL_ENABLE_MASK) + running = true; + + /* disable emac */ + if (running) + bcm6348_eth_mac_disable(priv); + + /* set mac address */ + writel_be((pdata->enetaddr[2] << 24) | (pdata->enetaddr[3]) << 16 | + (pdata->enetaddr[4]) << 8 | (pdata->enetaddr[5]), + priv->base + ETH_PML_REG(0)); + writel_be((pdata->enetaddr[1]) | (pdata->enetaddr[0] << 8) | + ETH_PMH_VALID_MASK, priv->base + ETH_PMH_REG(0)); + + /* enable emac */ + if (running) + bcm6348_eth_mac_enable(priv); + + return 0; +} + +static const struct eth_ops bcm6348_eth_ops = { + .free_pkt = bcm6348_eth_free_pkt, + .recv = bcm6348_eth_recv, + .send = bcm6348_eth_send, + .start = bcm6348_eth_start, + .stop = bcm6348_eth_stop, + .write_hwaddr = bcm6348_eth_write_hwaddr, +}; + +static const struct udevice_id bcm6348_eth_ids[] = { + { .compatible = "brcm,bcm6348-enet", }, + { /* sentinel */ } +}; + +static int bcm6348_mdio_op(void __iomem *base, uint32_t data) +{ + /* make sure mii interrupt status is cleared */ + writel_be(ETH_IR_MII_MASK, base + ETH_IR_REG); + + /* issue mii op */ + writel_be(data, base + MII_DAT_REG); + + /* wait until emac is disabled */ + return wait_for_bit_be32(base + ETH_IR_REG, + ETH_IR_MII_MASK, true, + ETH_TIMEOUT, false); +} + +static int bcm6348_mdio_read(struct mii_dev *bus, int addr, int devaddr, + int reg) +{ + void __iomem *base = bus->priv; + uint32_t val; + + val = MII_DAT_OP_READ; + val |= (reg << MII_DAT_REG_SHIFT) & MII_DAT_REG_MASK; + val |= (0x2 << MII_DAT_TA_SHIFT) & MII_DAT_TA_MASK; + val |= (addr << MII_DAT_PHY_SHIFT) & MII_DAT_PHY_MASK; + + if (bcm6348_mdio_op(base, val)) { + pr_err("%s: timeout\n", __func__); + return -EINVAL; + } + + val = readl_be(base + MII_DAT_REG) & MII_DAT_DATA_MASK; + val >>= MII_DAT_DATA_SHIFT; + + return val; +} + +static int bcm6348_mdio_write(struct mii_dev *bus, int addr, int dev_addr, + int reg, u16 value) +{ + void __iomem *base = bus->priv; + uint32_t val; + + val = MII_DAT_OP_WRITE; + val |= (reg << MII_DAT_REG_SHIFT) & MII_DAT_REG_MASK; + val |= (0x2 << MII_DAT_TA_SHIFT) & MII_DAT_TA_MASK; + val |= (addr << MII_DAT_PHY_SHIFT) & MII_DAT_PHY_MASK; + val |= (value << MII_DAT_DATA_SHIFT) & MII_DAT_DATA_MASK; + + if (bcm6348_mdio_op(base, val)) { + pr_err("%s: timeout\n", __func__); + return -EINVAL; + } + + return 0; +} + +static int bcm6348_mdio_init(const char *name, void __iomem *base) +{ + struct mii_dev *bus; + + bus = mdio_alloc(); + if (!bus) { + pr_err("%s: failed to allocate MDIO bus\n", __func__); + return -ENOMEM; + } + + bus->read = bcm6348_mdio_read; + bus->write = bcm6348_mdio_write; + bus->priv = base; + snprintf(bus->name, sizeof(bus->name), "%s", name); + + return mdio_register(bus); +} + +static int bcm6348_phy_init(struct udevice *dev) +{ + struct eth_pdata *pdata = dev_get_platdata(dev); + struct bcm6348_eth_priv *priv = dev_get_priv(dev); + struct mii_dev *bus; + + /* get mii bus */ + bus = miiphy_get_dev_by_name(dev->name); + + /* phy connect */ + priv->phy_dev = phy_connect(bus, priv->phy_id, dev, + pdata->phy_interface); + if (!priv->phy_dev) { + pr_err("%s: no phy device\n", __func__); + return -ENODEV; + } + + priv->phy_dev->supported = (SUPPORTED_10baseT_Half | + SUPPORTED_10baseT_Full | + SUPPORTED_100baseT_Half | + SUPPORTED_100baseT_Full | + SUPPORTED_Autoneg | + SUPPORTED_Pause | + SUPPORTED_MII); + priv->phy_dev->advertising = priv->phy_dev->supported; + + /* phy config */ + phy_config(priv->phy_dev); + + return 0; +} + +static int bcm6348_eth_probe(struct udevice *dev) +{ + struct eth_pdata *pdata = dev_get_platdata(dev); + struct bcm6348_eth_priv *priv = dev_get_priv(dev); + void *blob = (void *)gd->fdt_blob; + int node = dev_of_offset(dev); + const char *phy_mode; + fdt_addr_t addr; + int phy_node, ret, i; + + /* get base address */ + addr = devfdt_get_addr(dev); + if (addr == FDT_ADDR_T_NONE) + return -EINVAL; + + /* get phy mode */ + pdata->phy_interface = PHY_INTERFACE_MODE_NONE; + phy_mode = fdt_getprop(blob, node, "phy-mode", NULL); + if (phy_mode) + pdata->phy_interface = phy_get_interface_by_name(phy_mode); + if (pdata->phy_interface == PHY_INTERFACE_MODE_NONE) + return -ENODEV; + + /* get phy */ + phy_node = fdtdec_lookup_phandle(blob, node, "phy"); + if (phy_node >= 0) + priv->phy_id = fdtdec_get_int(blob, phy_node, "reg", -1); + else + return -EINVAL; + + /* get dma channels */ + ret = dma_get_by_name(dev, "tx", &priv->tx_dma); + if (ret) + return -EINVAL; + + ret = dma_get_by_name(dev, "rx", &priv->rx_dma); + if (ret) + return -EINVAL; + + /* try to enable clocks */ + for (i = 0; ; i++) { + struct clk clk; + int ret; + + ret = clk_get_by_index(dev, i, &clk); + if (ret < 0) + break; + if (clk_enable(&clk)) + pr_err("failed to enable clock %d\n", i); + clk_free(&clk); + } + + /* try to perform resets */ + for (i = 0; ; i++) { + struct reset_ctl reset; + int ret; + + ret = reset_get_by_index(dev, i, &reset); + if (ret < 0) + break; + if (reset_deassert(&reset)) + pr_err("failed to deassert reset %d\n", i); + reset_free(&reset); + } + + /* get base addr */ + priv->base = ioremap(addr, 0); + pdata->iobase = (phys_addr_t) priv->base; + + /* disable emac */ + bcm6348_eth_mac_disable(priv); + + /* reset emac */ + bcm6348_eth_mac_reset(priv); + + /* select correct mii interface */ + if (pdata->phy_interface == PHY_INTERFACE_MODE_INTERNAL) + clrbits_be32(priv->base + ETH_CTL_REG, ETH_CTL_EPHY_MASK); + else + setbits_be32(priv->base + ETH_CTL_REG, ETH_CTL_EPHY_MASK); + + /* turn on mdc clock */ + writel_be((0x1f << MII_SC_MDCFREQDIV_SHIFT) | + MII_SC_PREAMBLE_EN_MASK, priv->base + MII_SC_REG); + + /* set mib counters to not clear when read */ + clrbits_be32(priv->base + MIB_CTL_REG, MIB_CTL_RDCLEAR_MASK); + + /* initialize perfect match registers */ + for (i = 0; i < ETH_PM_CNT; i++) { + writel_be(0, priv->base + ETH_PML_REG(i)); + writel_be(0, priv->base + ETH_PMH_REG(i)); + } + + /* init mii bus */ + ret = bcm6348_mdio_init(dev->name, priv->base); + if (ret) + return ret; + + /* init phy */ + ret = bcm6348_phy_init(dev); + if (ret) + return ret; + + return 0; +} + +U_BOOT_DRIVER(bcm6348_eth) = { + .name = "bcm6348_eth", + .id = UCLASS_ETH, + .of_match = bcm6348_eth_ids, + .ops = &bcm6348_eth_ops, + .platdata_auto_alloc_size = sizeof(struct eth_pdata), + .priv_auto_alloc_size = sizeof(struct bcm6348_eth_priv), + .probe = bcm6348_eth_probe, +}; diff --git a/include/configs/bmips_common.h b/include/configs/bmips_common.h index 39ca2e0bf3..65aa9c77cc 100644 --- a/include/configs/bmips_common.h +++ b/include/configs/bmips_common.h @@ -6,6 +6,9 @@ #ifndef __CONFIG_BMIPS_COMMON_H #define __CONFIG_BMIPS_COMMON_H +/* ETH */ +#define CONFIG_PHY_RESET_DELAY 20 + /* UART */ #define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, \ 230400, 500000, 1500000 } @@ -16,7 +19,7 @@ /* Memory usage */ #define CONFIG_SYS_MAXARGS 24 -#define CONFIG_SYS_MALLOC_LEN (1024 * 1024) +#define CONFIG_SYS_MALLOC_LEN (2 * 1024 * 1024) #define CONFIG_SYS_BOOTPARAMS_LEN (128 * 1024) #define CONFIG_SYS_CBSIZE 512 From patchwork Wed Nov 28 18:23:32 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004741 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ixPPKIJG"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qGN4LW9z9ryk for ; Thu, 29 Nov 2018 05:40:28 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 594E1C22332; Wed, 28 Nov 2018 18:31:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id D699FC2236E; Wed, 28 Nov 2018 18:25:39 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 42D20C22339; Wed, 28 Nov 2018 18:24:08 +0000 (UTC) Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by lists.denx.de (Postfix) with ESMTPS id D322EC222FA for ; Wed, 28 Nov 2018 18:24:04 +0000 (UTC) Received: by mail-wr1-f67.google.com with SMTP id q18so27315241wrx.9 for ; Wed, 28 Nov 2018 10:24:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=W6MKCiSGsLKV6YEsIW9FDrtZkoMZJFCXhCItweLIYCg=; b=ixPPKIJGUt45gh9ckQB/gntA2A7IXIkaSN/E0LO+KkLBe8ZZ8W67SbeDo1pzuMzCfw KRS8X2+vzclLEb7fRYooE/MidMgGSgdlMjzpxjD8zahHDaGEKT2RfDyg/cqL35DhA/Ic 8JeejZvYav3V7ruMBjbc+T5t409R1zlRa6DQerMAgSYgnG/+EsAyOcWl3DoHL76N9erU ozHVo8cVnG2/mta0YO6Bz01s9SW/zWuYn9p9aSdf1ve1bEwayPVJLMRTp/4uTRPlOnVM ER82u26V3VA7wpsVTRaFMi7rjb554wn87jdskAfAnzT3OTsr8xfunyeZnnHT++H3gZyD SWCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=W6MKCiSGsLKV6YEsIW9FDrtZkoMZJFCXhCItweLIYCg=; b=ImOB87OIkPaKbtlZVqZsg7tPPgij6c83712+iARuHZ7aBSaEGAYGmapvG2wJsAuvMN 7G/Ud2k0W7Pt9zzJmHc4BY2EjDq7GO/NQVWBsYs6OTbyO0XwaFz5+X1uxDdTPAdJIekU p4FbxW6L7iedoVTJCHmd7Vvy+J9lZ8z2nuP2KYePoOYV/9ddh+YlL/QzNsj9kO9KuyzY 6TjE/C4syC3DC6VV/zBFV4f2oiyuMIm3dpr1tfa/n5E+9zaTqtH3aWPJH0UScNU5z+62 yBRZE/m5qWq/e0pwuFLkIvYWLoSKr81SgFBJ9WhuMtefJjitltuSSs5lIet/NgY1oe7R I6pw== X-Gm-Message-State: AA+aEWYD9v+XNbpgq59JEoMIH/hFt2XRMwfkVgieOTDVJEj+OU0uLOXo yOjo0ePHtl1CuR2Vlf3wkNjHOtsD X-Google-Smtp-Source: AFSGD/XQ1MMWqCczPtD+Q8xKXVNbP4CU8d70Tf535rrEXuhBjXB9WWVilIWh6GCkrX8DQSkbfHUgvQ== X-Received: by 2002:adf:83e7:: with SMTP id 94mr32397489wre.278.1543429444383; Wed, 28 Nov 2018 10:24:04 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:03 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:32 +0100 Message-Id: <20181128182349.10330-12-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 11/28] bmips: bcm6338: add support for bcm6348-enet X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: no changes v5: no changes v4: no changes v3: no changes v2: no changes arch/mips/dts/brcm,bcm6338.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/mips/dts/brcm,bcm6338.dtsi b/arch/mips/dts/brcm,bcm6338.dtsi index 990355481c..c547e949dd 100644 --- a/arch/mips/dts/brcm,bcm6338.dtsi +++ b/arch/mips/dts/brcm,bcm6338.dtsi @@ -144,5 +144,20 @@ dma-channels = <6>; resets = <&periph_rst BCM6338_RST_DMAMEM>; }; + + enet: ethernet@fffe2800 { + compatible = "brcm,bcm6348-enet"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0xfffe2800 0x2dc>; + clocks = <&periph_clk BCM6338_CLK_ENET>; + resets = <&periph_rst BCM6338_RST_ENET>; + dmas = <&iudma BCM6338_DMA_ENET_RX>, + <&iudma BCM6338_DMA_ENET_TX>; + dma-names = "rx", + "tx"; + + status = "disabled"; + }; }; }; From patchwork Wed Nov 28 18:23:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004739 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="MItj5Wj+"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qFt5kncz9ryk for ; Thu, 29 Nov 2018 05:40:02 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 81393C22309; Wed, 28 Nov 2018 18:27:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id F1E19C222F5; Wed, 28 Nov 2018 18:24:46 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 6E1D5C222D8; Wed, 28 Nov 2018 18:24:10 +0000 (UTC) Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by lists.denx.de (Postfix) with ESMTPS id F1E55C222EF for ; Wed, 28 Nov 2018 18:24:05 +0000 (UTC) Received: by mail-wr1-f68.google.com with SMTP id t27so19358823wra.6 for ; Wed, 28 Nov 2018 10:24:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Hq7MrNRTmwatZ9UAb+dOeKjSzNUmM/0kb1mZfI728E4=; b=MItj5Wj+d97aOPWRbE9cqsjF65GetjmyGO3HI8KMjr2/80uhJewNKUaVcLQK2ycVMo /PRJVMDiNEpWnpc1IoJ5FWRpAm1aS1YSc9ulSpTZBsp78qbmawso8tOoEuUlJpgGrrqy ODGQxW19AtrD0XzfuMBB5T+6PzLPYFxiyg1qxn9LvJV89JTcWPSwRmArJliGza9aaWIK SXikd/qDg4/bTxIUtEliqaZFFhQAVTCYWvFBLymdr+PV713tB9ocQPplTFOgo3iStOOb tCAp5Ah9cXaQPCPvmbiQRdPTse9IT7y0pjg5jDkX2FGDygKpDXtl+KXi0sAzJOD77F3I y34Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Hq7MrNRTmwatZ9UAb+dOeKjSzNUmM/0kb1mZfI728E4=; b=Xtc/HOYuHnAYK8XMKl91BZhNUf2g7e3qJ/N90rt+9jlxdibPev2JcmUXm6rMhCrzDQ rHsq+bT913/UQ4Z0HW/4PZixAtUjxwaobTNJd/Mn4VaO1SREnO0od9jNkzkIR/bhEoTO c2ItewLJWYJ+Cln4SmBC8u68h/HGIG4SMu79bcX+IdHz35DFoCOAxTCpKsUqO+5BMo+6 v/ryk8UQPsSFqk73cxa5nFQ8wap3ygr5POn3aayYU1TA6rmxFIkNBD+k2AiGMPAULdmH Se9tjaj4p7eNqUq7njMYQif/VIODyidNRYcFObutHaFGAwZ1TAq6odK/s5UwTxIcSwSe v2fQ== X-Gm-Message-State: AA+aEWZ3F8PB7ERzSncERKNpwa/lboi8CaBdgxc26HJo7A2hyqyS26nt z1ZtXY3yinahM1xRm7xXHw/WpIW4 X-Google-Smtp-Source: AFSGD/XPD9f6vMYN3F8HfsSeRUHmvQqDi+BGM6nfKOmjYMtCvF8tl4i6HfAu14nKzSOKsMiKIXXFCA== X-Received: by 2002:adf:a393:: with SMTP id l19mr32748863wrb.110.1543429445390; Wed, 28 Nov 2018 10:24:05 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:04 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:33 +0100 Message-Id: <20181128182349.10330-13-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 12/28] bmips: enable f@st1704 enet support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: no changes v5: no changes v4: no changes v3: no changes v2: no changes arch/mips/dts/sagem,f@st1704.dts | 12 ++++++++++++ configs/sagem_f@st1704_ram_defconfig | 8 +++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/arch/mips/dts/sagem,f@st1704.dts b/arch/mips/dts/sagem,f@st1704.dts index 5300f8b6df..ec6846dd9f 100644 --- a/arch/mips/dts/sagem,f@st1704.dts +++ b/arch/mips/dts/sagem,f@st1704.dts @@ -39,6 +39,18 @@ }; }; +&enet { + status = "okay"; + phy = <&enetphy>; + phy-mode = "mii"; + + enetphy: fixed-link { + reg = <1>; + speed = <100>; + full-duplex; + }; +}; + &gpio { status = "okay"; }; diff --git a/configs/sagem_f@st1704_ram_defconfig b/configs/sagem_f@st1704_ram_defconfig index 91a966327a..8c36f5dbf8 100644 --- a/configs/sagem_f@st1704_ram_defconfig +++ b/configs/sagem_f@st1704_ram_defconfig @@ -27,11 +27,14 @@ CONFIG_CMD_MEMINFO=y # CONFIG_CMD_LOADS is not set CONFIG_CMD_SF=y CONFIG_CMD_SPI=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y # CONFIG_CMD_MISC is not set CONFIG_OF_EMBED=y CONFIG_DEFAULT_DEVICE_TREE="sagem,f@st1704" -# CONFIG_NET is not set +CONFIG_NET_RANDOM_ETHADDR=y # CONFIG_DM_DEVICE_REMOVE is not set +CONFIG_BCM6348_IUDMA=y CONFIG_DM_GPIO=y CONFIG_BCM6345_GPIO=y CONFIG_LED=y @@ -40,6 +43,9 @@ CONFIG_DM_SPI_FLASH=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_WINBOND=y CONFIG_SPI_FLASH_MTD=y +CONFIG_PHY_FIXED=y +CONFIG_DM_ETH=y +CONFIG_BCM6348_ETH=y CONFIG_DM_RESET=y CONFIG_RESET_BCM6345=y # CONFIG_SPL_SERIAL_PRESENT is not set From patchwork Wed Nov 28 18:23:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004740 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="tMgoIwAr"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qFz3JJwz9ryk for ; Thu, 29 Nov 2018 05:40:07 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 3006AC222EF; Wed, 28 Nov 2018 18:27:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 5089EC222FF; Wed, 28 Nov 2018 18:24:56 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id ADFC3C22303; Wed, 28 Nov 2018 18:24:10 +0000 (UTC) Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by lists.denx.de (Postfix) with ESMTPS id BD37DC22304 for ; Wed, 28 Nov 2018 18:24:06 +0000 (UTC) Received: by mail-wr1-f66.google.com with SMTP id q18so27315331wrx.9 for ; Wed, 28 Nov 2018 10:24:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=RkGbRcqR2Id35K4mboK+XphztR0ls9kMXdSbSFXBhRM=; b=tMgoIwArhmwNBOlU7nwdJGUtIow2FvzRV7uARXtPa92WQu0cxswNsu2fAfyOSvzrWM W4RpPf5zhlcEQYd29PnWWrpRGj5L4SyLiY2ybOhZNZ5IpXtecMCLwgpqGT8outloPqRa 4Ol6e9bcFvkVyaLWOc7EK/sjJTR2UonM/vyEps4hGpxPYWznA3z1Kkf+cLqPQZUe+R9W vRV+J1k4zNE1FJUxSQo9YnoQnuSjhV0N+ojDdJa8/KBcxLXbZDp0FgRjGIjJoC5hDWLw HTZup7f//5j0aHLCwAYs2Bq3ksEuN4aVXTyFaa0pf/n6K1F77syzYmGHFw/9Az+iw90C 12hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=RkGbRcqR2Id35K4mboK+XphztR0ls9kMXdSbSFXBhRM=; b=DkCJmE1izFlgHFebsAcWcZuNkrIdQBmtyfhOII2AonfkUitTQGTxA71L4xgGPJ89UU iyiELRrrOJAARICF0F5hdC8BNHK59zXvqJTjy+nflpg9YyjwEMby10yO3brAW7u6gf0K 4mw8VszYGtrVU+QQcAf5cfSc8DPdNqR/CqopeHu/M5HEfuLmzKw3yaQ1OARheAnAIfCt 4tTQRRBbyeiv0u8/QSRCGzom3AA/CKWpPd719mkHKD4D53LtgqorBJIhoWwCIYr8EmwE NMf8gI447H7yCmp9dHLZal3//TDuOWfp+xWzImeisdMb9hQzs/A49eCfwOiWAc6yB1jR KykQ== X-Gm-Message-State: AA+aEWbt4ZQJsF9TNLb3PS81NkQy4oFLaFMNYVYSCGOeiMBM40VZbPam Zl0AiNbt0Ydm+mVbDuFWWQlKNj1U X-Google-Smtp-Source: AFSGD/WaYna2QW9LRWjxvtYvRUYc5xaQAK+E/il8a36kvvFE4eIsC/EtDBUTmKHjyHBvtu5whYbwQg== X-Received: by 2002:adf:e18d:: with SMTP id k13mr32878807wri.36.1543429446286; Wed, 28 Nov 2018 10:24:06 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:05 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:34 +0100 Message-Id: <20181128182349.10330-14-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 13/28] bmips: bcm6348: add support for bcm6348-enet X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: no changes v5: no changes v4: no changes v3: no changes v2: no changes arch/mips/dts/brcm,bcm6348.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/mips/dts/brcm,bcm6348.dtsi b/arch/mips/dts/brcm,bcm6348.dtsi index 875de232ca..79e7bd892b 100644 --- a/arch/mips/dts/brcm,bcm6348.dtsi +++ b/arch/mips/dts/brcm,bcm6348.dtsi @@ -161,6 +161,32 @@ u-boot,dm-pre-reloc; }; + enet0: ethernet@fffe6000 { + compatible = "brcm,bcm6348-enet"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0xfffe6000 0x2dc>; + dmas = <&iudma BCM6348_DMA_ENET0_RX>, + <&iudma BCM6348_DMA_ENET0_TX>; + dma-names = "rx", + "tx"; + + status = "disabled"; + }; + + enet1: ethernet@fffe6800 { + compatible = "brcm,bcm6348-enet"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0xfffe6800 0x2dc>; + dmas = <&iudma BCM6348_DMA_ENET1_RX>, + <&iudma BCM6348_DMA_ENET1_TX>; + dma-names = "rx", + "tx"; + + status = "disabled"; + }; + iudma: dma-controller@fffe7000 { compatible = "brcm,bcm6348-iudma"; reg = <0xfffe7000 0x1c>, From patchwork Wed Nov 28 18:23:35 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004743 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="i8JDr06S"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qGv44z3z9ryk for ; Thu, 29 Nov 2018 05:40:55 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 34606C22327; Wed, 28 Nov 2018 18:32:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 93311C22364; Wed, 28 Nov 2018 18:26:04 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 65363C22355; Wed, 28 Nov 2018 18:24:12 +0000 (UTC) Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by lists.denx.de (Postfix) with ESMTPS id 05D50C2230A for ; Wed, 28 Nov 2018 18:24:08 +0000 (UTC) Received: by mail-wr1-f66.google.com with SMTP id x10so27316386wrs.8 for ; Wed, 28 Nov 2018 10:24:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=su+gqhsT6l+eGMqtrToJ6A8nnavY+10gz7+KTe+K8Sw=; b=i8JDr06SwSdOQfOTlHusT7QPz4yc+P54XA1mkIm6ES/m75zf85T7oZwCRF8d2vm9f6 0jPKc+YWbBpibRFBDdGKrvkrlL3t4645Kn5sFMuUqvmSYjv3eWirjNQJi6bztGx7qbTH hgaMssu4NkTbDIjoF0iISOOTTKpT1o9C0r2CBw277YhVL0r+BsLZawJj74O2bQPQP0GJ +N6TyRMtNzMNVlFEVpVECvFs40SkfapekAkvC0V0nsKsYQEdRJEfCtPxPcBTfkw5Nexz ttbGHlx6G4rHe5cngmEPAC7gTnjZjviv89/FxtT23UXYPvnqtLIBZncp1qx2MGmIyvhk /QZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=su+gqhsT6l+eGMqtrToJ6A8nnavY+10gz7+KTe+K8Sw=; b=JCjdpbX+7KDyiQrFiff1EiqrKx5kDZAJdB0K+OxtwuwN/goRvVggS/f4fH+fcID31p 6qRIz2H0HpzVnvorWKrTWMYXazd6TCSq1Mf191drC6PfLIgTFepMLj/eEHC7VujAuSJJ TCXzopFqY79Z4prkcC/3HICiMAsVFlOCR/mYK9oUDF90JBDp2T72t4mvDHhUM7nsqlPQ uU2x0ml8RAUwen01r2vdUcjBCZ4mtHOfh3GVfGqB7fJKQcoyota4tjsrw+guJptYYyU9 A3OLOuhmmdfgQMmLyhBR4garuQSJY7zQIntxzDJv1X10RKTMu5eNVS/7pr4H2ZaxaVmS EEfA== X-Gm-Message-State: AA+aEWbF0tfotsI4kTYQ99oLn54Xa98RP2HZcKjL2moKRZzEPY9ylQle WOOX7m0u3DJbJh0dVpQYQhr4CuMQ X-Google-Smtp-Source: AFSGD/WXtSgshU4DBfib1bCEl6wP8BczrpbfaNDXPbh89DYIK+5owGqsA9EUHLSU9e9L8OXcSR1fKw== X-Received: by 2002:adf:dc4e:: with SMTP id m14mr19130165wrj.107.1543429447445; Wed, 28 Nov 2018 10:24:07 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:06 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:35 +0100 Message-Id: <20181128182349.10330-15-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 14/28] bmips: enable ct-5361 enet support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: no changes v5: no changes v4: no changes v3: no changes v2: no changes arch/mips/dts/comtrend,ct-5361.dts | 12 ++++++++++++ configs/comtrend_ct5361_ram_defconfig | 8 +++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/arch/mips/dts/comtrend,ct-5361.dts b/arch/mips/dts/comtrend,ct-5361.dts index 25747ca95d..f6b8a94e25 100644 --- a/arch/mips/dts/comtrend,ct-5361.dts +++ b/arch/mips/dts/comtrend,ct-5361.dts @@ -34,6 +34,18 @@ }; }; +&enet1 { + status = "okay"; + phy = <&enet1phy>; + phy-mode = "mii"; + + enet1phy: fixed-link { + reg = <1>; + speed = <100>; + full-duplex; + }; +}; + &gpio0 { status = "okay"; }; diff --git a/configs/comtrend_ct5361_ram_defconfig b/configs/comtrend_ct5361_ram_defconfig index 82f2070713..6297e78fd9 100644 --- a/configs/comtrend_ct5361_ram_defconfig +++ b/configs/comtrend_ct5361_ram_defconfig @@ -25,11 +25,14 @@ CONFIG_CMD_LICENSE=y CONFIG_CMD_MEMINFO=y # CONFIG_CMD_LOADS is not set CONFIG_CMD_USB=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y # CONFIG_CMD_MISC is not set CONFIG_OF_EMBED=y CONFIG_DEFAULT_DEVICE_TREE="comtrend,ct-5361" -# CONFIG_NET is not set +CONFIG_NET_RANDOM_ETHADDR=y # CONFIG_DM_DEVICE_REMOVE is not set +CONFIG_BCM6348_IUDMA=y CONFIG_DM_GPIO=y CONFIG_BCM6345_GPIO=y CONFIG_LED=y @@ -40,6 +43,9 @@ CONFIG_FLASH_CFI_DRIVER=y CONFIG_CFI_FLASH=y CONFIG_SYS_FLASH_PROTECTION=y CONFIG_SYS_FLASH_CFI=y +CONFIG_PHY_FIXED=y +CONFIG_DM_ETH=y +CONFIG_BCM6348_ETH=y CONFIG_PHY=y CONFIG_BCM6348_USBH_PHY=y CONFIG_DM_RESET=y From patchwork Wed Nov 28 18:23:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004734 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="r85D6Hug"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qBm3n7Bz9ryk for ; Thu, 29 Nov 2018 05:37:20 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 46458C22302; Wed, 28 Nov 2018 18:32:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 31493C2237D; Wed, 28 Nov 2018 18:26:09 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 83525C22315; Wed, 28 Nov 2018 18:24:16 +0000 (UTC) Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by lists.denx.de (Postfix) with ESMTPS id 479A4C22303 for ; Wed, 28 Nov 2018 18:24:09 +0000 (UTC) Received: by mail-wm1-f65.google.com with SMTP id z18so3677223wmc.4 for ; Wed, 28 Nov 2018 10:24:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BF6qVbwolOePd3OCseag3gBWhQR7Rp3ollKHWzItzdo=; b=r85D6HugTYpnbfVNPuGrgluaRfhieeiYwL4gYJJGDAta8sCB11maapF1kCQIMz8+oh P6JqJABAWTiDdi40kOAHZZdo4Yul1+51415+3SsvYamXbOC7sFY5cfbSbTnX1nf1B3RY XmwVN4IZS2YnLhxneyOjFWpDalAmux1pQtx69AMSpVSQelKmr84Xj6H8ElL7gehBqrPs xPPOmAvAZ8njrK31nNZ+3ISnp+JR3mDgxWBddWZ5FsZx0Y1MuJi42Sg4HVSgac1N3A/G 9pHG2MYC4El8MWQdXZQEfVH6j50+joIXVDbS8hfVnwULRocNFR8QdeCcdfcoDYU2T5N6 SVnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=BF6qVbwolOePd3OCseag3gBWhQR7Rp3ollKHWzItzdo=; b=ngIpOGp/lw5hoQHP1nhTMap3MCq1lr0zjI3eFLnKOKwjDUvJ5EIWT0dzKGt1SjWXV/ /weBP8P72/m5carO5fntFTyJlA788sAurl2C+o3vv/uts+mvMikA71JHs7u4OkenWD41 WQY+uirPl0yBZbMbIEiIJwmcVlBaFTv1wmqMd6AhdJlxdSuOgYc4ycnqgOUwP2bDjn30 UbuVGGUcZ5ktnI/BdKhEQXS/VJH8Gba96guvlnFEGpy5hyYUl0QrsHehGF7szvZaNSaT sRJvMJ4o5uTqNobHYdc71hj9CXmrIMYpoM/DCCPQEQ1c5f+EBdX/kVWXHwXC4y49lf5+ 47Tg== X-Gm-Message-State: AA+aEWZRmeDSGcrLCAOsPSbjZqY16e2YQtaKZ3na7j0Y0TpYRqCuIrI4 anZPuS9U6XGQbKRU7Ov+tZGy/2/a X-Google-Smtp-Source: AFSGD/UIrmtiCna5xxAEPfhkXRLl/AAUp9/7ALbu5XQ6UgZ+hbwz0I63fKpYCDPc7mhvXEkZblpWGA== X-Received: by 2002:a1c:f41:: with SMTP id 62mr3672274wmp.96.1543429448431; Wed, 28 Nov 2018 10:24:08 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:07 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:36 +0100 Message-Id: <20181128182349.10330-16-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 15/28] bmips: bcm6358: add support for bcm6348-enet X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: no changes v5: no changes v4: no changes v3: no changes v2: no changes arch/mips/dts/brcm,bcm6358.dtsi | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/arch/mips/dts/brcm,bcm6358.dtsi b/arch/mips/dts/brcm,bcm6358.dtsi index 5605723e83..5e9c9ad769 100644 --- a/arch/mips/dts/brcm,bcm6358.dtsi +++ b/arch/mips/dts/brcm,bcm6358.dtsi @@ -192,6 +192,34 @@ status = "disabled"; }; + enet0: ethernet@fffe4000 { + compatible = "brcm,bcm6348-enet"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0xfffe4000 0x2dc>; + clocks = <&periph_clk BCM6358_CLK_ENET0>; + dmas = <&iudma BCM6358_DMA_ENET0_RX>, + <&iudma BCM6358_DMA_ENET0_TX>; + dma-names = "rx", + "tx"; + + status = "disabled"; + }; + + enet1: ethernet@fffe4800 { + compatible = "brcm,bcm6348-enet"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0xfffe4800 0x2dc>; + clocks = <&periph_clk BCM6358_CLK_ENET1>; + dmas = <&iudma BCM6358_DMA_ENET1_RX>, + <&iudma BCM6358_DMA_ENET1_TX>; + dma-names = "rx", + "tx"; + + status = "disabled"; + }; + iudma: dma-controller@fffe5000 { compatible = "brcm,bcm6348-iudma"; reg = <0xfffe5000 0x24>, From patchwork Wed Nov 28 18:23:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004737 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="QzvKsNQO"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qDw4ZySz9ryk for ; Thu, 29 Nov 2018 05:39:12 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 4C8D0C22301; Wed, 28 Nov 2018 18:29:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id CFD46C2234A; Wed, 28 Nov 2018 18:25:27 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 48B78C222D8; Wed, 28 Nov 2018 18:24:16 +0000 (UTC) Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by lists.denx.de (Postfix) with ESMTPS id 2DE35C222EF for ; Wed, 28 Nov 2018 18:24:10 +0000 (UTC) Received: by mail-wr1-f45.google.com with SMTP id x10so27316484wrs.8 for ; Wed, 28 Nov 2018 10:24:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=e/SZcvSBvVRQ6fHBVt1wHxstl4MMF/DuOE2dGqqzCXA=; b=QzvKsNQOQFAV3X65c8V80TD84RK2av+E6ey8DM25nMp+JhkjTlthR7XCNV82HenXh/ ljy9NNymBxa9xqE11+hcrudvoZf55JYc9M+fRtF464zEtGcB1uVKGnxLdzCJozVjV0xW wD607YWRVM+VrXBkI7K+M1qrMmKI+clw4F33Yse5keKLrBp6p46j3GLNkM4QofznGU9E 6Uq7qPYfQeguj/pwyf5xIhZ4c0IlEidKTfJiIkpT8t4xUDROzS2SGteZtDm3VwP4589O Fiv3Yd5PY83SsGUhFOieNe5v9vE2qzxkiaPNCfwsrAsO9INZyAtwlczm6VXSAIJSAMj1 L5Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=e/SZcvSBvVRQ6fHBVt1wHxstl4MMF/DuOE2dGqqzCXA=; b=nJi/OUfTHHCKxqPGyjt0NkPFTXRDLLqM0PSRVFla7C/PZ1h621kSrgNFMfLK+tOObz wtKxJ2iNMZMy8abtG8tq1HnqXtQaIe1dSNBc7MMfcs55svoI/Af8t0bFIn6YCxWk4lay M90A6z5FzfRer0aetQx0Nbm/RNF4/snh1xtpQFd1qo95DJl9++2gQX2jpuYtJTKA5ege PYf9JocOVndMAUkwMD5gR1XCz4LTrdr/QseQ0eqvNfdaJ7Xm5h5XtlgCUiOQ5Z3IOZVu fDBARc65NKwP1VyXJpZYNaELTvH+rZNa208+YH6UU8bz7redEuEcbbTdHwkf+4bx1ylW lxyw== X-Gm-Message-State: AA+aEWaZBckVgy1AA/xkXlZrHwpvR0QTWSlBPJ00mBHfcLCeP7LO4lV4 MYxspFVbiyjPsBcwkM+WZ91+Fvjg X-Google-Smtp-Source: AFSGD/XfLLUWJLqv2zuNxMNp8uiQKqR9v6G5rEEzf5EwrgSWejdES+munClqaPpuegt0n5EOpVfEGw== X-Received: by 2002:a5d:4b8b:: with SMTP id b11mr32443216wrt.180.1543429449718; Wed, 28 Nov 2018 10:24:09 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:08 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:37 +0100 Message-Id: <20181128182349.10330-17-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 16/28] bmips: enable hg556a enet support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: no changes v5: no changes v4: no changes v3: no changes v2: no changes arch/mips/dts/huawei,hg556a.dts | 12 ++++++++++++ configs/huawei_hg556a_ram_defconfig | 8 +++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/arch/mips/dts/huawei,hg556a.dts b/arch/mips/dts/huawei,hg556a.dts index 60455c2ff8..6a7fc1df4b 100644 --- a/arch/mips/dts/huawei,hg556a.dts +++ b/arch/mips/dts/huawei,hg556a.dts @@ -93,6 +93,18 @@ status = "okay"; }; +&enet1 { + status = "okay"; + phy = <&enet1phy>; + phy-mode = "mii"; + + enet1phy: fixed-link { + reg = <1>; + speed = <100>; + full-duplex; + }; +}; + &gpio0 { status = "okay"; }; diff --git a/configs/huawei_hg556a_ram_defconfig b/configs/huawei_hg556a_ram_defconfig index 6bb14ba736..d4e6144319 100644 --- a/configs/huawei_hg556a_ram_defconfig +++ b/configs/huawei_hg556a_ram_defconfig @@ -25,11 +25,14 @@ CONFIG_CMD_LICENSE=y CONFIG_CMD_MEMINFO=y # CONFIG_CMD_LOADS is not set CONFIG_CMD_USB=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y # CONFIG_CMD_MISC is not set CONFIG_OF_EMBED=y CONFIG_DEFAULT_DEVICE_TREE="huawei,hg556a" -# CONFIG_NET is not set +CONFIG_NET_RANDOM_ETHADDR=y # CONFIG_DM_DEVICE_REMOVE is not set +CONFIG_BCM6348_IUDMA=y CONFIG_DM_GPIO=y CONFIG_BCM6345_GPIO=y CONFIG_LED=y @@ -40,6 +43,9 @@ CONFIG_FLASH_CFI_DRIVER=y CONFIG_CFI_FLASH=y CONFIG_SYS_FLASH_PROTECTION=y CONFIG_SYS_FLASH_CFI=y +CONFIG_PHY_FIXED=y +CONFIG_DM_ETH=y +CONFIG_BCM6348_ETH=y CONFIG_PHY=y CONFIG_BCM6358_USBH_PHY=y CONFIG_DM_RESET=y From patchwork Wed Nov 28 18:23:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004731 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="GkEwgxl2"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434q9k46Tpz9ryk for ; Thu, 29 Nov 2018 05:36:26 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 4395FC22301; Wed, 28 Nov 2018 18:32:42 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id BAE76C22368; Wed, 28 Nov 2018 18:26:07 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id AA511C22339; Wed, 28 Nov 2018 18:24:16 +0000 (UTC) Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by lists.denx.de (Postfix) with ESMTPS id 473C4C222E2 for ; Wed, 28 Nov 2018 18:24:11 +0000 (UTC) Received: by mail-wr1-f65.google.com with SMTP id t3so27316256wrr.3 for ; Wed, 28 Nov 2018 10:24:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QiWGlPU75b4hnAmIFPxI0UiKxuXC0WVqQpZZaKWZQjQ=; b=GkEwgxl28mJ7IuUwePbFexsw56EccHEgq2crxnpW4RWmtAwOTwP/OCOPyGd+ONtO9t NEB7TFpKkDUR6IeRZBJkVyov3VYjRB1lGdCVk2sWvp8MihoBrIsX50ixLyYPL7FhfkIl ovb1pqJl9+kf55wSQ/26U4sZWpoCkaAoDFfnBSqxsw4MMY2O6lgVODlXHSuGK5fmpMvS RFbRBrlNgknbp9ZPv6kTRmjAS3upZEXX/wJYz1HRrjI6rQEC0BJlWFpgb5eMt7mCL8Jm 5EMv69VE5Aq+SMEn5H8T+aiULnMmXkuyW7imXkqyBVNdWtjZNm7DH2a9c9qk7PSmDdwl dQdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QiWGlPU75b4hnAmIFPxI0UiKxuXC0WVqQpZZaKWZQjQ=; b=QB8tD+3z02CQv/a1aC+2uaiCGxVPuOhOckJ8w695jqBzZi/eaeIZ5hNxlMqbZaCcEv RLJcX3ikwkaEnTKG38c5874oFmUgyGnAPXVxkjCGcDwVzNq1kBPH/7X29bLSuff4X3s+ r47WjPIKheMwuiC0Ez22CztnfthQScNVEjSwRmztluovMSE7QvZB69QRtI/dTcdFOZT7 CobwPWMVoIc8wUbvI0d09hd04CxKU3LOG6LDkoqBRsxJRPGqF/o4JAEJwFVtTwFxQa54 WaeBG9qhANdUQjzJ2Gp3x025jKy9tOMjf2DSOch3BQ0itptiqPGIvFhK0CNHmx2Kopsd CKIQ== X-Gm-Message-State: AA+aEWYFxr1h04rHh97Gce9X7+BPTZb7AbxjzrBFndZJq8PSKD/X+1dq 3Bqwp70RQ1kdGRBzvj57MTMi/KRu X-Google-Smtp-Source: AFSGD/Ux57ZdGD4klGO0a9YtG1dr5zMSqJ43Y3G/FExcFlyJ6DIHDMOxSlWfXpGcbRl5lY//H7nC6A== X-Received: by 2002:a05:6000:f:: with SMTP id h15mr31475008wrx.248.1543429450831; Wed, 28 Nov 2018 10:24:10 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:10 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:38 +0100 Message-Id: <20181128182349.10330-18-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 17/28] bmips: enable nb4-ser enet support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: no changes v5: no changes v4: no changes v3: no changes v2: no changes arch/mips/dts/sfr,nb4-ser.dts | 24 ++++++++++++++++++++++++ configs/sfr_nb4-ser_ram_defconfig | 8 +++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/arch/mips/dts/sfr,nb4-ser.dts b/arch/mips/dts/sfr,nb4-ser.dts index bdc6f8ae45..dfbc4148dc 100644 --- a/arch/mips/dts/sfr,nb4-ser.dts +++ b/arch/mips/dts/sfr,nb4-ser.dts @@ -53,6 +53,30 @@ status = "okay"; }; +&enet0 { + status = "okay"; + phy = <&enet0phy>; + phy-mode = "internal"; + + enet0phy: fixed-link { + reg = <1>; + speed = <100>; + full-duplex; + }; +}; + +&enet1 { + status = "okay"; + phy = <&enet1phy>; + phy-mode = "mii"; + + enet1phy: fixed-link { + reg = <1>; + speed = <100>; + full-duplex; + }; +}; + &gpio0 { status = "okay"; }; diff --git a/configs/sfr_nb4-ser_ram_defconfig b/configs/sfr_nb4-ser_ram_defconfig index 12adfb01e7..39622875b1 100644 --- a/configs/sfr_nb4-ser_ram_defconfig +++ b/configs/sfr_nb4-ser_ram_defconfig @@ -26,11 +26,14 @@ CONFIG_CMD_LICENSE=y CONFIG_CMD_MEMINFO=y # CONFIG_CMD_LOADS is not set CONFIG_CMD_USB=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y # CONFIG_CMD_MISC is not set CONFIG_OF_EMBED=y CONFIG_DEFAULT_DEVICE_TREE="sfr,nb4-ser" -# CONFIG_NET is not set +CONFIG_NET_RANDOM_ETHADDR=y # CONFIG_DM_DEVICE_REMOVE is not set +CONFIG_BCM6348_IUDMA=y CONFIG_DM_GPIO=y CONFIG_BCM6345_GPIO=y CONFIG_LED=y @@ -42,6 +45,9 @@ CONFIG_FLASH_CFI_DRIVER=y CONFIG_CFI_FLASH=y CONFIG_SYS_FLASH_PROTECTION=y CONFIG_SYS_FLASH_CFI=y +CONFIG_PHY_FIXED=y +CONFIG_DM_ETH=y +CONFIG_BCM6348_ETH=y CONFIG_PHY=y CONFIG_BCM6358_USBH_PHY=y CONFIG_DM_RESET=y From patchwork Wed Nov 28 18:23:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004735 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="IjsMxNc0"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qCF1nhTz9ryk for ; Thu, 29 Nov 2018 05:37:45 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id D8468C22311; Wed, 28 Nov 2018 18:29:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 239C5C22358; Wed, 28 Nov 2018 18:25:29 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id AB64CC222EB; Wed, 28 Nov 2018 18:24:17 +0000 (UTC) Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by lists.denx.de (Postfix) with ESMTPS id AA3F2C222F2 for ; Wed, 28 Nov 2018 18:24:12 +0000 (UTC) Received: by mail-wm1-f65.google.com with SMTP id q26so3549743wmf.5 for ; Wed, 28 Nov 2018 10:24:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=v/vM8BgeyiP5t1auqIogtCv37v74SVZhNM9f/c8mIR8=; b=IjsMxNc0A5d8w4wP/YaakEv3Qeoc3TK7a3jUZnV+XGF2/ygRzAVEfr7QdtRsMobFxf jf1rpd2SzrY30cbT2S01rk++nlUM5fMo2Kmqwtrtz7vmlLBVfQJncFyhQWXy74yKtuyn ERBs5ODxF3PDCDY6R2O7C+zowPnXIKgcYusA+4ALoFfVAoDk9xB/DuCIxaCf630F3hNI dJyOO/Q+pTKsKvO1aEMRajktzGeioHRlQM4AT2nSslySuEaxK2AfBo2zylP+x0Kxq8Lq EIQdUCWLOMD2n+Rn8w8/hg7JXhTMKYxl429QcckDYHbPUjbc4Tvg+m8aRBcoCULcaSnq dy8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=v/vM8BgeyiP5t1auqIogtCv37v74SVZhNM9f/c8mIR8=; b=NYwS30NNIcB2H9sasyVR2XEtXOWh2PlV8Gy31RfU//eoSM2eqvB3vtvdmFtKXkppKY hvf9HSm4qhGUPkjot0bySxB2VAP9DESX7ABERVMk1g/ViOikzs/qR/E/ErUwEXmx6V2u xVgYWTATT5kxF5MlWVQuPR85IOqWH8zI0St75J991VqRr0dLXfM1HFqBBoVXPtEoaExJ prSvlDENsfBKfkl/6yEXnLHQfUrNVoopq6LNjUVgt7PQpDElwvkRxeK0vanBwdlTuTn5 0CUDEh97twgcoD2T+lVoBXA24Ic1jD68Hkn4deQ7wLtg87EYXh+RUcmbVRCr6xBF75ta Jbwg== X-Gm-Message-State: AA+aEWYi1k4EUhOIsZic759y5RGEvxrJerz8PN3D/JKqaet/lpd7RdCU aTmeLC1cX2Jk6YmM0IuHoD4obos/ X-Google-Smtp-Source: AFSGD/U+8OIiKj137fX7459Sq1EsTygf0IU59ixi6biFJQOniYi4qjYDZonCG1wuQ5ykZmeC5LiGEg== X-Received: by 2002:a1c:8803:: with SMTP id k3mr3797624wmd.84.1543429451739; Wed, 28 Nov 2018 10:24:11 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:11 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:39 +0100 Message-Id: <20181128182349.10330-19-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 18/28] net: add support for bcm6368-enet X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: introduce flow control improvements from bcm6348-eth: - introduce rx packets caching functionality from bcm6348-eth to fix flow control issues. - code style fixes. v8: introduce bcm6368-enet driver drivers/net/Kconfig | 8 + drivers/net/Makefile | 1 + drivers/net/bcm6368-eth.c | 670 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 679 insertions(+) create mode 100644 drivers/net/bcm6368-eth.c diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 2b7cec8804..7044c6adf3 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -82,6 +82,14 @@ config BCM6348_ETH help This driver supports the BCM6348 Ethernet MAC. +config BCM6368_ETH + bool "BCM6368 EMAC support" + depends on DM_ETH && ARCH_BMIPS + select DMA + select MII + help + This driver supports the BCM6368 Ethernet MAC. + config DWC_ETH_QOS bool "Synopsys DWC Ethernet QOS device support" depends on DM_ETH diff --git a/drivers/net/Makefile b/drivers/net/Makefile index 2647d4dd23..0dbfa03306 100644 --- a/drivers/net/Makefile +++ b/drivers/net/Makefile @@ -7,6 +7,7 @@ obj-$(CONFIG_ALTERA_TSE) += altera_tse.o obj-$(CONFIG_AG7XXX) += ag7xxx.o obj-$(CONFIG_ARMADA100_FEC) += armada100_fec.o obj-$(CONFIG_BCM6348_ETH) += bcm6348-eth.o +obj-$(CONFIG_BCM6368_ETH) += bcm6368-eth.o obj-$(CONFIG_DRIVER_AT91EMAC) += at91_emac.o obj-$(CONFIG_DRIVER_AX88180) += ax88180.o obj-$(CONFIG_BCM_SF2_ETH) += bcm-sf2-eth.o diff --git a/drivers/net/bcm6368-eth.c b/drivers/net/bcm6368-eth.c new file mode 100644 index 0000000000..f0c2ada3e2 --- /dev/null +++ b/drivers/net/bcm6368-eth.c @@ -0,0 +1,670 @@ +/* + * Copyright (C) 2018 Álvaro Fernández Rojas + * + * Derived from linux/drivers/net/ethernet/broadcom/bcm63xx_enet.c: + * Copyright (C) 2008 Maxime Bizon + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define ETH_PORT_STR "brcm,enetsw-port" + +#define ETH_RX_DESC PKTBUFSRX +#define ETH_ZLEN 60 +#define ETH_TIMEOUT 100 + +#define ETH_MAX_PORT 8 +#define ETH_RGMII_PORT0 4 + +/* Port traffic control */ +#define ETH_PTCTRL_REG(x) (0x0 + (x)) +#define ETH_PTCTRL_RXDIS_SHIFT 0 +#define ETH_PTCTRL_RXDIS_MASK (1 << ETH_PTCTRL_RXDIS_SHIFT) +#define ETH_PTCTRL_TXDIS_SHIFT 1 +#define ETH_PTCTRL_TXDIS_MASK (1 << ETH_PTCTRL_TXDIS_SHIFT) + +/* Switch mode register */ +#define ETH_SWMODE_REG 0xb +#define ETH_SWMODE_FWD_EN_SHIFT 1 +#define ETH_SWMODE_FWD_EN_MASK (1 << ETH_SWMODE_FWD_EN_SHIFT) + +/* IMP override Register */ +#define ETH_IMPOV_REG 0xe +#define ETH_IMPOV_LINKUP_SHIFT 0 +#define ETH_IMPOV_LINKUP_MASK (1 << ETH_IMPOV_LINKUP_SHIFT) +#define ETH_IMPOV_FDX_SHIFT 1 +#define ETH_IMPOV_FDX_MASK (1 << ETH_IMPOV_FDX_SHIFT) +#define ETH_IMPOV_100_SHIFT 2 +#define ETH_IMPOV_100_MASK (1 << ETH_IMPOV_100_SHIFT) +#define ETH_IMPOV_1000_SHIFT 3 +#define ETH_IMPOV_1000_MASK (1 << ETH_IMPOV_1000_SHIFT) +#define ETH_IMPOV_RXFLOW_SHIFT 4 +#define ETH_IMPOV_RXFLOW_MASK (1 << ETH_IMPOV_RXFLOW_SHIFT) +#define ETH_IMPOV_TXFLOW_SHIFT 5 +#define ETH_IMPOV_TXFLOW_MASK (1 << ETH_IMPOV_TXFLOW_SHIFT) +#define ETH_IMPOV_FORCE_SHIFT 7 +#define ETH_IMPOV_FORCE_MASK (1 << ETH_IMPOV_FORCE_SHIFT) + +/* Port override Register */ +#define ETH_PORTOV_REG(x) (0x58 + (x)) +#define ETH_PORTOV_LINKUP_SHIFT 0 +#define ETH_PORTOV_LINKUP_MASK (1 << ETH_PORTOV_LINKUP_SHIFT) +#define ETH_PORTOV_FDX_SHIFT 1 +#define ETH_PORTOV_FDX_MASK (1 << ETH_PORTOV_FDX_SHIFT) +#define ETH_PORTOV_100_SHIFT 2 +#define ETH_PORTOV_100_MASK (1 << ETH_PORTOV_100_SHIFT) +#define ETH_PORTOV_1000_SHIFT 3 +#define ETH_PORTOV_1000_MASK (1 << ETH_PORTOV_1000_SHIFT) +#define ETH_PORTOV_RXFLOW_SHIFT 4 +#define ETH_PORTOV_RXFLOW_MASK (1 << ETH_PORTOV_RXFLOW_SHIFT) +#define ETH_PORTOV_TXFLOW_SHIFT 5 +#define ETH_PORTOV_TXFLOW_MASK (1 << ETH_PORTOV_TXFLOW_SHIFT) +#define ETH_PORTOV_ENABLE_SHIFT 6 +#define ETH_PORTOV_ENABLE_MASK (1 << ETH_PORTOV_ENABLE_SHIFT) + +/* Port RGMII control register */ +#define ETH_RGMII_CTRL_REG(x) (0x60 + (x)) +#define ETH_RGMII_CTRL_GMII_CLK_EN (1 << 7) +#define ETH_RGMII_CTRL_MII_OVERRIDE_EN (1 << 6) +#define ETH_RGMII_CTRL_MII_MODE_MASK (3 << 4) +#define ETH_RGMII_CTRL_RGMII_MODE (0 << 4) +#define ETH_RGMII_CTRL_MII_MODE (1 << 4) +#define ETH_RGMII_CTRL_RVMII_MODE (2 << 4) +#define ETH_RGMII_CTRL_TIMING_SEL_EN (1 << 0) + +/* Port RGMII timing register */ +#define ENETSW_RGMII_TIMING_REG(x) (0x68 + (x)) + +/* MDIO control register */ +#define MII_SC_REG 0xb0 +#define MII_SC_EXT_SHIFT 16 +#define MII_SC_EXT_MASK (1 << MII_SC_EXT_SHIFT) +#define MII_SC_REG_SHIFT 20 +#define MII_SC_PHYID_SHIFT 25 +#define MII_SC_RD_SHIFT 30 +#define MII_SC_RD_MASK (1 << MII_SC_RD_SHIFT) +#define MII_SC_WR_SHIFT 31 +#define MII_SC_WR_MASK (1 << MII_SC_WR_SHIFT) + +/* MDIO data register */ +#define MII_DAT_REG 0xb4 + +/* MDIO 1000BASE-T control/status */ +#define MII_ADVERTISE_1000 (ADVERTISE_1000HALF |\ + ADVERTISE_1000FULL) +#define MII_LPA_1000 (LPA_1000HALF | LPA_1000FULL) + +/* Global Management Configuration Register */ +#define ETH_GMCR_REG 0x200 +#define ETH_GMCR_RST_MIB_SHIFT 0 +#define ETH_GMCR_RST_MIB_MASK (1 << ETH_GMCR_RST_MIB_SHIFT) + +/* Jumbo control register port mask register */ +#define ETH_JMBCTL_PORT_REG 0x4004 + +/* Jumbo control mib good frame register */ +#define ETH_JMBCTL_MAXSIZE_REG 0x4008 + +/* ETH port data */ +struct bcm_enetsw_port { + bool used; + const char *name; + /* Config */ + bool bypass_link; + int force_speed; + bool force_duplex_full; + /* PHY */ + int phy_id; +}; + +/* ETH data */ +struct bcm6368_eth_priv { + struct udevice *dev; + void __iomem *base; + /* RX */ + uint8_t rx_desc; + uint8_t rx_pend; + int rx_ret[ETH_RX_DESC]; + /* DMA */ + struct dma rx_dma; + struct dma tx_dma; + /* Ports */ + uint8_t num_ports; + struct bcm_enetsw_port used_ports[ETH_MAX_PORT]; + int sw_port_link[ETH_MAX_PORT]; + bool rgmii_override; + bool rgmii_timing; + /* PHY */ + int phy_id; +}; + +DECLARE_GLOBAL_DATA_PTR; + +static inline bool bcm_enet_port_is_rgmii(int portid) +{ + return portid >= ETH_RGMII_PORT0; +} + +static int bcm6368_mdio_read(struct bcm6368_eth_priv *priv, uint8_t ext, + int phy_id, int reg) +{ + uint32_t val; + + writel_be(0, priv->base + MII_SC_REG); + + val = MII_SC_RD_MASK | + (phy_id << MII_SC_PHYID_SHIFT) | + (reg << MII_SC_REG_SHIFT); + + if (ext) + val |= MII_SC_EXT_MASK; + + writel_be(val, priv->base + MII_SC_REG); + udelay(50); + + return readw_be(priv->base + MII_DAT_REG); +} + +static int bcm6368_mdio_write(struct bcm6368_eth_priv *priv, uint8_t ext, + int phy_id, int reg, u16 data) +{ + uint32_t val; + + writel_be(0, priv->base + MII_SC_REG); + + val = MII_SC_WR_MASK | + (phy_id << MII_SC_PHYID_SHIFT) | + (reg << MII_SC_REG_SHIFT); + + if (ext) + val |= MII_SC_EXT_MASK; + + val |= data; + + writel_be(val, priv->base + MII_SC_REG); + udelay(50); + + return 0; +} + +static int bcm6368_eth_free_pkt(struct udevice *dev, uchar *packet, int len) +{ + struct bcm6368_eth_priv *priv = dev_get_priv(dev); + + /* sanity check */ + if (packet != net_rx_packets[priv->rx_pend]) { + pr_err("rx_pend %d: packet is not matched,\n", priv->rx_pend); + return -EAGAIN; + } + + /* free pending packet */ + priv->rx_ret[priv->rx_pend] = 0; + priv->rx_pend = (priv->rx_pend + 1) % ETH_RX_DESC; + + return 0; +} + +static int _bcm6368_eth_recv(struct bcm6368_eth_priv *priv) +{ + uint8_t pkt = priv->rx_desc; + + /* check if packet is free */ + if (priv->rx_ret[pkt] > 0) + return -EAGAIN; + + /* try to receive a new packet */ + priv->rx_ret[pkt] = dma_receive(&priv->rx_dma, + (void **)&net_rx_packets[pkt], + NULL); + if (priv->rx_ret[pkt] > 0) + priv->rx_desc = (priv->rx_desc + 1) % ETH_RX_DESC; + + return priv->rx_ret[pkt]; +} + +static int bcm6368_eth_recv(struct udevice *dev, int flags, uchar **packetp) +{ + struct bcm6368_eth_priv *priv = dev_get_priv(dev); + + /* receive packets if queue is empty */ + if (priv->rx_ret[priv->rx_pend] <= 0) { + uint8_t pkt_cnt = 0; + + /* try to receive packets */ + while (_bcm6368_eth_recv(priv) > 0) + pkt_cnt++; + + dma_prepare_rcv_buf(&priv->rx_dma, NULL, 0); + + if (pkt_cnt) + debug("%s: received %u packet(s)\n", __func__, pkt_cnt); + } + + /* return current packet */ + if (priv->rx_ret[priv->rx_pend] > 0) + *packetp = net_rx_packets[priv->rx_pend]; + + return priv->rx_ret[priv->rx_pend]; +} + +static int bcm6368_eth_send(struct udevice *dev, void *packet, int length) +{ + struct bcm6368_eth_priv *priv = dev_get_priv(dev); + + length = max(length, ETH_ZLEN); + + return dma_send(&priv->tx_dma, packet, length, NULL); +} + +static int bcm6368_eth_adjust_link(struct bcm6368_eth_priv *priv) +{ + unsigned int i; + + for (i = 0; i < priv->num_ports; i++) { + struct bcm_enetsw_port *port; + int val, j, up, advertise, lpa, speed, duplex, media; + int external_phy = bcm_enet_port_is_rgmii(i); + u8 override; + + port = &priv->used_ports[i]; + if (!port->used) + continue; + + if (port->bypass_link) + continue; + + /* dummy read to clear */ + for (j = 0; j < 2; j++) + val = bcm6368_mdio_read(priv, external_phy, + port->phy_id, MII_BMSR); + + if (val == 0xffff) + continue; + + up = (val & BMSR_LSTATUS) ? 1 : 0; + if (!(up ^ priv->sw_port_link[i])) + continue; + + priv->sw_port_link[i] = up; + + /* link changed */ + if (!up) { + dev_info(&priv->pdev->dev, "link DOWN on %s\n", + port->name); + writeb_be(ETH_PORTOV_ENABLE_MASK, + priv->base + ETH_PORTOV_REG(i)); + writeb_be(ETH_PTCTRL_RXDIS_MASK | + ETH_PTCTRL_TXDIS_MASK, + priv->base + ETH_PTCTRL_REG(i)); + continue; + } + + advertise = bcm6368_mdio_read(priv, external_phy, port->phy_id, + MII_ADVERTISE); + + lpa = bcm6368_mdio_read(priv, external_phy, port->phy_id, + MII_LPA); + + /* figure out media and duplex from advertise and LPA values */ + media = mii_nway_result(lpa & advertise); + duplex = (media & ADVERTISE_FULL) ? 1 : 0; + + if (media & (ADVERTISE_100FULL | ADVERTISE_100HALF)) + speed = 100; + else + speed = 10; + + if (val & BMSR_ESTATEN) { + advertise = bcm6368_mdio_read(priv, external_phy, + port->phy_id, MII_CTRL1000); + + lpa = bcm6368_mdio_read(priv, external_phy, + port->phy_id, MII_STAT1000); + + if ((advertise & MII_ADVERTISE_1000) && + (lpa & MII_LPA_1000)) { + speed = 1000; + duplex = (lpa & LPA_1000FULL); + } + } + + pr_alert("link UP on %s, %dMbps, %s-duplex\n", + port->name, speed, duplex ? "full" : "half"); + + override = ETH_PORTOV_ENABLE_MASK | + ETH_PORTOV_LINKUP_MASK; + + if (speed == 1000) + override |= ETH_PORTOV_1000_MASK; + else if (speed == 100) + override |= ETH_PORTOV_100_MASK; + if (duplex) + override |= ETH_PORTOV_FDX_MASK; + + writeb_be(override, priv->base + ETH_PORTOV_REG(i)); + writeb_be(0, priv->base + ETH_PTCTRL_REG(i)); + } + + return 0; +} + +static int bcm6368_eth_start(struct udevice *dev) +{ + struct bcm6368_eth_priv *priv = dev_get_priv(dev); + int i; + u32 val; + + priv->rx_desc = 0; + priv->rx_pend = 0; + for (i = 0; i < ETH_RX_DESC; i++) + priv->rx_ret[i] = 0; + + /* disable all ports */ + for (i = 0; i < priv->num_ports; i++) { + writeb_be(ETH_PORTOV_ENABLE_MASK, + priv->base + ETH_PORTOV_REG(i)); + writeb_be(ETH_PTCTRL_RXDIS_MASK | + ETH_PTCTRL_TXDIS_MASK, + priv->base + ETH_PTCTRL_REG(i)); + + priv->sw_port_link[i] = 0; + } + + /* enable external ports */ + for (i = ETH_RGMII_PORT0; i < priv->num_ports; i++) { + u8 rgmii_ctrl; + + if (!priv->used_ports[i].used) + continue; + + rgmii_ctrl = readb_be(priv->base + ETH_RGMII_CTRL_REG(i)); + rgmii_ctrl |= ETH_RGMII_CTRL_GMII_CLK_EN; + if (priv->rgmii_override) + rgmii_ctrl |= ETH_RGMII_CTRL_MII_OVERRIDE_EN; + if (priv->rgmii_timing) + rgmii_ctrl |= ETH_RGMII_CTRL_TIMING_SEL_EN; + writeb_be(rgmii_ctrl, priv->base + ETH_RGMII_CTRL_REG(i)); + } + + /* reset mib */ + val = readb_be(priv->base + ETH_GMCR_REG); + val |= ETH_GMCR_RST_MIB_MASK; + writeb_be(val, priv->base + ETH_GMCR_REG); + mdelay(1); + val &= ~ETH_GMCR_RST_MIB_MASK; + writeb_be(val, priv->base + ETH_GMCR_REG); + mdelay(1); + + /* force CPU port state */ + val = readb_be(priv->base + ETH_IMPOV_REG); + val |= ETH_IMPOV_FORCE_MASK | ETH_IMPOV_LINKUP_MASK; + writeb_be(val, priv->base + ETH_IMPOV_REG); + + /* enable switch forward engine */ + val = readb_be(priv->base + ETH_SWMODE_REG); + val |= ETH_SWMODE_FWD_EN_MASK; + writeb_be(val, priv->base + ETH_SWMODE_REG); + + /* enable jumbo on all ports */ + writel_be(0x1ff, priv->base + ETH_JMBCTL_PORT_REG); + writew_be(9728, priv->base + ETH_JMBCTL_MAXSIZE_REG); + + /* enable dma rx channel */ + dma_enable(&priv->rx_dma); + + /* enable dma tx channel */ + dma_enable(&priv->tx_dma); + + /* apply override config for bypass_link ports here. */ + for (i = 0; i < priv->num_ports; i++) { + struct bcm_enetsw_port *port; + u8 override; + port = &priv->used_ports[i]; + if (!port->used) + continue; + + if (!port->bypass_link) + continue; + + override = ETH_PORTOV_ENABLE_MASK | + ETH_PORTOV_LINKUP_MASK; + + switch (port->force_speed) { + case 1000: + override |= ETH_PORTOV_1000_MASK; + break; + case 100: + override |= ETH_PORTOV_100_MASK; + break; + case 10: + break; + default: + pr_warn("invalid forced speed on port %s: assume 10\n", + port->name); + break; + } + + if (port->force_duplex_full) + override |= ETH_PORTOV_FDX_MASK; + + writeb_be(override, priv->base + ETH_PORTOV_REG(i)); + writeb_be(0, priv->base + ETH_PTCTRL_REG(i)); + } + + bcm6368_eth_adjust_link(priv); + + return 0; +} + +static void bcm6368_eth_stop(struct udevice *dev) +{ + struct bcm6368_eth_priv *priv = dev_get_priv(dev); + + /* disable dma rx channel */ + dma_disable(&priv->rx_dma); + + /* disable dma tx channel */ + dma_disable(&priv->tx_dma); +} + +static const struct eth_ops bcm6368_eth_ops = { + .free_pkt = bcm6368_eth_free_pkt, + .recv = bcm6368_eth_recv, + .send = bcm6368_eth_send, + .start = bcm6368_eth_start, + .stop = bcm6368_eth_stop, +}; + +static const struct udevice_id bcm6368_eth_ids[] = { + { .compatible = "brcm,bcm6368-enet", }, + { /* sentinel */ } +}; + +static bool bcm6368_phy_is_external(struct bcm6368_eth_priv *priv, + int phy_id) +{ + uint8_t i; + + for (i = 0; i < priv->num_ports; ++i) { + if (!priv->used_ports[i].used) + continue; + if (priv->used_ports[i].phy_id == phy_id) + return bcm_enet_port_is_rgmii(i); + } + + return true; +} + +static int bcm6368_mii_mdio_read(struct mii_dev *bus, int addr, int devaddr, + int reg) +{ + struct bcm6368_eth_priv *priv = bus->priv; + bool ext = bcm6368_phy_is_external(priv, addr); + + return bcm6368_mdio_read(priv, ext, addr, reg); +} + +static int bcm6368_mii_mdio_write(struct mii_dev *bus, int addr, int devaddr, + int reg, u16 data) +{ + struct bcm6368_eth_priv *priv = bus->priv; + bool ext = bcm6368_phy_is_external(priv, addr); + + return bcm6368_mdio_write(priv, ext, addr, reg, data); +} + +static int bcm6368_mdio_init(const char *name, struct bcm6368_eth_priv *priv) +{ + struct mii_dev *bus; + + bus = mdio_alloc(); + if (!bus) { + pr_err("%s: failed to allocate MDIO bus\n", __func__); + return -ENOMEM; + } + + bus->read = bcm6368_mii_mdio_read; + bus->write = bcm6368_mii_mdio_write; + bus->priv = priv; + snprintf(bus->name, sizeof(bus->name), "%s", name); + + return mdio_register(bus); +} + +static int bcm6368_eth_probe(struct udevice *dev) +{ + struct eth_pdata *pdata = dev_get_platdata(dev); + struct bcm6368_eth_priv *priv = dev_get_priv(dev); + void *blob = (void *)gd->fdt_blob; + fdt_addr_t addr; + int node = dev_of_offset(dev); + int ret, i; + unsigned int num_ports; + + /* get base address */ + addr = devfdt_get_addr(dev); + if (addr == FDT_ADDR_T_NONE) + return -EINVAL; + + /* get number of ports */ + num_ports = fdtdec_get_uint(gd->fdt_blob, node, "brcm,num-ports", + ETH_MAX_PORT); + if (!num_ports || num_ports > ETH_MAX_PORT) + return -EINVAL; + + /* get dma channels */ + ret = dma_get_by_name(dev, "tx", &priv->tx_dma); + if (ret) + return -EINVAL; + + ret = dma_get_by_name(dev, "rx", &priv->rx_dma); + if (ret) + return -EINVAL; + + /* try to enable clocks */ + for (i = 0; ; i++) { + struct clk clk; + int ret; + + ret = clk_get_by_index(dev, i, &clk); + if (ret < 0) + break; + if (clk_enable(&clk)) + pr_err("failed to enable clock %d\n", i); + clk_free(&clk); + } + + /* try to perform resets */ + for (i = 0; ; i++) { + struct reset_ctl reset; + int ret; + + ret = reset_get_by_index(dev, i, &reset); + if (ret < 0) + break; + if (reset_deassert(&reset)) + pr_err("failed to deassert reset %d\n", i); + reset_free(&reset); + } + + /* set priv data */ + priv->dev = dev; + + priv->base = ioremap(addr, 0); + pdata->iobase = (phys_addr_t) priv->base; + + priv->num_ports = num_ports; + + if (fdtdec_get_bool(gd->fdt_blob, i, "brcm,rgmii-override")) + priv->rgmii_override = true; + if (fdtdec_get_bool(gd->fdt_blob, i, "brcm,rgmii-timing")) + priv->rgmii_timing = true; + + /* get ports */ + for (i = fdt_first_subnode(blob, node); + i > 0; + i = fdt_next_subnode(blob, i)) { + const char *comp; + const char *label; + unsigned int p; + int phy_id; + int speed; + + comp = fdt_getprop(blob, i, "compatible", NULL); + if (!comp || memcmp(comp, ETH_PORT_STR, sizeof(ETH_PORT_STR))) + continue; + + p = fdtdec_get_uint(gd->fdt_blob, i, "reg", + ETH_MAX_PORT); + if (p >= num_ports) + return -EINVAL; + + label = fdt_getprop(blob, i, "label", NULL); + if (!label) { + debug("%s: node %s has no label\n", __func__, + fdt_get_name(blob, i, NULL)); + return -EINVAL; + } + + phy_id = fdtdec_get_int(gd->fdt_blob, i, "brcm,phy-id", -1); + + priv->used_ports[p].used = true; + priv->used_ports[p].name = label; + priv->used_ports[p].phy_id = phy_id; + + if (fdtdec_get_bool(gd->fdt_blob, i, "full-duplex")) + priv->used_ports[p].force_duplex_full = true; + if (fdtdec_get_bool(gd->fdt_blob, i, "bypass-link")) + priv->used_ports[p].bypass_link = true; + speed = fdtdec_get_int(gd->fdt_blob, i, "speed", 0); + if (speed) + priv->used_ports[p].force_speed = speed; + } + + /* init mii bus */ + ret = bcm6368_mdio_init(dev->name, priv); + if (ret) + return ret; + + return 0; +} + +U_BOOT_DRIVER(bcm6368_eth) = { + .name = "bcm6368_eth", + .id = UCLASS_ETH, + .of_match = bcm6368_eth_ids, + .ops = &bcm6368_eth_ops, + .platdata_auto_alloc_size = sizeof(struct eth_pdata), + .priv_auto_alloc_size = sizeof(struct bcm6368_eth_priv), + .probe = bcm6368_eth_probe, +}; From patchwork Wed Nov 28 18:23:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004744 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="NUBrFA8w"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qGy73kdz9ryk for ; Thu, 29 Nov 2018 05:40:58 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id ADB81C22331; Wed, 28 Nov 2018 18:28:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id A09FEC22346; Wed, 28 Nov 2018 18:25:07 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 43991C2233A; Wed, 28 Nov 2018 18:24:17 +0000 (UTC) Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by lists.denx.de (Postfix) with ESMTPS id 84BB3C222F7 for ; Wed, 28 Nov 2018 18:24:13 +0000 (UTC) Received: by mail-wm1-f67.google.com with SMTP id g67so3562780wmd.2 for ; Wed, 28 Nov 2018 10:24:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NHrKkDQ2KRarpULsAy9cK7uUvurJvGvXzKhGL8Tlry4=; b=NUBrFA8wM/gW9X/6Xvl2DpqCd+2xZ3EjB7yR6bcBuySMTiJgTAmliprY64Jx+E3wWc cPPO3zrxu53wqmnV+q1fJ+vSMn6RUf3VrgeIrboqrJ8n6wOvWV+pjULnGHjYj2rtw414 o5H9HwPTBxjA0izU2MMuTYg4n7RIOTjLxQD4a5NqoT0oW13bC83t+vnLir3seV6eWEOo J7YRFLn2xDQc76lGMo27XaV0UIkg0tMxmxi4ZyvtUkF2UQBzLbfK1xy8DvwCNbnzzVH9 nABPowG8fliL1TyvNJVZu5VR9jm7XAaXRKcaBbBWkh67FkK5gRcKBwTomzkMrCxRvsFC TM1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NHrKkDQ2KRarpULsAy9cK7uUvurJvGvXzKhGL8Tlry4=; b=iVhKAndoMDiNk5776phZ2xDqm2tqi42+PXmYOUA7i4dt9xaCvCvVvsWxkIvTAqNBCg yBQN9iT0+1fKRu0+VUWZBeEexHW7onG7/GMdKZ75MIZvDCWDy0q3Ffkh7FPvmXfcwkwv lyNLKEK6ZcATiESHQ+GqrYtAsB8bOmMz9U5DNOpVE37i2Rcue/o365WNXR6OUyZEg9SO HeXg04Xqks2TKJXdOwhZElK5Z/Gj/3TT/lLMelKlSpKxJNyF3UUhFmb59JKVfc0K5UtL f1Be9JjYnIDgtxqPZ4SCE6FKe2sV/ETl3JmLOOxdCaWc9F0UQdAfPMAEKQVDHwPu6fnN nuOg== X-Gm-Message-State: AA+aEWYaxDuaMU4S3Ode3qeMRao+tTq6YN30PZWcMD19o9pSPY+GijqP wddgKIcYBG7ZQIMPhup5sp9XwQJB X-Google-Smtp-Source: AFSGD/URggStz3+VitNF/NWdl9aNLtKzBu0TqK13uV7JKQvTpuxlmwtzhbByZ03HgzZzZK0Bq4DU1Q== X-Received: by 2002:a7b:c8d7:: with SMTP id f23mr3756679wml.11.1543429453022; Wed, 28 Nov 2018 10:24:13 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:12 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:40 +0100 Message-Id: <20181128182349.10330-20-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 19/28] bmips: bcm6368: add support for bcm6368-enet X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/brcm,bcm6368.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/mips/dts/brcm,bcm6368.dtsi b/arch/mips/dts/brcm,bcm6368.dtsi index 30047f6360..89590d6ff9 100644 --- a/arch/mips/dts/brcm,bcm6368.dtsi +++ b/arch/mips/dts/brcm,bcm6368.dtsi @@ -205,5 +205,24 @@ #dma-cells = <1>; dma-channels = <8>; }; + + enet: ethernet@10f00000 { + compatible = "brcm,bcm6368-enet"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x10f00000 0x10000>; + clocks = <&periph_clk BCM6368_CLK_SWPKT_USB>, + <&periph_clk BCM6368_CLK_SWPKT_SAR>, + <&periph_clk BCM6368_CLK_ROBOSW>; + resets = <&periph_rst BCM6368_RST_SWITCH>, + <&periph_rst BCM6368_RST_EPHY>; + dmas = <&iudma BCM6368_DMA_ENETSW_RX>, + <&iudma BCM6368_DMA_ENETSW_TX>; + dma-names = "rx", + "tx"; + brcm,num-ports = <6>; + + status = "disabled"; + }; }; }; From patchwork Wed Nov 28 18:23:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004745 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="bls5yZLW"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qJF10K1z9s0n for ; Thu, 29 Nov 2018 05:42:05 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id D9E42C222F2; Wed, 28 Nov 2018 18:31:07 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id D8967C22347; Wed, 28 Nov 2018 18:25:38 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 892ECC22310; Wed, 28 Nov 2018 18:24:21 +0000 (UTC) Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by lists.denx.de (Postfix) with ESMTPS id 9BCCCC22306 for ; Wed, 28 Nov 2018 18:24:14 +0000 (UTC) Received: by mail-wr1-f68.google.com with SMTP id t27so19359260wra.6 for ; Wed, 28 Nov 2018 10:24:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SnyGrLO2P0kuvvJHdSldlogPfJq2j17ie8e70DCV170=; b=bls5yZLW7FfZewKpGunXkMaioKq08afzwTIpptmkX4AKL4Ln32KuE+EyH3Vu0NaF9t d9NzhcENtEg3qSU7PZpDP9Gi9bgr2CUfrDpdRF3Dn8XfQpRq5HqhM3AgzhOTIT2Ucrtb z2HRqBQX/o6+9wRRzuUjJOSEGqZMJJwyXY6m13wF9Twhc70QbLyO4dbWOeJzeUaUngiP G939RxXNENDzUzHvRhq5Cado4lhEuuh2foqtILFQM/M35nISuNm9lo0ctzYEyL1+E0UL GIjNRULEl0CFl6NFz00EN32ngUAnjPUH8tbQUavUu1coGxiw/NA6SCaJ10XNX5xykXho lQRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SnyGrLO2P0kuvvJHdSldlogPfJq2j17ie8e70DCV170=; b=SphQjr6JAvYO00XI8AzmEbFjAjgzc5YiraAY5+59dy6RlEWcymYBs6wmY6uwG9vlaT t6rkTMPWbkHvq2IjKDFY3uTnkOoqn1v6XEsykKtZPu8k+1zIlmQ6jRPPZGRMNNMlJez3 K/MhdEcBDo6Y3zC58XuQOWFl4e70r6xJcc9pFWqQmzc8s+EVh7IlzGh4+uZUkv6WIoMp WZamlF9z/Vbx6XsFokU/ahXj226AyJSSjNgKdZsy2Zzb3K4S3hWRS3Zbc5f1FHzhqGRf TPNwtADSgySsbxpOvBdPtSiKifRuj6xlI849rVS4QgPUVR6qZIdFYKU1MZEaUOEMjK9D L3Cw== X-Gm-Message-State: AA+aEWbVE7psHdkCmH67x0GElSRf0bcKrtSNBCLR2P7yt3a0CfYc4RgD VaKyR1Wr2pEXPxvhTaj7hJCbe4b8 X-Google-Smtp-Source: AFSGD/UrK94GF1+w3QqqZ8wtol0mDi3ITD9LPqnm8uDx7xbdj8JBx5evx6qOMgJeAlyWgqObdkud7w== X-Received: by 2002:adf:b201:: with SMTP id u1mr24187422wra.165.1543429454098; Wed, 28 Nov 2018 10:24:14 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:13 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:41 +0100 Message-Id: <20181128182349.10330-21-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 20/28] bmips: enable wap-5813n enet support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/comtrend,wap-5813n.dts | 14 ++++++++++++++ configs/comtrend_wap5813n_ram_defconfig | 8 +++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/arch/mips/dts/comtrend,wap-5813n.dts b/arch/mips/dts/comtrend,wap-5813n.dts index bd41dab9f8..7e835b28d2 100644 --- a/arch/mips/dts/comtrend,wap-5813n.dts +++ b/arch/mips/dts/comtrend,wap-5813n.dts @@ -54,6 +54,20 @@ status = "okay"; }; +&enet { + status = "okay"; + + port@4 { + compatible = "brcm,enetsw-port"; + reg = <4>; + label = "rgmii"; + brcm,phy-id = <0xff>; + speed = <1000>; + full-duplex; + bypass-link; + }; +}; + &gpio0 { status = "okay"; }; diff --git a/configs/comtrend_wap5813n_ram_defconfig b/configs/comtrend_wap5813n_ram_defconfig index 987e4c3fbc..fd5107bb7d 100644 --- a/configs/comtrend_wap5813n_ram_defconfig +++ b/configs/comtrend_wap5813n_ram_defconfig @@ -25,11 +25,14 @@ CONFIG_CMD_LICENSE=y CONFIG_CMD_MEMINFO=y # CONFIG_CMD_LOADS is not set CONFIG_CMD_USB=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y # CONFIG_CMD_MISC is not set CONFIG_OF_EMBED=y CONFIG_DEFAULT_DEVICE_TREE="comtrend,wap-5813n" -# CONFIG_NET is not set +CONFIG_NET_RANDOM_ETHADDR=y # CONFIG_DM_DEVICE_REMOVE is not set +CONFIG_BCM6348_IUDMA=y CONFIG_DM_GPIO=y CONFIG_BCM6345_GPIO=y CONFIG_LED=y @@ -40,6 +43,9 @@ CONFIG_FLASH_CFI_DRIVER=y CONFIG_CFI_FLASH=y CONFIG_SYS_FLASH_PROTECTION=y CONFIG_SYS_FLASH_CFI=y +CONFIG_DM_ETH=y +CONFIG_PHY_GIGE=y +CONFIG_BCM6368_ETH=y CONFIG_PHY=y CONFIG_BCM6368_USBH_PHY=y CONFIG_DM_RESET=y From patchwork Wed Nov 28 18:23:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004730 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="rmfooUFK"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434q8w519nz9s0n for ; Thu, 29 Nov 2018 05:35:44 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 476E6C222F3; Wed, 28 Nov 2018 18:31:39 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 3C61EC22361; Wed, 28 Nov 2018 18:25:41 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B9170C222E2; Wed, 28 Nov 2018 18:24:21 +0000 (UTC) Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by lists.denx.de (Postfix) with ESMTPS id CCCF4C222CF for ; Wed, 28 Nov 2018 18:24:15 +0000 (UTC) Received: by mail-wr1-f65.google.com with SMTP id r10so27304120wrs.10 for ; Wed, 28 Nov 2018 10:24:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7fAxvTF6NXof0XNdlsXJwvmb75WYS0PhyLe8Wmiy80o=; b=rmfooUFKqP8cFF9MPBMDFx8UPU2n1CI2ANfBY8xfAlM1B43SLu2i6MmTUAlx/8PSYg NjWP+vKDvd9yYM8a3rJd/2qfXCYkHsuxIaa2P+zz3X+kvGKsNWnTAn2OYlCPkkAtqql3 B1pNyZAVkBSwS7NLdQGFyw4AG/KkXao/00qtYULV6AI8NxmfbUK4rJqcbDhi504CUDW1 biKR5O1OwkpWNH8+ZjgB8BaZHAW9pNyeT8zaageIkt2RJs6DymNPnY7oHcHXL25k21Sv 6a/metOQAb6QD5hy3p9CpGbrYUkabjJPOodXwFJwVYyqo9M4u4Fc8zrDGUJpFrV4v3+Y V46A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7fAxvTF6NXof0XNdlsXJwvmb75WYS0PhyLe8Wmiy80o=; b=RBFBObC0jlHO5njCMp3UCSk+qBBReof9Vv2IhZWhFTZN4YNtvcql6kJrsiUfCgRkhJ Ytp7G3EXGbXlkpV9GxwiCH6JzclwLCgPTeHDzd5a5QXrEGyXAR1hgzDmoSPu7Aaczmw8 OnuBYr6zMujocX8eWQS84ZmeLTpRttI7acJlMxUAIX4SxuB0QBtixtyaD1FYTy3UuiNC Hm4C6cqO4cah1X8OAVEhLCXIvgC9YiDry4/DUd/qexqeYaqaal9WAxRevcmQe1dcTvxq g50lOGiIKnyHIz5U3y3uYBfjMBs8Q9UgOIolDp3HhvOdH2MDYXCJVnx/mBNxj8qJ2xOi 1YzQ== X-Gm-Message-State: AA+aEWahJsD2bZLw3TkG/MgWlcFUGL0rHUg+oU0Z6o1bw96pAP0PE0gO wmuITC9axg02HPn2A0AN9d68N7lq X-Google-Smtp-Source: AFSGD/UTiZnHZIvRJ5x1WSZ8hprY3GxW62eproVOlr+kgoyBGpeyEmgBnKxdrlf64XhB4slkqyxCiA== X-Received: by 2002:adf:f449:: with SMTP id f9mr32996339wrp.40.1543429455243; Wed, 28 Nov 2018 10:24:15 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:14 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:42 +0100 Message-Id: <20181128182349.10330-22-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 21/28] bmips: bcm6328: add support for bcm6368-enet X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/brcm,bcm6328.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/arch/mips/dts/brcm,bcm6328.dtsi b/arch/mips/dts/brcm,bcm6328.dtsi index 6fa49e22bb..50beed4171 100644 --- a/arch/mips/dts/brcm,bcm6328.dtsi +++ b/arch/mips/dts/brcm,bcm6328.dtsi @@ -200,5 +200,22 @@ #dma-cells = <1>; dma-channels = <8>; }; + + enet: ethernet@10e00000 { + compatible = "brcm,bcm6368-enet"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x10e00000 0x10000>; + clocks = <&periph_clk BCM6328_CLK_ROBOSW>; + resets = <&periph_rst BCM6328_RST_ENETSW>, + <&periph_rst BCM6328_RST_EPHY>; + dmas = <&iudma BCM6328_DMA_ENETSW_RX>, + <&iudma BCM6328_DMA_ENETSW_TX>; + dma-names = "rx", + "tx"; + brcm,num-ports = <5>; + + status = "disabled"; + }; }; }; From patchwork Wed Nov 28 18:23:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004742 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="tvRQx6Hg"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qGW40Myz9ryk for ; Thu, 29 Nov 2018 05:40:35 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 41222C22315; Wed, 28 Nov 2018 18:29:24 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 8ED12C2233C; Wed, 28 Nov 2018 18:25:10 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 391F4C222D4; Wed, 28 Nov 2018 18:24:23 +0000 (UTC) Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by lists.denx.de (Postfix) with ESMTPS id AEED6C222EF for ; Wed, 28 Nov 2018 18:24:16 +0000 (UTC) Received: by mail-wr1-f68.google.com with SMTP id l9so27298810wrt.13 for ; Wed, 28 Nov 2018 10:24:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EqY4Tzwz1NGKFNI/hmlnX9LkpotCywLkbwoAcgMIRD0=; b=tvRQx6HgZ6ZC+BSfkkYrYYKUObusxuRIkPQln51/pc1+sUmqPVUpBLQU5/0hX6rNrv RDyeGQNVbKpek8J+jLdIr7to9U7Q8y+Bdy8I8Du7h4PBBtCJD4gcBbAPCHBqd+LpBa9u vPrMtVL8tG+5yur4l/a6nBIzhJs2pEno6Sl6IC00s5KMK71yOUaQmcaBWnBvtSUPgR7c Lw1tOU+EW1W7fCq+lvDGMqt1S/95QlY3sIJJ+xZQ8rEthUTglmVWV9+8QAfTOIJQ1yl/ YFwrz/ktMICpY/2MUray8c97ItNwguYgNguqdqY7kBYGtlGMEEJWnwe2hh1fUWvntPrc Tndw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=EqY4Tzwz1NGKFNI/hmlnX9LkpotCywLkbwoAcgMIRD0=; b=koOqvLkXgi0KRUYPCHipbvrynDz9B/0/CZq9Sp2Km8nw/vTxn3iZeA4PO0LVHBoG2f DWlGMEZZM6o7ciOFhctL1vWFaFSf+hQlXETeiy/c/oe+bHvLTH/HCgCABrvlHT9p2vZz 9NDKo1CwL573Vga1ivhXlpNAlrBXGGqFy+zJGjD8yfkkDSwcj9hwvJ0fJqHn72lnDDhX BweAzEF0wyULOxGa6QqyZjYhaTmbpta5ePF64UA05cGEg93pL+ptNcYD0xF8BCJe7za1 5FGDk85oKgM0UbRnRVPDRnlvSk2P7C1gLI0PFHOVr286Hz4KmXiIjmRh7ZNlnJiMSpc4 kUCg== X-Gm-Message-State: AA+aEWa2a1PK5mc35fAfBDHYZSq6DWSZpkFBJjmqjVr/g6X65Pr/Skt9 u7X/ZIoaHQxSWFphFc/ExhPSxJeN X-Google-Smtp-Source: AFSGD/VZDzEPVrCqO7YoxEck3uxWkjaaQHwskdC3tuVcaqGly8hoSBOGuxaE2ijHpq2dsybY/pmxnQ== X-Received: by 2002:adf:e18d:: with SMTP id k13mr32879368wri.36.1543429456224; Wed, 28 Nov 2018 10:24:16 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:15 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:43 +0100 Message-Id: <20181128182349.10330-23-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 22/28] bmips: enable ar-5387un enet support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/comtrend,ar-5387un.dts | 32 ++++++++++++++++++++++++++++++++ configs/comtrend_ar5387un_ram_defconfig | 7 ++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/arch/mips/dts/comtrend,ar-5387un.dts b/arch/mips/dts/comtrend,ar-5387un.dts index e993b5cd89..03e3851ab1 100644 --- a/arch/mips/dts/comtrend,ar-5387un.dts +++ b/arch/mips/dts/comtrend,ar-5387un.dts @@ -24,6 +24,38 @@ status = "okay"; }; +&enet { + status = "okay"; + + port@0 { + compatible = "brcm,enetsw-port"; + reg = <0>; + label = "fe1"; + brcm,phy-id = <1>; + }; + + port@1 { + compatible = "brcm,enetsw-port"; + reg = <1>; + label = "fe2"; + brcm,phy-id = <2>; + }; + + port@2 { + compatible = "brcm,enetsw-port"; + reg = <2>; + label = "fe3"; + brcm,phy-id = <3>; + }; + + port@3 { + compatible = "brcm,enetsw-port"; + reg = <3>; + label = "fe4"; + brcm,phy-id = <4>; + }; +}; + &leds { status = "okay"; diff --git a/configs/comtrend_ar5387un_ram_defconfig b/configs/comtrend_ar5387un_ram_defconfig index f129870ca0..5ba401a441 100644 --- a/configs/comtrend_ar5387un_ram_defconfig +++ b/configs/comtrend_ar5387un_ram_defconfig @@ -28,11 +28,14 @@ CONFIG_CMD_MEMINFO=y CONFIG_CMD_SF=y CONFIG_CMD_SPI=y CONFIG_CMD_USB=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y # CONFIG_CMD_MISC is not set CONFIG_OF_EMBED=y CONFIG_DEFAULT_DEVICE_TREE="comtrend,ar-5387un" -# CONFIG_NET is not set +CONFIG_NET_RANDOM_ETHADDR=y # CONFIG_DM_DEVICE_REMOVE is not set +CONFIG_BCM6348_IUDMA=y CONFIG_DM_GPIO=y CONFIG_LED=y CONFIG_LED_BCM6328=y @@ -41,6 +44,8 @@ CONFIG_DM_SPI_FLASH=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_MACRONIX=y CONFIG_SPI_FLASH_MTD=y +CONFIG_DM_ETH=y +CONFIG_BCM6368_ETH=y CONFIG_PHY=y CONFIG_BCM6368_USBH_PHY=y CONFIG_POWER_DOMAIN=y From patchwork Wed Nov 28 18:23:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004746 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="orhx7mql"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qJX6dr2z9ryk for ; Thu, 29 Nov 2018 05:42:20 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 929AFC2231F; Wed, 28 Nov 2018 18:31:55 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 2ED28C2232D; Wed, 28 Nov 2018 18:25:43 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 3C16EC22339; Wed, 28 Nov 2018 18:24:27 +0000 (UTC) Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by lists.denx.de (Postfix) with ESMTPS id 0719DC222F2 for ; Wed, 28 Nov 2018 18:24:18 +0000 (UTC) Received: by mail-wm1-f65.google.com with SMTP id q26so3550090wmf.5 for ; Wed, 28 Nov 2018 10:24:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=PGMuWmkYzI1br1/CqKHvz3WDcXshugH4s1ObEFBAerY=; b=orhx7mqlUUaZib9bC3h8Wsk1ND2bAyI44IV1MUe2SttY44/ujpBamo2kzfCKtZEZEe G0CfcuPGXWamYfed3MIpA8naurvXGr0EMcwz/XTaskPrFBdarG9PgDqdmRTx2H/e4nqS JHDxGBl9bJyfo11vaaQPPMlxc//rI8mloQD5r5XIxojospjlYIDuKeOsgAZP/i0sl+LQ GoQ+cDJlyjPrJcFnXRJuHUec+N1A2pim+z8mwOgkZ+syk0Sk1ErabYstf+fndABEs9F6 eYhxdycBrXQXexmX0SEumBivEunpWotWJtD9jnnSELcJzsuk0oEWuoJ6XqDUW47wrpG6 MMwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=PGMuWmkYzI1br1/CqKHvz3WDcXshugH4s1ObEFBAerY=; b=MM1MLB6XN3zgEGg3X+i6Hxp1kSj4wlwYRIdMkXnmm3HMC7zqj0UGzxqkpcOcvg8VGD s3CbepjyuTPV++9NYhOmhKb5aaewCh16RbYpn19F9mLY1wgIrKSqv5cL+f3lhmHf5yv/ tPAgsAKATkxx/0Uo85ehTT0iWtA23nTD6IBTRfGeavbSM88kehyEVGTIMpicOd/RtBOb EaGglfJnfmEBXlDeu4zNVZVwPx2Esi6BaxogxFtrWu1NBWAA7H2RDe5acsYEQOAOXgw5 kzwWG07tV+VFiLq6C4jJkgCzPIvH1yB8FqKLxvlRTC2LHuQvr7auRYgEHn2AmPnkn9wJ zvqQ== X-Gm-Message-State: AA+aEWaVpDVRLnuLUQ3yFdez77FOtsDeqSWVbbrvW3SsFu3EEh3mKj4g Y7K9KM/qVhlur81Xaa3w9jkafIWs X-Google-Smtp-Source: AFSGD/UJpT+WONiua0Njok5ydxHDwQR1VTsrUJfnNP2CXmQoYzjfojiSjq9I3TNXDTATXeSmoPojcA== X-Received: by 2002:a1c:62c1:: with SMTP id w184mr3754120wmb.39.1543429457504; Wed, 28 Nov 2018 10:24:17 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:16 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:44 +0100 Message-Id: <20181128182349.10330-24-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 23/28] bmips: bcm6362: add support for bcm6368-enet X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/brcm,bcm6362.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/mips/dts/brcm,bcm6362.dtsi b/arch/mips/dts/brcm,bcm6362.dtsi index 94e7de096d..c77b80a4cc 100644 --- a/arch/mips/dts/brcm,bcm6362.dtsi +++ b/arch/mips/dts/brcm,bcm6362.dtsi @@ -224,5 +224,24 @@ #dma-cells = <1>; dma-channels = <8>; }; + + enet: ethernet@10e00000 { + compatible = "brcm,bcm6368-enet"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x10e00000 0x10000>; + clocks = <&periph_clk BCM6362_CLK_SWPKT_USB>, + <&periph_clk BCM6362_CLK_SWPKT_SAR>, + <&periph_clk BCM6362_CLK_ROBOSW>; + resets = <&periph_rst BCM6362_RST_ENETSW>, + <&periph_rst BCM6362_RST_EPHY>; + dmas = <&iudma BCM6362_DMA_ENETSW_RX>, + <&iudma BCM6362_DMA_ENETSW_TX>; + dma-names = "rx", + "tx"; + brcm,num-ports = <6>; + + status = "disabled"; + }; }; }; From patchwork Wed Nov 28 18:23:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004729 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="mxtsz4Qg"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434q8h5SVTz9ryk for ; Thu, 29 Nov 2018 05:35:32 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 71572C222E8; Wed, 28 Nov 2018 18:28:01 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 4AACFC22309; Wed, 28 Nov 2018 18:24:57 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 3CAECC2232A; Wed, 28 Nov 2018 18:24:28 +0000 (UTC) Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by lists.denx.de (Postfix) with ESMTPS id 14B17C2230F for ; Wed, 28 Nov 2018 18:24:19 +0000 (UTC) Received: by mail-wm1-f67.google.com with SMTP id r11-v6so3652855wmb.2 for ; Wed, 28 Nov 2018 10:24:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Ub7kZtLLsKa2jLt9nXFdrn0MI8hEi54JBmeEq2U5fEw=; b=mxtsz4QgzyCzFDe6pqnC2Gi4mkblOWbEXYOBMJFvWCevEP1bdSvjRQJrZqWdP7Kv1I ofta08l240t2PHX1WbSBgI9CBmObxoH7FbwI7SQBw8qVwLJI+Xq+z6b7ncEFuP6FF3Mj e0xNFwdiOVYSZFUCfv7/DDKwIzrQZsWkzMNYxLMMhUgN8EhoZbkJiC0zn92Q+hwDt9TT I+6LXQylPlinWTERaoMSH44b/kayifOfodaof2qcJdbm8kZdUj3LVEDHo9QTUPNjTOFm SopPx1JTDS/Rj5oHBIXOEAE2DGrUje+5lXJSrOshOjyo/vIuPHsDXt4FYBRWh3t3Tg4N ZyNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ub7kZtLLsKa2jLt9nXFdrn0MI8hEi54JBmeEq2U5fEw=; b=G0W7gUj/FVQkJLCzERlkc8asUuUckeBR9iOwkhZdD+3q4mxGxjNXavErejBMNSVdAg Jf6p/RPzQJDnOrh6U59N9jf1MWazZnHSye3TuGLBsFFMcpovKwi0lf4xXH3nzhBFWj5j nM7URMQOfAyOAIvqpK1eOtfdOIVsPMyj2JDeV/CygKvvFGSuQhRUfN5UtssdCLKXeAid tP+SeLONZgkeaOOtCEgVn5Z21R7f1ME+QmQy7EegAG/qZGABqtT1VGD9yap2U0I/yfiT hDoolJoZ2HKlbexercSp160ZAPSi76TbchitqM+1VV5ZnXdf+u1FhEtk1MrjshcGnxJO Hfnw== X-Gm-Message-State: AA+aEWbecKToHl7VFZrdvsuZGeVfnLWmU21sVvfLPeEyK2GtMIQNw2i7 0ZbQikUNxyEL6IijF4gop0ssWwYB X-Google-Smtp-Source: AFSGD/UHWehP46GePpFnAJjB2L8Pa8apPXCmnjZ3ICHMnWD75D5H85ZCvbA+NJtaDRICzBwUaXK8jA== X-Received: by 2002:a1c:1301:: with SMTP id 1-v6mr3765696wmt.4.1543429458549; Wed, 28 Nov 2018 10:24:18 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:17 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:45 +0100 Message-Id: <20181128182349.10330-25-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 24/28] bmips: enable dgnd3700v2 enet support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/netgear,dgnd3700v2.dts | 14 ++++++++++++++ configs/netgear_dgnd3700v2_ram_defconfig | 8 +++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/arch/mips/dts/netgear,dgnd3700v2.dts b/arch/mips/dts/netgear,dgnd3700v2.dts index 322d1567ff..2b72491f0b 100644 --- a/arch/mips/dts/netgear,dgnd3700v2.dts +++ b/arch/mips/dts/netgear,dgnd3700v2.dts @@ -43,6 +43,20 @@ status = "okay"; }; +&enet { + status = "okay"; + + port@4 { + compatible = "brcm,enetsw-port"; + reg = <4>; + label = "rgmii"; + brcm,phy-id = <0xff>; + speed = <1000>; + full-duplex; + bypass-link; + }; +}; + &gpio0 { status = "okay"; }; diff --git a/configs/netgear_dgnd3700v2_ram_defconfig b/configs/netgear_dgnd3700v2_ram_defconfig index 1abc869856..0f3914fe7e 100644 --- a/configs/netgear_dgnd3700v2_ram_defconfig +++ b/configs/netgear_dgnd3700v2_ram_defconfig @@ -27,17 +27,23 @@ CONFIG_CMD_MEMINFO=y # CONFIG_CMD_FLASH is not set # CONFIG_CMD_LOADS is not set CONFIG_CMD_USB=y -# CONFIG_CMD_NET is not set +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y # CONFIG_CMD_MISC is not set CONFIG_OF_EMBED=y CONFIG_DEFAULT_DEVICE_TREE="netgear,dgnd3700v2" +CONFIG_NET_RANDOM_ETHADDR=y # CONFIG_DM_DEVICE_REMOVE is not set +CONFIG_BCM6348_IUDMA=y CONFIG_DM_GPIO=y CONFIG_BCM6345_GPIO=y CONFIG_LED=y CONFIG_LED_BCM6328=y CONFIG_LED_BLINK=y CONFIG_LED_GPIO=y +CONFIG_DM_ETH=y +CONFIG_PHY_GIGE=y +CONFIG_BCM6368_ETH=y CONFIG_PHY=y CONFIG_BCM6368_USBH_PHY=y CONFIG_POWER_DOMAIN=y From patchwork Wed Nov 28 18:23:46 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004727 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="o14SrKhf"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434q7Q3lZDz9ryk for ; Thu, 29 Nov 2018 05:34:26 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 454B2C22318; Wed, 28 Nov 2018 18:28:18 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 7D92BC22301; Wed, 28 Nov 2018 18:25:05 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id A1F7EC22335; Wed, 28 Nov 2018 18:24:28 +0000 (UTC) Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by lists.denx.de (Postfix) with ESMTPS id 1177EC2231C for ; Wed, 28 Nov 2018 18:24:20 +0000 (UTC) Received: by mail-wm1-f66.google.com with SMTP id q26so3550200wmf.5 for ; Wed, 28 Nov 2018 10:24:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=yed9MNpqId492HKc7ccMBJluPRnn02/sG3z3ZgjT8Go=; b=o14SrKhfRZ7GRKJfhwd042ssuJloFqBXZCyH6Ao5+pDFwF+iJmTFxcAxg0KWJJyp9o 4l4ZG2vWXfVvaUhCisgAoSUf68mAjyYzLQUbpJsChOBiWInr0EGKi9WSMljSb5Q9S5R3 3pP2gdJuFXt7ySAAuzQCvZBMlBRQ5Guxw42SXHNk00NuXM+Cjb0M1KtHoyWBqzYOTmTR Xzbxko9Y6VmnfwMUOKZVwyto+/+EJzARSo9JysXmk5kLHkjIXTBWQQT/gP4ooiA0g3hR jdpxjHGE3cUGcBbqWPldRuUcghqNYqCEMcoHvNBw2HNqx8PW5i15f8qZoq0c21OmHh9z 0/pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=yed9MNpqId492HKc7ccMBJluPRnn02/sG3z3ZgjT8Go=; b=XegamfD17BYzbDYbh7I5UVikgIpE5ktb3QJ4PLmk6wE7ATm4bqwOq2T/a4mOYHm9N/ eYAlAKdD8eUMH8Sf9NB1flFUY1j3VWVeaqVEpvbQCLA8+fTNb9SsXoTHnsQqy23T8NkL y3zyETwmFXHGHynadk4YAdRy/supYPJ6rTTwpjLkZah1sPO4iCwAktoBflhqhsKhFTzv WTXNacDIWG+fWLMR/+ZXCgDc5pkGkUUAtr+OqGRSLjtNagy+Sy/mcWcoen3mint9o49w lhqaQ5vd5YxGCJ+N/GHZXEv6sPIu/yJx8frEK7s3vgZ/EpkSC8JyakhEucbtVf8X3TDv bNew== X-Gm-Message-State: AA+aEWYmwX4PJM9cYt+euLU31DS7rBCHfmUXoIIXInh+oGG1fbFUJhbF LdzWnOpImcfkZzvFnfzdDUxJVCFX X-Google-Smtp-Source: AFSGD/VA5hI3LS0o6Azudh420kNJV3c5AxoJ6kn7g3EdPVrArv4XcpqcJP7DNk98WdIYF/4Di4WE1Q== X-Received: by 2002:a1c:a08:: with SMTP id 8mr2285324wmk.81.1543429459579; Wed, 28 Nov 2018 10:24:19 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:19 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:46 +0100 Message-Id: <20181128182349.10330-26-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 25/28] bmips: bcm63268: add support for bcm6368-enet X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/brcm,bcm63268.dtsi | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/arch/mips/dts/brcm,bcm63268.dtsi b/arch/mips/dts/brcm,bcm63268.dtsi index c7ad83c306..f8a72ef535 100644 --- a/arch/mips/dts/brcm,bcm63268.dtsi +++ b/arch/mips/dts/brcm,bcm63268.dtsi @@ -230,5 +230,30 @@ #dma-cells = <1>; dma-channels = <8>; }; + + enet: ethernet@10700000 { + compatible = "brcm,bcm6368-enet"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x10700000 0x10000>; + clocks = <&periph_clk BCM63268_CLK_GMAC>, + <&periph_clk BCM63268_CLK_ROBOSW>, + <&periph_clk BCM63268_CLK_ROBOSW250>, + <&timer_clk BCM63268_TCLK_EPHY1>, + <&timer_clk BCM63268_TCLK_EPHY2>, + <&timer_clk BCM63268_TCLK_EPHY3>, + <&timer_clk BCM63268_TCLK_GPHY>; + resets = <&periph_rst BCM63268_RST_ENETSW>, + <&periph_rst BCM63268_RST_EPHY>, + <&periph_rst BCM63268_RST_GPHY>; + dmas = <&iudma BCM63268_DMA_ENETSW_RX>, + <&iudma BCM63268_DMA_ENETSW_TX>; + dma-names = "rx", + "tx"; + brcm,rgmii-override; + brcm,rgmii-timing; + + status = "disabled"; + }; }; }; From patchwork Wed Nov 28 18:23:47 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004732 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="f/QzkfkP"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qBK66z2z9ryk for ; Thu, 29 Nov 2018 05:36:57 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 99420C222CC; Wed, 28 Nov 2018 18:32:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id EEC85C22317; Wed, 28 Nov 2018 18:26:05 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 623B8C222DA; Wed, 28 Nov 2018 18:24:29 +0000 (UTC) Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by lists.denx.de (Postfix) with ESMTPS id 173F4C222FC for ; Wed, 28 Nov 2018 18:24:21 +0000 (UTC) Received: by mail-wm1-f45.google.com with SMTP id a18so2927262wmj.1 for ; Wed, 28 Nov 2018 10:24:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=80JWX5rethzz+PLVbmgQ1FW1UJKIV63QhhLYWEp/eTM=; b=f/QzkfkPHHPyr+osWMbaFN43Q2+dzMeoV45qbNahokZQ4v1fahS2y9/iL9MCQuQwBd OdC93f1MqSW2D7noF44QNWE7gYh4RF9f3doMNLcnJ7VWtZ/iZHWkfCKsq0WbUWJHPNhY QoXi//f8UwXfV3aCMimF86aKoxEKLLnv4jyFGgXwQKJwYcvCIwwID/YKyYoTkXAfdyEO qdI6ZwXw/DWyDExuXbvw4wSZQgMETE8cyeQIPW1Hf/URw1Vm4PgqJc1V/snl+S+0eO/V iJkg4TkDNHgwuzmnszov2mdZgq/6k2tV17ISADxcxNk8mtZ9ObG1pKagKB0gaBJ2arHV 6rbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=80JWX5rethzz+PLVbmgQ1FW1UJKIV63QhhLYWEp/eTM=; b=SNLQweyzGl91KuVX8ffIEI1sNZa3x9OBBI+FCgBCCJVkSxTypn6976hjjhejXLXKXo g5nmqcm0yXkJZmmTsPHA1TQmRB8L+7lNZB4wNs29Nz6yiMSBa8qcv7F61rZkLSNwiLXJ KO02HN9m2BKJiapdMlqQH88S83DoRqHkgburc2MVV3/Q81eB24kL0wJhKI/RtFJfhzEx qJkYuHGHYtj5JB71ro8rw9TiHATkBUREWKw5mlUZadoBetRcLCA2m9q4u1n4JLOxLhNs DdkCA/ITJc1hKDDK3Vp/jM5TZhH5Us8isgWQR6GEdP2L9NVKT6m1Vz2b7UcftiO9SMeJ q6rA== X-Gm-Message-State: AA+aEWa+Gtf9iXuzLPlNcgTpPJUWhsBBzxhJSVlD1i5P+65SMGtr/6mD m5mbPUJczsHh9RxMYVAVE9GR4GC8 X-Google-Smtp-Source: AFSGD/V+BmJRPo3cc2VR1aUb71AhMOATia7xgvkuwgrzK4CrJtrByQdbRAHhu76DuEKOKPduilK1Xg== X-Received: by 2002:a1c:eed4:: with SMTP id j81mr2687718wmi.24.1543429460554; Wed, 28 Nov 2018 10:24:20 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:20 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:47 +0100 Message-Id: <20181128182349.10330-27-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 26/28] bmips: enable vr-3032u enet support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/comtrend,vr-3032u.dts | 32 ++++++++++++++++++++++++++++++++ configs/comtrend_vr3032u_ram_defconfig | 7 ++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/arch/mips/dts/comtrend,vr-3032u.dts b/arch/mips/dts/comtrend,vr-3032u.dts index 8c6a4a1eac..512cb52de3 100644 --- a/arch/mips/dts/comtrend,vr-3032u.dts +++ b/arch/mips/dts/comtrend,vr-3032u.dts @@ -24,6 +24,38 @@ status = "okay"; }; +&enet { + status = "okay"; + + port@0 { + compatible = "brcm,enetsw-port"; + reg = <0>; + label = "fe2"; + brcm,phy-id = <1>; + }; + + port@1 { + compatible = "brcm,enetsw-port"; + reg = <1>; + label = "fe3"; + brcm,phy-id = <2>; + }; + + port@2 { + compatible = "brcm,enetsw-port"; + reg = <2>; + label = "fe4"; + brcm,phy-id = <3>; + }; + + port@3 { + compatible = "brcm,enetsw-port"; + reg = <3>; + label = "fe1"; + brcm,phy-id = <4>; + }; +}; + &leds { status = "okay"; brcm,serial-leds; diff --git a/configs/comtrend_vr3032u_ram_defconfig b/configs/comtrend_vr3032u_ram_defconfig index 1689eecec1..47f53998e1 100644 --- a/configs/comtrend_vr3032u_ram_defconfig +++ b/configs/comtrend_vr3032u_ram_defconfig @@ -26,15 +26,20 @@ CONFIG_CMD_MEMINFO=y # CONFIG_CMD_FLASH is not set # CONFIG_CMD_LOADS is not set CONFIG_CMD_USB=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y # CONFIG_CMD_MISC is not set CONFIG_OF_EMBED=y CONFIG_DEFAULT_DEVICE_TREE="comtrend,vr-3032u" -# CONFIG_NET is not set +CONFIG_NET_RANDOM_ETHADDR=y # CONFIG_DM_DEVICE_REMOVE is not set +CONFIG_BCM6348_IUDMA=y CONFIG_DM_GPIO=y CONFIG_LED=y CONFIG_LED_BCM6328=y CONFIG_LED_BLINK=y +CONFIG_DM_ETH=y +CONFIG_BCM6368_ETH=y CONFIG_PHY=y CONFIG_BCM6368_USBH_PHY=y CONFIG_POWER_DOMAIN=y From patchwork Wed Nov 28 18:23:48 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004726 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="tJ2xZVfO"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434q6K2cRpz9ryk for ; Thu, 29 Nov 2018 05:33:29 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id CE9BCC222E7; Wed, 28 Nov 2018 18:26:30 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 1BBFEC22319; Wed, 28 Nov 2018 18:24:39 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id CDCB8C2230A; Wed, 28 Nov 2018 18:24:30 +0000 (UTC) Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by lists.denx.de (Postfix) with ESMTPS id EF662C22309 for ; Wed, 28 Nov 2018 18:24:21 +0000 (UTC) Received: by mail-wm1-f67.google.com with SMTP id g67so3563313wmd.2 for ; Wed, 28 Nov 2018 10:24:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=P41dUipyEIezwfnUpsawylC9LXD2B+cAcfcTE49RHM8=; b=tJ2xZVfOA3+jhNh3wcUbrALwdtx9r9OMhbMJRyAaxtxE9k38qzRZCCrrMOn2H+SIFJ B6hCQzyvZ0v9qX/2hyY6hzWOcncMRsOsigYmKnxEogPxmfj0BrH9lsyKElaBwzFlxGj5 tWTQbLZPWVpzk/ujgsCgX6WcRo3zqDz5DrX1T3zbb40wO2krzfvFTgAfcS5Paq3al+qa loE6e+rbV8xbZiAealBsF9Z6GEnQyluR2D81z/Dv1hkCUuD2KmEAtVyyN6zlvRadQNu8 RmhvLJL9cNO/seEA2oskQAi2HP/XDJ+eiwyPZxvT/uVL41DVEntDcZuOpt1Rkap+8J/X aaig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=P41dUipyEIezwfnUpsawylC9LXD2B+cAcfcTE49RHM8=; b=CNtFzeG2nlRHTA1ZMHu1z+UKoSh5HD15jji2KiDExx/jLhA2crkrZra0xMyJCGNbo4 2alcwB0p9ClKgRGQvnnU0wHl5StqEDVTaoakiJFNa5TZLsJpdlWA03CTAltjJ5CGwgCX zZTraCDboYsHIvxFH/rFRsjH4TVM9JvRFOEwoWb6jazQD2aoVmiLXa7R81UChDCsaUGk 5LGfTgUE97KrpvNd9ewLFTUZD09gLhOqscbzQuztylPs4lRzC+UJ8g5BiyO+NiCFv3oE jYUWG0Y+9PcP1ts1Z9uXMTRNVMYvFRInb3WwVFKmbmjcR3FuNPsvyqT+7/QH80Fw+PN8 sbYg== X-Gm-Message-State: AA+aEWaMaY7zQU1qBR7yiFEjvJfqT7zxg8F1VTM9wADD1rZpTvLwK7oV rjsqTV6CHhOCgVzI7e5rvoE7su1L X-Google-Smtp-Source: AFSGD/VpnyBXZCWaCJFcZhH6U5QLSUHjAqVg9hRYTodXA7emL8UMkuXiMZXHZTVQDibtUbCKUjOCPw== X-Received: by 2002:a7b:c8d7:: with SMTP id f23mr3757166wml.11.1543429461475; Wed, 28 Nov 2018 10:24:21 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:21 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:48 +0100 Message-Id: <20181128182349.10330-28-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 27/28] bmips: bcm6318: add support for bcm6368-enet X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/brcm,bcm6318.dtsi | 19 +++++++++++++++++++ include/dt-bindings/clock/bcm6318-clock.h | 11 +++++++++++ 2 files changed, 30 insertions(+) diff --git a/arch/mips/dts/brcm,bcm6318.dtsi b/arch/mips/dts/brcm,bcm6318.dtsi index d04b7cbb01..d678dab242 100644 --- a/arch/mips/dts/brcm,bcm6318.dtsi +++ b/arch/mips/dts/brcm,bcm6318.dtsi @@ -190,6 +190,25 @@ status = "disabled"; }; + enet: ethernet@10080000 { + compatible = "brcm,bcm6368-enet"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x10080000 0x8000>; + clocks = <&periph_clk BCM6318_CLK_ROBOSW250>, + <&periph_clk BCM6318_CLK_ROBOSW025>, + <&ubus_clk BCM6318_UCLK_ROBOSW>; + resets = <&periph_rst BCM6318_RST_ENETSW>, + <&periph_rst BCM6318_RST_EPHY>; + dmas = <&iudma BCM6318_DMA_ENETSW_RX>, + <&iudma BCM6318_DMA_ENETSW_TX>; + dma-names = "rx", + "tx"; + brcm,num-ports = <5>; + + status = "disabled"; + }; + iudma: dma-controller@10088000 { compatible = "brcm,bcm6368-iudma"; reg = <0x10088000 0x80>, diff --git a/include/dt-bindings/clock/bcm6318-clock.h b/include/dt-bindings/clock/bcm6318-clock.h index d5e13c5c2d..3f10448cef 100644 --- a/include/dt-bindings/clock/bcm6318-clock.h +++ b/include/dt-bindings/clock/bcm6318-clock.h @@ -33,4 +33,15 @@ #define BCM6318_CLK_AFE 29 #define BCM6318_CLK_QPROC 30 +#define BCM6318_UCLK_ADSL 0 +#define BCM6318_UCLK_ARB 1 +#define BCM6318_UCLK_MIPS 2 +#define BCM6318_UCLK_PCIE 3 +#define BCM6318_UCLK_PERIPH 4 +#define BCM6318_UCLK_PHYMIPS 5 +#define BCM6318_UCLK_ROBOSW 6 +#define BCM6318_UCLK_SAR 7 +#define BCM6318_UCLK_SDR 8 +#define BCM6318_UCLK_USB 9 + #endif /* __DT_BINDINGS_CLOCK_BCM6318_H */ From patchwork Wed Nov 28 18:23:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 1004738 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="f6YqN1HN"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 434qFH5dbtz9ryk for ; Thu, 29 Nov 2018 05:39:31 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 6B8C4C2232C; Wed, 28 Nov 2018 18:29:07 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id B729AC22350; Wed, 28 Nov 2018 18:25:08 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 0D8BBC22301; Wed, 28 Nov 2018 18:24:33 +0000 (UTC) Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) by lists.denx.de (Postfix) with ESMTPS id 05F05C22304 for ; Wed, 28 Nov 2018 18:24:23 +0000 (UTC) Received: by mail-wm1-f49.google.com with SMTP id y185so4596440wmd.1 for ; Wed, 28 Nov 2018 10:24:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5nwxjUqy6H4wE6se3v+zktsSTZV1Dc6jwZO2tgxNru0=; b=f6YqN1HNrdoBXlUszMwyGFCfN9t2V2h+FqcZEJCdSm4X14yWzc7Rlq/RLwurYbHSyL T2CcgsKUPBtnmnSlNIkrCr7gBAPQjMZRRurSa873bb/eCZV1fHSbvN7vhRWTOY5TCD7T Jh0TQLjTz+FPQOc58ODc28Qx6kXwPc+v4jCXPOTAwWk9XzA/y5vueMHimVM+NU0l7IHh CzzZBYOTAxqRiA5dqWv5tgyXIS6lgi0SfgbfewBC3URSFfUHkCNF8BMQkF6MoeVLAJLD BnLPg3QDWG2LQLaLGyEg1BGe9FRGPZCLZSQtqYky8C0asT1BJ7V36M9oFbjH/iTh8P2Y F3uQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5nwxjUqy6H4wE6se3v+zktsSTZV1Dc6jwZO2tgxNru0=; b=shp+/CkuV3ZS/0bxRrZoVTGvZ7FmyVZDvFBlDHoONvl24oot8pO4EDGGAgZBwzlZWU ShBR0kdZveg3JRy33jUTe8zT/Oh58g0acoVoBty0ZCiqj0c4tZKIIrzj7muO5sBtfmPG YmHOXtNC5YymjPJ3O26KVue7FCBwWC6fa1BrdVkYhu6E+/pfENIHcuHfRVl1bYCgmTdB W6e1qabm0ijTQqWJv5CIkFi3Wnthr+GZqsh7M2dsUKDRu9ttjRzQsd1yf9V5jF3drtFO +EKgsOphjYiWhiBWWqwCOSOV8a4Us1657UBSJphl14smUIefkSsETbXU8vf17vfkYyla v5EA== X-Gm-Message-State: AA+aEWZzNT2wVV0FzBuBxMTewjFvXfv6zyjyHho9953SA8KaLO8HMfec L2bRlWcdP0U0IekbjERbZ6SgZz5D X-Google-Smtp-Source: AFSGD/URgQR57OU8brahgdDqf1W0b9e3j5BS2aZtTFhTzJSXzPp+2rrKroZWWgySF3Mvq6Mw4fIEQA== X-Received: by 2002:a1c:c2d4:: with SMTP id s203mr3802638wmf.3.1543429462516; Wed, 28 Nov 2018 10:24:22 -0800 (PST) Received: from skynet.lan (8.red-88-1-21.dynamicip.rima-tde.net. [88.1.21.8]) by smtp.gmail.com with ESMTPSA id m65sm3209856wmb.4.2018.11.28.10.24.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 10:24:22 -0800 (PST) From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= To: u-boot@lists.denx.de, grygorii.strashko@ti.com, joe.hershberger@ni.com, lokeshvutla@ti.com, trini@konsulko.com, sjg@chromium.org, jagan@openedev.com, daniel.schwierzeck@gmail.com, vigneshr@ti.com Date: Wed, 28 Nov 2018 19:23:49 +0100 Message-Id: <20181128182349.10330-29-noltari@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20181128182349.10330-1-noltari@gmail.com> References: <20181126180039.30709-1-noltari@gmail.com> <20181128182349.10330-1-noltari@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v9 28/28] bmips: enable ar-5315u enet support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Álvaro Fernández Rojas --- v9: no changes v8: introduce bcm6368-enet driver arch/mips/dts/comtrend,ar-5315u.dts | 32 ++++++++++++++++++++++++++++++++ configs/comtrend_ar5315u_ram_defconfig | 7 ++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/arch/mips/dts/comtrend,ar-5315u.dts b/arch/mips/dts/comtrend,ar-5315u.dts index 45570189d0..eb60aaa8d5 100644 --- a/arch/mips/dts/comtrend,ar-5315u.dts +++ b/arch/mips/dts/comtrend,ar-5315u.dts @@ -24,6 +24,38 @@ status = "okay"; }; +&enet { + status = "okay"; + + port@0 { + compatible = "brcm,enetsw-port"; + reg = <0>; + label = "fe4"; + brcm,phy-id = <1>; + }; + + port@1 { + compatible = "brcm,enetsw-port"; + reg = <1>; + label = "fe3"; + brcm,phy-id = <2>; + }; + + port@2 { + compatible = "brcm,enetsw-port"; + reg = <2>; + label = "fe2"; + brcm,phy-id = <3>; + }; + + port@3 { + compatible = "brcm,enetsw-port"; + reg = <3>; + label = "fe1"; + brcm,phy-id = <4>; + }; +}; + &leds { status = "okay"; diff --git a/configs/comtrend_ar5315u_ram_defconfig b/configs/comtrend_ar5315u_ram_defconfig index d9ef52e68d..1b8e4e43c4 100644 --- a/configs/comtrend_ar5315u_ram_defconfig +++ b/configs/comtrend_ar5315u_ram_defconfig @@ -28,11 +28,14 @@ CONFIG_CMD_MEMINFO=y CONFIG_CMD_SF=y CONFIG_CMD_SPI=y CONFIG_CMD_USB=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y # CONFIG_CMD_MISC is not set CONFIG_OF_EMBED=y CONFIG_DEFAULT_DEVICE_TREE="comtrend,ar-5315u" -# CONFIG_NET is not set +CONFIG_NET_RANDOM_ETHADDR=y # CONFIG_DM_DEVICE_REMOVE is not set +CONFIG_BCM6348_IUDMA=y CONFIG_DM_GPIO=y CONFIG_LED=y CONFIG_LED_BCM6328=y @@ -41,6 +44,8 @@ CONFIG_DM_SPI_FLASH=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_WINBOND=y CONFIG_SPI_FLASH_MTD=y +CONFIG_DM_ETH=y +CONFIG_BCM6368_ETH=y CONFIG_PHY=y CONFIG_BCM6318_USBH_PHY=y CONFIG_BCM6328_POWER_DOMAIN=y