/*
 * (C) Copyright 2015
 * Kamil Lulko, <kamil.lulko@gmail.com>
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */

#include <common.h>
#include <asm/io.h>
#include <asm/armv7m.h>
#include <asm/arch/stm32.h>

u32 get_cpu_rev(void)
{
	return 0;
}

int arch_cpu_init(void)
{
	configure_clocks();

	/*
		* Configure the memory protection unit (MPU)
		* 0x00000000 - 0xffffffff: Strong-order, Shareable
		* 0xC0000000 - 0xC0800000: Normal, Outer and inner Non-cacheable
	 */

	 /* Disable MPU */
	 writel(0, &V7M_MPU->ctrl);

	 writel(
		 0x00000000 /* address */
		 | 1 << 4	/* VALID */
		 | 0 << 0	/* REGION */
		 , &V7M_MPU->rbar
	 );

	 /* Strong-order, Shareable */
	 /* TEX=000, S=1, C=0, B=0*/
	 writel(
		 (V7M_MPU_RASR_XN_ENABLE
			 | V7M_MPU_RASR_AP_RW_RW
			 | 0x01 << V7M_MPU_RASR_S_SHIFT
			 | 0x00 << V7M_MPU_RASR_TEX_SHIFT
			 | V7M_MPU_RASR_SIZE_4GB
			 | V7M_MPU_RASR_EN)
		 , &V7M_MPU->rasr
	 );

	 writel(
		 0xC0000000 /* address */
		 | 1 << 4	/* VALID */
		 | 1 << 0	/* REGION */
		 , &V7M_MPU->rbar
	 );

	 /* Normal, Outer and inner Non-cacheable */
	 /* TEX=001, S=0, C=0, B=0*/
	 writel(
		 (V7M_MPU_RASR_XN_ENABLE
			 | V7M_MPU_RASR_AP_RW_RW
			 | 0x01 << V7M_MPU_RASR_TEX_SHIFT
			 | V7M_MPU_RASR_SIZE_8MB
			 | V7M_MPU_RASR_EN)
			 , &V7M_MPU->rasr
	 );

	 /* Enable MPU */
	 writel(V7M_MPU_CTRL_ENABLE | V7M_MPU_CTRL_HFNMIENA, &V7M_MPU->ctrl);

	return 0;
}

void s_init(void)
{
}
