LPC55S69 : Power-down in secure world

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

LPC55S69 : Power-down in secure world

625 Views
EugeneHiihtaja
Senior Contributor I

Hello !

I can see power management example works and I can wakeup from PowerDown mode as expected.

But when I migrate to RTOS  environment and try to put MCU to PowerDown mode on Secure side :

/* POWER DOWN */
POWER_EnterPowerDown(
(kPDRUNCFG_PD_LDOMEM | kPDRUNCFG_PD_FRO32K),

0x7FFF,
WAKEUP_GPIO_GLOBALINT0 | WAKEUP_GPIO_GLOBALINT1 |
WAKEUP_RTC_LITE_ALARM_WAKEUP
| WAKEUP_FLEXCOMM3 | WAKEUP_OS_EVENT_TIMER,
1);

BOARD_BootClockFRO12M();
BOARD_BootClockPLL150M();
BOARD_InitDebugConsole();

I can't wakeup by using any wakeup source.

I try to use library libpower_hardrabi_s and libpower_hardabi .

GINTx interrupts processed on Secure side and others on nonsecure.

I wondering what kind of extra libraries and configurations are need for enable Power-Down mode in case 

of real environment where TZ and secure/nonsecure partitioning in use ?

Regards,

Eugene

Labels (1)
0 Kudos
3 Replies

523 Views
Sabina_Bruce
NXP Employee
NXP Employee

Hello Eugene,

Could you please show me how you implemented the power down function from the secure side?

Best Regards,

Sabina

0 Kudos

523 Views
EugeneHiihtaja
Senior Contributor I

Hi sabinabruce‌ !

I have tried Powerdown by using freertos_mpu_s/ns example.

At any side ( s/ns) it is not possible to wakeup MCU back by any source.

GINTx interrupts served on secure side, RTC/OS_EVENT timer on nonsecure side.

I try to link power and/or power_s libs, result the same.

Powerlib version is 0x10000. 

Could you confirm what exact powerlib version and modification should be taken in use

in environment where trustzone is activated.

I think freertos_mpu_s/ns is good example for testing.

Regards,

Eugene

0 Kudos

523 Views
EugeneHiihtaja
Senior Contributor I

Hi Sabina !

It is normal nsc function

secureportNON_SECURE_CALLABLE void RTOS_EnterPowerDown(void) { .. }

but it called in rtos tickless implementation at place of macro

configPOST_SLEEP_PROCESSING(xExpectedIdleTime);

and at that point all interrupts are disabled by __disable_irq();

What is all preconditions for this Power API call ?

RTOS require disabled interrupts.

Regards,

Eugene

0 Kudos