Thread (52 messages) flat view 52 messages, 5 authors, 2020-03-29

Re: [PATCH 07/14] net: ks8851: Use 16-bit writes to program MAC address

From: Marek Vasut <marex@denx.de>
Date: 2020-03-24 14:53:37

On 3/24/20 3:47 PM, Lukas Wunner wrote:
On Tue, Mar 24, 2020 at 02:09:18PM +0100, Marek Vasut wrote:
quoted
I have a feeling this whole thing might be more messed up then we
thought. At least the KS8851-16MLL has an "endian mode" bit in the CCR
register, the SPI variant does not.
On the MLL variant of this chip, pin 10 can be pulled up to force it
into big endian mode, otherwise it's in little-endian mode.  Obviously
this should be configured by the board designer such that it matches
the CPU's endianness.
Sadly, that's not the case on the device I have here right now.
So I'm suffering the performance impact of having to endian-swap on
every 16bit access.
Of course we *could* support inverted endianness in case the hardware
engineer botched the board layout.  Not sure if we have to.

In the CCR register that you mention, you can determine whether the
pin is pulled up or not.  If it is in big-endian mode and you're
on a little-endian CPU, you're hosed and the only option that you've
got is to invert endianness in software, i.e. in the accessors.
Yes
If the pin is pulled to ground or not connected (again, can be
determined from CCR) then you're able to switch the endianness by
setting bit 11 in the RXFDPR register.  No need to convert it in
the accessors in this case.
That's not the setup I have right now, sadly.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help