Question about the p2020rdb(e500 core) power mode.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Question about the p2020rdb(e500 core) power mode.

1,129 Views
minjokim
Contributor I

Hi~

I have questions.

I'm going to implement the power management module to reduce the power consumption of p2020rdb(e500 core).

So, I read the board & core manuals and I found about power management.

According to manuals, there are 2 methods.

     1. control the MSR[WE], and HID0[doze,nap,slep]

     2. GUTS_POWMGTCSR register.

I try to implement the power management module using above methods(especially doze mode).

And I guess maybe that work..

But I'm not sure that because decrementor makes timer interupt then core is returned to full-on state.

In manuals, after interupt service, core is returned to power saving mode(doze,nap...).

However, I can't check the power saving mode because my application is running..

I think, I am wrong and miss the some information or sequence.

Is there anyone who knows about using power saving mode??

Can power-saving module is implemented using only c code?? or It needs a assemble code?? 

And where can I get a source code??

Thanks in advance. :smileyhappy:

Minjo.

Labels (1)
Tags (3)
0 Kudos
1 Reply

837 Views
scottwood
NXP Employee
NXP Employee

You can find example code for using MSR[WE] in the Linux kernel (arch/powerpc/kernel/idle_e500.S).

When you leave a low power state by taking an interrupt, the previous value of MSR (with WE set) will be in SRR1.  That value will be restored to MSR when the interrupt returns, so if you don't want to return to the low power state you need to clear the bit in SRR1 before executing rfi.

You'll need at least some assembly to execute mtmsr/mtspr instructions.

I'm not sure if that answered your question -- is there something specific you're unsure of?

0 Kudos