plat: marvell: armada: move mg conf related code to appropriate driver
Now when mg_conf_cm3 driver is present - move all relevant code there. Change-Id: I444d9e877c450d6ee69ca3a49b547e4c3aeac0be Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com>
This commit is contained in:
parent
5a9e46e69c
commit
0081cdd1c6
|
@ -8,15 +8,41 @@
|
|||
#include <a8k_plat_def.h>
|
||||
#include <common/debug.h>
|
||||
#include <lib/mmio.h>
|
||||
#include <mvebu.h>
|
||||
#include <mss_scp_bl2_format.h>
|
||||
|
||||
/* CONFI REGISTERS */
|
||||
#define MG_CM3_CONFI_BASE(CP) (MVEBU_CP_REGS_BASE(CP) + 0x100000)
|
||||
#define MG_CM3_SRAM_BASE(CP) MG_CM3_CONFI_BASE(CP)
|
||||
#define MG_CM3_CONFI_GLOB_CFG_REG(CP) (MG_CM3_CONFI_BASE(CP) + 0x2B500)
|
||||
#define CM3_CPU_EN_BIT BIT(28)
|
||||
#define MG_CM3_MG_INT_MFX_REG(CP) (MG_CM3_CONFI_BASE(CP) + 0x2B054)
|
||||
#define CM3_SYS_RESET_BIT BIT(0)
|
||||
|
||||
#define MG_SRAM_SIZE 0x20000 /* 128KB */
|
||||
|
||||
int mg_image_load(uintptr_t src_addr, uint32_t size, int cp_index)
|
||||
{
|
||||
uintptr_t mg_regs = MG_CM3_SRAM_BASE(cp_index);
|
||||
|
||||
if (size > MG_SRAM_SIZE) {
|
||||
ERROR("image is too big to fit into MG CM3 memory\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
NOTICE("Loading MG image from address 0x%lx Size 0x%x to MG at 0x%lx\n",
|
||||
src_addr, size, mg_regs);
|
||||
|
||||
/* Copy image to MG CM3 SRAM */
|
||||
memcpy((void *)mg_regs, (void *)src_addr, size);
|
||||
|
||||
/* Don't release MG CM3 from reset - it will be done by next step
|
||||
* bootloader (e.g. U-Boot), when appriopriate device-tree setup (which
|
||||
* has enabeld 802.3. auto-neg) will be choosen.
|
||||
*/
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void mg_start_ap_fw(int cp_nr)
|
||||
{
|
||||
if (mmio_read_32(MG_CM3_CONFI_GLOB_CFG_REG(cp_nr)) & CM3_CPU_EN_BIT) {
|
||||
|
|
|
@ -6,3 +6,4 @@
|
|||
*/
|
||||
|
||||
void mg_start_ap_fw(int cp_nr);
|
||||
int mg_image_load(uintptr_t src_addr, uint32_t size, int cp_index);
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
#define HEADER_VERSION 0x1
|
||||
|
||||
#define MSS_IDRAM_SIZE 0x10000 /* 64KB */
|
||||
#define MG_SRAM_SIZE 0x20000 /* 128KB */
|
||||
|
||||
/* Types definitions */
|
||||
typedef struct file_header {
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include <arch_helpers.h>
|
||||
#include <common/debug.h>
|
||||
#include <drivers/delay_timer.h>
|
||||
#include <mg_conf_cm3/mg_conf_cm3.h>
|
||||
#include <lib/mmio.h>
|
||||
|
||||
#include <plat_pm_trace.h>
|
||||
|
@ -42,8 +43,6 @@
|
|||
|
||||
#define MSS_HANDSHAKE_TIMEOUT 50
|
||||
|
||||
#define MG_CM3_SRAM_BASE(CP) (MVEBU_CP_REGS_BASE(CP) + 0x100000)
|
||||
|
||||
static int mss_check_image_ready(volatile struct mss_pm_ctrl_block *mss_pm_crtl)
|
||||
{
|
||||
int timeout = MSS_HANDSHAKE_TIMEOUT;
|
||||
|
@ -61,28 +60,6 @@ static int mss_check_image_ready(volatile struct mss_pm_ctrl_block *mss_pm_crtl)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int mg_image_load(uintptr_t src_addr, uint32_t size, uintptr_t mg_regs)
|
||||
{
|
||||
if (size > MG_SRAM_SIZE) {
|
||||
ERROR("image is too big to fit into MG CM3 memory\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
NOTICE("Loading MG image from address 0x%lx Size 0x%x to MG at 0x%lx\n",
|
||||
src_addr, size, mg_regs);
|
||||
|
||||
/* Copy image to MG CM3 SRAM */
|
||||
memcpy((void *)mg_regs, (void *)src_addr, size);
|
||||
|
||||
/*
|
||||
* Don't release MG CM3 from reset - it will be done by next step
|
||||
* bootloader (e.g. U-Boot), when appriopriate device-tree setup (which
|
||||
* has enabeld 802.3. auto-neg) will be choosen.
|
||||
*/
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mss_image_load(uint32_t src_addr, uint32_t size, uintptr_t mss_regs)
|
||||
{
|
||||
uint32_t i, loop_num, timeout;
|
||||
|
@ -258,8 +235,7 @@ static int load_img_to_cm3(enum cm3_t cm3_type,
|
|||
break;
|
||||
}
|
||||
NOTICE("Load image to CP%d MG\n", cp_index);
|
||||
ret = mg_image_load(single_img, image_size,
|
||||
MG_CM3_SRAM_BASE(cp_index));
|
||||
ret = mg_image_load(single_img, image_size, cp_index);
|
||||
if (ret != 0) {
|
||||
ERROR("SCP Image load failed\n");
|
||||
return -1;
|
||||
|
|
Loading…
Reference in New Issue