mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-17 18:28:55 +00:00
68 lines
993 B
C
68 lines
993 B
C
|
/*
|
||
|
* (C) Copyright 2017
|
||
|
* Vikas Manocha, ST Micoelectronics, vikas.manocha@st.com.
|
||
|
*
|
||
|
* SPDX-License-Identifier: GPL-2.0+
|
||
|
*/
|
||
|
|
||
|
enum region_number {
|
||
|
REGION_0 = 0,
|
||
|
REGION_1,
|
||
|
REGION_2,
|
||
|
REGION_3,
|
||
|
REGION_4,
|
||
|
REGION_5,
|
||
|
REGION_6,
|
||
|
REGION_7,
|
||
|
};
|
||
|
|
||
|
enum ap {
|
||
|
NO_ACCESS = 0,
|
||
|
PRIV_RW_USR_NO,
|
||
|
PRIV_RW_USR_RO,
|
||
|
PRIV_RW_USR_RW,
|
||
|
UNPREDICTABLE,
|
||
|
PRIV_RO_USR_NO,
|
||
|
PRIV_RO_USR_RO,
|
||
|
};
|
||
|
|
||
|
enum mr_attr {
|
||
|
STRONG_ORDER = 0,
|
||
|
SHARED_WRITE_BUFFERED,
|
||
|
O_I_WT_NO_WR_ALLOC,
|
||
|
O_I_WB_NO_WR_ALLOC,
|
||
|
O_I_NON_CACHEABLE,
|
||
|
O_I_WB_RD_WR_ALLOC,
|
||
|
DEVICE_NON_SHARED,
|
||
|
};
|
||
|
enum size {
|
||
|
REGION_8MB = 22,
|
||
|
REGION_16MB,
|
||
|
REGION_32MB,
|
||
|
REGION_64MB,
|
||
|
REGION_128MB,
|
||
|
REGION_256MB,
|
||
|
REGION_512MB,
|
||
|
REGION_1GB,
|
||
|
REGION_2GB,
|
||
|
REGION_4GB,
|
||
|
};
|
||
|
|
||
|
enum xn {
|
||
|
XN_DIS = 0,
|
||
|
XN_EN,
|
||
|
};
|
||
|
|
||
|
struct mpu_region_config {
|
||
|
uint32_t start_addr;
|
||
|
enum region_number region_no;
|
||
|
enum xn xn;
|
||
|
enum ap ap;
|
||
|
enum mr_attr mr_attr;
|
||
|
enum size reg_size;
|
||
|
};
|
||
|
|
||
|
void disable_mpu(void);
|
||
|
void enable_mpu(void);
|
||
|
void mpu_config(struct mpu_region_config *reg_config);
|