Skip to content

PMP support#460

Open
WhatAmISupposedToPutHere wants to merge 4 commits intoAsahiLinux:asahi-wipfrom
WhatAmISupposedToPutHere:feldspar
Open

PMP support#460
WhatAmISupposedToPutHere wants to merge 4 commits intoAsahiLinux:asahi-wipfrom
WhatAmISupposedToPutHere:feldspar

Conversation

@WhatAmISupposedToPutHere
Copy link

@WhatAmISupposedToPutHere WhatAmISupposedToPutHere commented Feb 27, 2026

Works on M1 Pro and saves about 1W of power there, will not work on vanilla M1 (that uses pmp v1, not v2), and hopefully should work on m1 max/ultra and m2 vanilla/pro/max/ultra.

@mkurz
Copy link

mkurz commented Feb 27, 2026

Works on M1 Pro and saves about 1W of power

You mean saves power when sleep? Or when running? Can you explain a bit more when power is saved and for which components it is saved? Thanks!

I will try this patch.

@WhatAmISupposedToPutHere
Copy link
Author

Works on M1 Pro and saves about 1W of power

You mean saves power when sleep? Or when running?

yes

@mkurz
Copy link

mkurz commented Feb 27, 2026

Works on M1 Pro and saves about 1W of power

You mean saves power when sleep? Or when running?

yes

So in both cases?

@WhatAmISupposedToPutHere WhatAmISupposedToPutHere changed the title [Somewhat WIP] PMP support PMP support Feb 28, 2026
Copy link
Member

@jannau jannau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is missing for submitting this upstream? just dt-bindings and rtkit rust abstractions or something else?

};

&pmp {
apple,pio-ranges = <0x2 0x80000000 0x0 0x1000000>,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs at least a comment that the order is important but it would hurt to find another way to ensure this

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't that kind of comment go into the dt-binding?

@WhatAmISupposedToPutHere
Copy link
Author

What is missing for submitting this upstream? just dt-bindings and rtkit rust abstractions or something else?

We have rtkit, what does not exist (or did not exist when i was writing this one) is rust abstractions for iomap_at. And obviously testing on not-m1pro

@jannau
Copy link
Member

jannau commented Feb 28, 2026

we have rtkit rust binding but upstream hasn't so we would have to submit rtkit first or with pmp

Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
@WhatAmISupposedToPutHere WhatAmISupposedToPutHere changed the base branch from asahi to asahi-wip March 1, 2026 18:56
This is the core part of a power management co-processor present
on certain Apple SoCs. This driver starts the firmware, and
uploads the configuration and calibration data by pretending
to be IOKit.

Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
This driver manages a shared SRAM area that is used to communicate
desired power states of devices that PMP manages.

Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
Add the PMP device and set it as the power-domain for devices that
need to report their power states to it.

Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants