/* * Qualcomm Peripheral Image Loader * * Copyright (C) 2016 Linaro Ltd. * Copyright (C) 2014 Sony Mobile Communications AB * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */#include<linux/clk.h>#include<linux/delay.h>#include<linux/dma-mapping.h>#include<linux/interrupt.h>#include<linux/kernel.h>#include<linux/mfd/syscon.h>#include<linux/module.h>#include<linux/of_address.h>#include<linux/of_device.h>#include<linux/platform_device.h>#include<linux/regmap.h>#include<linux/regulator/consumer.h>#include<linux/remoteproc.h>#include<linux/reset.h>#include<linux/soc/qcom/mdt_loader.h>#include<linux/soc/qcom/smem.h>#include<linux/soc/qcom/smem_state.h>#include<linux/iopoll.h>#include"remoteproc_internal.h"#include"qcom_common.h"#include<linux/qcom_scm.h>#define MPSS_CRASH_REASON_SMEM 421/* RMB Status Register Values */#define RMB_PBL_SUCCESS 0x1#define RMB_MBA_XPU_UNLOCKED 0x1#define RMB_MBA_XPU_UNLOCKED_SCRIBBLED 0x2#define RMB_MBA_META_DATA_AUTH_SUCCESS 0x3#define RMB_MBA_AUTH_COMPLETE 0x4/* PBL/MBA interface registers */