From: Lorenzo Bianconi <lorenzo@kernel.org>
To: Simon Horman <horms@kernel.org>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, netdev@vger.kernel.org,
devicetree@vger.kernel.org
Subject: Re: [PATCH net-next v3 4/4] net: airoha: Add the capability to allocate hfwd descriptors in SRAM
Date: Thu, 22 May 2025 14:58:56 +0200 [thread overview]
Message-ID: <aC8fkFUEmBgyT3-W@lore-desk> (raw)
In-Reply-To: <20250522123913.GY365796@horms.kernel.org>
[-- Attachment #1: Type: text/plain, Size: 4583 bytes --]
> On Wed, May 21, 2025 at 09:16:39AM +0200, Lorenzo Bianconi wrote:
> > In order to improve packet processing and packet forwarding
> > performances, EN7581 SoC supports consuming SRAM instead of DRAM for
> > hw forwarding descriptors queue.
> > For downlink hw accelerated traffic request to consume SRAM memory
> > for hw forwarding descriptors queue.
> >
> > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> > ---
> > drivers/net/ethernet/airoha/airoha_eth.c | 11 +----------
> > drivers/net/ethernet/airoha/airoha_eth.h | 9 +++++++++
> > drivers/net/ethernet/airoha/airoha_ppe.c | 6 ++++++
> > 3 files changed, 16 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/net/ethernet/airoha/airoha_eth.c b/drivers/net/ethernet/airoha/airoha_eth.c
> > index 20e590d76735e72a1a538a42d2a1f49b882deccc..3cd56de716a5269b1530cff6d0ca3414d92ecb69 100644
> > --- a/drivers/net/ethernet/airoha/airoha_eth.c
> > +++ b/drivers/net/ethernet/airoha/airoha_eth.c
> > @@ -71,15 +71,6 @@ static void airoha_qdma_irq_disable(struct airoha_irq_bank *irq_bank,
> > airoha_qdma_set_irqmask(irq_bank, index, mask, 0);
> > }
> >
> > -static bool airhoa_is_lan_gdm_port(struct airoha_gdm_port *port)
> > -{
> > - /* GDM1 port on EN7581 SoC is connected to the lan dsa switch.
> > - * GDM{2,3,4} can be used as wan port connected to an external
> > - * phy module.
> > - */
> > - return port->id == 1;
> > -}
> > -
> > static void airoha_set_macaddr(struct airoha_gdm_port *port, const u8 *addr)
> > {
> > struct airoha_eth *eth = port->qdma->eth;
> > @@ -1128,7 +1119,7 @@ static int airoha_qdma_init_hfwd_queues(struct airoha_qdma *qdma)
> > LMGR_INIT_START | LMGR_SRAM_MODE_MASK |
> > HW_FWD_DESC_NUM_MASK,
> > FIELD_PREP(HW_FWD_DESC_NUM_MASK, HW_DSCP_NUM) |
> > - LMGR_INIT_START);
> > + LMGR_INIT_START | LMGR_SRAM_MODE_MASK);
>
> Hi Lorenzo,
Hi Simon,
>
> I'm wondering if setting the LMGR_SRAM_MODE_MASK bit (maybe a different
> name for the #define would be nice) is dependent on the SRAM region
I did this way because LMGR_SRAM_MODE_MASK is just a bit. Do you prefer
to do something like:
FIELD_PREP(LMGR_SRAM_MODE_MASK, 1)?
> being described in DT, as per code added above this line to this
> function by the previous patch in this series.
Are you referring to qdma0_buf/qdma1_buf memory regions?
https://patchwork.kernel.org/project/netdevbpf/patch/20250521-airopha-desc-sram-v3-1-a6e9b085b4f0@kernel.org/
If so, they are DRAM memory-regions and not SRAM ones. They are used for
hw forwarding buffers queue. SRAM is used for hw forwarding descriptor queue.
Regards,
Lorenzo
>
> >
> > return read_poll_timeout(airoha_qdma_rr, status,
> > !(status & LMGR_INIT_START), USEC_PER_MSEC,
> > diff --git a/drivers/net/ethernet/airoha/airoha_eth.h b/drivers/net/ethernet/airoha/airoha_eth.h
> > index 3e03ae9a5d0d21c0d8d717f2a282ff06ef3b9fbf..b815697302bfdf2a6d115a9bbbbadc05462dbadb 100644
> > --- a/drivers/net/ethernet/airoha/airoha_eth.h
> > +++ b/drivers/net/ethernet/airoha/airoha_eth.h
> > @@ -597,6 +597,15 @@ u32 airoha_rmw(void __iomem *base, u32 offset, u32 mask, u32 val);
> > #define airoha_qdma_clear(qdma, offset, val) \
> > airoha_rmw((qdma)->regs, (offset), (val), 0)
> >
> > +static inline bool airhoa_is_lan_gdm_port(struct airoha_gdm_port *port)
> > +{
> > + /* GDM1 port on EN7581 SoC is connected to the lan dsa switch.
> > + * GDM{2,3,4} can be used as wan port connected to an external
> > + * phy module.
> > + */
> > + return port->id == 1;
> > +}
> > +
> > bool airoha_is_valid_gdm_port(struct airoha_eth *eth,
> > struct airoha_gdm_port *port);
> >
> > diff --git a/drivers/net/ethernet/airoha/airoha_ppe.c b/drivers/net/ethernet/airoha/airoha_ppe.c
> > index 2d273937f19cf304ab4b821241fdc3ea93604f0e..12d32c92717a6b4ba74728ec02bb2e166d4d9407 100644
> > --- a/drivers/net/ethernet/airoha/airoha_ppe.c
> > +++ b/drivers/net/ethernet/airoha/airoha_ppe.c
> > @@ -251,6 +251,12 @@ static int airoha_ppe_foe_entry_prepare(struct airoha_eth *eth,
> > else
> > pse_port = 2; /* uplink relies on GDM2 loopback */
> > val |= FIELD_PREP(AIROHA_FOE_IB2_PSE_PORT, pse_port);
> > +
> > + /* For downlink traffic consume SRAM memory for hw forwarding
> > + * descriptors queue.
> > + */
> > + if (airhoa_is_lan_gdm_port(port))
> > + val |= AIROHA_FOE_IB2_FAST_PATH;
> > }
> >
> > if (is_multicast_ether_addr(data->eth.h_dest))
> >
> > --
> > 2.49.0
> >
> >
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2025-05-22 12:58 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-21 7:16 [PATCH net-next v3 0/4] Add the capability to consume SRAM for hwfd descriptor queue in airoha_eth driver Lorenzo Bianconi
2025-05-21 7:16 ` [PATCH net-next v3 1/4] dt-bindings: net: airoha: Add EN7581 memory-region property Lorenzo Bianconi
2025-05-21 15:51 ` Conor Dooley
2025-05-21 7:16 ` [PATCH net-next v3 2/4] net: airoha: Do not store hfwd references in airoha_qdma struct Lorenzo Bianconi
2025-05-22 13:37 ` Simon Horman
2025-05-21 7:16 ` [PATCH net-next v3 3/4] net: airoha: Add the capability to allocate hwfd buffers via reserved-memory Lorenzo Bianconi
2025-05-22 13:37 ` Simon Horman
2025-05-21 7:16 ` [PATCH net-next v3 4/4] net: airoha: Add the capability to allocate hfwd descriptors in SRAM Lorenzo Bianconi
2025-05-22 12:39 ` Simon Horman
2025-05-22 12:58 ` Lorenzo Bianconi [this message]
2025-05-22 13:35 ` Simon Horman
2025-05-26 15:40 ` [PATCH net-next v3 0/4] Add the capability to consume SRAM for hwfd descriptor queue in airoha_eth driver patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aC8fkFUEmBgyT3-W@lore-desk \
--to=lorenzo@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).