46 lines
1.4 KiB
C
46 lines
1.4 KiB
C
/*
|
|
* Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
#ifndef N200_PSO_H
|
|
#define N200_PSO_H
|
|
|
|
#include <stdio.h>
|
|
#include "soc.h"
|
|
#include "lscript.h"
|
|
|
|
#define AOCPU_WFI_AUTO_PSO
|
|
|
|
#define PSO_SAVE_AREA_SIZE PSO_AREA_SIZE
|
|
#define PSO_SAVE_AREA_BASE (configMEM_START + configMEM_LEN)
|
|
#define PSO_SAVE_AREA_SIZE_W (PSO_SAVE_AREA_SIZE / 4)
|
|
#define PSO_SAVE_CHECK_BASE PSO_SAVE_AREA_BASE
|
|
#define PSO_SAVE_CHECK_SIZE (1 * 4)
|
|
#define PSO_SAVE_PMP_BASE (PSO_SAVE_CHECK_BASE + PSO_SAVE_CHECK_SIZE)
|
|
#define PSO_SAVE_PMP_SIZE (10 * 4)
|
|
#define PSO_SAVE_ECLIC_BASE (PSO_SAVE_PMP_BASE + PSO_SAVE_PMP_SIZE)
|
|
#define PSO_SAVE_ECLIC_INT_BASE (PSO_SAVE_PMP_BASE + PSO_SAVE_PMP_SIZE)
|
|
#define PSO_SAVE_ECLIC_INT_SIZE (ECLIC_NUM_INTERRUPTS * 4)
|
|
#define PSO_SAVE_ECLIC_MTH_BASE (PSO_SAVE_ECLIC_INT_BASE + PSO_SAVE_ECLIC_INT_SIZE)
|
|
#define PSO_SAVE_ECLIC_MTH_SIZE (1 * 4)
|
|
#define PSO_SAVE_AO_IRQ_SEL_BASE (PSO_SAVE_ECLIC_MTH_BASE + PSO_SAVE_ECLIC_MTH_SIZE)
|
|
#ifdef AOCPU_IRQ_SEL8
|
|
#define PSO_SAVE_AO_IRQ_SEL_SIZE_W 16
|
|
#else
|
|
#define PSO_SAVE_AO_IRQ_SEL_SIZE_W 8
|
|
#endif
|
|
|
|
extern uint32_t eclic_interrupt_inner[SOC_ECLIC_NUM_INTERRUPTS];
|
|
|
|
void add_hw_pwrctrl_fsm_awake_irq(uint16_t sel_irq);
|
|
void remove_hw_pwrctrl_fsm_awake_irq(uint16_t sel_irq);
|
|
void pso_cut_off_power(unsigned long ra);
|
|
void pso_power_off(void);
|
|
void pso_resume(void);
|
|
void pso_context_save(void);
|
|
extern void pso_context_restore(void);
|
|
|
|
#endif
|