Thread (16 messages) read the whole thread 16 messages, 4 authors, 6d ago

Re: [PATCH net-next v8 1/4] dt-bindings: net: pse-pd: add bindings for Realtek PSE MCU

From: Jonas Jelonek <jelonek.jonas@gmail.com>
Date: 2026-07-23 09:45:23
Also in: linux-devicetree, lkml

Hi Oleksij,

On 23.07.26 09:36, Oleksij Rempel wrote:
[...]
quoted
Correct me if I'm wrong but from what I see, most of that budgeting machinery
isn't used in dynamic budget evaluation strategy, which is used here because the
MCU does budgeting on it's own.
Hm, I guess the wording in header is a bit confusing, I see now the
misconception :)

dynamic vs static means - haw available budget is calculated, not where.
Dynamic can be implemented in the linux core too, but so far no one did.
Static can be implement in the MCU firmware as well.

In static case - the Powered Device tells us haw much power budget we
need to reserve for this device and it will be permanently accounted.
Advantage - every device will get what it is requesting.
Disadvantage - we do not use full capability of the power supply.

In dynamic case - we do not fully trust the Powered Device, first we
reserve requested budget and then start measuring the PD consumption.
If real consumption is less as requested, the reservation will be
reduced.
Advantage - more PDs can be attached.
Disadvantage - a spike in consumption of one PD, may kick out some low
prio PDs.

Since the dynamic case need a lot of measurements, it is usually
implemented in the firmware. Both strategies have advantages and
disadvantages and MCUs may allow to change the strategies, this is why we
provide this information.

In your case it is not documented, but it can be tested if you have
enough PDs where you can influence the load.
Probably takes a bit of preparation to set up such a test.
Not sure if we need an UNKNOWN flag to tell the user - we do not know
what to expect, use it on your own risk.
So dynamic happens to be the suitable case here right now, because the core
doesn't handle it yet and the MCU does it on it's own without the core
disturbing that?

I'd like to avoid dealing with that in this series as this seems at least to me
like another deep rabbit hole. The MCU comes always in kind of a
pre-configured state, having several limits set so it should behave safe
and mostly as expected without the driver changing anything.
quoted
Using vpwr-supply on each PI still buys that the
supply is enabled and ref-counted by PSE-PD core, and keeps potential for what
might come. But no requesting, allocation or deallocation of power.
Ack, in many cases it is for diagnostic. Please note, a "manger" is in
the practice a multi channel current limiter/regulator. It has maximal
load per chip and different max load per port. This can be properly
reflected with the regulators. 

For example, RTL8238B-VB datasheet do not document maximal rating per
chip, only per port. Calculating 8 ports, with 36W max, would result in
288W. It feels like a lot of heat. Can it actually handle it?
I can't tell, but I would guess so. Several switches I have use a single PSE
chip for 8 ports. Given the advertisment of 30W per port and staying within
the overall budget, I might expect to be able to use it. Or the vendor hides
some information.
May be the MCU firmware has integrated maximal power limit do avoid HW
damage. A proper information in the regulator tree would help user to
understand why not all ports will get requested power.
quoted
Given that, I had a closer look at PD692x0 and it seems, this has a similar setup.
The difference here being just that there's no multi-manager concept. There is
also a manager-level supply reference "vmain-supply" which the driver reads
and applies to the hardware, which does budgeting also in hardware.
According to RTL8238B documentation, it has same multi-manager concept.
Since one manager RTL8238B supports max 8 ports, a switch with more PoE
capable ports would need more chips.
I see. I mixed up the terms and thought this "manager" is separate level in
between. If "manager" == RTL823x PSE chip, then it's the same setup.

What do you suggest? I would like to avoid doing any half-grounded claims
or assumptions here while not fully overviewing the whole picture. At the same
time, I have the feeling the datasheet and host command guide from Realtek
are genuinely trying to fool me.

The setup seems to be very similar to PD692x0, we have multiple managers,
managed by a controller (the MCU). The MCU mostly does runtime discovery
of the downstream managers, so right now there is no apparent need to
have the same manager + port definitions in DT as PD692x0.

In reality I haven't seen a board which has different power rails for different
managers. So there's usually a single wire from the PSU going to the PoE
daughterboard where everything lands on a single supply PCB trace. The MCU
has a multi-bank concept, however it's usage right now is rather confusing.
Managers seem to have strapping pins which tell which bank they use, and on
the MCU side one can set power limit for each bank.
Since we already talk about power budgeting - all of this make sense if
we have port priorities. For example PD692x0 firmware has default prios
bound to port numbers. Is it the same with this firmware?
Looking at several switches, by default all ports have a priority of 0 assigned.
Thus, no pre-defined prioritisation, it's up to the user to set this.


Best regards,
Jonas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help