Dimitris Papastamos
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with
11 additions and
9 deletions
-
bl32/sp_min/sp_min_main.c
-
include/lib/utils.h
-
lib/utils/mem_region.c
-
plat/arm/css/drivers/mhu/css_mhu_doorbell.c
-
plat/arm/css/drivers/scp/css_pm_scmi.c
-
plat/arm/css/drivers/scp/css_pm_scpi.c
-
plat/arm/css/drivers/scp/css_sds.c
-
plat/arm/css/drivers/sds/sds.h
|
|
@ -20,6 +20,7 @@ |
|
|
|
#include <smccc_helpers.h> |
|
|
|
#include <stddef.h> |
|
|
|
#include <stdint.h> |
|
|
|
#include <std_svc.h> |
|
|
|
#include <string.h> |
|
|
|
#include <types.h> |
|
|
|
#include <utils.h> |
|
|
|
|
|
@ -37,10 +37,10 @@ void clear_mem_regions(mem_region_t *tbl, size_t nregions); |
|
|
|
* in a way that they minimize the number of entries used in the |
|
|
|
* translation tables. |
|
|
|
*/ |
|
|
|
void clear_map_dyn_mem_regions(mem_region_t *region, |
|
|
|
void clear_map_dyn_mem_regions(struct mem_region *regions, |
|
|
|
size_t nregions, |
|
|
|
uintptr_t va, |
|
|
|
size_t chunk_size); |
|
|
|
size_t chunk); |
|
|
|
|
|
|
|
/*
|
|
|
|
* checks that a region (addr + nbytes-1) of memory is totally covered by |
|
|
|
|
|
@ -50,7 +50,7 @@ void clear_mem_regions(mem_region_t *tbl, size_t nregions) |
|
|
|
* be cleared, and chunk is the amount of memory mapped and |
|
|
|
* cleared in every iteration. |
|
|
|
*/ |
|
|
|
void clear_map_dyn_mem_regions(mem_region_t *regions, |
|
|
|
void clear_map_dyn_mem_regions(struct mem_region *regions, |
|
|
|
size_t nregions, |
|
|
|
uintptr_t va, |
|
|
|
size_t chunk) |
|
|
|
|
|
@ -9,7 +9,7 @@ |
|
|
|
#include "css_mhu_doorbell.h" |
|
|
|
#include "../scmi/scmi.h" |
|
|
|
|
|
|
|
void mhu_ring_doorbell(scmi_channel_plat_info_t *plat_info) |
|
|
|
void mhu_ring_doorbell(struct scmi_channel_plat_info *plat_info) |
|
|
|
{ |
|
|
|
MHU_RING_DOORBELL(plat_info->db_reg_addr, |
|
|
|
plat_info->db_modify_mask, |
|
|
@ -17,7 +17,7 @@ void mhu_ring_doorbell(scmi_channel_plat_info_t *plat_info) |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
void mhuv2_ring_doorbell(scmi_channel_plat_info_t *plat_info) |
|
|
|
void mhuv2_ring_doorbell(struct scmi_channel_plat_info *plat_info) |
|
|
|
{ |
|
|
|
/* wake receiver */ |
|
|
|
MHU_V2_ACCESS_REQUEST(MHUV2_BASE_ADDR); |
|
|
|
|
|
@ -142,7 +142,7 @@ void css_scp_suspend(const struct psci_power_state *target_state) |
|
|
|
* Helper function to turn off a CPU power domain and its parent power domains |
|
|
|
* if applicable. |
|
|
|
*/ |
|
|
|
void css_scp_off(const psci_power_state_t *target_state) |
|
|
|
void css_scp_off(const struct psci_power_state *target_state) |
|
|
|
{ |
|
|
|
int lvl = 0, ret; |
|
|
|
uint32_t scmi_pwr_state = 0; |
|
|
@ -298,7 +298,7 @@ void __dead2 css_scp_sys_reboot(void) |
|
|
|
css_scp_system_off(SCMI_SYS_PWR_COLD_RESET); |
|
|
|
} |
|
|
|
|
|
|
|
scmi_channel_plat_info_t plat_css_scmi_plat_info = { |
|
|
|
static scmi_channel_plat_info_t plat_css_scmi_plat_info = { |
|
|
|
.scmi_mbx_mem = CSS_SCMI_PAYLOAD_BASE, |
|
|
|
.db_reg_addr = PLAT_CSS_MHU_BASE + CSS_SCMI_MHU_DB_REG_OFF, |
|
|
|
.db_preserve_mask = 0xfffffffe, |
|
|
|
|
|
@ -47,7 +47,7 @@ void css_scp_suspend(const struct psci_power_state *target_state) |
|
|
|
* if applicable. Since SCPI doesn't differentiate between OFF and suspend, we |
|
|
|
* call the suspend helper here. |
|
|
|
*/ |
|
|
|
void css_scp_off(const psci_power_state_t *target_state) |
|
|
|
void css_scp_off(const struct psci_power_state *target_state) |
|
|
|
{ |
|
|
|
css_scp_suspend(target_state); |
|
|
|
} |
|
|
|
|
|
@ -11,6 +11,7 @@ |
|
|
|
#include <delay_timer.h> |
|
|
|
#include <platform.h> |
|
|
|
#include <stdint.h> |
|
|
|
#include "css_scp.h" |
|
|
|
#include "../sds/sds.h" |
|
|
|
|
|
|
|
int css_scp_boot_image_xfer(void *image, unsigned int image_size) |
|
|
|
|
|
@ -80,7 +80,7 @@ typedef enum { |
|
|
|
} sds_access_mode_t; |
|
|
|
|
|
|
|
int sds_init(void); |
|
|
|
int sds_struct_exists(uint32_t structure_id); |
|
|
|
int sds_struct_exists(unsigned int structure_id); |
|
|
|
int sds_struct_read(uint32_t structure_id, unsigned int fld_off, void *data, |
|
|
|
size_t size, sds_access_mode_t mode); |
|
|
|
int sds_struct_write(uint32_t structure_id, unsigned int fld_off, void *data, |
|
|
|