mirror of
https://github.com/CTCaer/switch-l4t-atf.git
synced 2025-01-26 04:25:13 +00:00
Support for varying BOM/SCPI protocol base addresses in ARM platforms
Current code assumes `SCP_COM_SHARED_MEM_BASE` as the base address for BOM/SCPI protocol between AP<->SCP on all CSS platforms. To cater for future ARM platforms this is made platform specific. Similarly, the bit shifts of `SCP_BOOT_CONFIG_ADDR` are also made platform specific. Change-Id: Ie8866c167abf0229a37b3c72576917f085c142e8
This commit is contained in:
parent
85320724af
commit
8e083ecd66
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
@ -78,25 +78,12 @@
|
||||
* SCP <=> AP boot configuration
|
||||
*
|
||||
* The SCP/AP boot configuration is a 32-bit word located at a known offset from
|
||||
* the start of the Trusted SRAM. Part of this configuration is which CPU is the
|
||||
* primary, according to the shift and mask definitions below.
|
||||
* the start of the Trusted SRAM.
|
||||
*
|
||||
* Note that the value stored at this address is only valid at boot time, before
|
||||
* the SCP_BL2 image is transferred to SCP.
|
||||
*/
|
||||
#define SCP_BOOT_CFG_ADDR (ARM_TRUSTED_SRAM_BASE + 0x80)
|
||||
#define PRIMARY_CPU_SHIFT 8
|
||||
#define PRIMARY_CPU_BIT_WIDTH 4
|
||||
|
||||
/*
|
||||
* Base address of the first memory region used for communication between AP
|
||||
* and SCP. Used by the BOM and SCPI protocols.
|
||||
*
|
||||
* Note that this is located at the same address as SCP_BOOT_CFG_ADDR, which
|
||||
* means the SCP/AP configuration data gets overwritten when the AP initiates
|
||||
* communication with the SCP.
|
||||
*/
|
||||
#define SCP_COM_SHARED_MEM_BASE (ARM_TRUSTED_SRAM_BASE + 0x80)
|
||||
#define SCP_BOOT_CFG_ADDR PLAT_CSS_SCP_COM_SHARED_MEM_BASE
|
||||
|
||||
#define CSS_MAP_DEVICE MAP_REGION_FLAT( \
|
||||
CSS_DEVICE_BASE, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2014-2016, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
@ -99,6 +99,20 @@
|
||||
#define PLAT_ARM_GICH_BASE 0x2c04f000
|
||||
#define PLAT_ARM_GICV_BASE 0x2c06f000
|
||||
|
||||
/*
|
||||
* Base address of the first memory region used for communication between AP
|
||||
* and SCP. Used by the BOM and SCPI protocols.
|
||||
*
|
||||
* Note that this is located at the same address as SCP_BOOT_CFG_ADDR, which
|
||||
* means the SCP/AP configuration data gets overwritten when the AP initiates
|
||||
* communication with the SCP. The configuration data is expected to be a
|
||||
* 32-bit word on all CSS platforms. On Juno, part of this configuration is
|
||||
* which CPU is the primary, according to the shift and mask definitions below.
|
||||
*/
|
||||
#define PLAT_CSS_SCP_COM_SHARED_MEM_BASE (ARM_TRUSTED_SRAM_BASE + 0x80)
|
||||
#define PLAT_CSS_PRIMARY_CPU_SHIFT 8
|
||||
#define PLAT_CSS_PRIMARY_CPU_BIT_WIDTH 4
|
||||
|
||||
/*
|
||||
* Define a list of Group 1 Secure and Group 0 interrupts as per GICv3
|
||||
* terminology. On a GICv2 system or mode, the lists will be merged and treated
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2013-2015, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2013-2016, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
@ -117,7 +117,8 @@ func plat_is_my_cpu_primary
|
||||
bl plat_my_core_pos
|
||||
ldr x1, =SCP_BOOT_CFG_ADDR
|
||||
ldr x1, [x1]
|
||||
ubfx x1, x1, #PRIMARY_CPU_SHIFT, #PRIMARY_CPU_BIT_WIDTH
|
||||
ubfx x1, x1, #PLAT_CSS_PRIMARY_CPU_SHIFT, \
|
||||
#PLAT_CSS_PRIMARY_CPU_BIT_WIDTH
|
||||
cmp x0, x1
|
||||
cset w0, eq
|
||||
ret x9
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2014-2016, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
@ -60,7 +60,7 @@ typedef struct {
|
||||
* Unlike the SCPI protocol, the boot protocol uses the same memory region
|
||||
* for both AP -> SCP and SCP -> AP transfers; define the address of this...
|
||||
*/
|
||||
#define BOM_SHARED_MEM SCP_COM_SHARED_MEM_BASE
|
||||
#define BOM_SHARED_MEM PLAT_CSS_SCP_COM_SHARED_MEM_BASE
|
||||
#define BOM_CMD_HEADER ((bom_cmd_t *) BOM_SHARED_MEM)
|
||||
#define BOM_CMD_PAYLOAD ((void *) (BOM_SHARED_MEM + sizeof(bom_cmd_t)))
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2014-2016, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
@ -37,8 +37,9 @@
|
||||
#include "css_mhu.h"
|
||||
#include "css_scpi.h"
|
||||
|
||||
#define SCPI_SHARED_MEM_SCP_TO_AP SCP_COM_SHARED_MEM_BASE
|
||||
#define SCPI_SHARED_MEM_AP_TO_SCP (SCP_COM_SHARED_MEM_BASE + 0x100)
|
||||
#define SCPI_SHARED_MEM_SCP_TO_AP PLAT_CSS_SCP_COM_SHARED_MEM_BASE
|
||||
#define SCPI_SHARED_MEM_AP_TO_SCP (PLAT_CSS_SCP_COM_SHARED_MEM_BASE \
|
||||
+ 0x100)
|
||||
|
||||
#define SCPI_CMD_HEADER_AP_TO_SCP \
|
||||
((scpi_cmd_t *) SCPI_SHARED_MEM_AP_TO_SCP)
|
||||
|
Loading…
x
Reference in New Issue
Block a user