rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Trevor Gross <tmgross@umich.edu>
Cc: FUJITA Tomonori <fujita.tomonori@gmail.com>,
	netdev@vger.kernel.org, rust-for-linux@vger.kernel.org
Subject: Re: [PATCH net-next v1 4/4] net: phy: add Applied Micro QT2025 PHY driver
Date: Tue, 16 Apr 2024 14:08:32 +0200	[thread overview]
Message-ID: <0aa87df5-a2b8-45b8-a483-37eee86739bc@lunn.ch> (raw)
In-Reply-To: <CALNs47v+35RX4+ibHrcZgrJEJ52RqWRQUBa=_Aky_6gk1ika4w@mail.gmail.com>

> > +        let mut a = MDIO_MMD_PCS;
> > +        for (i, val) in fw.data().iter().enumerate() {
> > +            if i == 0x4000 {
> > +                a = MDIO_MMD_PHYXS;
> > +                j = 0x8000;
> > +            }
> 
> Looks like firmware is split between PCS and PHYXS at 0x4000, but like
> Greg said you should probably explain where this comes from.
> 
> > +            dev.c45_write(a, j, (*val).into())?;
> 
> I think this is writing one byte at a time, to answer Andrew's
> question. Can you write a `u16::from_le_bytes(...)` to alternating
> addresses instead? This would be pretty easy by doing
> `fw.data().chunks(2)`.

That probably does not work, given my understanding of what is going
on. A C45 register is a u16.

The data sheet says:

  The 24kB of program memory space is accessible by
  MDIO. The first 16kB of memory is located in the
  address range 3.8000h - 3.BFFFh. The next 8kB of
  memory is located at 4.8000h - 4.9FFFh.

0x3bfff-0x3800 = 0x0x3fff = 16K.

So there are 16K u16 registers mapped onto 16K bytes of SRAM. So each
register holds one byte. Trying to write two bytes every other
register is not something which the datasheet talks about. So i doubt
it will work. Which is shame, because it would double the download
speed.

	Andrew

  parent reply	other threads:[~2024-04-16 12:08 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-15 10:46 [PATCH net-next v1 0/4] net: phy: add Applied Micro QT2025 PHY driver FUJITA Tomonori
2024-04-15 10:46 ` [PATCH net-next v1 1/4] rust: net::phy support config_init driver callback FUJITA Tomonori
2024-04-15 10:46 ` [PATCH net-next v1 2/4] rust: net::phy support C45 helpers FUJITA Tomonori
2024-04-15 14:20   ` Andrew Lunn
2024-04-16 11:40     ` FUJITA Tomonori
2024-04-16 12:38       ` Andrew Lunn
2024-04-16 13:21         ` FUJITA Tomonori
2024-04-16 22:07           ` Benno Lossin
2024-04-16 22:30             ` Andrew Lunn
2024-04-17  8:20               ` Benno Lossin
2024-04-17 13:34                 ` Andrew Lunn
2024-04-18 12:47                   ` Benno Lossin
2024-04-18 14:32                     ` Andrew Lunn
2024-04-18 13:15                 ` FUJITA Tomonori
2024-04-16  3:25   ` Trevor Gross
2024-05-27  2:00     ` FUJITA Tomonori
2024-04-15 10:47 ` [PATCH net-next v1 3/4] rust: net::phy support Firmware API FUJITA Tomonori
2024-04-15 11:10   ` Greg KH
2024-04-18 12:51     ` FUJITA Tomonori
2024-04-18 13:05       ` Greg KH
2024-04-18 13:07       ` Greg KH
2024-04-18 13:35         ` FUJITA Tomonori
2024-04-15 13:30   ` Andrew Lunn
2024-04-15 15:45   ` Danilo Krummrich
2024-04-18 13:10     ` FUJITA Tomonori
2024-04-15 10:47 ` [PATCH net-next v1 4/4] net: phy: add Applied Micro QT2025 PHY driver FUJITA Tomonori
2024-04-15 11:15   ` Greg KH
2024-04-18 13:00     ` FUJITA Tomonori
2024-04-18 13:10       ` Greg KH
2024-04-18 13:22         ` FUJITA Tomonori
2024-04-18 14:42       ` Andrew Lunn
2024-04-15 13:48   ` Andrew Lunn
2024-04-15 16:53   ` Andrew Lunn
2024-04-16  4:34   ` Trevor Gross
2024-04-16  6:58     ` Benno Lossin
2024-04-16 11:16       ` FUJITA Tomonori
2024-04-16 12:08     ` Andrew Lunn [this message]
2024-05-24  1:50       ` FUJITA Tomonori

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=0aa87df5-a2b8-45b8-a483-37eee86739bc@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=fujita.tomonori@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=tmgross@umich.edu \
    /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).