blob: 9638f34287ba93f8f2469d732873f841cd6ca264 [file] [log] [blame]
/****************************************************************************
* arch/arm/src/s32k3xx/hardware/s32k3xx_pflash.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
/* Copyright 2022 NXP */
#ifndef __ARCH_ARM_SRC_S32K3XX_HARDWARE_S32K3XX_PFLASH_H
#define __ARCH_ARM_SRC_S32K3XX_HARDWARE_S32K3XX_PFLASH_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <hardware/s32k3xx_memorymap.h>
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* PFLASH Register Offsets **************************************************/
#define S32K3XX_PFLASH_PFCR0_OFFSET (0x0000) /* Platform Flash Memory Configuration Register 0 (PFCR0) */
#define S32K3XX_PFLASH_PFCR1_OFFSET (0x0004) /* Platform Flash Memory Configuration Register 1 (PFCR1) */
#define S32K3XX_PFLASH_PFCR2_OFFSET (0x0008) /* Platform Flash Memory Configuration Register 2 (PFCR2) */
#define S32K3XX_PFLASH_PFCR4_OFFSET (0x0010) /* Platform Flash Memory Configuration Register 4 (PFCR4) */
#define S32K3XX_PFLASH_PFAPR_OFFSET (0x0014) /* Platform Flash Memory Access Protection Register (PFAPR) */
#define S32K3XX_PFLASH_PFCPGM_PEADR_L_OFFSET (0x0300) /* Platform Flash Memory Program Erase Address Logical (PFCPGM_PEADR_L) */
#define S32K3XX_PFLASH_PFCPGM_PEADR_P_OFFSET (0x0304) /* Platform Flash Memory Program Erase Address Physical (PFCPGM_PEADR_P) */
#define S32K3XX_PFLASH_PFCPGM_XPEADR_L_OFFSET (0x0308) /* Platform Flash Memory Express Program Erase Address Logical (PFCPGM_XPEADR_L) */
#define S32K3XX_PFLASH_PFCPGM_XPEADR_P_OFFSET (0x030c) /* Platform Flash Memory Express Program Erase Address Physical (PFCPGM_XPEADR_P) */
#define S32K3XX_PFLASH_PFCBLK0_SPELOCK_OFFSET (0x0340) /* Block 0 Sector Program Erase Lock (PFCBLK0_SPELOCK) */
#define S32K3XX_PFLASH_PFCBLK1_SPELOCK_OFFSET (0x0344) /* Block 1 Sector Program Erase Lock (PFCBLK1_SPELOCK) */
#define S32K3XX_PFLASH_PFCBLK2_SPELOCK_OFFSET (0x0348) /* Block 2 Sector Program Erase Lock (PFCBLK2_SPELOCK) */
#define S32K3XX_PFLASH_PFCBLK3_SPELOCK_OFFSET (0x034c) /* Block 3 Sector Program Erase Lock (PFCBLK3_SPELOCK) */
#define S32K3XX_PFLASH_PFCBLK4_SPELOCK_OFFSET (0x0350) /* Block 4 Sector Program Erase Lock (PFCBLK4_SPELOCK) */
#define S32K3XX_PFLASH_PFCBLKU_SPELOCK_OFFSET (0x0358) /* Block UTEST Sector Program Erase Lock (PFCBLKU_SPELOCK) */
#define S32K3XX_PFLASH_PFCBLK0_SSPELOCK_OFFSET (0x035c) /* Block 0 Super Sector Program Erase Lock (PFCBLK0_SSPELOCK) */
#define S32K3XX_PFLASH_PFCBLK1_SSPELOCK_OFFSET (0x0360) /* Block 1 Super Sector Program Erase Lock (PFCBLK1_SSPELOCK) */
#define S32K3XX_PFLASH_PFCBLK2_SSPELOCK_OFFSET (0x0364) /* Block 2 Super Sector Program Erase Lock (PFCBLK2_SSPELOCK) */
#define S32K3XX_PFLASH_PFCBLK3_SSPELOCK_OFFSET (0x0368) /* Block 3 Super Sector Program Erase Lock (PFCBLK3_SSPELOCK) */
#define S32K3XX_PFLASH_PFCBLK0_SETSLOCK_OFFSET (0x0380) /* Block 0 Set Sector Lock (PFCBLK0_SETSLOCK) */
#define S32K3XX_PFLASH_PFCBLK1_SETSLOCK_OFFSET (0x0384) /* Block 1 Set Sector Lock (PFCBLK1_SETSLOCK) */
#define S32K3XX_PFLASH_PFCBLK2_SETSLOCK_OFFSET (0x0388) /* Block 2 Set Sector Lock (PFCBLK2_SETSLOCK) */
#define S32K3XX_PFLASH_PFCBLK3_SETSLOCK_OFFSET (0x038c) /* Block 3 Set Sector Lock (PFCBLK3_SETSLOCK) */
#define S32K3XX_PFLASH_PFCBLK4_SETSLOCK_OFFSET (0x0390) /* Block 4 Set Sector Lock (PFCBLK4_SETSLOCK) */
#define S32K3XX_PFLASH_PFCBLKU_SETSLOCK_OFFSET (0x0398) /* Block UTEST Set Sector Lock (PFCBLKU_SETSLOCK) */
#define S32K3XX_PFLASH_PFCBLK0_SSETSLOCK_OFFSET (0x039c) /* Block 0 Set Super Sector Lock (PFCBLK0_SSETSLOCK) */
#define S32K3XX_PFLASH_PFCBLK1_SSETSLOCK_OFFSET (0x03a0) /* Block 1 Set Super Sector Lock (PFCBLK1_SSETSLOCK) */
#define S32K3XX_PFLASH_PFCBLK2_SSETSLOCK_OFFSET (0x03a4) /* Block 2 Set Super Sector Lock (PFCBLK2_SSETSLOCK) */
#define S32K3XX_PFLASH_PFCBLK3_SSETSLOCK_OFFSET (0x03a8) /* Block 3 Set Super Sector Lock (PFCBLK3_SSETSLOCK) */
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S0_OFFSET (0x03c0) /* Block 0 Lock Master Sector 0 (PFCBLK0_LOCKMASTER_S0) */
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S1_OFFSET (0x03c4) /* Block 0 Lock Master Sector 1 (PFCBLK0_LOCKMASTER_S1) */
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S2_OFFSET (0x03c8) /* Block 0 Lock Master Sector 2 (PFCBLK0_LOCKMASTER_S2) */
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S3_OFFSET (0x03cc) /* Block 0 Lock Master Sector 3 (PFCBLK0_LOCKMASTER_S3) */
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S4_OFFSET (0x03d0) /* Block 0 Lock Master Sector 4 (PFCBLK0_LOCKMASTER_S4) */
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S5_OFFSET (0x03d4) /* Block 0 Lock Master Sector 5 (PFCBLK0_LOCKMASTER_S5) */
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S6_OFFSET (0x03d8) /* Block 0 Lock Master Sector 6 (PFCBLK0_LOCKMASTER_S6) */
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S7_OFFSET (0x03dc) /* Block 0 Lock Master Sector 7 (PFCBLK0_LOCKMASTER_S7) */
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S0_OFFSET (0x03e0) /* Block 1 Lock Master Sector 0 (PFCBLK1_LOCKMASTER_S0) */
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S1_OFFSET (0x03e4) /* Block 1 Lock Master Sector 1 (PFCBLK1_LOCKMASTER_S1) */
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S2_OFFSET (0x03e8) /* Block 1 Lock Master Sector 2 (PFCBLK1_LOCKMASTER_S2) */
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S3_OFFSET (0x03ec) /* Block 1 Lock Master Sector 3 (PFCBLK1_LOCKMASTER_S3) */
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S4_OFFSET (0x03f0) /* Block 1 Lock Master Sector 4 (PFCBLK1_LOCKMASTER_S4) */
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S5_OFFSET (0x03f4) /* Block 1 Lock Master Sector 5 (PFCBLK1_LOCKMASTER_S5) */
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S6_OFFSET (0x03f8) /* Block 1 Lock Master Sector 6 (PFCBLK1_LOCKMASTER_S6) */
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S7_OFFSET (0x03fc) /* Block 1 Lock Master Sector 7 (PFCBLK1_LOCKMASTER_S7) */
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S0_OFFSET (0x0400) /* Block 2 Lock Master Sector 0 (PFCBLK2_LOCKMASTER_S0) */
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S1_OFFSET (0x0404) /* Block 2 Lock Master Sector 1 (PFCBLK2_LOCKMASTER_S1) */
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S2_OFFSET (0x0408) /* Block 2 Lock Master Sector 2 (PFCBLK2_LOCKMASTER_S2) */
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S3_OFFSET (0x040c) /* Block 2 Lock Master Sector 3 (PFCBLK2_LOCKMASTER_S3) */
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S4_OFFSET (0x0410) /* Block 2 Lock Master Sector 4 (PFCBLK2_LOCKMASTER_S4) */
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S5_OFFSET (0x0414) /* Block 2 Lock Master Sector 5 (PFCBLK2_LOCKMASTER_S5) */
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S6_OFFSET (0x0418) /* Block 2 Lock Master Sector 6 (PFCBLK2_LOCKMASTER_S6) */
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S7_OFFSET (0x041c) /* Block 2 Lock Master Sector 7 (PFCBLK2_LOCKMASTER_S7) */
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S0_OFFSET (0x0420) /* Block 3 Lock Master Sector 0 (PFCBLK3_LOCKMASTER_S0) */
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S1_OFFSET (0x0424) /* Block 3 Lock Master Sector 1 (PFCBLK3_LOCKMASTER_S1) */
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S2_OFFSET (0x0428) /* Block 3 Lock Master Sector 2 (PFCBLK3_LOCKMASTER_S2) */
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S3_OFFSET (0x042c) /* Block 3 Lock Master Sector 3 (PFCBLK3_LOCKMASTER_S3) */
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S4_OFFSET (0x0430) /* Block 3 Lock Master Sector 4 (PFCBLK3_LOCKMASTER_S4) */
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S5_OFFSET (0x0434) /* Block 3 Lock Master Sector 5 (PFCBLK3_LOCKMASTER_S5) */
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S6_OFFSET (0x0438) /* Block 3 Lock Master Sector 6 (PFCBLK3_LOCKMASTER_S6) */
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S7_OFFSET (0x043c) /* Block 3 Lock Master Sector 7 (PFCBLK3_LOCKMASTER_S7) */
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S0_OFFSET (0x0440) /* Block 4 Lock Master Sector 0 (PFCBLK4_LOCKMASTER_S0) */
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S1_OFFSET (0x0444) /* Block 4 Lock Master Sector 1 (PFCBLK4_LOCKMASTER_S1) */
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S2_OFFSET (0x0448) /* Block 4 Lock Master Sector 2 (PFCBLK4_LOCKMASTER_S2) */
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S3_OFFSET (0x044c) /* Block 4 Lock Master Sector 3 (PFCBLK4_LOCKMASTER_S3) */
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S4_OFFSET (0x0450) /* Block 4 Lock Master Sector 4 (PFCBLK4_LOCKMASTER_S4) */
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S5_OFFSET (0x0454) /* Block 4 Lock Master Sector 5 (PFCBLK4_LOCKMASTER_S5) */
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S6_OFFSET (0x0458) /* Block 4 Lock Master Sector 6 (PFCBLK4_LOCKMASTER_S6) */
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S7_OFFSET (0x045c) /* Block 4 Lock Master Sector 7 (PFCBLK4_LOCKMASTER_S7) */
#define S32K3XX_PFLASH_PFCBLKU_LOCKMASTER_S_OFFSET (0x0480) /* Block UTEST Lock Master Sector (PFCBLKU_LOCKMASTER_S) */
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_SS0_OFFSET (0x0484) /* Block 0 Lock Master Super Sector 0 (PFCBLK0_LOCKMASTER_SS0) */
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_SS1_OFFSET (0x0488) /* Block 0 Lock Master Super Sector 1 (PFCBLK0_LOCKMASTER_SS1) */
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_SS2_OFFSET (0x048c) /* Block 0 Lock Master Super Sector 2 (PFCBLK0_LOCKMASTER_SS2) */
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_SS0_OFFSET (0x0494) /* Block 1 Lock Master Super Sector 0 (PFCBLK1_LOCKMASTER_SS0) */
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_SS1_OFFSET (0x0498) /* Block 1 Lock Master Super Sector 1 (PFCBLK1_LOCKMASTER_SS1) */
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_SS2_OFFSET (0x049c) /* Block 1 Lock Master Super Sector 2 (PFCBLK1_LOCKMASTER_SS2) */
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_SS0_OFFSET (0x04a4) /* Block 2 Lock Master Super Sector 0 (PFCBLK2_LOCKMASTER_SS0) */
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_SS1_OFFSET (0x04a8) /* Block 2 Lock Master Super Sector 1 (PFCBLK2_LOCKMASTER_SS1) */
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_SS2_OFFSET (0x04ac) /* Block 2 Lock Master Super Sector 2 (PFCBLK2_LOCKMASTER_SS2) */
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_SS0_OFFSET (0x04b4) /* Block 3 Lock Master Super Sector 0 (PFCBLK3_LOCKMASTER_SS0) */
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_SS1_OFFSET (0x04b8) /* Block 3 Lock Master Super Sector 1 (PFCBLK3_LOCKMASTER_SS1) */
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_SS2_OFFSET (0x04bc) /* Block 3 Lock Master Super Sector 2 (PFCBLK3_LOCKMASTER_SS2) */
/* Flash Management Unit Register Offsets ***********************************/
#define S32K3XX_FMU_MCR_OFFSET (0x0000) /* Module Configuration (MCR) */
#define S32K3XX_FMU_MCRS_OFFSET (0x0004) /* Module Configuration Status (MCRS) */
#define S32K3XX_FMU_PD_OFFSET (0x0100) /* Program data (PD) */
/* PFLASH Register Addresses ************************************************/
#define S32K3XX_PFLASH_PFCR0 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCR0_OFFSET)
#define S32K3XX_PFLASH_PFCR1 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCR1_OFFSET)
#define S32K3XX_PFLASH_PFCR2 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCR2_OFFSET)
#define S32K3XX_PFLASH_PFCR4 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCR4_OFFSET)
#define S32K3XX_PFLASH_PFAPR (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFAPR_OFFSET)
#define S32K3XX_PFLASH_PFCPGM_PEADR_L (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCPGM_PEADR_L_OFFSET)
#define S32K3XX_PFLASH_PFCPGM_PEADR_P (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCPGM_PEADR_P_OFFSET)
#define S32K3XX_PFLASH_PFCPGM_XPEADR_L (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCPGM_XPEADR_L_OFFSET)
#define S32K3XX_PFLASH_PFCPGM_XPEADR_P (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCPGM_XPEADR_P_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_SPELOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_SPELOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_SPELOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_SPELOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_SPELOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_SPELOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_SPELOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_SPELOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK4_SPELOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK4_SPELOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLKU_SPELOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLKU_SPELOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_SSPELOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_SSPELOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_SSPELOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_SSPELOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_SSPELOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_SSPELOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_SSPELOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_SSPELOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_SETSLOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_SETSLOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_SETSLOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_SETSLOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_SETSLOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_SETSLOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_SETSLOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_SETSLOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK4_SETSLOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK4_SETSLOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLKU_SETSLOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLKU_SETSLOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_SSETSLOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_SSETSLOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_SSETSLOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_SSETSLOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_SSETSLOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_SSETSLOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_SSETSLOCK (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_SSETSLOCK_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S0 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S0_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S1 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S1_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S2 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S2_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S3 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S3_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S4 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S4_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S5 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S5_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S6 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S6_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S7 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_S7_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S0 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S0_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S1 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S1_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S2 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S2_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S3 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S3_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S4 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S4_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S5 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S5_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S6 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S6_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S7 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_S7_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S0 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S0_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S1 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S1_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S2 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S2_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S3 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S3_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S4 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S4_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S5 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S5_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S6 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S6_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S7 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_S7_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S0 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S0_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S1 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S1_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S2 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S2_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S3 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S3_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S4 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S4_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S5 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S5_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S6 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S6_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S7 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_S7_OFFSET)
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S0 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S0_OFFSET)
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S1 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S1_OFFSET)
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S2 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S2_OFFSET)
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S3 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S3_OFFSET)
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S4 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S4_OFFSET)
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S5 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S5_OFFSET)
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S6 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S6_OFFSET)
#define S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S7 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK4_LOCKMASTER_S7_OFFSET)
#define S32K3XX_PFLASH_PFCBLKU_LOCKMASTER_S (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLKU_LOCKMASTER_S_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_SS0 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_SS0_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_SS1 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_SS1_OFFSET)
#define S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_SS2 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK0_LOCKMASTER_SS2_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_SS0 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_SS0_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_SS1 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_SS1_OFFSET)
#define S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_SS2 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK1_LOCKMASTER_SS2_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_SS0 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_SS0_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_SS1 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_SS1_OFFSET)
#define S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_SS2 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK2_LOCKMASTER_SS2_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_SS0 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_SS0_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_SS1 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_SS1_OFFSET)
#define S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_SS2 (S32K3XX_PFLASH_BASE + S32K3XX_PFLASH_PFCBLK3_LOCKMASTER_SS2_OFFSET)
/* Flash Management Unit Register Addresses *********************************/
#define S32K3XX_FMU_MCR (S32K3XX_FMU_BASE + S32K3XX_FMU_MCR_OFFSET)
#define S32K3XX_FMU_MCRS (S32K3XX_FMU_BASE + S32K3XX_FMU_MCRS_OFFSET)
#define S32K3XX_FMU_PD(n) (S32K3XX_FMU_BASE + S32K3XX_FMU_PD_OFFSET + (n) * 4)
/* PFLASH Register Bitfield Definitions *************************************/
/* Platform Flash Memory Configuration Register 0 (PFCR0) */
#define PFLASH_PFCR0_P0_CBFEN (1 << 0) /* Bit 0: Port 0 PFLASH Line Read Code Buffers Enable (P0_CBFEN) */
#define PFLASH_PFCR0_P0_DBFEN (1 << 1) /* Bit 1: Port 0 PFLASH Line Read Data Buffers Enable (P0_DBFEN) */
/* Bit 2-3: Reserved */
#define PFLASH_PFCR0_P0_CPFEN (1 << 4) /* Bit 4: Port 0 Code Prefetch Enable (P0_CPFEN) */
#define PFLASH_PFCR0_P0_DPFEN (1 << 5) /* Bit 5: Port 0 Data Prefetch Enable (P0_DPFEN) */
/* Bits 6-31: Reserved */
/* Platform Flash Memory Configuration Register 1 (PFCR1) */
#define PFLASH_PFCR1_P1_CBFEN (1 << 0) /* Bit 0: Port 1 PFLASH Line Read Code Buffers Enable (P1_CBFEN) */
#define PFLASH_PFCR1_P1_DBFEN (1 << 1) /* Bit 1: Port 1 PFLASH Line Read Data Buffers Enable (P1_DBFEN) */
/* Bit 2-3: Reserved */
#define PFLASH_PFCR1_P1_CPFEN (1 << 4) /* Bit 4: Port 1 Code Prefetch Enable (P1_CPFEN) */
#define PFLASH_PFCR1_P1_DPFEN (1 << 5) /* Bit 5: Port 1 Data Prefetch Enable (P1_DPFEN) */
/* Bits 6-31: Reserved */
/* Platform Flash Memory Configuration Register 2 (PFCR2) */
#define PFLASH_PFCR2_P2_CBFEN (1 << 0) /* Bit 0: Port 2 PFLASH Line Read Code Buffers Enable (P2_CBFEN) */
#define PFLASH_PFCR2_P2_DBFEN (1 << 1) /* Bit 1: Port 2 PFLASH Line Read Data Buffers Enable (P2_DBFEN) */
/* Bit 2-3: Reserved */
#define PFLASH_PFCR2_P2_CPFEN (1 << 4) /* Bit 4: Port 2 Code Prefetch Enable (P2_CPFEN) */
#define PFLASH_PFCR2_P2_DPFEN (1 << 5) /* Bit 5: Port 2 Data Prefetch Enable (P2_DPFEN) */
/* Bits 6-31: Reserved */
/* Platform Flash Memory Configuration Register 4 (PFCR4) */
#define PFLASH_PFCR4_DERR_SUP (1 << 0) /* Bit 0: Data Error Suppression (DERR_SUP) */
#define PFLASH_PFCR4_BLK4_PS_SHIFT (1) /* Bits 1-3: Block 4 Pipe Select (BLK4_PS) */
#define PFLASH_PFCR4_BLK4_PS_MASK (0x07 << PFLASH_PFCR4_BLK4_PS_SHIFT)
/* Bits 4-6: Reserved */
#define PFLASH_PFCR4_DMEEE (1 << 7) /* Bit 7: Disable Multi-Bit ECC Error Exception (DMEEE) */
/* Bits 8-31: Reserved */
/* Platform Flash Memory Access Protection Register (PFAPR) */
#define PFLASH_PFAPR_M15AP_SHIFT (0) /* Bits 0-1: Master 15 Access Protection (M15AP) */
#define PFLASH_PFAPR_M15AP_MASK (0x03 << PFLASH_PFAPR_M15AP_SHIFT)
#define PFLASH_PFAPR_M14AP_SHIFT (2) /* Bits 2-3: Master 14 Access Protection (M14AP) */
#define PFLASH_PFAPR_M14AP_MASK (0x03 << PFLASH_PFAPR_M14AP_SHIFT)
#define PFLASH_PFAPR_M13AP_SHIFT (4) /* Bits 4-5: Master 13 Access Protection (M13AP) */
#define PFLASH_PFAPR_M13AP_MASK (0x03 << PFLASH_PFAPR_M13AP_SHIFT)
#define PFLASH_PFAPR_M12AP_SHIFT (6) /* Bits 6-7: Master 12 Access Protection (M12AP) */
#define PFLASH_PFAPR_M12AP_MASK (0x03 << PFLASH_PFAPR_M12AP_SHIFT)
#define PFLASH_PFAPR_M11AP_SHIFT (8) /* Bits 8-9: Master 11 Access Protection (M11AP) */
#define PFLASH_PFAPR_M11AP_MASK (0x03 << PFLASH_PFAPR_M11AP_SHIFT)
#define PFLASH_PFAPR_M10AP_SHIFT (10) /* Bits 10-11: Master 10 Access Protection (M10AP) */
#define PFLASH_PFAPR_M10AP_MASK (0x03 << PFLASH_PFAPR_M10AP_SHIFT)
#define PFLASH_PFAPR_M9AP_SHIFT (12) /* Bits 12-13: Master 9 Access Protection (M9AP) */
#define PFLASH_PFAPR_M9AP_MASK (0x03 << PFLASH_PFAPR_M9AP_SHIFT)
#define PFLASH_PFAPR_M8AP_SHIFT (14) /* Bits 14-15: Master 8 Access Protection (M8AP) */
#define PFLASH_PFAPR_M8AP_MASK (0x03 << PFLASH_PFAPR_M8AP_SHIFT)
#define PFLASH_PFAPR_M7AP_SHIFT (16) /* Bits 16-17: Master 7 Access Protection (M7AP) */
#define PFLASH_PFAPR_M7AP_MASK (0x03 << PFLASH_PFAPR_M7AP_SHIFT)
#define PFLASH_PFAPR_M6AP_SHIFT (18) /* Bits 18-19: Master 6 Access Protection (M6AP) */
#define PFLASH_PFAPR_M6AP_MASK (0x03 << PFLASH_PFAPR_M6AP_SHIFT)
#define PFLASH_PFAPR_M5AP_SHIFT (20) /* Bits 20-21: Master 5 Access Protection (M5AP) */
#define PFLASH_PFAPR_M5AP_MASK (0x03 << PFLASH_PFAPR_M5AP_SHIFT)
#define PFLASH_PFAPR_M4AP_SHIFT (22) /* Bits 22-23: Master 4 Access Protection (M4AP) */
#define PFLASH_PFAPR_M4AP_MASK (0x03 << PFLASH_PFAPR_M4AP_SHIFT)
/* Bits 24-25: Reserved */
#define PFLASH_PFAPR_M2AP_SHIFT (26) /* Bits 26-27: Master 2 Access Protection (M2AP) */
#define PFLASH_PFAPR_M2AP_MASK (0x03 << PFLASH_PFAPR_M2AP_SHIFT)
#define PFLASH_PFAPR_M1AP_SHIFT (28) /* Bits 28-29: Master 1 Access Protection (M1AP) */
#define PFLASH_PFAPR_M1AP_MASK (0x03 << PFLASH_PFAPR_M1AP_SHIFT)
#define PFLASH_PFAPR_M0AP_SHIFT (30) /* Bits 30-31: Master 0 Access Protection (M0AP) */
#define PFLASH_PFAPR_M0AP_MASK (0x03 << PFLASH_PFAPR_M0AP_SHIFT)
/* Platform Flash Memory Program Erase Address Logical (PFCPGM_PEADR_L) */
#define PFLASH_PFCPGM_PEADR_L_SHIFT (0) /* Bits 0-31: Program Erase Address Logical (PEADR_L) */
#define PFLASH_PFCPGM_PEADR_L_MASK (0xffffffff << PFLASH_PFCPGM_PEADR_L_SHIFT)
/* Platform Flash Memory Program Erase Address Physical (PFCPGM_PEADR_P) */
#define PFLASH_PFCPGM_PEADR_P_SHIFT (0) /* Bits 0-31: Program Erase Address Physical (PEADR_P) */
#define PFLASH_PFCPGM_PEADR_P_MASK (0xffffffff << PFLASH_PFCPGM_PEADR_P_SHIFT)
/* Platform Flash Memory Express Program Erase Address Logica
* (PFCPGM_XPEADR_L)
*/
#define PFLASH_PFCPGM_XPEADR_L_SHIFT (0) /* Bits 0-31: Express Program Erase Address Logical (XPEADR_L) */
#define PFLASH_PFCPGM_XPEADR_L_MASK (0xffffffff << PFLASH_PFCPGM_XPEADR_L_SHIFT)
/* Platform Flash Memory Express Program Erase Address Physical
* (PFCPGM_XPEADR_P)
*/
#define PFLASH_PFCPGM_XPEADR_P_SHIFT (0) /* Bits 0-31: Express Program Erase Address Physical (XPEADR_P) */
#define PFLASH_PFCPGM_XPEADR_P_MASK (0xffffffff << PFLASH_PFCPGM_XPEADR_P_SHIFT)
/* Block n Sector Program Erase Lock (PFCBLKn_SPELOCK) */
#define PFLASH_PFCBLK_SPELOCK_SHIFT (0) /* Bits 0-31: Sector Lock (SLCK) */
#define PFLASH_PFCBLK_SPELOCK_MASK (0xffffffff << PFLASH_PFCBLK_SPELOCK_SLCK_SHIFT)
/* Block UTEST Sector Program Erase Lock (PFCBLKU_SPELOCK) */
#define PFLASH_PFCBLKU_SPELOCK_SLCK (1 << 0) /* Bit 0: Sector Lock (SLCK) */
/* Bits 1-31: Reserved */
/* Block n Super Sector Program Erase Lock (PFCBLKn_SSPELOCK) */
#define PFLASH_PFCBLK_SSPELOCK_SHIFT (0) /* Bits 0-11: Super Sector Lock (SSLCK) */
#define PFLASH_PFCBLK_SSPELOCK_MASK (0x0fff << PFLASH_PFCBLK_SSPELOCK_SSLCK_SHIFT)
/* Bits 12-31: Reserved */
/* Block n Set Sector Lock (PFCBLKn_SETSLOCK) */
#define PFLASH_PFCBLK_SETSLOCK_SHIFT (0) /* Bits 0-31: Set Sector Lock (SETSLCK) */
#define PFLASH_PFCBLK_SETSLOCK_MASK (0xffffffff << PFLASH_PFCBLK_SETSLOCK_SHIFT)
/* Block UTEST Set Sector Lock (PFCBLKU_SETSLOCK) */
#define PFLASH_PFCBLKU_SETSLOCK (1 << 0) /* Bit 0: Set Sector Lock (SETSLCK) */
/* Bits 1-31: Reserved */
/* Block n Set Super Sector Lock (PFCBLKn_SSETSLOCK) */
#define PFLASH_PFCBLK_SSETSLOCK_SHIFT (0) /* Bits 0-11: Set Super Sector Lock (SSETSLCK) */
#define PFLASH_PFCBLK_SSETSLOCK_MASK (0x0fff << PFLASH_FCBLK_SSETSLOCK_SHIFT)
/* Bits 12-31: Reserved */
/* Block n Lock Master Sector m (PFCBLKn_LOCKMASTER_Sm) */
#define PFLASH_PFCBLK_LOCKMASTER_S_SHIFT (0) /* Bits 0-31: Block n Lock Master Sector m (LOCKMASTER_S) */
#define PFLASH_PFCBLK_LOCKMASTER_S_MASK (0xffffffff << PFLASH_PFCBLK_LOCKMASTER_S_SHIFT)
/* Block UTEST Lock Master Sector (PFCBLKU_LOCKMASTER_S) */
#define PFLASH_PFCBLKU_LOCKMASTER_S_SHIFT (0) /* Bits 0-7: Block n Lock Master Sector m (LOCKMASTER_S) */
#define PFLASH_PFCBLKU_LOCKMASTER_S_MASK (0xff << PFLASH_PFCBLKU_LOCKMASTER_S_SHIFT)
/* Bits 8-31: Reserved */
/* Block n Lock Master Super Sector m (PFCBLKn_LOCKMASTER_SSm) */
#define PFLASH_PFCBLK_LOCKMASTER_SS_SHIFT (0) /* Bits 0-31: Block n Lock Master Super Sector m (LOCKMASTER_SS) */
#define PFLASH_PFCBLK_LOCKMASTER_SS_MASK (0xffffffff << PFLASH_PFCBLK_LOCKMASTER_SS_SHIFT)
/* Flash Management Unit Bitfield Definitions *******************************/
/* Module Configuration (MCR) */
#define FMU_MCR_EHV_SHIFT (0) /* Bit 0: Enable High Voltage (EHV) */
#define FMU_MCR_EHV_MASK (0x01 << FMU_MCR_EHV_SHIFT)
#define FMU_MCR_ERS_SHIFT (4) /* Bit 4: Erase (ERS) */
#define FMU_MCR_ERS_MASK (0x01 << FMU_MCR_ERS_SHIFT)
#define FMU_MCR_ESS_SHIFT (5) /* Bit 5: Erase Size Select (ESS) */
#define FMU_MCR_ESS_MASK (0x01 << FMU_MCR_ESS_SHIFT)
#define FMU_MCR_PGM_SHIFT (8) /* Bit 8: Program (PGM) */
#define FMU_MCR_PGM_MASK (0x01 << FMU_MCR_PGM_SHIFT)
#define FMU_MCR_WDIE_SHIFT (12) /* Bit 12: Watch Dog Interrupt Enable (WDIE) */
#define FMU_MCR_WDIE_MASK (0x01 << FMU_MCR_WDIE_SHIFT)
#define FMU_MCR_PECIE_SHIFT (15) /* Bit 15: Program/Erase Complete Interrupt Enable (PECIE) */
#define FMU_MCR_PECIE_MASK (0x01 << FMU_MCR_PECIE_SHIFT)
#define FMU_MCR_PEID_SHIFT (16) /* Bit 16-23: Program and Erase Master/Domain ID (PEID) */
#define FMU_MCR_PEID_MASK (0xFF << FMU_MCR_PEID_SHIFT)
#define FMU_MCR_PEID(n) ((n & FMU_MCR_PEID_MASK) >> FMU_MCR_PEID_SHIFT)
#define FMU_MCRS_PEG_SHIFT (14) /* Bit 14: Program/Erase Good (PEG) */
#define FMU_MCRS_PEG_MASK (0x01 << FMU_MCRS_PEG_SHIFT)
#define FMU_MCRS_DONE_SHIFT (15) /* Bit 15: State machine status (DONE) */
#define FMU_MCRS_DONE_MASK (0x01 << FMU_MCRS_DONE_SHIFT)
#define FMU_MCRS_PES_SHIFT (16) /* Bit 16: Program and erase Protection error (PEP) */
#define FMU_MCRS_PES_MASK (0x01 << FMU_MCRS_PES_SHIFT)
#define FMU_MCRS_PEP_SHIFT (17) /* Bit 17: Program and erase sequence error (PES) */
#define FMU_MCRS_PEP_MASK (0x01 << FMU_MCRS_PEP_SHIFT)
#endif /* __ARCH_ARM_SRC_S32K3XX_HARDWARE_S32K3XX_PFLASH_H */