/**
 * @file
 *
 * @ingroup RTEMSBSPsARMCycVContrib
 */

/*******************************************************************************
*                                                                              *
* Copyright 2013 Altera Corporation. All Rights Reserved.                      *
*                                                                              *
* Redistribution and use in source and binary forms, with or without           *
* modification, are permitted provided that the following conditions are met:  *
*                                                                              *
* 1. Redistributions of source code must retain the above copyright notice,    *
*    this list of conditions and the following disclaimer.                     *
*                                                                              *
* 2. Redistributions in binary form must reproduce the above copyright notice, *
*    this list of conditions and the following disclaimer in the documentation *
*    and/or other materials provided with the distribution.                    *
*                                                                              *
* 3. The name of the author may not be used to endorse or promote products     *
*    derived from this software without specific prior written permission.     *
*                                                                              *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY EXPRESS OR *
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. IN NO  *
* EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,       *
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;  *
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,     *
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR      *
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF       *
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                                   *
*                                                                              *
*******************************************************************************/

/* Altera - ALT_L3 */

#ifndef __ALTERA_ALT_L3_H__
#define __ALTERA_ALT_L3_H__

#ifdef __cplusplus
extern "C"
{
#endif  /* __cplusplus */

/*
 * Component : L3 (NIC-301) GPV Registers - ALT_L3
 * L3 (NIC-301) GPV Registers
 * 
 * Registers to control L3 interconnect settings
 * 
 */
/*
 * Register : Remap - remap
 * 
 * The L3 interconnect has separate address maps for the various L3 Masters.
 * Generally, the addresses are the same for most masters. However, the sparse
 * interconnect of the L3 switch causes some masters to have holes in their memory
 * maps. The remap bits are not mutually exclusive. Each bit can be set
 * independently and in combinations. Priority for the bits is determined by the
 * bit offset: lower offset bits take precedence over higher offset bits.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description                     
 * :-------|:-------|:------|:---------------------------------
 *  [0]    | W      | 0x0   | MPU at 0x0                      
 *  [1]    | W      | 0x0   | Non-MPU at 0x0                  
 *  [2]    | ???    | 0x0   | *UNDEFINED*                     
 *  [3]    | W      | 0x0   | HPS2FPGA AXI Bridge Visibility  
 *  [4]    | W      | 0x0   | LWHPS2FPGA AXI Bridge Visibility
 *  [31:5] | ???    | 0x0   | *UNDEFINED*                     
 * 
 */
/*
 * Field : MPU at 0x0 - mpuzero
 * 
 * Controls whether address 0x0 for the MPU L3 master is mapped to the Boot ROM or
 * On-chip RAM.  This field only has an effect on the MPU L3 master.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                           | Value | Description                                     
 * :-------------------------------|:------|:-------------------------------------------------
 *  ALT_L3_REMAP_MPUZERO_E_BOOTROM | 0x0   | Maps the Boot ROM to address 0x0 for the MPU L3 
 * :                               |       | master. Note that the Boot ROM is also always   
 * :                               |       | mapped to address 0xfffd_0000 for the MPU L3    
 * :                               |       | master independent of this field's value.       
 *  ALT_L3_REMAP_MPUZERO_E_OCRAM   | 0x1   | Maps the On-chip RAM to address 0x0 for the MPU 
 * :                               |       | L3 master. Note that the On-chip RAM is also    
 * :                               |       | always mapped to address 0xffff_0000 for the MPU
 * :                               |       | L3 master independent of this field's value.    
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_REMAP_MPUZERO
 * 
 * Maps the Boot ROM to address 0x0 for the MPU L3 master. Note that the Boot ROM
 * is also always mapped to address 0xfffd_0000 for the MPU L3 master independent
 * of this field's value.
 */
#define ALT_L3_REMAP_MPUZERO_E_BOOTROM  0x0
/*
 * Enumerated value for register field ALT_L3_REMAP_MPUZERO
 * 
 * Maps the On-chip RAM to address 0x0 for the MPU L3 master. Note that the On-chip
 * RAM is also always mapped to address 0xffff_0000 for the MPU L3 master
 * independent of this field's value.
 */
#define ALT_L3_REMAP_MPUZERO_E_OCRAM    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_REMAP_MPUZERO register field. */
#define ALT_L3_REMAP_MPUZERO_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_REMAP_MPUZERO register field. */
#define ALT_L3_REMAP_MPUZERO_MSB        0
/* The width in bits of the ALT_L3_REMAP_MPUZERO register field. */
#define ALT_L3_REMAP_MPUZERO_WIDTH      1
/* The mask used to set the ALT_L3_REMAP_MPUZERO register field value. */
#define ALT_L3_REMAP_MPUZERO_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_REMAP_MPUZERO register field value. */
#define ALT_L3_REMAP_MPUZERO_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_REMAP_MPUZERO register field. */
#define ALT_L3_REMAP_MPUZERO_RESET      0x0
/* Extracts the ALT_L3_REMAP_MPUZERO field value from a register. */
#define ALT_L3_REMAP_MPUZERO_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_REMAP_MPUZERO register field value suitable for setting the register. */
#define ALT_L3_REMAP_MPUZERO_SET(value) (((value) << 0) & 0x00000001)

/*
 * Field : Non-MPU at 0x0 - nonmpuzero
 * 
 * Controls whether address 0x0 for the non-MPU L3 masters is mapped to the SDRAM
 * or On-chip RAM.  This field only has an effect on the non-MPU L3 masters. The
 * non-MPU L3 masters are the DMA controllers (standalone and those built-in to
 * peripherals), the FPGA2HPS AXI Bridge, and the DAP.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                            | Value | Description                                     
 * :--------------------------------|:------|:-------------------------------------------------
 *  ALT_L3_REMAP_NONMPUZERO_E_SDRAM | 0x0   | Maps the SDRAM to address 0x0 for the non-MPU L3
 * :                                |       | masters.                                        
 *  ALT_L3_REMAP_NONMPUZERO_E_OCRAM | 0x1   | Maps the On-chip RAM to address 0x0 for the non-
 * :                                |       | MPU L3 masters. Note that the On-chip RAM is    
 * :                                |       | also always mapped to address 0xffff_0000 for   
 * :                                |       | the non-MPU L3 masters independent of this      
 * :                                |       | field's value.                                  
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_REMAP_NONMPUZERO
 * 
 * Maps the SDRAM to address 0x0 for the non-MPU L3 masters.
 */
#define ALT_L3_REMAP_NONMPUZERO_E_SDRAM 0x0
/*
 * Enumerated value for register field ALT_L3_REMAP_NONMPUZERO
 * 
 * Maps the On-chip RAM to address 0x0 for the non-MPU L3 masters. Note that the
 * On-chip RAM is also always mapped to address 0xffff_0000 for the non-MPU L3
 * masters independent of this field's value.
 */
#define ALT_L3_REMAP_NONMPUZERO_E_OCRAM 0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_REMAP_NONMPUZERO register field. */
#define ALT_L3_REMAP_NONMPUZERO_LSB        1
/* The Most Significant Bit (MSB) position of the ALT_L3_REMAP_NONMPUZERO register field. */
#define ALT_L3_REMAP_NONMPUZERO_MSB        1
/* The width in bits of the ALT_L3_REMAP_NONMPUZERO register field. */
#define ALT_L3_REMAP_NONMPUZERO_WIDTH      1
/* The mask used to set the ALT_L3_REMAP_NONMPUZERO register field value. */
#define ALT_L3_REMAP_NONMPUZERO_SET_MSK    0x00000002
/* The mask used to clear the ALT_L3_REMAP_NONMPUZERO register field value. */
#define ALT_L3_REMAP_NONMPUZERO_CLR_MSK    0xfffffffd
/* The reset value of the ALT_L3_REMAP_NONMPUZERO register field. */
#define ALT_L3_REMAP_NONMPUZERO_RESET      0x0
/* Extracts the ALT_L3_REMAP_NONMPUZERO field value from a register. */
#define ALT_L3_REMAP_NONMPUZERO_GET(value) (((value) & 0x00000002) >> 1)
/* Produces a ALT_L3_REMAP_NONMPUZERO register field value suitable for setting the register. */
#define ALT_L3_REMAP_NONMPUZERO_SET(value) (((value) << 1) & 0x00000002)

/*
 * Field : HPS2FPGA AXI Bridge Visibility - hps2fpga
 * 
 * Controls whether the HPS2FPGA AXI Bridge is visible to L3 masters or not.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                         | Value | Description                                    
 * :-----------------------------|:------|:------------------------------------------------
 *  ALT_L3_REMAP_H2F_E_INVISIBLE | 0x0   | The HPS2FPGA AXI Bridge is not visible to L3   
 * :                             |       | masters. Accesses to the associated address    
 * :                             |       | range return an AXI decode error to the master.
 *  ALT_L3_REMAP_H2F_E_VISIBLE   | 0x1   | The HPS2FPGA AXI Bridge is visible to L3       
 * :                             |       | masters.                                       
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_REMAP_H2F
 * 
 * The HPS2FPGA AXI Bridge is not visible to L3 masters. Accesses to the associated
 * address range return an AXI decode error to the master.
 */
#define ALT_L3_REMAP_H2F_E_INVISIBLE    0x0
/*
 * Enumerated value for register field ALT_L3_REMAP_H2F
 * 
 * The HPS2FPGA AXI Bridge is visible to L3 masters.
 */
#define ALT_L3_REMAP_H2F_E_VISIBLE      0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_REMAP_H2F register field. */
#define ALT_L3_REMAP_H2F_LSB        3
/* The Most Significant Bit (MSB) position of the ALT_L3_REMAP_H2F register field. */
#define ALT_L3_REMAP_H2F_MSB        3
/* The width in bits of the ALT_L3_REMAP_H2F register field. */
#define ALT_L3_REMAP_H2F_WIDTH      1
/* The mask used to set the ALT_L3_REMAP_H2F register field value. */
#define ALT_L3_REMAP_H2F_SET_MSK    0x00000008
/* The mask used to clear the ALT_L3_REMAP_H2F register field value. */
#define ALT_L3_REMAP_H2F_CLR_MSK    0xfffffff7
/* The reset value of the ALT_L3_REMAP_H2F register field. */
#define ALT_L3_REMAP_H2F_RESET      0x0
/* Extracts the ALT_L3_REMAP_H2F field value from a register. */
#define ALT_L3_REMAP_H2F_GET(value) (((value) & 0x00000008) >> 3)
/* Produces a ALT_L3_REMAP_H2F register field value suitable for setting the register. */
#define ALT_L3_REMAP_H2F_SET(value) (((value) << 3) & 0x00000008)

/*
 * Field : LWHPS2FPGA AXI Bridge Visibility - lwhps2fpga
 * 
 * Controls whether the Lightweight HPS2FPGA AXI Bridge is visible to L3 masters or
 * not.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                           | Value | Description                                    
 * :-------------------------------|:------|:------------------------------------------------
 *  ALT_L3_REMAP_LWH2F_E_INVISIBLE | 0x0   | The LWHPS2FPGA AXI Bridge is not visible to L3 
 * :                               |       | masters. Accesses to the associated address    
 * :                               |       | range return an AXI decode error to the master.
 *  ALT_L3_REMAP_LWH2F_E_VISIBLE   | 0x1   | The LWHPS2FPGA AXI Bridge is visible to L3     
 * :                               |       | masters.                                       
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_REMAP_LWH2F
 * 
 * The LWHPS2FPGA AXI Bridge is not visible to L3 masters. Accesses to the
 * associated address range return an AXI decode error to the master.
 */
#define ALT_L3_REMAP_LWH2F_E_INVISIBLE  0x0
/*
 * Enumerated value for register field ALT_L3_REMAP_LWH2F
 * 
 * The LWHPS2FPGA AXI Bridge is visible to L3 masters.
 */
#define ALT_L3_REMAP_LWH2F_E_VISIBLE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_REMAP_LWH2F register field. */
#define ALT_L3_REMAP_LWH2F_LSB        4
/* The Most Significant Bit (MSB) position of the ALT_L3_REMAP_LWH2F register field. */
#define ALT_L3_REMAP_LWH2F_MSB        4
/* The width in bits of the ALT_L3_REMAP_LWH2F register field. */
#define ALT_L3_REMAP_LWH2F_WIDTH      1
/* The mask used to set the ALT_L3_REMAP_LWH2F register field value. */
#define ALT_L3_REMAP_LWH2F_SET_MSK    0x00000010
/* The mask used to clear the ALT_L3_REMAP_LWH2F register field value. */
#define ALT_L3_REMAP_LWH2F_CLR_MSK    0xffffffef
/* The reset value of the ALT_L3_REMAP_LWH2F register field. */
#define ALT_L3_REMAP_LWH2F_RESET      0x0
/* Extracts the ALT_L3_REMAP_LWH2F field value from a register. */
#define ALT_L3_REMAP_LWH2F_GET(value) (((value) & 0x00000010) >> 4)
/* Produces a ALT_L3_REMAP_LWH2F register field value suitable for setting the register. */
#define ALT_L3_REMAP_LWH2F_SET(value) (((value) << 4) & 0x00000010)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_REMAP.
 */
struct ALT_L3_REMAP_s
{
    uint32_t  mpuzero    :  1;  /* MPU at 0x0 */
    uint32_t  nonmpuzero :  1;  /* Non-MPU at 0x0 */
    uint32_t             :  1;  /* *UNDEFINED* */
    uint32_t  hps2fpga   :  1;  /* HPS2FPGA AXI Bridge Visibility */
    uint32_t  lwhps2fpga :  1;  /* LWHPS2FPGA AXI Bridge Visibility */
    uint32_t             : 27;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_REMAP. */
typedef volatile struct ALT_L3_REMAP_s  ALT_L3_REMAP_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_REMAP register from the beginning of the component. */
#define ALT_L3_REMAP_OFST        0x0

/*
 * Register Group : Security Register Group - ALT_L3_SECGRP
 * Security Register Group
 * 
 * Registers that control slave security.
 * 
 */
/*
 * Register : L4 Main Peripherals Security - l4main
 * 
 * Controls security settings for L4 Main peripherals.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description            
 * :-------|:-------|:------|:------------------------
 *  [0]    | W      | 0x0   | SPI Slave 0 Security   
 *  [1]    | W      | 0x0   | SPI Slave 1 Security   
 *  [2]    | W      | 0x0   | DMA Secure Security    
 *  [3]    | W      | 0x0   | DMA Non-secure Security
 *  [31:4] | ???    | 0x0   | *UNDEFINED*            
 * 
 */
/*
 * Field : SPI Slave 0 Security - spis0
 * 
 * Controls whether secure or non-secure masters can access the SPI Slave 0 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                | Value | Description                                  
 * :------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4MAIN_SPIS0_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                    |       | master.                                      
 *  ALT_L3_SEC_L4MAIN_SPIS0_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                    |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4MAIN_SPIS0
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4MAIN_SPIS0_E_SECURE    0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4MAIN_SPIS0
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4MAIN_SPIS0_E_NONSECURE 0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4MAIN_SPIS0 register field. */
#define ALT_L3_SEC_L4MAIN_SPIS0_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4MAIN_SPIS0 register field. */
#define ALT_L3_SEC_L4MAIN_SPIS0_MSB        0
/* The width in bits of the ALT_L3_SEC_L4MAIN_SPIS0 register field. */
#define ALT_L3_SEC_L4MAIN_SPIS0_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4MAIN_SPIS0 register field value. */
#define ALT_L3_SEC_L4MAIN_SPIS0_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_L4MAIN_SPIS0 register field value. */
#define ALT_L3_SEC_L4MAIN_SPIS0_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_L4MAIN_SPIS0 register field. */
#define ALT_L3_SEC_L4MAIN_SPIS0_RESET      0x0
/* Extracts the ALT_L3_SEC_L4MAIN_SPIS0 field value from a register. */
#define ALT_L3_SEC_L4MAIN_SPIS0_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_L4MAIN_SPIS0 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4MAIN_SPIS0_SET(value) (((value) << 0) & 0x00000001)

/*
 * Field : SPI Slave 1 Security - spis1
 * 
 * Controls whether secure or non-secure masters can access the SPI Slave 1 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                | Value | Description                                  
 * :------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4MAIN_SPIS1_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                    |       | master.                                      
 *  ALT_L3_SEC_L4MAIN_SPIS1_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                    |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4MAIN_SPIS1
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4MAIN_SPIS1_E_SECURE    0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4MAIN_SPIS1
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4MAIN_SPIS1_E_NONSECURE 0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4MAIN_SPIS1 register field. */
#define ALT_L3_SEC_L4MAIN_SPIS1_LSB        1
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4MAIN_SPIS1 register field. */
#define ALT_L3_SEC_L4MAIN_SPIS1_MSB        1
/* The width in bits of the ALT_L3_SEC_L4MAIN_SPIS1 register field. */
#define ALT_L3_SEC_L4MAIN_SPIS1_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4MAIN_SPIS1 register field value. */
#define ALT_L3_SEC_L4MAIN_SPIS1_SET_MSK    0x00000002
/* The mask used to clear the ALT_L3_SEC_L4MAIN_SPIS1 register field value. */
#define ALT_L3_SEC_L4MAIN_SPIS1_CLR_MSK    0xfffffffd
/* The reset value of the ALT_L3_SEC_L4MAIN_SPIS1 register field. */
#define ALT_L3_SEC_L4MAIN_SPIS1_RESET      0x0
/* Extracts the ALT_L3_SEC_L4MAIN_SPIS1 field value from a register. */
#define ALT_L3_SEC_L4MAIN_SPIS1_GET(value) (((value) & 0x00000002) >> 1)
/* Produces a ALT_L3_SEC_L4MAIN_SPIS1 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4MAIN_SPIS1_SET(value) (((value) << 1) & 0x00000002)

/*
 * Field : DMA Secure Security - dmasecure
 * 
 * Controls whether secure or non-secure masters can access the DMA Secure slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                    | Value | Description                                  
 * :----------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4MAIN_DMASECURE_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                        |       | master.                                      
 *  ALT_L3_SEC_L4MAIN_DMASECURE_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                        |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4MAIN_DMASECURE
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4MAIN_DMASECURE_E_SECURE    0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4MAIN_DMASECURE
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4MAIN_DMASECURE_E_NONSECURE 0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4MAIN_DMASECURE register field. */
#define ALT_L3_SEC_L4MAIN_DMASECURE_LSB        2
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4MAIN_DMASECURE register field. */
#define ALT_L3_SEC_L4MAIN_DMASECURE_MSB        2
/* The width in bits of the ALT_L3_SEC_L4MAIN_DMASECURE register field. */
#define ALT_L3_SEC_L4MAIN_DMASECURE_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4MAIN_DMASECURE register field value. */
#define ALT_L3_SEC_L4MAIN_DMASECURE_SET_MSK    0x00000004
/* The mask used to clear the ALT_L3_SEC_L4MAIN_DMASECURE register field value. */
#define ALT_L3_SEC_L4MAIN_DMASECURE_CLR_MSK    0xfffffffb
/* The reset value of the ALT_L3_SEC_L4MAIN_DMASECURE register field. */
#define ALT_L3_SEC_L4MAIN_DMASECURE_RESET      0x0
/* Extracts the ALT_L3_SEC_L4MAIN_DMASECURE field value from a register. */
#define ALT_L3_SEC_L4MAIN_DMASECURE_GET(value) (((value) & 0x00000004) >> 2)
/* Produces a ALT_L3_SEC_L4MAIN_DMASECURE register field value suitable for setting the register. */
#define ALT_L3_SEC_L4MAIN_DMASECURE_SET(value) (((value) << 2) & 0x00000004)

/*
 * Field : DMA Non-secure Security - dmanonsecure
 * 
 * Controls whether secure or non-secure masters can access the DMA Non-secure
 * slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                       | Value | Description                                  
 * :-------------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4MAIN_DMANONSECURE_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                           |       | master.                                      
 *  ALT_L3_SEC_L4MAIN_DMANONSECURE_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                           |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4MAIN_DMANONSECURE
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4MAIN_DMANONSECURE_E_SECURE     0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4MAIN_DMANONSECURE
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4MAIN_DMANONSECURE_E_NONSECURE  0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4MAIN_DMANONSECURE register field. */
#define ALT_L3_SEC_L4MAIN_DMANONSECURE_LSB        3
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4MAIN_DMANONSECURE register field. */
#define ALT_L3_SEC_L4MAIN_DMANONSECURE_MSB        3
/* The width in bits of the ALT_L3_SEC_L4MAIN_DMANONSECURE register field. */
#define ALT_L3_SEC_L4MAIN_DMANONSECURE_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4MAIN_DMANONSECURE register field value. */
#define ALT_L3_SEC_L4MAIN_DMANONSECURE_SET_MSK    0x00000008
/* The mask used to clear the ALT_L3_SEC_L4MAIN_DMANONSECURE register field value. */
#define ALT_L3_SEC_L4MAIN_DMANONSECURE_CLR_MSK    0xfffffff7
/* The reset value of the ALT_L3_SEC_L4MAIN_DMANONSECURE register field. */
#define ALT_L3_SEC_L4MAIN_DMANONSECURE_RESET      0x0
/* Extracts the ALT_L3_SEC_L4MAIN_DMANONSECURE field value from a register. */
#define ALT_L3_SEC_L4MAIN_DMANONSECURE_GET(value) (((value) & 0x00000008) >> 3)
/* Produces a ALT_L3_SEC_L4MAIN_DMANONSECURE register field value suitable for setting the register. */
#define ALT_L3_SEC_L4MAIN_DMANONSECURE_SET(value) (((value) << 3) & 0x00000008)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_L4MAIN.
 */
struct ALT_L3_SEC_L4MAIN_s
{
    uint32_t  spis0        :  1;  /* SPI Slave 0 Security */
    uint32_t  spis1        :  1;  /* SPI Slave 1 Security */
    uint32_t  dmasecure    :  1;  /* DMA Secure Security */
    uint32_t  dmanonsecure :  1;  /* DMA Non-secure Security */
    uint32_t               : 28;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_L4MAIN. */
typedef volatile struct ALT_L3_SEC_L4MAIN_s  ALT_L3_SEC_L4MAIN_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_L4MAIN register from the beginning of the component. */
#define ALT_L3_SEC_L4MAIN_OFST        0x0

/*
 * Register : L4 SP Peripherals Security - l4sp
 * 
 * Controls security settings for L4 SP peripherals.
 * 
 * Register Layout
 * 
 *  Bits    | Access | Reset | Description             
 * :--------|:-------|:------|:-------------------------
 *  [0]     | W      | 0x0   | SDRAM Registers Security
 *  [1]     | W      | 0x0   | SP Timer 0 Security     
 *  [2]     | W      | 0x0   | I2C0 Security           
 *  [3]     | W      | 0x0   | I2C1 Security           
 *  [4]     | W      | 0x0   | I2C2 (EMAC 0) Security  
 *  [5]     | W      | 0x0   | I2C3 (EMAC 1) Security  
 *  [6]     | W      | 0x0   | UART 0 Security         
 *  [7]     | W      | 0x0   | UART 1 Security         
 *  [8]     | W      | 0x0   | CAN 0 Security          
 *  [9]     | W      | 0x0   | CAN 1 Security          
 *  [10]    | W      | 0x0   | SP Timer 1 Security     
 *  [31:11] | ???    | 0x0   | *UNDEFINED*             
 * 
 */
/*
 * Field : SDRAM Registers Security - sdrregs
 * 
 * Controls whether secure or non-secure masters can access the SDRAM Registers
 * slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                | Value | Description                                  
 * :------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4SP_SDRREGS_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                    |       | master.                                      
 *  ALT_L3_SEC_L4SP_SDRREGS_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                    |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_SDRREGS
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4SP_SDRREGS_E_SECURE    0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_SDRREGS
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4SP_SDRREGS_E_NONSECURE 0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4SP_SDRREGS register field. */
#define ALT_L3_SEC_L4SP_SDRREGS_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4SP_SDRREGS register field. */
#define ALT_L3_SEC_L4SP_SDRREGS_MSB        0
/* The width in bits of the ALT_L3_SEC_L4SP_SDRREGS register field. */
#define ALT_L3_SEC_L4SP_SDRREGS_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4SP_SDRREGS register field value. */
#define ALT_L3_SEC_L4SP_SDRREGS_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_L4SP_SDRREGS register field value. */
#define ALT_L3_SEC_L4SP_SDRREGS_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_L4SP_SDRREGS register field. */
#define ALT_L3_SEC_L4SP_SDRREGS_RESET      0x0
/* Extracts the ALT_L3_SEC_L4SP_SDRREGS field value from a register. */
#define ALT_L3_SEC_L4SP_SDRREGS_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_L4SP_SDRREGS register field value suitable for setting the register. */
#define ALT_L3_SEC_L4SP_SDRREGS_SET(value) (((value) << 0) & 0x00000001)

/*
 * Field : SP Timer 0 Security - sptimer0
 * 
 * Controls whether secure or non-secure masters can access the SP Timer 0 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                               | Value | Description                                  
 * :-----------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4SP_SPTMR0_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                   |       | master.                                      
 *  ALT_L3_SEC_L4SP_SPTMR0_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                   |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_SPTMR0
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4SP_SPTMR0_E_SECURE     0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_SPTMR0
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4SP_SPTMR0_E_NONSECURE  0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4SP_SPTMR0 register field. */
#define ALT_L3_SEC_L4SP_SPTMR0_LSB        1
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4SP_SPTMR0 register field. */
#define ALT_L3_SEC_L4SP_SPTMR0_MSB        1
/* The width in bits of the ALT_L3_SEC_L4SP_SPTMR0 register field. */
#define ALT_L3_SEC_L4SP_SPTMR0_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4SP_SPTMR0 register field value. */
#define ALT_L3_SEC_L4SP_SPTMR0_SET_MSK    0x00000002
/* The mask used to clear the ALT_L3_SEC_L4SP_SPTMR0 register field value. */
#define ALT_L3_SEC_L4SP_SPTMR0_CLR_MSK    0xfffffffd
/* The reset value of the ALT_L3_SEC_L4SP_SPTMR0 register field. */
#define ALT_L3_SEC_L4SP_SPTMR0_RESET      0x0
/* Extracts the ALT_L3_SEC_L4SP_SPTMR0 field value from a register. */
#define ALT_L3_SEC_L4SP_SPTMR0_GET(value) (((value) & 0x00000002) >> 1)
/* Produces a ALT_L3_SEC_L4SP_SPTMR0 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4SP_SPTMR0_SET(value) (((value) << 1) & 0x00000002)

/*
 * Field : I2C0 Security - i2c0
 * 
 * Controls whether secure or non-secure masters can access the I2C0 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                             | Value | Description                                  
 * :---------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4SP_I2C0_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                 |       | master.                                      
 *  ALT_L3_SEC_L4SP_I2C0_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                 |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_I2C0
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4SP_I2C0_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_I2C0
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4SP_I2C0_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4SP_I2C0 register field. */
#define ALT_L3_SEC_L4SP_I2C0_LSB        2
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4SP_I2C0 register field. */
#define ALT_L3_SEC_L4SP_I2C0_MSB        2
/* The width in bits of the ALT_L3_SEC_L4SP_I2C0 register field. */
#define ALT_L3_SEC_L4SP_I2C0_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4SP_I2C0 register field value. */
#define ALT_L3_SEC_L4SP_I2C0_SET_MSK    0x00000004
/* The mask used to clear the ALT_L3_SEC_L4SP_I2C0 register field value. */
#define ALT_L3_SEC_L4SP_I2C0_CLR_MSK    0xfffffffb
/* The reset value of the ALT_L3_SEC_L4SP_I2C0 register field. */
#define ALT_L3_SEC_L4SP_I2C0_RESET      0x0
/* Extracts the ALT_L3_SEC_L4SP_I2C0 field value from a register. */
#define ALT_L3_SEC_L4SP_I2C0_GET(value) (((value) & 0x00000004) >> 2)
/* Produces a ALT_L3_SEC_L4SP_I2C0 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4SP_I2C0_SET(value) (((value) << 2) & 0x00000004)

/*
 * Field : I2C1 Security - i2c1
 * 
 * Controls whether secure or non-secure masters can access the I2C1 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                             | Value | Description                                  
 * :---------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4SP_I2C1_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                 |       | master.                                      
 *  ALT_L3_SEC_L4SP_I2C1_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                 |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_I2C1
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4SP_I2C1_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_I2C1
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4SP_I2C1_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4SP_I2C1 register field. */
#define ALT_L3_SEC_L4SP_I2C1_LSB        3
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4SP_I2C1 register field. */
#define ALT_L3_SEC_L4SP_I2C1_MSB        3
/* The width in bits of the ALT_L3_SEC_L4SP_I2C1 register field. */
#define ALT_L3_SEC_L4SP_I2C1_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4SP_I2C1 register field value. */
#define ALT_L3_SEC_L4SP_I2C1_SET_MSK    0x00000008
/* The mask used to clear the ALT_L3_SEC_L4SP_I2C1 register field value. */
#define ALT_L3_SEC_L4SP_I2C1_CLR_MSK    0xfffffff7
/* The reset value of the ALT_L3_SEC_L4SP_I2C1 register field. */
#define ALT_L3_SEC_L4SP_I2C1_RESET      0x0
/* Extracts the ALT_L3_SEC_L4SP_I2C1 field value from a register. */
#define ALT_L3_SEC_L4SP_I2C1_GET(value) (((value) & 0x00000008) >> 3)
/* Produces a ALT_L3_SEC_L4SP_I2C1 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4SP_I2C1_SET(value) (((value) << 3) & 0x00000008)

/*
 * Field : I2C2 (EMAC 0) Security - i2c2
 * 
 * Controls whether secure or non-secure masters can access the I2C2 (EMAC 0)
 * slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                             | Value | Description                                  
 * :---------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4SP_I2C2_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                 |       | master.                                      
 *  ALT_L3_SEC_L4SP_I2C2_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                 |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_I2C2
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4SP_I2C2_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_I2C2
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4SP_I2C2_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4SP_I2C2 register field. */
#define ALT_L3_SEC_L4SP_I2C2_LSB        4
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4SP_I2C2 register field. */
#define ALT_L3_SEC_L4SP_I2C2_MSB        4
/* The width in bits of the ALT_L3_SEC_L4SP_I2C2 register field. */
#define ALT_L3_SEC_L4SP_I2C2_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4SP_I2C2 register field value. */
#define ALT_L3_SEC_L4SP_I2C2_SET_MSK    0x00000010
/* The mask used to clear the ALT_L3_SEC_L4SP_I2C2 register field value. */
#define ALT_L3_SEC_L4SP_I2C2_CLR_MSK    0xffffffef
/* The reset value of the ALT_L3_SEC_L4SP_I2C2 register field. */
#define ALT_L3_SEC_L4SP_I2C2_RESET      0x0
/* Extracts the ALT_L3_SEC_L4SP_I2C2 field value from a register. */
#define ALT_L3_SEC_L4SP_I2C2_GET(value) (((value) & 0x00000010) >> 4)
/* Produces a ALT_L3_SEC_L4SP_I2C2 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4SP_I2C2_SET(value) (((value) << 4) & 0x00000010)

/*
 * Field : I2C3 (EMAC 1) Security - i2c3
 * 
 * Controls whether secure or non-secure masters can access the I2C3 (EMAC 1)
 * slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                             | Value | Description                                  
 * :---------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4SP_I2C3_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                 |       | master.                                      
 *  ALT_L3_SEC_L4SP_I2C3_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                 |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_I2C3
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4SP_I2C3_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_I2C3
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4SP_I2C3_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4SP_I2C3 register field. */
#define ALT_L3_SEC_L4SP_I2C3_LSB        5
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4SP_I2C3 register field. */
#define ALT_L3_SEC_L4SP_I2C3_MSB        5
/* The width in bits of the ALT_L3_SEC_L4SP_I2C3 register field. */
#define ALT_L3_SEC_L4SP_I2C3_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4SP_I2C3 register field value. */
#define ALT_L3_SEC_L4SP_I2C3_SET_MSK    0x00000020
/* The mask used to clear the ALT_L3_SEC_L4SP_I2C3 register field value. */
#define ALT_L3_SEC_L4SP_I2C3_CLR_MSK    0xffffffdf
/* The reset value of the ALT_L3_SEC_L4SP_I2C3 register field. */
#define ALT_L3_SEC_L4SP_I2C3_RESET      0x0
/* Extracts the ALT_L3_SEC_L4SP_I2C3 field value from a register. */
#define ALT_L3_SEC_L4SP_I2C3_GET(value) (((value) & 0x00000020) >> 5)
/* Produces a ALT_L3_SEC_L4SP_I2C3 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4SP_I2C3_SET(value) (((value) << 5) & 0x00000020)

/*
 * Field : UART 0 Security - uart0
 * 
 * Controls whether secure or non-secure masters can access the UART 0 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                              | Value | Description                                  
 * :----------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4SP_UART0_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                  |       | master.                                      
 *  ALT_L3_SEC_L4SP_UART0_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                  |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_UART0
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4SP_UART0_E_SECURE      0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_UART0
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4SP_UART0_E_NONSECURE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4SP_UART0 register field. */
#define ALT_L3_SEC_L4SP_UART0_LSB        6
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4SP_UART0 register field. */
#define ALT_L3_SEC_L4SP_UART0_MSB        6
/* The width in bits of the ALT_L3_SEC_L4SP_UART0 register field. */
#define ALT_L3_SEC_L4SP_UART0_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4SP_UART0 register field value. */
#define ALT_L3_SEC_L4SP_UART0_SET_MSK    0x00000040
/* The mask used to clear the ALT_L3_SEC_L4SP_UART0 register field value. */
#define ALT_L3_SEC_L4SP_UART0_CLR_MSK    0xffffffbf
/* The reset value of the ALT_L3_SEC_L4SP_UART0 register field. */
#define ALT_L3_SEC_L4SP_UART0_RESET      0x0
/* Extracts the ALT_L3_SEC_L4SP_UART0 field value from a register. */
#define ALT_L3_SEC_L4SP_UART0_GET(value) (((value) & 0x00000040) >> 6)
/* Produces a ALT_L3_SEC_L4SP_UART0 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4SP_UART0_SET(value) (((value) << 6) & 0x00000040)

/*
 * Field : UART 1 Security - uart1
 * 
 * Controls whether secure or non-secure masters can access the UART 1 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                              | Value | Description                                  
 * :----------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4SP_UART1_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                  |       | master.                                      
 *  ALT_L3_SEC_L4SP_UART1_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                  |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_UART1
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4SP_UART1_E_SECURE      0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_UART1
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4SP_UART1_E_NONSECURE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4SP_UART1 register field. */
#define ALT_L3_SEC_L4SP_UART1_LSB        7
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4SP_UART1 register field. */
#define ALT_L3_SEC_L4SP_UART1_MSB        7
/* The width in bits of the ALT_L3_SEC_L4SP_UART1 register field. */
#define ALT_L3_SEC_L4SP_UART1_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4SP_UART1 register field value. */
#define ALT_L3_SEC_L4SP_UART1_SET_MSK    0x00000080
/* The mask used to clear the ALT_L3_SEC_L4SP_UART1 register field value. */
#define ALT_L3_SEC_L4SP_UART1_CLR_MSK    0xffffff7f
/* The reset value of the ALT_L3_SEC_L4SP_UART1 register field. */
#define ALT_L3_SEC_L4SP_UART1_RESET      0x0
/* Extracts the ALT_L3_SEC_L4SP_UART1 field value from a register. */
#define ALT_L3_SEC_L4SP_UART1_GET(value) (((value) & 0x00000080) >> 7)
/* Produces a ALT_L3_SEC_L4SP_UART1 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4SP_UART1_SET(value) (((value) << 7) & 0x00000080)

/*
 * Field : CAN 0 Security - can0
 * 
 * Controls whether secure or non-secure masters can access the CAN 0 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                             | Value | Description                                  
 * :---------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4SP_CAN0_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                 |       | master.                                      
 *  ALT_L3_SEC_L4SP_CAN0_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                 |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_CAN0
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4SP_CAN0_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_CAN0
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4SP_CAN0_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4SP_CAN0 register field. */
#define ALT_L3_SEC_L4SP_CAN0_LSB        8
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4SP_CAN0 register field. */
#define ALT_L3_SEC_L4SP_CAN0_MSB        8
/* The width in bits of the ALT_L3_SEC_L4SP_CAN0 register field. */
#define ALT_L3_SEC_L4SP_CAN0_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4SP_CAN0 register field value. */
#define ALT_L3_SEC_L4SP_CAN0_SET_MSK    0x00000100
/* The mask used to clear the ALT_L3_SEC_L4SP_CAN0 register field value. */
#define ALT_L3_SEC_L4SP_CAN0_CLR_MSK    0xfffffeff
/* The reset value of the ALT_L3_SEC_L4SP_CAN0 register field. */
#define ALT_L3_SEC_L4SP_CAN0_RESET      0x0
/* Extracts the ALT_L3_SEC_L4SP_CAN0 field value from a register. */
#define ALT_L3_SEC_L4SP_CAN0_GET(value) (((value) & 0x00000100) >> 8)
/* Produces a ALT_L3_SEC_L4SP_CAN0 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4SP_CAN0_SET(value) (((value) << 8) & 0x00000100)

/*
 * Field : CAN 1 Security - can1
 * 
 * Controls whether secure or non-secure masters can access the CAN 1 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                             | Value | Description                                  
 * :---------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4SP_CAN1_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                 |       | master.                                      
 *  ALT_L3_SEC_L4SP_CAN1_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                 |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_CAN1
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4SP_CAN1_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_CAN1
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4SP_CAN1_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4SP_CAN1 register field. */
#define ALT_L3_SEC_L4SP_CAN1_LSB        9
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4SP_CAN1 register field. */
#define ALT_L3_SEC_L4SP_CAN1_MSB        9
/* The width in bits of the ALT_L3_SEC_L4SP_CAN1 register field. */
#define ALT_L3_SEC_L4SP_CAN1_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4SP_CAN1 register field value. */
#define ALT_L3_SEC_L4SP_CAN1_SET_MSK    0x00000200
/* The mask used to clear the ALT_L3_SEC_L4SP_CAN1 register field value. */
#define ALT_L3_SEC_L4SP_CAN1_CLR_MSK    0xfffffdff
/* The reset value of the ALT_L3_SEC_L4SP_CAN1 register field. */
#define ALT_L3_SEC_L4SP_CAN1_RESET      0x0
/* Extracts the ALT_L3_SEC_L4SP_CAN1 field value from a register. */
#define ALT_L3_SEC_L4SP_CAN1_GET(value) (((value) & 0x00000200) >> 9)
/* Produces a ALT_L3_SEC_L4SP_CAN1 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4SP_CAN1_SET(value) (((value) << 9) & 0x00000200)

/*
 * Field : SP Timer 1 Security - sptimer1
 * 
 * Controls whether secure or non-secure masters can access the SP Timer 1 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                               | Value | Description                                  
 * :-----------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4SP_SPTMR1_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                   |       | master.                                      
 *  ALT_L3_SEC_L4SP_SPTMR1_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                   |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_SPTMR1
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4SP_SPTMR1_E_SECURE     0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4SP_SPTMR1
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4SP_SPTMR1_E_NONSECURE  0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4SP_SPTMR1 register field. */
#define ALT_L3_SEC_L4SP_SPTMR1_LSB        10
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4SP_SPTMR1 register field. */
#define ALT_L3_SEC_L4SP_SPTMR1_MSB        10
/* The width in bits of the ALT_L3_SEC_L4SP_SPTMR1 register field. */
#define ALT_L3_SEC_L4SP_SPTMR1_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4SP_SPTMR1 register field value. */
#define ALT_L3_SEC_L4SP_SPTMR1_SET_MSK    0x00000400
/* The mask used to clear the ALT_L3_SEC_L4SP_SPTMR1 register field value. */
#define ALT_L3_SEC_L4SP_SPTMR1_CLR_MSK    0xfffffbff
/* The reset value of the ALT_L3_SEC_L4SP_SPTMR1 register field. */
#define ALT_L3_SEC_L4SP_SPTMR1_RESET      0x0
/* Extracts the ALT_L3_SEC_L4SP_SPTMR1 field value from a register. */
#define ALT_L3_SEC_L4SP_SPTMR1_GET(value) (((value) & 0x00000400) >> 10)
/* Produces a ALT_L3_SEC_L4SP_SPTMR1 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4SP_SPTMR1_SET(value) (((value) << 10) & 0x00000400)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_L4SP.
 */
struct ALT_L3_SEC_L4SP_s
{
    uint32_t  sdrregs  :  1;  /* SDRAM Registers Security */
    uint32_t  sptimer0 :  1;  /* SP Timer 0 Security */
    uint32_t  i2c0     :  1;  /* I2C0 Security */
    uint32_t  i2c1     :  1;  /* I2C1 Security */
    uint32_t  i2c2     :  1;  /* I2C2 (EMAC 0) Security */
    uint32_t  i2c3     :  1;  /* I2C3 (EMAC 1) Security */
    uint32_t  uart0    :  1;  /* UART 0 Security */
    uint32_t  uart1    :  1;  /* UART 1 Security */
    uint32_t  can0     :  1;  /* CAN 0 Security */
    uint32_t  can1     :  1;  /* CAN 1 Security */
    uint32_t  sptimer1 :  1;  /* SP Timer 1 Security */
    uint32_t           : 21;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_L4SP. */
typedef volatile struct ALT_L3_SEC_L4SP_s  ALT_L3_SEC_L4SP_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_L4SP register from the beginning of the component. */
#define ALT_L3_SEC_L4SP_OFST        0x4

/*
 * Register : L4 MP Peripherals Security - l4mp
 * 
 * Controls security settings for L4 MP peripherals.
 * 
 * Register Layout
 * 
 *  Bits    | Access | Reset | Description                   
 * :--------|:-------|:------|:-------------------------------
 *  [0]     | W      | 0x0   | FPGA Manager Register Security
 *  [1]     | W      | 0x0   | DAP Security                  
 *  [2]     | W      | 0x0   | QSPI Registers Security       
 *  [3]     | W      | 0x0   | SDMMC Security                
 *  [4]     | W      | 0x0   | EMAC 0 Security               
 *  [5]     | W      | 0x0   | EMAC 1 Security               
 *  [6]     | W      | 0x0   | ACP ID Mapper Security        
 *  [7]     | W      | 0x0   | GPIO 0 Security               
 *  [8]     | W      | 0x0   | GPIO 1 Security               
 *  [9]     | W      | 0x0   | GPIO 2 Security               
 *  [31:10] | ???    | 0x0   | *UNDEFINED*                   
 * 
 */
/*
 * Field : FPGA Manager Register Security - fpgamgrregs
 * 
 * Controls whether secure or non-secure masters can access the FPGA Manager
 * Register slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                | Value | Description                                  
 * :------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4MP_FPGAMGR_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                    |       | master.                                      
 *  ALT_L3_SEC_L4MP_FPGAMGR_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                    |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_FPGAMGR
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4MP_FPGAMGR_E_SECURE    0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_FPGAMGR
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4MP_FPGAMGR_E_NONSECURE 0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4MP_FPGAMGR register field. */
#define ALT_L3_SEC_L4MP_FPGAMGR_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4MP_FPGAMGR register field. */
#define ALT_L3_SEC_L4MP_FPGAMGR_MSB        0
/* The width in bits of the ALT_L3_SEC_L4MP_FPGAMGR register field. */
#define ALT_L3_SEC_L4MP_FPGAMGR_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4MP_FPGAMGR register field value. */
#define ALT_L3_SEC_L4MP_FPGAMGR_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_L4MP_FPGAMGR register field value. */
#define ALT_L3_SEC_L4MP_FPGAMGR_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_L4MP_FPGAMGR register field. */
#define ALT_L3_SEC_L4MP_FPGAMGR_RESET      0x0
/* Extracts the ALT_L3_SEC_L4MP_FPGAMGR field value from a register. */
#define ALT_L3_SEC_L4MP_FPGAMGR_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_L4MP_FPGAMGR register field value suitable for setting the register. */
#define ALT_L3_SEC_L4MP_FPGAMGR_SET(value) (((value) << 0) & 0x00000001)

/*
 * Field : DAP Security - dap
 * 
 * Controls whether secure or non-secure masters can access the DAP slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                            | Value | Description                                  
 * :--------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4MP_DAP_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                |       | master.                                      
 *  ALT_L3_SEC_L4MP_DAP_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_DAP
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4MP_DAP_E_SECURE    0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_DAP
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4MP_DAP_E_NONSECURE 0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4MP_DAP register field. */
#define ALT_L3_SEC_L4MP_DAP_LSB        1
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4MP_DAP register field. */
#define ALT_L3_SEC_L4MP_DAP_MSB        1
/* The width in bits of the ALT_L3_SEC_L4MP_DAP register field. */
#define ALT_L3_SEC_L4MP_DAP_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4MP_DAP register field value. */
#define ALT_L3_SEC_L4MP_DAP_SET_MSK    0x00000002
/* The mask used to clear the ALT_L3_SEC_L4MP_DAP register field value. */
#define ALT_L3_SEC_L4MP_DAP_CLR_MSK    0xfffffffd
/* The reset value of the ALT_L3_SEC_L4MP_DAP register field. */
#define ALT_L3_SEC_L4MP_DAP_RESET      0x0
/* Extracts the ALT_L3_SEC_L4MP_DAP field value from a register. */
#define ALT_L3_SEC_L4MP_DAP_GET(value) (((value) & 0x00000002) >> 1)
/* Produces a ALT_L3_SEC_L4MP_DAP register field value suitable for setting the register. */
#define ALT_L3_SEC_L4MP_DAP_SET(value) (((value) << 1) & 0x00000002)

/*
 * Field : QSPI Registers Security - qspiregs
 * 
 * Controls whether secure or non-secure masters can access the QSPI Registers
 * slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                             | Value | Description                                  
 * :---------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4MP_QSPI_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                 |       | master.                                      
 *  ALT_L3_SEC_L4MP_QSPI_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                 |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_QSPI
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4MP_QSPI_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_QSPI
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4MP_QSPI_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4MP_QSPI register field. */
#define ALT_L3_SEC_L4MP_QSPI_LSB        2
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4MP_QSPI register field. */
#define ALT_L3_SEC_L4MP_QSPI_MSB        2
/* The width in bits of the ALT_L3_SEC_L4MP_QSPI register field. */
#define ALT_L3_SEC_L4MP_QSPI_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4MP_QSPI register field value. */
#define ALT_L3_SEC_L4MP_QSPI_SET_MSK    0x00000004
/* The mask used to clear the ALT_L3_SEC_L4MP_QSPI register field value. */
#define ALT_L3_SEC_L4MP_QSPI_CLR_MSK    0xfffffffb
/* The reset value of the ALT_L3_SEC_L4MP_QSPI register field. */
#define ALT_L3_SEC_L4MP_QSPI_RESET      0x0
/* Extracts the ALT_L3_SEC_L4MP_QSPI field value from a register. */
#define ALT_L3_SEC_L4MP_QSPI_GET(value) (((value) & 0x00000004) >> 2)
/* Produces a ALT_L3_SEC_L4MP_QSPI register field value suitable for setting the register. */
#define ALT_L3_SEC_L4MP_QSPI_SET(value) (((value) << 2) & 0x00000004)

/*
 * Field : SDMMC Security - sdmmc
 * 
 * Controls whether secure or non-secure masters can access the SDMMC slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                              | Value | Description                                  
 * :----------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4MP_SDMMC_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                  |       | master.                                      
 *  ALT_L3_SEC_L4MP_SDMMC_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                  |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_SDMMC
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4MP_SDMMC_E_SECURE      0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_SDMMC
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4MP_SDMMC_E_NONSECURE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4MP_SDMMC register field. */
#define ALT_L3_SEC_L4MP_SDMMC_LSB        3
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4MP_SDMMC register field. */
#define ALT_L3_SEC_L4MP_SDMMC_MSB        3
/* The width in bits of the ALT_L3_SEC_L4MP_SDMMC register field. */
#define ALT_L3_SEC_L4MP_SDMMC_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4MP_SDMMC register field value. */
#define ALT_L3_SEC_L4MP_SDMMC_SET_MSK    0x00000008
/* The mask used to clear the ALT_L3_SEC_L4MP_SDMMC register field value. */
#define ALT_L3_SEC_L4MP_SDMMC_CLR_MSK    0xfffffff7
/* The reset value of the ALT_L3_SEC_L4MP_SDMMC register field. */
#define ALT_L3_SEC_L4MP_SDMMC_RESET      0x0
/* Extracts the ALT_L3_SEC_L4MP_SDMMC field value from a register. */
#define ALT_L3_SEC_L4MP_SDMMC_GET(value) (((value) & 0x00000008) >> 3)
/* Produces a ALT_L3_SEC_L4MP_SDMMC register field value suitable for setting the register. */
#define ALT_L3_SEC_L4MP_SDMMC_SET(value) (((value) << 3) & 0x00000008)

/*
 * Field : EMAC 0 Security - emac0
 * 
 * Controls whether secure or non-secure masters can access the EMAC 0 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                              | Value | Description                                  
 * :----------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4MP_EMAC0_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                  |       | master.                                      
 *  ALT_L3_SEC_L4MP_EMAC0_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                  |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_EMAC0
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4MP_EMAC0_E_SECURE      0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_EMAC0
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4MP_EMAC0_E_NONSECURE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4MP_EMAC0 register field. */
#define ALT_L3_SEC_L4MP_EMAC0_LSB        4
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4MP_EMAC0 register field. */
#define ALT_L3_SEC_L4MP_EMAC0_MSB        4
/* The width in bits of the ALT_L3_SEC_L4MP_EMAC0 register field. */
#define ALT_L3_SEC_L4MP_EMAC0_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4MP_EMAC0 register field value. */
#define ALT_L3_SEC_L4MP_EMAC0_SET_MSK    0x00000010
/* The mask used to clear the ALT_L3_SEC_L4MP_EMAC0 register field value. */
#define ALT_L3_SEC_L4MP_EMAC0_CLR_MSK    0xffffffef
/* The reset value of the ALT_L3_SEC_L4MP_EMAC0 register field. */
#define ALT_L3_SEC_L4MP_EMAC0_RESET      0x0
/* Extracts the ALT_L3_SEC_L4MP_EMAC0 field value from a register. */
#define ALT_L3_SEC_L4MP_EMAC0_GET(value) (((value) & 0x00000010) >> 4)
/* Produces a ALT_L3_SEC_L4MP_EMAC0 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4MP_EMAC0_SET(value) (((value) << 4) & 0x00000010)

/*
 * Field : EMAC 1 Security - emac1
 * 
 * Controls whether secure or non-secure masters can access the EMAC 1 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                              | Value | Description                                  
 * :----------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4MP_EMAC1_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                  |       | master.                                      
 *  ALT_L3_SEC_L4MP_EMAC1_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                  |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_EMAC1
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4MP_EMAC1_E_SECURE      0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_EMAC1
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4MP_EMAC1_E_NONSECURE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4MP_EMAC1 register field. */
#define ALT_L3_SEC_L4MP_EMAC1_LSB        5
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4MP_EMAC1 register field. */
#define ALT_L3_SEC_L4MP_EMAC1_MSB        5
/* The width in bits of the ALT_L3_SEC_L4MP_EMAC1 register field. */
#define ALT_L3_SEC_L4MP_EMAC1_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4MP_EMAC1 register field value. */
#define ALT_L3_SEC_L4MP_EMAC1_SET_MSK    0x00000020
/* The mask used to clear the ALT_L3_SEC_L4MP_EMAC1 register field value. */
#define ALT_L3_SEC_L4MP_EMAC1_CLR_MSK    0xffffffdf
/* The reset value of the ALT_L3_SEC_L4MP_EMAC1 register field. */
#define ALT_L3_SEC_L4MP_EMAC1_RESET      0x0
/* Extracts the ALT_L3_SEC_L4MP_EMAC1 field value from a register. */
#define ALT_L3_SEC_L4MP_EMAC1_GET(value) (((value) & 0x00000020) >> 5)
/* Produces a ALT_L3_SEC_L4MP_EMAC1 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4MP_EMAC1_SET(value) (((value) << 5) & 0x00000020)

/*
 * Field : ACP ID Mapper Security - acpidmap
 * 
 * Controls whether secure or non-secure masters can access the ACP ID Mapper
 * slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                 | Value | Description                                  
 * :-------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4MP_ACPIDMAP_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                     |       | master.                                      
 *  ALT_L3_SEC_L4MP_ACPIDMAP_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                     |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_ACPIDMAP
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4MP_ACPIDMAP_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_ACPIDMAP
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4MP_ACPIDMAP_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4MP_ACPIDMAP register field. */
#define ALT_L3_SEC_L4MP_ACPIDMAP_LSB        6
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4MP_ACPIDMAP register field. */
#define ALT_L3_SEC_L4MP_ACPIDMAP_MSB        6
/* The width in bits of the ALT_L3_SEC_L4MP_ACPIDMAP register field. */
#define ALT_L3_SEC_L4MP_ACPIDMAP_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4MP_ACPIDMAP register field value. */
#define ALT_L3_SEC_L4MP_ACPIDMAP_SET_MSK    0x00000040
/* The mask used to clear the ALT_L3_SEC_L4MP_ACPIDMAP register field value. */
#define ALT_L3_SEC_L4MP_ACPIDMAP_CLR_MSK    0xffffffbf
/* The reset value of the ALT_L3_SEC_L4MP_ACPIDMAP register field. */
#define ALT_L3_SEC_L4MP_ACPIDMAP_RESET      0x0
/* Extracts the ALT_L3_SEC_L4MP_ACPIDMAP field value from a register. */
#define ALT_L3_SEC_L4MP_ACPIDMAP_GET(value) (((value) & 0x00000040) >> 6)
/* Produces a ALT_L3_SEC_L4MP_ACPIDMAP register field value suitable for setting the register. */
#define ALT_L3_SEC_L4MP_ACPIDMAP_SET(value) (((value) << 6) & 0x00000040)

/*
 * Field : GPIO 0 Security - gpio0
 * 
 * Controls whether secure or non-secure masters can access the GPIO 0 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                              | Value | Description                                  
 * :----------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4MP_GPIO0_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                  |       | master.                                      
 *  ALT_L3_SEC_L4MP_GPIO0_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                  |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_GPIO0
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4MP_GPIO0_E_SECURE      0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_GPIO0
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4MP_GPIO0_E_NONSECURE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4MP_GPIO0 register field. */
#define ALT_L3_SEC_L4MP_GPIO0_LSB        7
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4MP_GPIO0 register field. */
#define ALT_L3_SEC_L4MP_GPIO0_MSB        7
/* The width in bits of the ALT_L3_SEC_L4MP_GPIO0 register field. */
#define ALT_L3_SEC_L4MP_GPIO0_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4MP_GPIO0 register field value. */
#define ALT_L3_SEC_L4MP_GPIO0_SET_MSK    0x00000080
/* The mask used to clear the ALT_L3_SEC_L4MP_GPIO0 register field value. */
#define ALT_L3_SEC_L4MP_GPIO0_CLR_MSK    0xffffff7f
/* The reset value of the ALT_L3_SEC_L4MP_GPIO0 register field. */
#define ALT_L3_SEC_L4MP_GPIO0_RESET      0x0
/* Extracts the ALT_L3_SEC_L4MP_GPIO0 field value from a register. */
#define ALT_L3_SEC_L4MP_GPIO0_GET(value) (((value) & 0x00000080) >> 7)
/* Produces a ALT_L3_SEC_L4MP_GPIO0 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4MP_GPIO0_SET(value) (((value) << 7) & 0x00000080)

/*
 * Field : GPIO 1 Security - gpio1
 * 
 * Controls whether secure or non-secure masters can access the GPIO 1 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                              | Value | Description                                  
 * :----------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4MP_GPIO1_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                  |       | master.                                      
 *  ALT_L3_SEC_L4MP_GPIO1_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                  |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_GPIO1
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4MP_GPIO1_E_SECURE      0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_GPIO1
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4MP_GPIO1_E_NONSECURE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4MP_GPIO1 register field. */
#define ALT_L3_SEC_L4MP_GPIO1_LSB        8
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4MP_GPIO1 register field. */
#define ALT_L3_SEC_L4MP_GPIO1_MSB        8
/* The width in bits of the ALT_L3_SEC_L4MP_GPIO1 register field. */
#define ALT_L3_SEC_L4MP_GPIO1_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4MP_GPIO1 register field value. */
#define ALT_L3_SEC_L4MP_GPIO1_SET_MSK    0x00000100
/* The mask used to clear the ALT_L3_SEC_L4MP_GPIO1 register field value. */
#define ALT_L3_SEC_L4MP_GPIO1_CLR_MSK    0xfffffeff
/* The reset value of the ALT_L3_SEC_L4MP_GPIO1 register field. */
#define ALT_L3_SEC_L4MP_GPIO1_RESET      0x0
/* Extracts the ALT_L3_SEC_L4MP_GPIO1 field value from a register. */
#define ALT_L3_SEC_L4MP_GPIO1_GET(value) (((value) & 0x00000100) >> 8)
/* Produces a ALT_L3_SEC_L4MP_GPIO1 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4MP_GPIO1_SET(value) (((value) << 8) & 0x00000100)

/*
 * Field : GPIO 2 Security - gpio2
 * 
 * Controls whether secure or non-secure masters can access the GPIO 2 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                              | Value | Description                                  
 * :----------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4MP_GPIO2_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                  |       | master.                                      
 *  ALT_L3_SEC_L4MP_GPIO2_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                  |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_GPIO2
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4MP_GPIO2_E_SECURE      0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4MP_GPIO2
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4MP_GPIO2_E_NONSECURE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4MP_GPIO2 register field. */
#define ALT_L3_SEC_L4MP_GPIO2_LSB        9
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4MP_GPIO2 register field. */
#define ALT_L3_SEC_L4MP_GPIO2_MSB        9
/* The width in bits of the ALT_L3_SEC_L4MP_GPIO2 register field. */
#define ALT_L3_SEC_L4MP_GPIO2_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4MP_GPIO2 register field value. */
#define ALT_L3_SEC_L4MP_GPIO2_SET_MSK    0x00000200
/* The mask used to clear the ALT_L3_SEC_L4MP_GPIO2 register field value. */
#define ALT_L3_SEC_L4MP_GPIO2_CLR_MSK    0xfffffdff
/* The reset value of the ALT_L3_SEC_L4MP_GPIO2 register field. */
#define ALT_L3_SEC_L4MP_GPIO2_RESET      0x0
/* Extracts the ALT_L3_SEC_L4MP_GPIO2 field value from a register. */
#define ALT_L3_SEC_L4MP_GPIO2_GET(value) (((value) & 0x00000200) >> 9)
/* Produces a ALT_L3_SEC_L4MP_GPIO2 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4MP_GPIO2_SET(value) (((value) << 9) & 0x00000200)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_L4MP.
 */
struct ALT_L3_SEC_L4MP_s
{
    uint32_t  fpgamgrregs :  1;  /* FPGA Manager Register Security */
    uint32_t  dap         :  1;  /* DAP Security */
    uint32_t  qspiregs    :  1;  /* QSPI Registers Security */
    uint32_t  sdmmc       :  1;  /* SDMMC Security */
    uint32_t  emac0       :  1;  /* EMAC 0 Security */
    uint32_t  emac1       :  1;  /* EMAC 1 Security */
    uint32_t  acpidmap    :  1;  /* ACP ID Mapper Security */
    uint32_t  gpio0       :  1;  /* GPIO 0 Security */
    uint32_t  gpio1       :  1;  /* GPIO 1 Security */
    uint32_t  gpio2       :  1;  /* GPIO 2 Security */
    uint32_t              : 22;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_L4MP. */
typedef volatile struct ALT_L3_SEC_L4MP_s  ALT_L3_SEC_L4MP_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_L4MP register from the beginning of the component. */
#define ALT_L3_SEC_L4MP_OFST        0x8

/*
 * Register : L4 OSC1 Peripherals Security - l4osc1
 * 
 * Controls security settings for L4 OSC1 peripherals.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description                 
 * :-------|:-------|:------|:-----------------------------
 *  [0]    | W      | 0x0   | L4 Watchdog Timer 0 Security
 *  [1]    | W      | 0x0   | L4 Watchdog Timer 0 Security
 *  [2]    | W      | 0x0   | Clock Manager Security      
 *  [3]    | W      | 0x0   | Reset Manager Security      
 *  [4]    | W      | 0x0   | System Manager Security     
 *  [5]    | W      | 0x0   | OSC1 Timer 0 Security       
 *  [6]    | W      | 0x0   | OSC1 Timer 1 Security       
 *  [31:7] | ???    | 0x0   | *UNDEFINED*                 
 * 
 */
/*
 * Field : L4 Watchdog Timer 0 Security - l4wd0
 * 
 * Controls whether secure or non-secure masters can access the L4 Watchdog Timer 0
 * slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                | Value | Description                                  
 * :------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4OSC1_L4WD0_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                    |       | master.                                      
 *  ALT_L3_SEC_L4OSC1_L4WD0_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                    |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4OSC1_L4WD0
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4OSC1_L4WD0_E_SECURE    0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4OSC1_L4WD0
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4OSC1_L4WD0_E_NONSECURE 0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4OSC1_L4WD0 register field. */
#define ALT_L3_SEC_L4OSC1_L4WD0_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4OSC1_L4WD0 register field. */
#define ALT_L3_SEC_L4OSC1_L4WD0_MSB        0
/* The width in bits of the ALT_L3_SEC_L4OSC1_L4WD0 register field. */
#define ALT_L3_SEC_L4OSC1_L4WD0_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4OSC1_L4WD0 register field value. */
#define ALT_L3_SEC_L4OSC1_L4WD0_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_L4OSC1_L4WD0 register field value. */
#define ALT_L3_SEC_L4OSC1_L4WD0_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_L4OSC1_L4WD0 register field. */
#define ALT_L3_SEC_L4OSC1_L4WD0_RESET      0x0
/* Extracts the ALT_L3_SEC_L4OSC1_L4WD0 field value from a register. */
#define ALT_L3_SEC_L4OSC1_L4WD0_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_L4OSC1_L4WD0 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4OSC1_L4WD0_SET(value) (((value) << 0) & 0x00000001)

/*
 * Field : L4 Watchdog Timer 0 Security - l4wd1
 * 
 * Controls whether secure or non-secure masters can access the L4 Watchdog Timer 0
 * slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                | Value | Description                                  
 * :------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4OSC1_L4WD1_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                    |       | master.                                      
 *  ALT_L3_SEC_L4OSC1_L4WD1_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                    |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4OSC1_L4WD1
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4OSC1_L4WD1_E_SECURE    0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4OSC1_L4WD1
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4OSC1_L4WD1_E_NONSECURE 0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4OSC1_L4WD1 register field. */
#define ALT_L3_SEC_L4OSC1_L4WD1_LSB        1
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4OSC1_L4WD1 register field. */
#define ALT_L3_SEC_L4OSC1_L4WD1_MSB        1
/* The width in bits of the ALT_L3_SEC_L4OSC1_L4WD1 register field. */
#define ALT_L3_SEC_L4OSC1_L4WD1_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4OSC1_L4WD1 register field value. */
#define ALT_L3_SEC_L4OSC1_L4WD1_SET_MSK    0x00000002
/* The mask used to clear the ALT_L3_SEC_L4OSC1_L4WD1 register field value. */
#define ALT_L3_SEC_L4OSC1_L4WD1_CLR_MSK    0xfffffffd
/* The reset value of the ALT_L3_SEC_L4OSC1_L4WD1 register field. */
#define ALT_L3_SEC_L4OSC1_L4WD1_RESET      0x0
/* Extracts the ALT_L3_SEC_L4OSC1_L4WD1 field value from a register. */
#define ALT_L3_SEC_L4OSC1_L4WD1_GET(value) (((value) & 0x00000002) >> 1)
/* Produces a ALT_L3_SEC_L4OSC1_L4WD1 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4OSC1_L4WD1_SET(value) (((value) << 1) & 0x00000002)

/*
 * Field : Clock Manager Security - clkmgr
 * 
 * Controls whether secure or non-secure masters can access the Clock Manager
 * slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                 | Value | Description                                  
 * :-------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4OSC1_CLKMGR_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                     |       | master.                                      
 *  ALT_L3_SEC_L4OSC1_CLKMGR_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                     |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4OSC1_CLKMGR
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4OSC1_CLKMGR_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4OSC1_CLKMGR
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4OSC1_CLKMGR_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4OSC1_CLKMGR register field. */
#define ALT_L3_SEC_L4OSC1_CLKMGR_LSB        2
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4OSC1_CLKMGR register field. */
#define ALT_L3_SEC_L4OSC1_CLKMGR_MSB        2
/* The width in bits of the ALT_L3_SEC_L4OSC1_CLKMGR register field. */
#define ALT_L3_SEC_L4OSC1_CLKMGR_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4OSC1_CLKMGR register field value. */
#define ALT_L3_SEC_L4OSC1_CLKMGR_SET_MSK    0x00000004
/* The mask used to clear the ALT_L3_SEC_L4OSC1_CLKMGR register field value. */
#define ALT_L3_SEC_L4OSC1_CLKMGR_CLR_MSK    0xfffffffb
/* The reset value of the ALT_L3_SEC_L4OSC1_CLKMGR register field. */
#define ALT_L3_SEC_L4OSC1_CLKMGR_RESET      0x0
/* Extracts the ALT_L3_SEC_L4OSC1_CLKMGR field value from a register. */
#define ALT_L3_SEC_L4OSC1_CLKMGR_GET(value) (((value) & 0x00000004) >> 2)
/* Produces a ALT_L3_SEC_L4OSC1_CLKMGR register field value suitable for setting the register. */
#define ALT_L3_SEC_L4OSC1_CLKMGR_SET(value) (((value) << 2) & 0x00000004)

/*
 * Field : Reset Manager Security - rstmgr
 * 
 * Controls whether secure or non-secure masters can access the Reset Manager
 * slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                 | Value | Description                                  
 * :-------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4OSC1_RSTMGR_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                     |       | master.                                      
 *  ALT_L3_SEC_L4OSC1_RSTMGR_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                     |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4OSC1_RSTMGR
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4OSC1_RSTMGR_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4OSC1_RSTMGR
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4OSC1_RSTMGR_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4OSC1_RSTMGR register field. */
#define ALT_L3_SEC_L4OSC1_RSTMGR_LSB        3
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4OSC1_RSTMGR register field. */
#define ALT_L3_SEC_L4OSC1_RSTMGR_MSB        3
/* The width in bits of the ALT_L3_SEC_L4OSC1_RSTMGR register field. */
#define ALT_L3_SEC_L4OSC1_RSTMGR_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4OSC1_RSTMGR register field value. */
#define ALT_L3_SEC_L4OSC1_RSTMGR_SET_MSK    0x00000008
/* The mask used to clear the ALT_L3_SEC_L4OSC1_RSTMGR register field value. */
#define ALT_L3_SEC_L4OSC1_RSTMGR_CLR_MSK    0xfffffff7
/* The reset value of the ALT_L3_SEC_L4OSC1_RSTMGR register field. */
#define ALT_L3_SEC_L4OSC1_RSTMGR_RESET      0x0
/* Extracts the ALT_L3_SEC_L4OSC1_RSTMGR field value from a register. */
#define ALT_L3_SEC_L4OSC1_RSTMGR_GET(value) (((value) & 0x00000008) >> 3)
/* Produces a ALT_L3_SEC_L4OSC1_RSTMGR register field value suitable for setting the register. */
#define ALT_L3_SEC_L4OSC1_RSTMGR_SET(value) (((value) << 3) & 0x00000008)

/*
 * Field : System Manager Security - sysmgr
 * 
 * Controls whether secure or non-secure masters can access the System Manager
 * slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                 | Value | Description                                  
 * :-------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4OSC1_SYSMGR_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                     |       | master.                                      
 *  ALT_L3_SEC_L4OSC1_SYSMGR_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                     |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4OSC1_SYSMGR
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4OSC1_SYSMGR_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4OSC1_SYSMGR
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4OSC1_SYSMGR_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4OSC1_SYSMGR register field. */
#define ALT_L3_SEC_L4OSC1_SYSMGR_LSB        4
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4OSC1_SYSMGR register field. */
#define ALT_L3_SEC_L4OSC1_SYSMGR_MSB        4
/* The width in bits of the ALT_L3_SEC_L4OSC1_SYSMGR register field. */
#define ALT_L3_SEC_L4OSC1_SYSMGR_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4OSC1_SYSMGR register field value. */
#define ALT_L3_SEC_L4OSC1_SYSMGR_SET_MSK    0x00000010
/* The mask used to clear the ALT_L3_SEC_L4OSC1_SYSMGR register field value. */
#define ALT_L3_SEC_L4OSC1_SYSMGR_CLR_MSK    0xffffffef
/* The reset value of the ALT_L3_SEC_L4OSC1_SYSMGR register field. */
#define ALT_L3_SEC_L4OSC1_SYSMGR_RESET      0x0
/* Extracts the ALT_L3_SEC_L4OSC1_SYSMGR field value from a register. */
#define ALT_L3_SEC_L4OSC1_SYSMGR_GET(value) (((value) & 0x00000010) >> 4)
/* Produces a ALT_L3_SEC_L4OSC1_SYSMGR register field value suitable for setting the register. */
#define ALT_L3_SEC_L4OSC1_SYSMGR_SET(value) (((value) << 4) & 0x00000010)

/*
 * Field : OSC1 Timer 0 Security - osc1timer0
 * 
 * Controls whether secure or non-secure masters can access the OSC1 Timer 0 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                   | Value | Description                                  
 * :---------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4OSC1_OSC1TMR0_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                       |       | master.                                      
 *  ALT_L3_SEC_L4OSC1_OSC1TMR0_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                       |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4OSC1_OSC1TMR0
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4OSC1_OSC1TMR0_E_SECURE     0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4OSC1_OSC1TMR0
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4OSC1_OSC1TMR0_E_NONSECURE  0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4OSC1_OSC1TMR0 register field. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR0_LSB        5
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4OSC1_OSC1TMR0 register field. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR0_MSB        5
/* The width in bits of the ALT_L3_SEC_L4OSC1_OSC1TMR0 register field. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR0_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4OSC1_OSC1TMR0 register field value. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR0_SET_MSK    0x00000020
/* The mask used to clear the ALT_L3_SEC_L4OSC1_OSC1TMR0 register field value. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR0_CLR_MSK    0xffffffdf
/* The reset value of the ALT_L3_SEC_L4OSC1_OSC1TMR0 register field. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR0_RESET      0x0
/* Extracts the ALT_L3_SEC_L4OSC1_OSC1TMR0 field value from a register. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR0_GET(value) (((value) & 0x00000020) >> 5)
/* Produces a ALT_L3_SEC_L4OSC1_OSC1TMR0 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR0_SET(value) (((value) << 5) & 0x00000020)

/*
 * Field : OSC1 Timer 1 Security - osc1timer1
 * 
 * Controls whether secure or non-secure masters can access the OSC1 Timer 1 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                   | Value | Description                                  
 * :---------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4OSC1_OSC1TMR1_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                       |       | master.                                      
 *  ALT_L3_SEC_L4OSC1_OSC1TMR1_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                       |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4OSC1_OSC1TMR1
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4OSC1_OSC1TMR1_E_SECURE     0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4OSC1_OSC1TMR1
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4OSC1_OSC1TMR1_E_NONSECURE  0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4OSC1_OSC1TMR1 register field. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR1_LSB        6
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4OSC1_OSC1TMR1 register field. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR1_MSB        6
/* The width in bits of the ALT_L3_SEC_L4OSC1_OSC1TMR1 register field. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR1_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4OSC1_OSC1TMR1 register field value. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR1_SET_MSK    0x00000040
/* The mask used to clear the ALT_L3_SEC_L4OSC1_OSC1TMR1 register field value. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR1_CLR_MSK    0xffffffbf
/* The reset value of the ALT_L3_SEC_L4OSC1_OSC1TMR1 register field. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR1_RESET      0x0
/* Extracts the ALT_L3_SEC_L4OSC1_OSC1TMR1 field value from a register. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR1_GET(value) (((value) & 0x00000040) >> 6)
/* Produces a ALT_L3_SEC_L4OSC1_OSC1TMR1 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4OSC1_OSC1TMR1_SET(value) (((value) << 6) & 0x00000040)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_L4OSC1.
 */
struct ALT_L3_SEC_L4OSC1_s
{
    uint32_t  l4wd0      :  1;  /* L4 Watchdog Timer 0 Security */
    uint32_t  l4wd1      :  1;  /* L4 Watchdog Timer 0 Security */
    uint32_t  clkmgr     :  1;  /* Clock Manager Security */
    uint32_t  rstmgr     :  1;  /* Reset Manager Security */
    uint32_t  sysmgr     :  1;  /* System Manager Security */
    uint32_t  osc1timer0 :  1;  /* OSC1 Timer 0 Security */
    uint32_t  osc1timer1 :  1;  /* OSC1 Timer 1 Security */
    uint32_t             : 25;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_L4OSC1. */
typedef volatile struct ALT_L3_SEC_L4OSC1_s  ALT_L3_SEC_L4OSC1_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_L4OSC1 register from the beginning of the component. */
#define ALT_L3_SEC_L4OSC1_OFST        0xc

/*
 * Register : L4 SPIM Peripherals Security - l4spim
 * 
 * Controls security settings for L4 SPIM peripherals.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description          
 * :-------|:-------|:------|:----------------------
 *  [0]    | W      | 0x0   | SPI Master 0 Security
 *  [1]    | W      | 0x0   | SPI Master 1 Security
 *  [2]    | W      | 0x0   | Scan Manager Security
 *  [31:3] | ???    | 0x0   | *UNDEFINED*          
 * 
 */
/*
 * Field : SPI Master 0 Security - spim0
 * 
 * Controls whether secure or non-secure masters can access the SPI Master 0 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                | Value | Description                                  
 * :------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4SPIM_SPIM0_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                    |       | master.                                      
 *  ALT_L3_SEC_L4SPIM_SPIM0_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                    |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4SPIM_SPIM0
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4SPIM_SPIM0_E_SECURE    0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4SPIM_SPIM0
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4SPIM_SPIM0_E_NONSECURE 0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4SPIM_SPIM0 register field. */
#define ALT_L3_SEC_L4SPIM_SPIM0_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4SPIM_SPIM0 register field. */
#define ALT_L3_SEC_L4SPIM_SPIM0_MSB        0
/* The width in bits of the ALT_L3_SEC_L4SPIM_SPIM0 register field. */
#define ALT_L3_SEC_L4SPIM_SPIM0_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4SPIM_SPIM0 register field value. */
#define ALT_L3_SEC_L4SPIM_SPIM0_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_L4SPIM_SPIM0 register field value. */
#define ALT_L3_SEC_L4SPIM_SPIM0_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_L4SPIM_SPIM0 register field. */
#define ALT_L3_SEC_L4SPIM_SPIM0_RESET      0x0
/* Extracts the ALT_L3_SEC_L4SPIM_SPIM0 field value from a register. */
#define ALT_L3_SEC_L4SPIM_SPIM0_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_L4SPIM_SPIM0 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4SPIM_SPIM0_SET(value) (((value) << 0) & 0x00000001)

/*
 * Field : SPI Master 1 Security - spim1
 * 
 * Controls whether secure or non-secure masters can access the SPI Master 1 slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                | Value | Description                                  
 * :------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4SPIM_SPIM1_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                    |       | master.                                      
 *  ALT_L3_SEC_L4SPIM_SPIM1_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                    |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4SPIM_SPIM1
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4SPIM_SPIM1_E_SECURE    0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4SPIM_SPIM1
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4SPIM_SPIM1_E_NONSECURE 0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4SPIM_SPIM1 register field. */
#define ALT_L3_SEC_L4SPIM_SPIM1_LSB        1
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4SPIM_SPIM1 register field. */
#define ALT_L3_SEC_L4SPIM_SPIM1_MSB        1
/* The width in bits of the ALT_L3_SEC_L4SPIM_SPIM1 register field. */
#define ALT_L3_SEC_L4SPIM_SPIM1_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4SPIM_SPIM1 register field value. */
#define ALT_L3_SEC_L4SPIM_SPIM1_SET_MSK    0x00000002
/* The mask used to clear the ALT_L3_SEC_L4SPIM_SPIM1 register field value. */
#define ALT_L3_SEC_L4SPIM_SPIM1_CLR_MSK    0xfffffffd
/* The reset value of the ALT_L3_SEC_L4SPIM_SPIM1 register field. */
#define ALT_L3_SEC_L4SPIM_SPIM1_RESET      0x0
/* Extracts the ALT_L3_SEC_L4SPIM_SPIM1 field value from a register. */
#define ALT_L3_SEC_L4SPIM_SPIM1_GET(value) (((value) & 0x00000002) >> 1)
/* Produces a ALT_L3_SEC_L4SPIM_SPIM1 register field value suitable for setting the register. */
#define ALT_L3_SEC_L4SPIM_SPIM1_SET(value) (((value) << 1) & 0x00000002)

/*
 * Field : Scan Manager Security - scanmgr
 * 
 * Controls whether secure or non-secure masters can access the Scan Manager slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                  | Value | Description                                  
 * :--------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_L4SPIM_SCANMGR_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                      |       | master.                                      
 *  ALT_L3_SEC_L4SPIM_SCANMGR_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                      |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_L4SPIM_SCANMGR
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_L4SPIM_SCANMGR_E_SECURE      0x0
/*
 * Enumerated value for register field ALT_L3_SEC_L4SPIM_SCANMGR
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_L4SPIM_SCANMGR_E_NONSECURE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_L4SPIM_SCANMGR register field. */
#define ALT_L3_SEC_L4SPIM_SCANMGR_LSB        2
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_L4SPIM_SCANMGR register field. */
#define ALT_L3_SEC_L4SPIM_SCANMGR_MSB        2
/* The width in bits of the ALT_L3_SEC_L4SPIM_SCANMGR register field. */
#define ALT_L3_SEC_L4SPIM_SCANMGR_WIDTH      1
/* The mask used to set the ALT_L3_SEC_L4SPIM_SCANMGR register field value. */
#define ALT_L3_SEC_L4SPIM_SCANMGR_SET_MSK    0x00000004
/* The mask used to clear the ALT_L3_SEC_L4SPIM_SCANMGR register field value. */
#define ALT_L3_SEC_L4SPIM_SCANMGR_CLR_MSK    0xfffffffb
/* The reset value of the ALT_L3_SEC_L4SPIM_SCANMGR register field. */
#define ALT_L3_SEC_L4SPIM_SCANMGR_RESET      0x0
/* Extracts the ALT_L3_SEC_L4SPIM_SCANMGR field value from a register. */
#define ALT_L3_SEC_L4SPIM_SCANMGR_GET(value) (((value) & 0x00000004) >> 2)
/* Produces a ALT_L3_SEC_L4SPIM_SCANMGR register field value suitable for setting the register. */
#define ALT_L3_SEC_L4SPIM_SCANMGR_SET(value) (((value) << 2) & 0x00000004)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_L4SPIM.
 */
struct ALT_L3_SEC_L4SPIM_s
{
    uint32_t  spim0   :  1;  /* SPI Master 0 Security */
    uint32_t  spim1   :  1;  /* SPI Master 1 Security */
    uint32_t  scanmgr :  1;  /* Scan Manager Security */
    uint32_t          : 29;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_L4SPIM. */
typedef volatile struct ALT_L3_SEC_L4SPIM_s  ALT_L3_SEC_L4SPIM_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_L4SPIM register from the beginning of the component. */
#define ALT_L3_SEC_L4SPIM_OFST        0x10

/*
 * Register : STM Peripheral Security - stm
 * 
 * Controls security settings for STM peripheral.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description 
 * :-------|:-------|:------|:-------------
 *  [0]    | W      | 0x0   | STM Security
 *  [31:1] | ???    | 0x0   | *UNDEFINED* 
 * 
 */
/*
 * Field : STM Security - s
 * 
 * Controls whether secure or non-secure masters can access the STM slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                         | Value | Description                                  
 * :-----------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_STM_S_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                             |       | master.                                      
 *  ALT_L3_SEC_STM_S_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                             |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_STM_S
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_STM_S_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_STM_S
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_STM_S_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_STM_S register field. */
#define ALT_L3_SEC_STM_S_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_STM_S register field. */
#define ALT_L3_SEC_STM_S_MSB        0
/* The width in bits of the ALT_L3_SEC_STM_S register field. */
#define ALT_L3_SEC_STM_S_WIDTH      1
/* The mask used to set the ALT_L3_SEC_STM_S register field value. */
#define ALT_L3_SEC_STM_S_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_STM_S register field value. */
#define ALT_L3_SEC_STM_S_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_STM_S register field. */
#define ALT_L3_SEC_STM_S_RESET      0x0
/* Extracts the ALT_L3_SEC_STM_S field value from a register. */
#define ALT_L3_SEC_STM_S_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_STM_S register field value suitable for setting the register. */
#define ALT_L3_SEC_STM_S_SET(value) (((value) << 0) & 0x00000001)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_STM.
 */
struct ALT_L3_SEC_STM_s
{
    uint32_t  s :  1;  /* STM Security */
    uint32_t    : 31;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_STM. */
typedef volatile struct ALT_L3_SEC_STM_s  ALT_L3_SEC_STM_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_STM register from the beginning of the component. */
#define ALT_L3_SEC_STM_OFST        0x14

/*
 * Register : LWHPS2FPGA AXI Bridge Registers Peripheral Security - lwhps2fpgaregs
 * 
 * Controls security settings for LWHPS2FPGA AXI Bridge Registers peripheral.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description                             
 * :-------|:-------|:------|:-----------------------------------------
 *  [0]    | W      | 0x0   | LWHPS2FPGA AXI Bridge Registers Security
 *  [31:1] | ???    | 0x0   | *UNDEFINED*                             
 * 
 */
/*
 * Field : LWHPS2FPGA AXI Bridge Registers Security - s
 * 
 * Controls whether secure or non-secure masters can access the LWHPS2FPGA AXI
 * Bridge Registers slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                           | Value | Description                                  
 * :-------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_LWH2F_S_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                               |       | master.                                      
 *  ALT_L3_SEC_LWH2F_S_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                               |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_LWH2F_S
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_LWH2F_S_E_SECURE     0x0
/*
 * Enumerated value for register field ALT_L3_SEC_LWH2F_S
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_LWH2F_S_E_NONSECURE  0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_LWH2F_S register field. */
#define ALT_L3_SEC_LWH2F_S_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_LWH2F_S register field. */
#define ALT_L3_SEC_LWH2F_S_MSB        0
/* The width in bits of the ALT_L3_SEC_LWH2F_S register field. */
#define ALT_L3_SEC_LWH2F_S_WIDTH      1
/* The mask used to set the ALT_L3_SEC_LWH2F_S register field value. */
#define ALT_L3_SEC_LWH2F_S_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_LWH2F_S register field value. */
#define ALT_L3_SEC_LWH2F_S_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_LWH2F_S register field. */
#define ALT_L3_SEC_LWH2F_S_RESET      0x0
/* Extracts the ALT_L3_SEC_LWH2F_S field value from a register. */
#define ALT_L3_SEC_LWH2F_S_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_LWH2F_S register field value suitable for setting the register. */
#define ALT_L3_SEC_LWH2F_S_SET(value) (((value) << 0) & 0x00000001)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_LWH2F.
 */
struct ALT_L3_SEC_LWH2F_s
{
    uint32_t  s :  1;  /* LWHPS2FPGA AXI Bridge Registers Security */
    uint32_t    : 31;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_LWH2F. */
typedef volatile struct ALT_L3_SEC_LWH2F_s  ALT_L3_SEC_LWH2F_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_LWH2F register from the beginning of the component. */
#define ALT_L3_SEC_LWH2F_OFST        0x18

/*
 * Register : USB1 Registers Peripheral Security - usb1
 * 
 * Controls security settings for USB1 Registers peripheral.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description            
 * :-------|:-------|:------|:------------------------
 *  [0]    | W      | 0x0   | USB1 Registers Security
 *  [31:1] | ???    | 0x0   | *UNDEFINED*            
 * 
 */
/*
 * Field : USB1 Registers Security - s
 * 
 * Controls whether secure or non-secure masters can access the USB1 Registers
 * slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                          | Value | Description                                  
 * :------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_USB1_S_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                              |       | master.                                      
 *  ALT_L3_SEC_USB1_S_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                              |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_USB1_S
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_USB1_S_E_SECURE      0x0
/*
 * Enumerated value for register field ALT_L3_SEC_USB1_S
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_USB1_S_E_NONSECURE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_USB1_S register field. */
#define ALT_L3_SEC_USB1_S_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_USB1_S register field. */
#define ALT_L3_SEC_USB1_S_MSB        0
/* The width in bits of the ALT_L3_SEC_USB1_S register field. */
#define ALT_L3_SEC_USB1_S_WIDTH      1
/* The mask used to set the ALT_L3_SEC_USB1_S register field value. */
#define ALT_L3_SEC_USB1_S_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_USB1_S register field value. */
#define ALT_L3_SEC_USB1_S_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_USB1_S register field. */
#define ALT_L3_SEC_USB1_S_RESET      0x0
/* Extracts the ALT_L3_SEC_USB1_S field value from a register. */
#define ALT_L3_SEC_USB1_S_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_USB1_S register field value suitable for setting the register. */
#define ALT_L3_SEC_USB1_S_SET(value) (((value) << 0) & 0x00000001)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_USB1.
 */
struct ALT_L3_SEC_USB1_s
{
    uint32_t  s :  1;  /* USB1 Registers Security */
    uint32_t    : 31;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_USB1. */
typedef volatile struct ALT_L3_SEC_USB1_s  ALT_L3_SEC_USB1_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_USB1 register from the beginning of the component. */
#define ALT_L3_SEC_USB1_OFST        0x20

/*
 * Register : NAND Flash Controller Data Peripheral Security - nanddata
 * 
 * Controls security settings for NAND Flash Controller Data peripheral.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description                        
 * :-------|:-------|:------|:------------------------------------
 *  [0]    | W      | 0x0   | NAND Flash Controller Data Security
 *  [31:1] | ???    | 0x0   | *UNDEFINED*                        
 * 
 */
/*
 * Field : NAND Flash Controller Data Security - s
 * 
 * Controls whether secure or non-secure masters can access the NAND Flash
 * Controller Data slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                              | Value | Description                                  
 * :----------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_NANDDATA_S_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                  |       | master.                                      
 *  ALT_L3_SEC_NANDDATA_S_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                  |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_NANDDATA_S
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_NANDDATA_S_E_SECURE      0x0
/*
 * Enumerated value for register field ALT_L3_SEC_NANDDATA_S
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_NANDDATA_S_E_NONSECURE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_NANDDATA_S register field. */
#define ALT_L3_SEC_NANDDATA_S_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_NANDDATA_S register field. */
#define ALT_L3_SEC_NANDDATA_S_MSB        0
/* The width in bits of the ALT_L3_SEC_NANDDATA_S register field. */
#define ALT_L3_SEC_NANDDATA_S_WIDTH      1
/* The mask used to set the ALT_L3_SEC_NANDDATA_S register field value. */
#define ALT_L3_SEC_NANDDATA_S_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_NANDDATA_S register field value. */
#define ALT_L3_SEC_NANDDATA_S_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_NANDDATA_S register field. */
#define ALT_L3_SEC_NANDDATA_S_RESET      0x0
/* Extracts the ALT_L3_SEC_NANDDATA_S field value from a register. */
#define ALT_L3_SEC_NANDDATA_S_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_NANDDATA_S register field value suitable for setting the register. */
#define ALT_L3_SEC_NANDDATA_S_SET(value) (((value) << 0) & 0x00000001)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_NANDDATA.
 */
struct ALT_L3_SEC_NANDDATA_s
{
    uint32_t  s :  1;  /* NAND Flash Controller Data Security */
    uint32_t    : 31;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_NANDDATA. */
typedef volatile struct ALT_L3_SEC_NANDDATA_s  ALT_L3_SEC_NANDDATA_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_NANDDATA register from the beginning of the component. */
#define ALT_L3_SEC_NANDDATA_OFST        0x24

/*
 * Register : USB0 Registers Peripheral Security - usb0
 * 
 * Controls security settings for USB0 Registers peripheral.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description            
 * :-------|:-------|:------|:------------------------
 *  [0]    | W      | 0x0   | USB0 Registers Security
 *  [31:1] | ???    | 0x0   | *UNDEFINED*            
 * 
 */
/*
 * Field : USB0 Registers Security - s
 * 
 * Controls whether secure or non-secure masters can access the USB0 Registers
 * slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                          | Value | Description                                  
 * :------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_USB0_S_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                              |       | master.                                      
 *  ALT_L3_SEC_USB0_S_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                              |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_USB0_S
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_USB0_S_E_SECURE      0x0
/*
 * Enumerated value for register field ALT_L3_SEC_USB0_S
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_USB0_S_E_NONSECURE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_USB0_S register field. */
#define ALT_L3_SEC_USB0_S_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_USB0_S register field. */
#define ALT_L3_SEC_USB0_S_MSB        0
/* The width in bits of the ALT_L3_SEC_USB0_S register field. */
#define ALT_L3_SEC_USB0_S_WIDTH      1
/* The mask used to set the ALT_L3_SEC_USB0_S register field value. */
#define ALT_L3_SEC_USB0_S_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_USB0_S register field value. */
#define ALT_L3_SEC_USB0_S_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_USB0_S register field. */
#define ALT_L3_SEC_USB0_S_RESET      0x0
/* Extracts the ALT_L3_SEC_USB0_S field value from a register. */
#define ALT_L3_SEC_USB0_S_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_USB0_S register field value suitable for setting the register. */
#define ALT_L3_SEC_USB0_S_SET(value) (((value) << 0) & 0x00000001)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_USB0.
 */
struct ALT_L3_SEC_USB0_s
{
    uint32_t  s :  1;  /* USB0 Registers Security */
    uint32_t    : 31;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_USB0. */
typedef volatile struct ALT_L3_SEC_USB0_s  ALT_L3_SEC_USB0_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_USB0 register from the beginning of the component. */
#define ALT_L3_SEC_USB0_OFST        0x78

/*
 * Register : NAND Flash Controller Registers Peripheral Security - nandregs
 * 
 * Controls security settings for NAND Flash Controller Registers peripheral.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description                             
 * :-------|:-------|:------|:-----------------------------------------
 *  [0]    | W      | 0x0   | NAND Flash Controller Registers Security
 *  [31:1] | ???    | 0x0   | *UNDEFINED*                             
 * 
 */
/*
 * Field : NAND Flash Controller Registers Security - s
 * 
 * Controls whether secure or non-secure masters can access the NAND Flash
 * Controller Registers slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                          | Value | Description                                  
 * :------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_NAND_S_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                              |       | master.                                      
 *  ALT_L3_SEC_NAND_S_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                              |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_NAND_S
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_NAND_S_E_SECURE      0x0
/*
 * Enumerated value for register field ALT_L3_SEC_NAND_S
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_NAND_S_E_NONSECURE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_NAND_S register field. */
#define ALT_L3_SEC_NAND_S_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_NAND_S register field. */
#define ALT_L3_SEC_NAND_S_MSB        0
/* The width in bits of the ALT_L3_SEC_NAND_S register field. */
#define ALT_L3_SEC_NAND_S_WIDTH      1
/* The mask used to set the ALT_L3_SEC_NAND_S register field value. */
#define ALT_L3_SEC_NAND_S_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_NAND_S register field value. */
#define ALT_L3_SEC_NAND_S_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_NAND_S register field. */
#define ALT_L3_SEC_NAND_S_RESET      0x0
/* Extracts the ALT_L3_SEC_NAND_S field value from a register. */
#define ALT_L3_SEC_NAND_S_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_NAND_S register field value suitable for setting the register. */
#define ALT_L3_SEC_NAND_S_SET(value) (((value) << 0) & 0x00000001)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_NAND.
 */
struct ALT_L3_SEC_NAND_s
{
    uint32_t  s :  1;  /* NAND Flash Controller Registers Security */
    uint32_t    : 31;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_NAND. */
typedef volatile struct ALT_L3_SEC_NAND_s  ALT_L3_SEC_NAND_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_NAND register from the beginning of the component. */
#define ALT_L3_SEC_NAND_OFST        0x7c

/*
 * Register : QSPI Flash Controller Data Peripheral Security - qspidata
 * 
 * Controls security settings for QSPI Flash Controller Data peripheral.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description                        
 * :-------|:-------|:------|:------------------------------------
 *  [0]    | W      | 0x0   | QSPI Flash Controller Data Security
 *  [31:1] | ???    | 0x0   | *UNDEFINED*                        
 * 
 */
/*
 * Field : QSPI Flash Controller Data Security - s
 * 
 * Controls whether secure or non-secure masters can access the QSPI Flash
 * Controller Data slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                              | Value | Description                                  
 * :----------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_QSPIDATA_S_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                  |       | master.                                      
 *  ALT_L3_SEC_QSPIDATA_S_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                  |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_QSPIDATA_S
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_QSPIDATA_S_E_SECURE      0x0
/*
 * Enumerated value for register field ALT_L3_SEC_QSPIDATA_S
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_QSPIDATA_S_E_NONSECURE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_QSPIDATA_S register field. */
#define ALT_L3_SEC_QSPIDATA_S_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_QSPIDATA_S register field. */
#define ALT_L3_SEC_QSPIDATA_S_MSB        0
/* The width in bits of the ALT_L3_SEC_QSPIDATA_S register field. */
#define ALT_L3_SEC_QSPIDATA_S_WIDTH      1
/* The mask used to set the ALT_L3_SEC_QSPIDATA_S register field value. */
#define ALT_L3_SEC_QSPIDATA_S_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_QSPIDATA_S register field value. */
#define ALT_L3_SEC_QSPIDATA_S_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_QSPIDATA_S register field. */
#define ALT_L3_SEC_QSPIDATA_S_RESET      0x0
/* Extracts the ALT_L3_SEC_QSPIDATA_S field value from a register. */
#define ALT_L3_SEC_QSPIDATA_S_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_QSPIDATA_S register field value suitable for setting the register. */
#define ALT_L3_SEC_QSPIDATA_S_SET(value) (((value) << 0) & 0x00000001)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_QSPIDATA.
 */
struct ALT_L3_SEC_QSPIDATA_s
{
    uint32_t  s :  1;  /* QSPI Flash Controller Data Security */
    uint32_t    : 31;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_QSPIDATA. */
typedef volatile struct ALT_L3_SEC_QSPIDATA_s  ALT_L3_SEC_QSPIDATA_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_QSPIDATA register from the beginning of the component. */
#define ALT_L3_SEC_QSPIDATA_OFST        0x80

/*
 * Register : FPGA Manager Data Peripheral Security - fpgamgrdata
 * 
 * Controls security settings for FPGA Manager Data peripheral.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description               
 * :-------|:-------|:------|:---------------------------
 *  [0]    | W      | 0x0   | FPGA Manager Data Security
 *  [31:1] | ???    | 0x0   | *UNDEFINED*               
 * 
 */
/*
 * Field : FPGA Manager Data Security - s
 * 
 * Controls whether secure or non-secure masters can access the FPGA Manager Data
 * slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                 | Value | Description                                  
 * :-------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_FPGAMGRDATA_S_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                     |       | master.                                      
 *  ALT_L3_SEC_FPGAMGRDATA_S_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                     |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_FPGAMGRDATA_S
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_FPGAMGRDATA_S_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_FPGAMGRDATA_S
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_FPGAMGRDATA_S_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_FPGAMGRDATA_S register field. */
#define ALT_L3_SEC_FPGAMGRDATA_S_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_FPGAMGRDATA_S register field. */
#define ALT_L3_SEC_FPGAMGRDATA_S_MSB        0
/* The width in bits of the ALT_L3_SEC_FPGAMGRDATA_S register field. */
#define ALT_L3_SEC_FPGAMGRDATA_S_WIDTH      1
/* The mask used to set the ALT_L3_SEC_FPGAMGRDATA_S register field value. */
#define ALT_L3_SEC_FPGAMGRDATA_S_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_FPGAMGRDATA_S register field value. */
#define ALT_L3_SEC_FPGAMGRDATA_S_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_FPGAMGRDATA_S register field. */
#define ALT_L3_SEC_FPGAMGRDATA_S_RESET      0x0
/* Extracts the ALT_L3_SEC_FPGAMGRDATA_S field value from a register. */
#define ALT_L3_SEC_FPGAMGRDATA_S_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_FPGAMGRDATA_S register field value suitable for setting the register. */
#define ALT_L3_SEC_FPGAMGRDATA_S_SET(value) (((value) << 0) & 0x00000001)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_FPGAMGRDATA.
 */
struct ALT_L3_SEC_FPGAMGRDATA_s
{
    uint32_t  s :  1;  /* FPGA Manager Data Security */
    uint32_t    : 31;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_FPGAMGRDATA. */
typedef volatile struct ALT_L3_SEC_FPGAMGRDATA_s  ALT_L3_SEC_FPGAMGRDATA_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_FPGAMGRDATA register from the beginning of the component. */
#define ALT_L3_SEC_FPGAMGRDATA_OFST        0x84

/*
 * Register : HPS2FPGA AXI Bridge Registers Peripheral Security - hps2fpgaregs
 * 
 * Controls security settings for HPS2FPGA AXI Bridge Registers peripheral.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description                           
 * :-------|:-------|:------|:---------------------------------------
 *  [0]    | W      | 0x0   | HPS2FPGA AXI Bridge Registers Security
 *  [31:1] | ???    | 0x0   | *UNDEFINED*                           
 * 
 */
/*
 * Field : HPS2FPGA AXI Bridge Registers Security - s
 * 
 * Controls whether secure or non-secure masters can access the HPS2FPGA AXI Bridge
 * Registers slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                         | Value | Description                                  
 * :-----------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_H2F_S_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                             |       | master.                                      
 *  ALT_L3_SEC_H2F_S_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                             |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_H2F_S
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_H2F_S_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_H2F_S
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_H2F_S_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_H2F_S register field. */
#define ALT_L3_SEC_H2F_S_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_H2F_S register field. */
#define ALT_L3_SEC_H2F_S_MSB        0
/* The width in bits of the ALT_L3_SEC_H2F_S register field. */
#define ALT_L3_SEC_H2F_S_WIDTH      1
/* The mask used to set the ALT_L3_SEC_H2F_S register field value. */
#define ALT_L3_SEC_H2F_S_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_H2F_S register field value. */
#define ALT_L3_SEC_H2F_S_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_H2F_S register field. */
#define ALT_L3_SEC_H2F_S_RESET      0x0
/* Extracts the ALT_L3_SEC_H2F_S field value from a register. */
#define ALT_L3_SEC_H2F_S_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_H2F_S register field value suitable for setting the register. */
#define ALT_L3_SEC_H2F_S_SET(value) (((value) << 0) & 0x00000001)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_H2F.
 */
struct ALT_L3_SEC_H2F_s
{
    uint32_t  s :  1;  /* HPS2FPGA AXI Bridge Registers Security */
    uint32_t    : 31;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_H2F. */
typedef volatile struct ALT_L3_SEC_H2F_s  ALT_L3_SEC_H2F_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_H2F register from the beginning of the component. */
#define ALT_L3_SEC_H2F_OFST        0x88

/*
 * Register : MPU ACP Peripheral Security - acp
 * 
 * Controls security settings for MPU ACP peripheral.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description     
 * :-------|:-------|:------|:-----------------
 *  [0]    | W      | 0x0   | MPU ACP Security
 *  [31:1] | ???    | 0x0   | *UNDEFINED*     
 * 
 */
/*
 * Field : MPU ACP Security - s
 * 
 * Controls whether secure or non-secure masters can access the MPU ACP slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                         | Value | Description                                  
 * :-----------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_ACP_S_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                             |       | master.                                      
 *  ALT_L3_SEC_ACP_S_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                             |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_ACP_S
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_ACP_S_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_ACP_S
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_ACP_S_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_ACP_S register field. */
#define ALT_L3_SEC_ACP_S_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_ACP_S register field. */
#define ALT_L3_SEC_ACP_S_MSB        0
/* The width in bits of the ALT_L3_SEC_ACP_S register field. */
#define ALT_L3_SEC_ACP_S_WIDTH      1
/* The mask used to set the ALT_L3_SEC_ACP_S register field value. */
#define ALT_L3_SEC_ACP_S_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_ACP_S register field value. */
#define ALT_L3_SEC_ACP_S_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_ACP_S register field. */
#define ALT_L3_SEC_ACP_S_RESET      0x0
/* Extracts the ALT_L3_SEC_ACP_S field value from a register. */
#define ALT_L3_SEC_ACP_S_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_ACP_S register field value suitable for setting the register. */
#define ALT_L3_SEC_ACP_S_SET(value) (((value) << 0) & 0x00000001)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_ACP.
 */
struct ALT_L3_SEC_ACP_s
{
    uint32_t  s :  1;  /* MPU ACP Security */
    uint32_t    : 31;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_ACP. */
typedef volatile struct ALT_L3_SEC_ACP_s  ALT_L3_SEC_ACP_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_ACP register from the beginning of the component. */
#define ALT_L3_SEC_ACP_OFST        0x8c

/*
 * Register : ROM Peripheral Security - rom
 * 
 * Controls security settings for ROM peripheral.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description 
 * :-------|:-------|:------|:-------------
 *  [0]    | W      | 0x0   | ROM Security
 *  [31:1] | ???    | 0x0   | *UNDEFINED* 
 * 
 */
/*
 * Field : ROM Security - s
 * 
 * Controls whether secure or non-secure masters can access the ROM slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                         | Value | Description                                  
 * :-----------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_ROM_S_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                             |       | master.                                      
 *  ALT_L3_SEC_ROM_S_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                             |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_ROM_S
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_ROM_S_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_ROM_S
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_ROM_S_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_ROM_S register field. */
#define ALT_L3_SEC_ROM_S_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_ROM_S register field. */
#define ALT_L3_SEC_ROM_S_MSB        0
/* The width in bits of the ALT_L3_SEC_ROM_S register field. */
#define ALT_L3_SEC_ROM_S_WIDTH      1
/* The mask used to set the ALT_L3_SEC_ROM_S register field value. */
#define ALT_L3_SEC_ROM_S_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_ROM_S register field value. */
#define ALT_L3_SEC_ROM_S_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_ROM_S register field. */
#define ALT_L3_SEC_ROM_S_RESET      0x0
/* Extracts the ALT_L3_SEC_ROM_S field value from a register. */
#define ALT_L3_SEC_ROM_S_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_ROM_S register field value suitable for setting the register. */
#define ALT_L3_SEC_ROM_S_SET(value) (((value) << 0) & 0x00000001)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_ROM.
 */
struct ALT_L3_SEC_ROM_s
{
    uint32_t  s :  1;  /* ROM Security */
    uint32_t    : 31;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_ROM. */
typedef volatile struct ALT_L3_SEC_ROM_s  ALT_L3_SEC_ROM_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_ROM register from the beginning of the component. */
#define ALT_L3_SEC_ROM_OFST        0x90

/*
 * Register : On-chip RAM Peripheral Security - ocram
 * 
 * Controls security settings for On-chip RAM peripheral.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description         
 * :-------|:-------|:------|:---------------------
 *  [0]    | W      | 0x0   | On-chip RAM Security
 *  [31:1] | ???    | 0x0   | *UNDEFINED*         
 * 
 */
/*
 * Field : On-chip RAM Security - s
 * 
 * Controls whether secure or non-secure masters can access the On-chip RAM slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                           | Value | Description                                  
 * :-------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_OCRAM_S_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                               |       | master.                                      
 *  ALT_L3_SEC_OCRAM_S_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                               |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_OCRAM_S
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_OCRAM_S_E_SECURE     0x0
/*
 * Enumerated value for register field ALT_L3_SEC_OCRAM_S
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_OCRAM_S_E_NONSECURE  0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_OCRAM_S register field. */
#define ALT_L3_SEC_OCRAM_S_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_OCRAM_S register field. */
#define ALT_L3_SEC_OCRAM_S_MSB        0
/* The width in bits of the ALT_L3_SEC_OCRAM_S register field. */
#define ALT_L3_SEC_OCRAM_S_WIDTH      1
/* The mask used to set the ALT_L3_SEC_OCRAM_S register field value. */
#define ALT_L3_SEC_OCRAM_S_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_OCRAM_S register field value. */
#define ALT_L3_SEC_OCRAM_S_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_OCRAM_S register field. */
#define ALT_L3_SEC_OCRAM_S_RESET      0x0
/* Extracts the ALT_L3_SEC_OCRAM_S field value from a register. */
#define ALT_L3_SEC_OCRAM_S_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_OCRAM_S register field value suitable for setting the register. */
#define ALT_L3_SEC_OCRAM_S_SET(value) (((value) << 0) & 0x00000001)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_OCRAM.
 */
struct ALT_L3_SEC_OCRAM_s
{
    uint32_t  s :  1;  /* On-chip RAM Security */
    uint32_t    : 31;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_OCRAM. */
typedef volatile struct ALT_L3_SEC_OCRAM_s  ALT_L3_SEC_OCRAM_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_OCRAM register from the beginning of the component. */
#define ALT_L3_SEC_OCRAM_OFST        0x94

/*
 * Register : SDRAM Data Peripheral Security - sdrdata
 * 
 * Controls security settings for SDRAM Data peripheral.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description        
 * :-------|:-------|:------|:--------------------
 *  [0]    | W      | 0x0   | SDRAM Data Security
 *  [31:1] | ???    | 0x0   | *UNDEFINED*        
 * 
 */
/*
 * Field : SDRAM Data Security - s
 * 
 * Controls whether secure or non-secure masters can access the SDRAM Data slave.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                             | Value | Description                                  
 * :---------------------------------|:------|:----------------------------------------------
 *  ALT_L3_SEC_SDRDATA_S_E_SECURE    | 0x0   | The slave can only be accessed by a secure   
 * :                                 |       | master.                                      
 *  ALT_L3_SEC_SDRDATA_S_E_NONSECURE | 0x1   | The slave can only be accessed by a secure or
 * :                                 |       | non-secure masters.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_SEC_SDRDATA_S
 * 
 * The slave can only be accessed by a secure master.
 */
#define ALT_L3_SEC_SDRDATA_S_E_SECURE       0x0
/*
 * Enumerated value for register field ALT_L3_SEC_SDRDATA_S
 * 
 * The slave can only be accessed by a secure or non-secure masters.
 */
#define ALT_L3_SEC_SDRDATA_S_E_NONSECURE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_SEC_SDRDATA_S register field. */
#define ALT_L3_SEC_SDRDATA_S_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_SEC_SDRDATA_S register field. */
#define ALT_L3_SEC_SDRDATA_S_MSB        0
/* The width in bits of the ALT_L3_SEC_SDRDATA_S register field. */
#define ALT_L3_SEC_SDRDATA_S_WIDTH      1
/* The mask used to set the ALT_L3_SEC_SDRDATA_S register field value. */
#define ALT_L3_SEC_SDRDATA_S_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_SEC_SDRDATA_S register field value. */
#define ALT_L3_SEC_SDRDATA_S_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_SEC_SDRDATA_S register field. */
#define ALT_L3_SEC_SDRDATA_S_RESET      0x0
/* Extracts the ALT_L3_SEC_SDRDATA_S field value from a register. */
#define ALT_L3_SEC_SDRDATA_S_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_SEC_SDRDATA_S register field value suitable for setting the register. */
#define ALT_L3_SEC_SDRDATA_S_SET(value) (((value) << 0) & 0x00000001)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_SEC_SDRDATA.
 */
struct ALT_L3_SEC_SDRDATA_s
{
    uint32_t  s :  1;  /* SDRAM Data Security */
    uint32_t    : 31;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_SEC_SDRDATA. */
typedef volatile struct ALT_L3_SEC_SDRDATA_s  ALT_L3_SEC_SDRDATA_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_SEC_SDRDATA register from the beginning of the component. */
#define ALT_L3_SEC_SDRDATA_OFST        0x98

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_SECGRP.
 */
struct ALT_L3_SECGRP_s
{
    volatile ALT_L3_SEC_L4MAIN_t       l4main;              /* ALT_L3_SEC_L4MAIN */
    volatile ALT_L3_SEC_L4SP_t         l4sp;                /* ALT_L3_SEC_L4SP */
    volatile ALT_L3_SEC_L4MP_t         l4mp;                /* ALT_L3_SEC_L4MP */
    volatile ALT_L3_SEC_L4OSC1_t       l4osc1;              /* ALT_L3_SEC_L4OSC1 */
    volatile ALT_L3_SEC_L4SPIM_t       l4spim;              /* ALT_L3_SEC_L4SPIM */
    volatile ALT_L3_SEC_STM_t          stm;                 /* ALT_L3_SEC_STM */
    volatile ALT_L3_SEC_LWH2F_t        lwhps2fpgaregs;      /* ALT_L3_SEC_LWH2F */
    volatile uint32_t                  _pad_0x1c_0x1f;      /* *UNDEFINED* */
    volatile ALT_L3_SEC_USB1_t         usb1;                /* ALT_L3_SEC_USB1 */
    volatile ALT_L3_SEC_NANDDATA_t     nanddata;            /* ALT_L3_SEC_NANDDATA */
    volatile uint32_t                  _pad_0x28_0x77[20];  /* *UNDEFINED* */
    volatile ALT_L3_SEC_USB0_t         usb0;                /* ALT_L3_SEC_USB0 */
    volatile ALT_L3_SEC_NAND_t         nandregs;            /* ALT_L3_SEC_NAND */
    volatile ALT_L3_SEC_QSPIDATA_t     qspidata;            /* ALT_L3_SEC_QSPIDATA */
    volatile ALT_L3_SEC_FPGAMGRDATA_t  fpgamgrdata;         /* ALT_L3_SEC_FPGAMGRDATA */
    volatile ALT_L3_SEC_H2F_t          hps2fpgaregs;        /* ALT_L3_SEC_H2F */
    volatile ALT_L3_SEC_ACP_t          acp;                 /* ALT_L3_SEC_ACP */
    volatile ALT_L3_SEC_ROM_t          rom;                 /* ALT_L3_SEC_ROM */
    volatile ALT_L3_SEC_OCRAM_t        ocram;               /* ALT_L3_SEC_OCRAM */
    volatile ALT_L3_SEC_SDRDATA_t      sdrdata;             /* ALT_L3_SEC_SDRDATA */
};

/* The typedef declaration for register group ALT_L3_SECGRP. */
typedef volatile struct ALT_L3_SECGRP_s  ALT_L3_SECGRP_t;
/* The struct declaration for the raw register contents of register group ALT_L3_SECGRP. */
struct ALT_L3_SECGRP_raw_s
{
    volatile uint32_t  l4main;              /* ALT_L3_SEC_L4MAIN */
    volatile uint32_t  l4sp;                /* ALT_L3_SEC_L4SP */
    volatile uint32_t  l4mp;                /* ALT_L3_SEC_L4MP */
    volatile uint32_t  l4osc1;              /* ALT_L3_SEC_L4OSC1 */
    volatile uint32_t  l4spim;              /* ALT_L3_SEC_L4SPIM */
    volatile uint32_t  stm;                 /* ALT_L3_SEC_STM */
    volatile uint32_t  lwhps2fpgaregs;      /* ALT_L3_SEC_LWH2F */
    volatile uint32_t  _pad_0x1c_0x1f;      /* *UNDEFINED* */
    volatile uint32_t  usb1;                /* ALT_L3_SEC_USB1 */
    volatile uint32_t  nanddata;            /* ALT_L3_SEC_NANDDATA */
    volatile uint32_t  _pad_0x28_0x77[20];  /* *UNDEFINED* */
    volatile uint32_t  usb0;                /* ALT_L3_SEC_USB0 */
    volatile uint32_t  nandregs;            /* ALT_L3_SEC_NAND */
    volatile uint32_t  qspidata;            /* ALT_L3_SEC_QSPIDATA */
    volatile uint32_t  fpgamgrdata;         /* ALT_L3_SEC_FPGAMGRDATA */
    volatile uint32_t  hps2fpgaregs;        /* ALT_L3_SEC_H2F */
    volatile uint32_t  acp;                 /* ALT_L3_SEC_ACP */
    volatile uint32_t  rom;                 /* ALT_L3_SEC_ROM */
    volatile uint32_t  ocram;               /* ALT_L3_SEC_OCRAM */
    volatile uint32_t  sdrdata;             /* ALT_L3_SEC_SDRDATA */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_SECGRP. */
typedef volatile struct ALT_L3_SECGRP_raw_s  ALT_L3_SECGRP_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : ID Register Group - ALT_L3_IDGRP
 * ID Register Group
 * 
 * Contains registers that identify the ARM NIC-301 IP Core.
 * 
 */
/*
 * Register : Peripheral ID4 Register - periph_id_4
 * 
 * JEP106 continuation code
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description   
 * :-------|:-------|:------|:---------------
 *  [7:0]  | R      | 0x4   | Peripheral ID4
 *  [31:8] | ???    | 0x0   | *UNDEFINED*   
 * 
 */
/*
 * Field : Peripheral ID4 - periph_id_4
 * 
 * JEP106 continuation code
 * 
 * Field Access Macros:
 * 
 */
/* The Least Significant Bit (LSB) position of the ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4 register field. */
#define ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4 register field. */
#define ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4_MSB        7
/* The width in bits of the ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4 register field. */
#define ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4_WIDTH      8
/* The mask used to set the ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4 register field value. */
#define ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4_SET_MSK    0x000000ff
/* The mask used to clear the ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4 register field value. */
#define ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4_CLR_MSK    0xffffff00
/* The reset value of the ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4 register field. */
#define ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4_RESET      0x4
/* Extracts the ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4 field value from a register. */
#define ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4_GET(value) (((value) & 0x000000ff) >> 0)
/* Produces a ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4 register field value suitable for setting the register. */
#define ALT_L3_ID_PERIPH_ID_4_PERIPH_ID_4_SET(value) (((value) << 0) & 0x000000ff)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_ID_PERIPH_ID_4.
 */
struct ALT_L3_ID_PERIPH_ID_4_s
{
    const uint32_t  periph_id_4 :  8;  /* Peripheral ID4 */
    uint32_t                    : 24;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_ID_PERIPH_ID_4. */
typedef volatile struct ALT_L3_ID_PERIPH_ID_4_s  ALT_L3_ID_PERIPH_ID_4_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_ID_PERIPH_ID_4 register from the beginning of the component. */
#define ALT_L3_ID_PERIPH_ID_4_OFST        0xfd0

/*
 * Register : Peripheral ID0 Register - periph_id_0
 * 
 * Peripheral ID0
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description      
 * :-------|:-------|:------|:------------------
 *  [7:0]  | R      | 0x1   | Part Number [7:0]
 *  [31:8] | ???    | 0x0   | *UNDEFINED*      
 * 
 */
/*
 * Field : Part Number [7:0] - pn7to0
 * 
 * Part Number [7:0]
 * 
 * Field Access Macros:
 * 
 */
/* The Least Significant Bit (LSB) position of the ALT_L3_ID_PERIPH_ID_0_PN7TO0 register field. */
#define ALT_L3_ID_PERIPH_ID_0_PN7TO0_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_ID_PERIPH_ID_0_PN7TO0 register field. */
#define ALT_L3_ID_PERIPH_ID_0_PN7TO0_MSB        7
/* The width in bits of the ALT_L3_ID_PERIPH_ID_0_PN7TO0 register field. */
#define ALT_L3_ID_PERIPH_ID_0_PN7TO0_WIDTH      8
/* The mask used to set the ALT_L3_ID_PERIPH_ID_0_PN7TO0 register field value. */
#define ALT_L3_ID_PERIPH_ID_0_PN7TO0_SET_MSK    0x000000ff
/* The mask used to clear the ALT_L3_ID_PERIPH_ID_0_PN7TO0 register field value. */
#define ALT_L3_ID_PERIPH_ID_0_PN7TO0_CLR_MSK    0xffffff00
/* The reset value of the ALT_L3_ID_PERIPH_ID_0_PN7TO0 register field. */
#define ALT_L3_ID_PERIPH_ID_0_PN7TO0_RESET      0x1
/* Extracts the ALT_L3_ID_PERIPH_ID_0_PN7TO0 field value from a register. */
#define ALT_L3_ID_PERIPH_ID_0_PN7TO0_GET(value) (((value) & 0x000000ff) >> 0)
/* Produces a ALT_L3_ID_PERIPH_ID_0_PN7TO0 register field value suitable for setting the register. */
#define ALT_L3_ID_PERIPH_ID_0_PN7TO0_SET(value) (((value) << 0) & 0x000000ff)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_ID_PERIPH_ID_0.
 */
struct ALT_L3_ID_PERIPH_ID_0_s
{
    const uint32_t  pn7to0 :  8;  /* Part Number [7:0] */
    uint32_t               : 24;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_ID_PERIPH_ID_0. */
typedef volatile struct ALT_L3_ID_PERIPH_ID_0_s  ALT_L3_ID_PERIPH_ID_0_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_ID_PERIPH_ID_0 register from the beginning of the component. */
#define ALT_L3_ID_PERIPH_ID_0_OFST        0xfe0

/*
 * Register : Peripheral ID1 Register - periph_id_1
 * 
 * Peripheral ID1
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description                    
 * :-------|:-------|:------|:--------------------------------
 *  [7:0]  | R      | 0xb3  | JEP106[3:0], Part Number [11:8]
 *  [31:8] | ???    | 0x0   | *UNDEFINED*                    
 * 
 */
/*
 * Field : JEP106[3:0], Part Number [11:8] - jep3to0_pn11to8
 * 
 * JEP106[3:0], Part Number [11:8]
 * 
 * Field Access Macros:
 * 
 */
/* The Least Significant Bit (LSB) position of the ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8 register field. */
#define ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8 register field. */
#define ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8_MSB        7
/* The width in bits of the ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8 register field. */
#define ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8_WIDTH      8
/* The mask used to set the ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8 register field value. */
#define ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8_SET_MSK    0x000000ff
/* The mask used to clear the ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8 register field value. */
#define ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8_CLR_MSK    0xffffff00
/* The reset value of the ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8 register field. */
#define ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8_RESET      0xb3
/* Extracts the ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8 field value from a register. */
#define ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8_GET(value) (((value) & 0x000000ff) >> 0)
/* Produces a ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8 register field value suitable for setting the register. */
#define ALT_L3_ID_PERIPH_ID_1_JEP3TO0_PN11TO8_SET(value) (((value) << 0) & 0x000000ff)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_ID_PERIPH_ID_1.
 */
struct ALT_L3_ID_PERIPH_ID_1_s
{
    const uint32_t  jep3to0_pn11to8 :  8;  /* JEP106[3:0], Part Number [11:8] */
    uint32_t                        : 24;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_ID_PERIPH_ID_1. */
typedef volatile struct ALT_L3_ID_PERIPH_ID_1_s  ALT_L3_ID_PERIPH_ID_1_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_ID_PERIPH_ID_1 register from the beginning of the component. */
#define ALT_L3_ID_PERIPH_ID_1_OFST        0xfe4

/*
 * Register : Peripheral ID2 Register - periph_id_2
 * 
 * Peripheral ID2
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description                            
 * :-------|:-------|:------|:----------------------------------------
 *  [7:0]  | R      | 0x6b  | Revision, JEP106 code flag, JEP106[6:4]
 *  [31:8] | ???    | 0x0   | *UNDEFINED*                            
 * 
 */
/*
 * Field : Revision, JEP106 code flag, JEP106[6:4] - rev_jepcode_jep6to4
 * 
 * Revision, JEP106 code flag, JEP106[6:4]
 * 
 * Field Access Macros:
 * 
 */
/* The Least Significant Bit (LSB) position of the ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4 register field. */
#define ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4 register field. */
#define ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4_MSB        7
/* The width in bits of the ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4 register field. */
#define ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4_WIDTH      8
/* The mask used to set the ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4 register field value. */
#define ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4_SET_MSK    0x000000ff
/* The mask used to clear the ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4 register field value. */
#define ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4_CLR_MSK    0xffffff00
/* The reset value of the ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4 register field. */
#define ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4_RESET      0x6b
/* Extracts the ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4 field value from a register. */
#define ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4_GET(value) (((value) & 0x000000ff) >> 0)
/* Produces a ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4 register field value suitable for setting the register. */
#define ALT_L3_ID_PERIPH_ID_2_REV_JEPCODE_JEP6TO4_SET(value) (((value) << 0) & 0x000000ff)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_ID_PERIPH_ID_2.
 */
struct ALT_L3_ID_PERIPH_ID_2_s
{
    const uint32_t  rev_jepcode_jep6to4 :  8;  /* Revision, JEP106 code flag, JEP106[6:4] */
    uint32_t                            : 24;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_ID_PERIPH_ID_2. */
typedef volatile struct ALT_L3_ID_PERIPH_ID_2_s  ALT_L3_ID_PERIPH_ID_2_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_ID_PERIPH_ID_2 register from the beginning of the component. */
#define ALT_L3_ID_PERIPH_ID_2_OFST        0xfe8

/*
 * Register : Peripheral ID3 Register - periph_id_3
 * 
 * Peripheral ID3
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description          
 * :-------|:-------|:------|:----------------------
 *  [3:0]  | R      | 0x0   | Customer Model Number
 *  [7:4]  | R      | 0x0   | Revision             
 *  [31:8] | ???    | 0x0   | *UNDEFINED*          
 * 
 */
/*
 * Field : Customer Model Number - cust_mod_num
 * 
 * Customer Model Number
 * 
 * Field Access Macros:
 * 
 */
/* The Least Significant Bit (LSB) position of the ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM register field. */
#define ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM register field. */
#define ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM_MSB        3
/* The width in bits of the ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM register field. */
#define ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM_WIDTH      4
/* The mask used to set the ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM register field value. */
#define ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM_SET_MSK    0x0000000f
/* The mask used to clear the ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM register field value. */
#define ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM_CLR_MSK    0xfffffff0
/* The reset value of the ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM register field. */
#define ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM_RESET      0x0
/* Extracts the ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM field value from a register. */
#define ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM_GET(value) (((value) & 0x0000000f) >> 0)
/* Produces a ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM register field value suitable for setting the register. */
#define ALT_L3_ID_PERIPH_ID_3_CUST_MOD_NUM_SET(value) (((value) << 0) & 0x0000000f)

/*
 * Field : Revision - rev_and
 * 
 * Revision
 * 
 * Field Access Macros:
 * 
 */
/* The Least Significant Bit (LSB) position of the ALT_L3_ID_PERIPH_ID_3_REV_AND register field. */
#define ALT_L3_ID_PERIPH_ID_3_REV_AND_LSB        4
/* The Most Significant Bit (MSB) position of the ALT_L3_ID_PERIPH_ID_3_REV_AND register field. */
#define ALT_L3_ID_PERIPH_ID_3_REV_AND_MSB        7
/* The width in bits of the ALT_L3_ID_PERIPH_ID_3_REV_AND register field. */
#define ALT_L3_ID_PERIPH_ID_3_REV_AND_WIDTH      4
/* The mask used to set the ALT_L3_ID_PERIPH_ID_3_REV_AND register field value. */
#define ALT_L3_ID_PERIPH_ID_3_REV_AND_SET_MSK    0x000000f0
/* The mask used to clear the ALT_L3_ID_PERIPH_ID_3_REV_AND register field value. */
#define ALT_L3_ID_PERIPH_ID_3_REV_AND_CLR_MSK    0xffffff0f
/* The reset value of the ALT_L3_ID_PERIPH_ID_3_REV_AND register field. */
#define ALT_L3_ID_PERIPH_ID_3_REV_AND_RESET      0x0
/* Extracts the ALT_L3_ID_PERIPH_ID_3_REV_AND field value from a register. */
#define ALT_L3_ID_PERIPH_ID_3_REV_AND_GET(value) (((value) & 0x000000f0) >> 4)
/* Produces a ALT_L3_ID_PERIPH_ID_3_REV_AND register field value suitable for setting the register. */
#define ALT_L3_ID_PERIPH_ID_3_REV_AND_SET(value) (((value) << 4) & 0x000000f0)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_ID_PERIPH_ID_3.
 */
struct ALT_L3_ID_PERIPH_ID_3_s
{
    const uint32_t  cust_mod_num :  4;  /* Customer Model Number */
    const uint32_t  rev_and      :  4;  /* Revision */
    uint32_t                     : 24;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_ID_PERIPH_ID_3. */
typedef volatile struct ALT_L3_ID_PERIPH_ID_3_s  ALT_L3_ID_PERIPH_ID_3_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_ID_PERIPH_ID_3 register from the beginning of the component. */
#define ALT_L3_ID_PERIPH_ID_3_OFST        0xfec

/*
 * Register : Component ID0 Register - comp_id_0
 * 
 * Component ID0
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description
 * :-------|:-------|:------|:------------
 *  [7:0]  | R      | 0xd   | Preamble   
 *  [31:8] | ???    | 0x0   | *UNDEFINED*
 * 
 */
/*
 * Field : Preamble - preamble
 * 
 * Preamble
 * 
 * Field Access Macros:
 * 
 */
/* The Least Significant Bit (LSB) position of the ALT_L3_ID_COMP_ID_0_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_0_PREAMBLE_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_ID_COMP_ID_0_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_0_PREAMBLE_MSB        7
/* The width in bits of the ALT_L3_ID_COMP_ID_0_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_0_PREAMBLE_WIDTH      8
/* The mask used to set the ALT_L3_ID_COMP_ID_0_PREAMBLE register field value. */
#define ALT_L3_ID_COMP_ID_0_PREAMBLE_SET_MSK    0x000000ff
/* The mask used to clear the ALT_L3_ID_COMP_ID_0_PREAMBLE register field value. */
#define ALT_L3_ID_COMP_ID_0_PREAMBLE_CLR_MSK    0xffffff00
/* The reset value of the ALT_L3_ID_COMP_ID_0_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_0_PREAMBLE_RESET      0xd
/* Extracts the ALT_L3_ID_COMP_ID_0_PREAMBLE field value from a register. */
#define ALT_L3_ID_COMP_ID_0_PREAMBLE_GET(value) (((value) & 0x000000ff) >> 0)
/* Produces a ALT_L3_ID_COMP_ID_0_PREAMBLE register field value suitable for setting the register. */
#define ALT_L3_ID_COMP_ID_0_PREAMBLE_SET(value) (((value) << 0) & 0x000000ff)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_ID_COMP_ID_0.
 */
struct ALT_L3_ID_COMP_ID_0_s
{
    const uint32_t  preamble :  8;  /* Preamble */
    uint32_t                 : 24;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_ID_COMP_ID_0. */
typedef volatile struct ALT_L3_ID_COMP_ID_0_s  ALT_L3_ID_COMP_ID_0_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_ID_COMP_ID_0 register from the beginning of the component. */
#define ALT_L3_ID_COMP_ID_0_OFST        0xff0

/*
 * Register : Component ID1 Register - comp_id_1
 * 
 * Component ID1
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description                         
 * :-------|:-------|:------|:-------------------------------------
 *  [7:0]  | R      | 0xf0  | Generic IP component class, Preamble
 *  [31:8] | ???    | 0x0   | *UNDEFINED*                         
 * 
 */
/*
 * Field : Generic IP component class, Preamble - genipcompcls_preamble
 * 
 * Generic IP component class, Preamble
 * 
 * Field Access Macros:
 * 
 */
/* The Least Significant Bit (LSB) position of the ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE_MSB        7
/* The width in bits of the ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE_WIDTH      8
/* The mask used to set the ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE register field value. */
#define ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE_SET_MSK    0x000000ff
/* The mask used to clear the ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE register field value. */
#define ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE_CLR_MSK    0xffffff00
/* The reset value of the ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE_RESET      0xf0
/* Extracts the ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE field value from a register. */
#define ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE_GET(value) (((value) & 0x000000ff) >> 0)
/* Produces a ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE register field value suitable for setting the register. */
#define ALT_L3_ID_COMP_ID_1_GENIPCOMPCLS_PREAMBLE_SET(value) (((value) << 0) & 0x000000ff)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_ID_COMP_ID_1.
 */
struct ALT_L3_ID_COMP_ID_1_s
{
    const uint32_t  genipcompcls_preamble :  8;  /* Generic IP component class, Preamble */
    uint32_t                              : 24;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_ID_COMP_ID_1. */
typedef volatile struct ALT_L3_ID_COMP_ID_1_s  ALT_L3_ID_COMP_ID_1_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_ID_COMP_ID_1 register from the beginning of the component. */
#define ALT_L3_ID_COMP_ID_1_OFST        0xff4

/*
 * Register : Component ID2 Register - comp_id_2
 * 
 * Component ID2
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description
 * :-------|:-------|:------|:------------
 *  [7:0]  | R      | 0x5   | Preamble   
 *  [31:8] | ???    | 0x0   | *UNDEFINED*
 * 
 */
/*
 * Field : Preamble - preamble
 * 
 * Preamble
 * 
 * Field Access Macros:
 * 
 */
/* The Least Significant Bit (LSB) position of the ALT_L3_ID_COMP_ID_2_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_2_PREAMBLE_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_ID_COMP_ID_2_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_2_PREAMBLE_MSB        7
/* The width in bits of the ALT_L3_ID_COMP_ID_2_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_2_PREAMBLE_WIDTH      8
/* The mask used to set the ALT_L3_ID_COMP_ID_2_PREAMBLE register field value. */
#define ALT_L3_ID_COMP_ID_2_PREAMBLE_SET_MSK    0x000000ff
/* The mask used to clear the ALT_L3_ID_COMP_ID_2_PREAMBLE register field value. */
#define ALT_L3_ID_COMP_ID_2_PREAMBLE_CLR_MSK    0xffffff00
/* The reset value of the ALT_L3_ID_COMP_ID_2_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_2_PREAMBLE_RESET      0x5
/* Extracts the ALT_L3_ID_COMP_ID_2_PREAMBLE field value from a register. */
#define ALT_L3_ID_COMP_ID_2_PREAMBLE_GET(value) (((value) & 0x000000ff) >> 0)
/* Produces a ALT_L3_ID_COMP_ID_2_PREAMBLE register field value suitable for setting the register. */
#define ALT_L3_ID_COMP_ID_2_PREAMBLE_SET(value) (((value) << 0) & 0x000000ff)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_ID_COMP_ID_2.
 */
struct ALT_L3_ID_COMP_ID_2_s
{
    const uint32_t  preamble :  8;  /* Preamble */
    uint32_t                 : 24;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_ID_COMP_ID_2. */
typedef volatile struct ALT_L3_ID_COMP_ID_2_s  ALT_L3_ID_COMP_ID_2_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_ID_COMP_ID_2 register from the beginning of the component. */
#define ALT_L3_ID_COMP_ID_2_OFST        0xff8

/*
 * Register : Component ID3 Register - comp_id_3
 * 
 * Component ID3
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description
 * :-------|:-------|:------|:------------
 *  [7:0]  | R      | 0xb1  | Preamble   
 *  [31:8] | ???    | 0x0   | *UNDEFINED*
 * 
 */
/*
 * Field : Preamble - preamble
 * 
 * Preamble
 * 
 * Field Access Macros:
 * 
 */
/* The Least Significant Bit (LSB) position of the ALT_L3_ID_COMP_ID_3_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_3_PREAMBLE_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_ID_COMP_ID_3_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_3_PREAMBLE_MSB        7
/* The width in bits of the ALT_L3_ID_COMP_ID_3_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_3_PREAMBLE_WIDTH      8
/* The mask used to set the ALT_L3_ID_COMP_ID_3_PREAMBLE register field value. */
#define ALT_L3_ID_COMP_ID_3_PREAMBLE_SET_MSK    0x000000ff
/* The mask used to clear the ALT_L3_ID_COMP_ID_3_PREAMBLE register field value. */
#define ALT_L3_ID_COMP_ID_3_PREAMBLE_CLR_MSK    0xffffff00
/* The reset value of the ALT_L3_ID_COMP_ID_3_PREAMBLE register field. */
#define ALT_L3_ID_COMP_ID_3_PREAMBLE_RESET      0xb1
/* Extracts the ALT_L3_ID_COMP_ID_3_PREAMBLE field value from a register. */
#define ALT_L3_ID_COMP_ID_3_PREAMBLE_GET(value) (((value) & 0x000000ff) >> 0)
/* Produces a ALT_L3_ID_COMP_ID_3_PREAMBLE register field value suitable for setting the register. */
#define ALT_L3_ID_COMP_ID_3_PREAMBLE_SET(value) (((value) << 0) & 0x000000ff)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_ID_COMP_ID_3.
 */
struct ALT_L3_ID_COMP_ID_3_s
{
    const uint32_t  preamble :  8;  /* Preamble */
    uint32_t                 : 24;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_ID_COMP_ID_3. */
typedef volatile struct ALT_L3_ID_COMP_ID_3_s  ALT_L3_ID_COMP_ID_3_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_ID_COMP_ID_3 register from the beginning of the component. */
#define ALT_L3_ID_COMP_ID_3_OFST        0xffc

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_IDGRP.
 */
struct ALT_L3_IDGRP_s
{
    volatile uint32_t                 _pad_0x0_0xfcf[1012];  /* *UNDEFINED* */
    volatile ALT_L3_ID_PERIPH_ID_4_t  periph_id_4;           /* ALT_L3_ID_PERIPH_ID_4 */
    volatile uint32_t                 _pad_0xfd4_0xfdf[3];   /* *UNDEFINED* */
    volatile ALT_L3_ID_PERIPH_ID_0_t  periph_id_0;           /* ALT_L3_ID_PERIPH_ID_0 */
    volatile ALT_L3_ID_PERIPH_ID_1_t  periph_id_1;           /* ALT_L3_ID_PERIPH_ID_1 */
    volatile ALT_L3_ID_PERIPH_ID_2_t  periph_id_2;           /* ALT_L3_ID_PERIPH_ID_2 */
    volatile ALT_L3_ID_PERIPH_ID_3_t  periph_id_3;           /* ALT_L3_ID_PERIPH_ID_3 */
    volatile ALT_L3_ID_COMP_ID_0_t    comp_id_0;             /* ALT_L3_ID_COMP_ID_0 */
    volatile ALT_L3_ID_COMP_ID_1_t    comp_id_1;             /* ALT_L3_ID_COMP_ID_1 */
    volatile ALT_L3_ID_COMP_ID_2_t    comp_id_2;             /* ALT_L3_ID_COMP_ID_2 */
    volatile ALT_L3_ID_COMP_ID_3_t    comp_id_3;             /* ALT_L3_ID_COMP_ID_3 */
};

/* The typedef declaration for register group ALT_L3_IDGRP. */
typedef volatile struct ALT_L3_IDGRP_s  ALT_L3_IDGRP_t;
/* The struct declaration for the raw register contents of register group ALT_L3_IDGRP. */
struct ALT_L3_IDGRP_raw_s
{
    volatile uint32_t  _pad_0x0_0xfcf[1012];  /* *UNDEFINED* */
    volatile uint32_t  periph_id_4;           /* ALT_L3_ID_PERIPH_ID_4 */
    volatile uint32_t  _pad_0xfd4_0xfdf[3];   /* *UNDEFINED* */
    volatile uint32_t  periph_id_0;           /* ALT_L3_ID_PERIPH_ID_0 */
    volatile uint32_t  periph_id_1;           /* ALT_L3_ID_PERIPH_ID_1 */
    volatile uint32_t  periph_id_2;           /* ALT_L3_ID_PERIPH_ID_2 */
    volatile uint32_t  periph_id_3;           /* ALT_L3_ID_PERIPH_ID_3 */
    volatile uint32_t  comp_id_0;             /* ALT_L3_ID_COMP_ID_0 */
    volatile uint32_t  comp_id_1;             /* ALT_L3_ID_COMP_ID_1 */
    volatile uint32_t  comp_id_2;             /* ALT_L3_ID_COMP_ID_2 */
    volatile uint32_t  comp_id_3;             /* ALT_L3_ID_COMP_ID_3 */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_IDGRP. */
typedef volatile struct ALT_L3_IDGRP_raw_s  ALT_L3_IDGRP_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : Master Register Group - ALT_L3_MSTGRP
 * Master Register Group
 * 
 * Registers associated with master interfaces in the L3 Interconnect. Note that a
 * master in the L3 Interconnect connects to a slave in a module.
 * 
 */
/*
 * Register Group : L4 MAIN - ALT_L3_MST_L4MAIN
 * L4 MAIN
 * 
 * Registers associated with the L4 MAIN master. This master is used to access the
 * APB slaves on the L4 MAIN bus.
 * 
 */
/*
 * Register : Bus Matrix Issuing Functionality Modification Register - fn_mod_bm_iss
 * 
 * Sets the issuing capability of the preceding switch arbitration scheme to
 * multiple or single outstanding transactions.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description            
 * :-------|:-------|:------|:------------------------
 *  [0]    | RW     | 0x0   | ALT_L3_FN_MOD_BM_ISS_RD
 *  [1]    | RW     | 0x0   | ALT_L3_FN_MOD_BM_ISS_WR
 *  [31:2] | ???    | 0x0   | *UNDEFINED*            
 * 
 */
/*
 * Field : rd
 * 
 * Field Enumeration Values:
 * 
 *  Enum                             | Value | Description                               
 * :---------------------------------|:------|:-------------------------------------------
 *  ALT_L3_FN_MOD_BM_ISS_RD_E_MULT   | 0x0   | Multiple outstanding read transactions    
 *  ALT_L3_FN_MOD_BM_ISS_RD_E_SINGLE | 0x1   | Only a single outstanding read transaction
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_FN_MOD_BM_ISS_RD
 * 
 * Multiple outstanding read transactions
 */
#define ALT_L3_FN_MOD_BM_ISS_RD_E_MULT      0x0
/*
 * Enumerated value for register field ALT_L3_FN_MOD_BM_ISS_RD
 * 
 * Only a single outstanding read transaction
 */
#define ALT_L3_FN_MOD_BM_ISS_RD_E_SINGLE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_FN_MOD_BM_ISS_RD register field. */
#define ALT_L3_FN_MOD_BM_ISS_RD_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_FN_MOD_BM_ISS_RD register field. */
#define ALT_L3_FN_MOD_BM_ISS_RD_MSB        0
/* The width in bits of the ALT_L3_FN_MOD_BM_ISS_RD register field. */
#define ALT_L3_FN_MOD_BM_ISS_RD_WIDTH      1
/* The mask used to set the ALT_L3_FN_MOD_BM_ISS_RD register field value. */
#define ALT_L3_FN_MOD_BM_ISS_RD_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_FN_MOD_BM_ISS_RD register field value. */
#define ALT_L3_FN_MOD_BM_ISS_RD_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_FN_MOD_BM_ISS_RD register field. */
#define ALT_L3_FN_MOD_BM_ISS_RD_RESET      0x0
/* Extracts the ALT_L3_FN_MOD_BM_ISS_RD field value from a register. */
#define ALT_L3_FN_MOD_BM_ISS_RD_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_FN_MOD_BM_ISS_RD register field value suitable for setting the register. */
#define ALT_L3_FN_MOD_BM_ISS_RD_SET(value) (((value) << 0) & 0x00000001)

/*
 * Field : wr
 * 
 * Field Enumeration Values:
 * 
 *  Enum                             | Value | Description                                
 * :---------------------------------|:------|:--------------------------------------------
 *  ALT_L3_FN_MOD_BM_ISS_WR_E_MULT   | 0x0   | Multiple outstanding write transactions    
 *  ALT_L3_FN_MOD_BM_ISS_WR_E_SINGLE | 0x1   | Only a single outstanding write transaction
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_FN_MOD_BM_ISS_WR
 * 
 * Multiple outstanding write transactions
 */
#define ALT_L3_FN_MOD_BM_ISS_WR_E_MULT      0x0
/*
 * Enumerated value for register field ALT_L3_FN_MOD_BM_ISS_WR
 * 
 * Only a single outstanding write transaction
 */
#define ALT_L3_FN_MOD_BM_ISS_WR_E_SINGLE    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_FN_MOD_BM_ISS_WR register field. */
#define ALT_L3_FN_MOD_BM_ISS_WR_LSB        1
/* The Most Significant Bit (MSB) position of the ALT_L3_FN_MOD_BM_ISS_WR register field. */
#define ALT_L3_FN_MOD_BM_ISS_WR_MSB        1
/* The width in bits of the ALT_L3_FN_MOD_BM_ISS_WR register field. */
#define ALT_L3_FN_MOD_BM_ISS_WR_WIDTH      1
/* The mask used to set the ALT_L3_FN_MOD_BM_ISS_WR register field value. */
#define ALT_L3_FN_MOD_BM_ISS_WR_SET_MSK    0x00000002
/* The mask used to clear the ALT_L3_FN_MOD_BM_ISS_WR register field value. */
#define ALT_L3_FN_MOD_BM_ISS_WR_CLR_MSK    0xfffffffd
/* The reset value of the ALT_L3_FN_MOD_BM_ISS_WR register field. */
#define ALT_L3_FN_MOD_BM_ISS_WR_RESET      0x0
/* Extracts the ALT_L3_FN_MOD_BM_ISS_WR field value from a register. */
#define ALT_L3_FN_MOD_BM_ISS_WR_GET(value) (((value) & 0x00000002) >> 1)
/* Produces a ALT_L3_FN_MOD_BM_ISS_WR register field value suitable for setting the register. */
#define ALT_L3_FN_MOD_BM_ISS_WR_SET(value) (((value) << 1) & 0x00000002)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_FN_MOD_BM_ISS.
 */
struct ALT_L3_FN_MOD_BM_ISS_s
{
    uint32_t  rd :  1;  /* ALT_L3_FN_MOD_BM_ISS_RD */
    uint32_t  wr :  1;  /* ALT_L3_FN_MOD_BM_ISS_WR */
    uint32_t     : 30;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_FN_MOD_BM_ISS. */
typedef volatile struct ALT_L3_FN_MOD_BM_ISS_s  ALT_L3_FN_MOD_BM_ISS_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_FN_MOD_BM_ISS register from the beginning of the component. */
#define ALT_L3_FN_MOD_BM_ISS_OFST        0x8
/* The address of the ALT_L3_FN_MOD_BM_ISS register. */
#define ALT_L3_FN_MOD_BM_ISS_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_L3_FN_MOD_BM_ISS_OFST))

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_L4MAIN.
 */
struct ALT_L3_MST_L4MAIN_s
{
    volatile uint32_t                _pad_0x0_0x7[2];  /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;    /* ALT_L3_FN_MOD_BM_ISS */
};

/* The typedef declaration for register group ALT_L3_MST_L4MAIN. */
typedef volatile struct ALT_L3_MST_L4MAIN_s  ALT_L3_MST_L4MAIN_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_L4MAIN. */
struct ALT_L3_MST_L4MAIN_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];  /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;    /* ALT_L3_FN_MOD_BM_ISS */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_L4MAIN. */
typedef volatile struct ALT_L3_MST_L4MAIN_raw_s  ALT_L3_MST_L4MAIN_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : L4 SP - ALT_L3_MST_L4SP
 * L4 SP
 * 
 * Registers associated with the L4 SP master. This master is used to access the
 * APB slaves on the L4 SP bus.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_L4SP.
 */
struct ALT_L3_MST_L4SP_s
{
    volatile uint32_t                _pad_0x0_0x7[2];  /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;    /* ALT_L3_FN_MOD_BM_ISS */
};

/* The typedef declaration for register group ALT_L3_MST_L4SP. */
typedef volatile struct ALT_L3_MST_L4SP_s  ALT_L3_MST_L4SP_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_L4SP. */
struct ALT_L3_MST_L4SP_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];  /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;    /* ALT_L3_FN_MOD_BM_ISS */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_L4SP. */
typedef volatile struct ALT_L3_MST_L4SP_raw_s  ALT_L3_MST_L4SP_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : L4 MP - ALT_L3_MST_L4MP
 * L4 MP
 * 
 * Registers associated with the L4 MP master. This master is used to access the
 * APB slaves on the L4 MP bus.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_L4MP.
 */
struct ALT_L3_MST_L4MP_s
{
    volatile uint32_t                _pad_0x0_0x7[2];  /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;    /* ALT_L3_FN_MOD_BM_ISS */
};

/* The typedef declaration for register group ALT_L3_MST_L4MP. */
typedef volatile struct ALT_L3_MST_L4MP_s  ALT_L3_MST_L4MP_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_L4MP. */
struct ALT_L3_MST_L4MP_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];  /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;    /* ALT_L3_FN_MOD_BM_ISS */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_L4MP. */
typedef volatile struct ALT_L3_MST_L4MP_raw_s  ALT_L3_MST_L4MP_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : L4 OSC1 - ALT_L3_MST_L4OSC1
 * L4 OSC1
 * 
 * Registers associated with the L4 OSC1 master. This master is used to access the
 * APB slaves on the L4 OSC1 bus.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_L4OSC1.
 */
struct ALT_L3_MST_L4OSC1_s
{
    volatile uint32_t                _pad_0x0_0x7[2];  /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;    /* ALT_L3_FN_MOD_BM_ISS */
};

/* The typedef declaration for register group ALT_L3_MST_L4OSC1. */
typedef volatile struct ALT_L3_MST_L4OSC1_s  ALT_L3_MST_L4OSC1_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_L4OSC1. */
struct ALT_L3_MST_L4OSC1_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];  /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;    /* ALT_L3_FN_MOD_BM_ISS */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_L4OSC1. */
typedef volatile struct ALT_L3_MST_L4OSC1_raw_s  ALT_L3_MST_L4OSC1_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : L4 SPIM - ALT_L3_MST_L4SPIM
 * L4 SPIM
 * 
 * Registers associated with the L4 SPIM master. This master is used to access the
 * APB slaves on the L4 SPIM bus.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_L4SPIM.
 */
struct ALT_L3_MST_L4SPIM_s
{
    volatile uint32_t                _pad_0x0_0x7[2];  /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;    /* ALT_L3_FN_MOD_BM_ISS */
};

/* The typedef declaration for register group ALT_L3_MST_L4SPIM. */
typedef volatile struct ALT_L3_MST_L4SPIM_s  ALT_L3_MST_L4SPIM_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_L4SPIM. */
struct ALT_L3_MST_L4SPIM_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];  /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;    /* ALT_L3_FN_MOD_BM_ISS */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_L4SPIM. */
typedef volatile struct ALT_L3_MST_L4SPIM_raw_s  ALT_L3_MST_L4SPIM_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : STM - ALT_L3_MST_STM
 * STM
 * 
 * Registers associated with the STM master. This master is used to access the STM
 * AXI slave.
 * 
 */
/*
 * Register : Issuing Functionality Modification Register - fn_mod
 * 
 * Sets the block issuing capability to multiple or single outstanding
 * transactions.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description     
 * :-------|:-------|:------|:-----------------
 *  [0]    | RW     | 0x0   | ALT_L3_FN_MOD_RD
 *  [1]    | RW     | 0x0   | ALT_L3_FN_MOD_WR
 *  [31:2] | ???    | 0x0   | *UNDEFINED*     
 * 
 */
/*
 * Field : rd
 * 
 * Field Enumeration Values:
 * 
 *  Enum                      | Value | Description                               
 * :--------------------------|:------|:-------------------------------------------
 *  ALT_L3_FN_MOD_RD_E_MULT   | 0x0   | Multiple outstanding read transactions    
 *  ALT_L3_FN_MOD_RD_E_SINGLE | 0x1   | Only a single outstanding read transaction
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_FN_MOD_RD
 * 
 * Multiple outstanding read transactions
 */
#define ALT_L3_FN_MOD_RD_E_MULT     0x0
/*
 * Enumerated value for register field ALT_L3_FN_MOD_RD
 * 
 * Only a single outstanding read transaction
 */
#define ALT_L3_FN_MOD_RD_E_SINGLE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_FN_MOD_RD register field. */
#define ALT_L3_FN_MOD_RD_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_FN_MOD_RD register field. */
#define ALT_L3_FN_MOD_RD_MSB        0
/* The width in bits of the ALT_L3_FN_MOD_RD register field. */
#define ALT_L3_FN_MOD_RD_WIDTH      1
/* The mask used to set the ALT_L3_FN_MOD_RD register field value. */
#define ALT_L3_FN_MOD_RD_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_FN_MOD_RD register field value. */
#define ALT_L3_FN_MOD_RD_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_FN_MOD_RD register field. */
#define ALT_L3_FN_MOD_RD_RESET      0x0
/* Extracts the ALT_L3_FN_MOD_RD field value from a register. */
#define ALT_L3_FN_MOD_RD_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_FN_MOD_RD register field value suitable for setting the register. */
#define ALT_L3_FN_MOD_RD_SET(value) (((value) << 0) & 0x00000001)

/*
 * Field : wr
 * 
 * Field Enumeration Values:
 * 
 *  Enum                      | Value | Description                                
 * :--------------------------|:------|:--------------------------------------------
 *  ALT_L3_FN_MOD_WR_E_MULT   | 0x0   | Multiple outstanding write transactions    
 *  ALT_L3_FN_MOD_WR_E_SINGLE | 0x1   | Only a single outstanding write transaction
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_FN_MOD_WR
 * 
 * Multiple outstanding write transactions
 */
#define ALT_L3_FN_MOD_WR_E_MULT     0x0
/*
 * Enumerated value for register field ALT_L3_FN_MOD_WR
 * 
 * Only a single outstanding write transaction
 */
#define ALT_L3_FN_MOD_WR_E_SINGLE   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_FN_MOD_WR register field. */
#define ALT_L3_FN_MOD_WR_LSB        1
/* The Most Significant Bit (MSB) position of the ALT_L3_FN_MOD_WR register field. */
#define ALT_L3_FN_MOD_WR_MSB        1
/* The width in bits of the ALT_L3_FN_MOD_WR register field. */
#define ALT_L3_FN_MOD_WR_WIDTH      1
/* The mask used to set the ALT_L3_FN_MOD_WR register field value. */
#define ALT_L3_FN_MOD_WR_SET_MSK    0x00000002
/* The mask used to clear the ALT_L3_FN_MOD_WR register field value. */
#define ALT_L3_FN_MOD_WR_CLR_MSK    0xfffffffd
/* The reset value of the ALT_L3_FN_MOD_WR register field. */
#define ALT_L3_FN_MOD_WR_RESET      0x0
/* Extracts the ALT_L3_FN_MOD_WR field value from a register. */
#define ALT_L3_FN_MOD_WR_GET(value) (((value) & 0x00000002) >> 1)
/* Produces a ALT_L3_FN_MOD_WR register field value suitable for setting the register. */
#define ALT_L3_FN_MOD_WR_SET(value) (((value) << 1) & 0x00000002)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_FN_MOD.
 */
struct ALT_L3_FN_MOD_s
{
    uint32_t  rd :  1;  /* ALT_L3_FN_MOD_RD */
    uint32_t  wr :  1;  /* ALT_L3_FN_MOD_WR */
    uint32_t     : 30;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_FN_MOD. */
typedef volatile struct ALT_L3_FN_MOD_s  ALT_L3_FN_MOD_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_FN_MOD register from the beginning of the component. */
#define ALT_L3_FN_MOD_OFST        0x108
/* The address of the ALT_L3_FN_MOD register. */
#define ALT_L3_FN_MOD_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_L3_FN_MOD_OFST))

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_STM.
 */
struct ALT_L3_MST_STM_s
{
    volatile uint32_t                _pad_0x0_0x7[2];     /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;       /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t                _pad_0xc_0x107[63];  /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_t         fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_MST_STM. */
typedef volatile struct ALT_L3_MST_STM_s  ALT_L3_MST_STM_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_STM. */
struct ALT_L3_MST_STM_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];     /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;       /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t  _pad_0xc_0x107[63];  /* *UNDEFINED* */
    volatile uint32_t  fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_STM. */
typedef volatile struct ALT_L3_MST_STM_raw_s  ALT_L3_MST_STM_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : LWHPS2FPGA - ALT_L3_MST_LWH2F
 * LWHPS2FPGA
 * 
 * Registers associated with the LWHPS2FPGA AXI Bridge master. This master is used
 * to access the LWHPS2FPGA AXI Bridge slave. This slave is used to access the
 * registers for all 3 AXI bridges and to access slaves in the FPGA connected to
 * the LWHPS2FPGA AXI Bridge.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_LWH2F.
 */
struct ALT_L3_MST_LWH2F_s
{
    volatile uint32_t                _pad_0x0_0x7[2];     /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;       /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t                _pad_0xc_0x107[63];  /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_t         fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_MST_LWH2F. */
typedef volatile struct ALT_L3_MST_LWH2F_s  ALT_L3_MST_LWH2F_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_LWH2F. */
struct ALT_L3_MST_LWH2F_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];     /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;       /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t  _pad_0xc_0x107[63];  /* *UNDEFINED* */
    volatile uint32_t  fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_LWH2F. */
typedef volatile struct ALT_L3_MST_LWH2F_raw_s  ALT_L3_MST_LWH2F_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : USB1 - ALT_L3_MST_USB1
 * USB1
 * 
 * Registers associated with the USB1 master. This master is used to access the
 * registers in USB1.
 * 
 */
/*
 * Register : AHB Control Register - ahb_cntl
 * 
 * Sets the block issuing capability to one outstanding transaction.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description               
 * :-------|:-------|:------|:---------------------------
 *  [0]    | RW     | 0x0   | ALT_L3_AHB_CNTL_DECERR_EN 
 *  [1]    | RW     | 0x0   | ALT_L3_AHB_CNTL_FORCE_INCR
 *  [31:2] | ???    | 0x0   | *UNDEFINED*               
 * 
 */
/*
 * Field : decerr_en
 * 
 * Field Enumeration Values:
 * 
 *  Enum                            | Value | Description                                     
 * :--------------------------------|:------|:-------------------------------------------------
 *  ALT_L3_AHB_CNTL_DECERR_EN_E_DIS | 0x0   | No DECERR response.                             
 *  ALT_L3_AHB_CNTL_DECERR_EN_E_EN  | 0x1   | If the AHB protocol conversion function receives
 * :                                |       | an unaligned address or a write data beat       
 * :                                |       | without all the byte strobes set, creates a     
 * :                                |       | DECERR response.                                
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_AHB_CNTL_DECERR_EN
 * 
 * No DECERR response.
 */
#define ALT_L3_AHB_CNTL_DECERR_EN_E_DIS 0x0
/*
 * Enumerated value for register field ALT_L3_AHB_CNTL_DECERR_EN
 * 
 * If the AHB protocol conversion function receives an unaligned address or a write
 * data beat without all the byte strobes set, creates a DECERR response.
 */
#define ALT_L3_AHB_CNTL_DECERR_EN_E_EN  0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_AHB_CNTL_DECERR_EN register field. */
#define ALT_L3_AHB_CNTL_DECERR_EN_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_AHB_CNTL_DECERR_EN register field. */
#define ALT_L3_AHB_CNTL_DECERR_EN_MSB        0
/* The width in bits of the ALT_L3_AHB_CNTL_DECERR_EN register field. */
#define ALT_L3_AHB_CNTL_DECERR_EN_WIDTH      1
/* The mask used to set the ALT_L3_AHB_CNTL_DECERR_EN register field value. */
#define ALT_L3_AHB_CNTL_DECERR_EN_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_AHB_CNTL_DECERR_EN register field value. */
#define ALT_L3_AHB_CNTL_DECERR_EN_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_AHB_CNTL_DECERR_EN register field. */
#define ALT_L3_AHB_CNTL_DECERR_EN_RESET      0x0
/* Extracts the ALT_L3_AHB_CNTL_DECERR_EN field value from a register. */
#define ALT_L3_AHB_CNTL_DECERR_EN_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_AHB_CNTL_DECERR_EN register field value suitable for setting the register. */
#define ALT_L3_AHB_CNTL_DECERR_EN_SET(value) (((value) << 0) & 0x00000001)

/*
 * Field : force_incr
 * 
 * Field Enumeration Values:
 * 
 *  Enum                             | Value | Description                                     
 * :---------------------------------|:------|:-------------------------------------------------
 *  ALT_L3_AHB_CNTL_FORCE_INCR_E_DIS | 0x0   | Multiple outstanding write transactions         
 *  ALT_L3_AHB_CNTL_FORCE_INCR_E_EN  | 0x1   | If a beat is received that has no write data    
 * :                                 |       | strobes set, that write data beat is replaced   
 * :                                 |       | with an IDLE beat. Also, causes all transactions
 * :                                 |       | that are to be output to the AHB domain to be an
 * :                                 |       | undefined length INCR.                          
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_AHB_CNTL_FORCE_INCR
 * 
 * Multiple outstanding write transactions
 */
#define ALT_L3_AHB_CNTL_FORCE_INCR_E_DIS    0x0
/*
 * Enumerated value for register field ALT_L3_AHB_CNTL_FORCE_INCR
 * 
 * If a beat is received that has no write data strobes set, that write data beat
 * is replaced with an IDLE beat. Also, causes all transactions that are to be
 * output to the AHB domain to be an undefined length INCR.
 */
#define ALT_L3_AHB_CNTL_FORCE_INCR_E_EN     0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_AHB_CNTL_FORCE_INCR register field. */
#define ALT_L3_AHB_CNTL_FORCE_INCR_LSB        1
/* The Most Significant Bit (MSB) position of the ALT_L3_AHB_CNTL_FORCE_INCR register field. */
#define ALT_L3_AHB_CNTL_FORCE_INCR_MSB        1
/* The width in bits of the ALT_L3_AHB_CNTL_FORCE_INCR register field. */
#define ALT_L3_AHB_CNTL_FORCE_INCR_WIDTH      1
/* The mask used to set the ALT_L3_AHB_CNTL_FORCE_INCR register field value. */
#define ALT_L3_AHB_CNTL_FORCE_INCR_SET_MSK    0x00000002
/* The mask used to clear the ALT_L3_AHB_CNTL_FORCE_INCR register field value. */
#define ALT_L3_AHB_CNTL_FORCE_INCR_CLR_MSK    0xfffffffd
/* The reset value of the ALT_L3_AHB_CNTL_FORCE_INCR register field. */
#define ALT_L3_AHB_CNTL_FORCE_INCR_RESET      0x0
/* Extracts the ALT_L3_AHB_CNTL_FORCE_INCR field value from a register. */
#define ALT_L3_AHB_CNTL_FORCE_INCR_GET(value) (((value) & 0x00000002) >> 1)
/* Produces a ALT_L3_AHB_CNTL_FORCE_INCR register field value suitable for setting the register. */
#define ALT_L3_AHB_CNTL_FORCE_INCR_SET(value) (((value) << 1) & 0x00000002)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_AHB_CNTL.
 */
struct ALT_L3_AHB_CNTL_s
{
    uint32_t  decerr_en  :  1;  /* ALT_L3_AHB_CNTL_DECERR_EN */
    uint32_t  force_incr :  1;  /* ALT_L3_AHB_CNTL_FORCE_INCR */
    uint32_t             : 30;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_AHB_CNTL. */
typedef volatile struct ALT_L3_AHB_CNTL_s  ALT_L3_AHB_CNTL_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_AHB_CNTL register from the beginning of the component. */
#define ALT_L3_AHB_CNTL_OFST        0x44
/* The address of the ALT_L3_AHB_CNTL register. */
#define ALT_L3_AHB_CNTL_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_L3_AHB_CNTL_OFST))

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_USB1.
 */
struct ALT_L3_MST_USB1_s
{
    volatile uint32_t                _pad_0x0_0x7[2];    /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;      /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t                _pad_0xc_0x43[14];  /* *UNDEFINED* */
    volatile ALT_L3_AHB_CNTL_t       ahb_cntl;           /* ALT_L3_AHB_CNTL */
};

/* The typedef declaration for register group ALT_L3_MST_USB1. */
typedef volatile struct ALT_L3_MST_USB1_s  ALT_L3_MST_USB1_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_USB1. */
struct ALT_L3_MST_USB1_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];    /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;      /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t  _pad_0xc_0x43[14];  /* *UNDEFINED* */
    volatile uint32_t  ahb_cntl;           /* ALT_L3_AHB_CNTL */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_USB1. */
typedef volatile struct ALT_L3_MST_USB1_raw_s  ALT_L3_MST_USB1_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : NANDDATA - ALT_L3_MST_NANDDATA
 * NANDDATA
 * 
 * Registers associated with the NANDDATA master. This master is used to access
 * data in the NAND flash controller.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_NANDDATA.
 */
struct ALT_L3_MST_NANDDATA_s
{
    volatile uint32_t                _pad_0x0_0x7[2];     /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;       /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t                _pad_0xc_0x107[63];  /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_t         fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_MST_NANDDATA. */
typedef volatile struct ALT_L3_MST_NANDDATA_s  ALT_L3_MST_NANDDATA_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_NANDDATA. */
struct ALT_L3_MST_NANDDATA_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];     /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;       /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t  _pad_0xc_0x107[63];  /* *UNDEFINED* */
    volatile uint32_t  fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_NANDDATA. */
typedef volatile struct ALT_L3_MST_NANDDATA_raw_s  ALT_L3_MST_NANDDATA_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : USB0 - ALT_L3_MST_USB0
 * USB0
 * 
 * Registers associated with the USB0 master. This master is used to access the
 * registers in USB0.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_USB0.
 */
struct ALT_L3_MST_USB0_s
{
    volatile uint32_t                _pad_0x0_0x7[2];    /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;      /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t                _pad_0xc_0x43[14];  /* *UNDEFINED* */
    volatile ALT_L3_AHB_CNTL_t       ahb_cntl;           /* ALT_L3_AHB_CNTL */
};

/* The typedef declaration for register group ALT_L3_MST_USB0. */
typedef volatile struct ALT_L3_MST_USB0_s  ALT_L3_MST_USB0_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_USB0. */
struct ALT_L3_MST_USB0_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];    /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;      /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t  _pad_0xc_0x43[14];  /* *UNDEFINED* */
    volatile uint32_t  ahb_cntl;           /* ALT_L3_AHB_CNTL */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_USB0. */
typedef volatile struct ALT_L3_MST_USB0_raw_s  ALT_L3_MST_USB0_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : NANDREGS - ALT_L3_MST_NAND
 * NANDREGS
 * 
 * Registers associated with the NANDREGS master. This master is used to access the
 * registers in the NAND flash controller.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_NAND.
 */
struct ALT_L3_MST_NAND_s
{
    volatile uint32_t                _pad_0x0_0x7[2];     /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;       /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t                _pad_0xc_0x107[63];  /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_t         fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_MST_NAND. */
typedef volatile struct ALT_L3_MST_NAND_s  ALT_L3_MST_NAND_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_NAND. */
struct ALT_L3_MST_NAND_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];     /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;       /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t  _pad_0xc_0x107[63];  /* *UNDEFINED* */
    volatile uint32_t  fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_NAND. */
typedef volatile struct ALT_L3_MST_NAND_raw_s  ALT_L3_MST_NAND_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : QSPIDATA - ALT_L3_MST_QSPIDATA
 * QSPIDATA
 * 
 * Registers associated with the QSPIDATA master. This master is used to access
 * data in the QSPI flash controller.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_QSPIDATA.
 */
struct ALT_L3_MST_QSPIDATA_s
{
    volatile uint32_t                _pad_0x0_0x7[2];    /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;      /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t                _pad_0xc_0x43[14];  /* *UNDEFINED* */
    volatile ALT_L3_AHB_CNTL_t       ahb_cntl;           /* ALT_L3_AHB_CNTL */
};

/* The typedef declaration for register group ALT_L3_MST_QSPIDATA. */
typedef volatile struct ALT_L3_MST_QSPIDATA_s  ALT_L3_MST_QSPIDATA_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_QSPIDATA. */
struct ALT_L3_MST_QSPIDATA_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];    /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;      /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t  _pad_0xc_0x43[14];  /* *UNDEFINED* */
    volatile uint32_t  ahb_cntl;           /* ALT_L3_AHB_CNTL */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_QSPIDATA. */
typedef volatile struct ALT_L3_MST_QSPIDATA_raw_s  ALT_L3_MST_QSPIDATA_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : FPGAMGRDATA - ALT_L3_MST_FPGAMGRDATA
 * FPGAMGRDATA
 * 
 * Registers associated with the FPGAMGRDATA master. This master is used to send
 * FPGA configuration image data to the FPGA Manager.
 * 
 */
/*
 * Register : Write Tidemark - wr_tidemark
 * 
 * Controls the release of the transaction in the write data FIFO.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description
 * :-------|:-------|:------|:------------
 *  [3:0]  | RW     | 0x4   | Level      
 *  [31:4] | ???    | 0x0   | *UNDEFINED*
 * 
 */
/*
 * Field : Level - level
 * 
 * Stalls the transaction in the write data FIFO until the number of occupied slots
 * in the write data FIFO exceeds the level. Note that the transaction is released
 * before this level is achieved if the network receives the WLAST beat or the
 * write FIFO becomes full.
 * 
 * Field Access Macros:
 * 
 */
/* The Least Significant Bit (LSB) position of the ALT_L3_WR_TIDEMARK_LEVEL register field. */
#define ALT_L3_WR_TIDEMARK_LEVEL_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_WR_TIDEMARK_LEVEL register field. */
#define ALT_L3_WR_TIDEMARK_LEVEL_MSB        3
/* The width in bits of the ALT_L3_WR_TIDEMARK_LEVEL register field. */
#define ALT_L3_WR_TIDEMARK_LEVEL_WIDTH      4
/* The mask used to set the ALT_L3_WR_TIDEMARK_LEVEL register field value. */
#define ALT_L3_WR_TIDEMARK_LEVEL_SET_MSK    0x0000000f
/* The mask used to clear the ALT_L3_WR_TIDEMARK_LEVEL register field value. */
#define ALT_L3_WR_TIDEMARK_LEVEL_CLR_MSK    0xfffffff0
/* The reset value of the ALT_L3_WR_TIDEMARK_LEVEL register field. */
#define ALT_L3_WR_TIDEMARK_LEVEL_RESET      0x4
/* Extracts the ALT_L3_WR_TIDEMARK_LEVEL field value from a register. */
#define ALT_L3_WR_TIDEMARK_LEVEL_GET(value) (((value) & 0x0000000f) >> 0)
/* Produces a ALT_L3_WR_TIDEMARK_LEVEL register field value suitable for setting the register. */
#define ALT_L3_WR_TIDEMARK_LEVEL_SET(value) (((value) << 0) & 0x0000000f)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_WR_TIDEMARK.
 */
struct ALT_L3_WR_TIDEMARK_s
{
    uint32_t  level :  4;  /* Level */
    uint32_t        : 28;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_WR_TIDEMARK. */
typedef volatile struct ALT_L3_WR_TIDEMARK_s  ALT_L3_WR_TIDEMARK_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_WR_TIDEMARK register from the beginning of the component. */
#define ALT_L3_WR_TIDEMARK_OFST        0x40
/* The address of the ALT_L3_WR_TIDEMARK register. */
#define ALT_L3_WR_TIDEMARK_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_L3_WR_TIDEMARK_OFST))

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_FPGAMGRDATA.
 */
struct ALT_L3_MST_FPGAMGRDATA_s
{
    volatile uint32_t                _pad_0x0_0x7[2];      /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;        /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t                _pad_0xc_0x3f[13];    /* *UNDEFINED* */
    volatile ALT_L3_WR_TIDEMARK_t    wr_tidemark;          /* ALT_L3_WR_TIDEMARK */
    volatile uint32_t                _pad_0x44_0x107[49];  /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_t         fn_mod;               /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_MST_FPGAMGRDATA. */
typedef volatile struct ALT_L3_MST_FPGAMGRDATA_s  ALT_L3_MST_FPGAMGRDATA_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_FPGAMGRDATA. */
struct ALT_L3_MST_FPGAMGRDATA_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];      /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;        /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t  _pad_0xc_0x3f[13];    /* *UNDEFINED* */
    volatile uint32_t  wr_tidemark;          /* ALT_L3_WR_TIDEMARK */
    volatile uint32_t  _pad_0x44_0x107[49];  /* *UNDEFINED* */
    volatile uint32_t  fn_mod;               /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_FPGAMGRDATA. */
typedef volatile struct ALT_L3_MST_FPGAMGRDATA_raw_s  ALT_L3_MST_FPGAMGRDATA_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : HPS2FPGA - ALT_L3_MST_H2F
 * HPS2FPGA
 * 
 * Registers associated with the HPS2FPGA AXI Bridge master. This master is used to
 * access the HPS2FPGA AXI Bridge slave. This slave is used to access slaves in the
 * FPGA connected to the HPS2FPGA AXI Bridge.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_H2F.
 */
struct ALT_L3_MST_H2F_s
{
    volatile uint32_t                _pad_0x0_0x7[2];      /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;        /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t                _pad_0xc_0x3f[13];    /* *UNDEFINED* */
    volatile ALT_L3_WR_TIDEMARK_t    wr_tidemark;          /* ALT_L3_WR_TIDEMARK */
    volatile uint32_t                _pad_0x44_0x107[49];  /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_t         fn_mod;               /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_MST_H2F. */
typedef volatile struct ALT_L3_MST_H2F_s  ALT_L3_MST_H2F_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_H2F. */
struct ALT_L3_MST_H2F_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];      /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;        /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t  _pad_0xc_0x3f[13];    /* *UNDEFINED* */
    volatile uint32_t  wr_tidemark;          /* ALT_L3_WR_TIDEMARK */
    volatile uint32_t  _pad_0x44_0x107[49];  /* *UNDEFINED* */
    volatile uint32_t  fn_mod;               /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_H2F. */
typedef volatile struct ALT_L3_MST_H2F_raw_s  ALT_L3_MST_H2F_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : ACP - ALT_L3_MST_ACP
 * ACP
 * 
 * Registers associated with the ACP master. This master is used to access the MPU
 * ACP slave via the ACP ID Mapper.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_ACP.
 */
struct ALT_L3_MST_ACP_s
{
    volatile uint32_t                _pad_0x0_0x7[2];     /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;       /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t                _pad_0xc_0x107[63];  /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_t         fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_MST_ACP. */
typedef volatile struct ALT_L3_MST_ACP_s  ALT_L3_MST_ACP_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_ACP. */
struct ALT_L3_MST_ACP_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];     /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;       /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t  _pad_0xc_0x107[63];  /* *UNDEFINED* */
    volatile uint32_t  fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_ACP. */
typedef volatile struct ALT_L3_MST_ACP_raw_s  ALT_L3_MST_ACP_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : Boot ROM - ALT_L3_MST_ROM
 * Boot ROM
 * 
 * Registers associated with the Boot ROM master. This master is used to access the
 * contents of the Boot ROM.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_ROM.
 */
struct ALT_L3_MST_ROM_s
{
    volatile uint32_t                _pad_0x0_0x7[2];     /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;       /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t                _pad_0xc_0x107[63];  /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_t         fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_MST_ROM. */
typedef volatile struct ALT_L3_MST_ROM_s  ALT_L3_MST_ROM_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_ROM. */
struct ALT_L3_MST_ROM_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];     /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;       /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t  _pad_0xc_0x107[63];  /* *UNDEFINED* */
    volatile uint32_t  fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_ROM. */
typedef volatile struct ALT_L3_MST_ROM_raw_s  ALT_L3_MST_ROM_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : On-chip RAM - ALT_L3_MST_OCRAM
 * On-chip RAM
 * 
 * Registers associated with the On-chip RAM master. This master is used to access
 * the contents of the On-chip RAM.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MST_OCRAM.
 */
struct ALT_L3_MST_OCRAM_s
{
    volatile uint32_t                _pad_0x0_0x7[2];      /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_BM_ISS_t  fn_mod_bm_iss;        /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t                _pad_0xc_0x3f[13];    /* *UNDEFINED* */
    volatile ALT_L3_WR_TIDEMARK_t    wr_tidemark;          /* ALT_L3_WR_TIDEMARK */
    volatile uint32_t                _pad_0x44_0x107[49];  /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_t         fn_mod;               /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_MST_OCRAM. */
typedef volatile struct ALT_L3_MST_OCRAM_s  ALT_L3_MST_OCRAM_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MST_OCRAM. */
struct ALT_L3_MST_OCRAM_raw_s
{
    volatile uint32_t  _pad_0x0_0x7[2];      /* *UNDEFINED* */
    volatile uint32_t  fn_mod_bm_iss;        /* ALT_L3_FN_MOD_BM_ISS */
    volatile uint32_t  _pad_0xc_0x3f[13];    /* *UNDEFINED* */
    volatile uint32_t  wr_tidemark;          /* ALT_L3_WR_TIDEMARK */
    volatile uint32_t  _pad_0x44_0x107[49];  /* *UNDEFINED* */
    volatile uint32_t  fn_mod;               /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MST_OCRAM. */
typedef volatile struct ALT_L3_MST_OCRAM_raw_s  ALT_L3_MST_OCRAM_raw_t;
#endif  /* __ASSEMBLY__ */


#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_MSTGRP.
 */
struct ALT_L3_MSTGRP_s
{
    volatile ALT_L3_MST_L4MAIN_t       mastergrp_l4main;            /* ALT_L3_MST_L4MAIN */
    volatile uint32_t                  _pad_0xc_0xfff[1021];        /* *UNDEFINED* */
    volatile ALT_L3_MST_L4SP_t         mastergrp_l4sp;              /* ALT_L3_MST_L4SP */
    volatile uint32_t                  _pad_0x100c_0x1fff[1021];    /* *UNDEFINED* */
    volatile ALT_L3_MST_L4MP_t         mastergrp_l4mp;              /* ALT_L3_MST_L4MP */
    volatile uint32_t                  _pad_0x200c_0x2fff[1021];    /* *UNDEFINED* */
    volatile ALT_L3_MST_L4OSC1_t       mastergrp_l4osc1;            /* ALT_L3_MST_L4OSC1 */
    volatile uint32_t                  _pad_0x300c_0x3fff[1021];    /* *UNDEFINED* */
    volatile ALT_L3_MST_L4SPIM_t       mastergrp_l4spim;            /* ALT_L3_MST_L4SPIM */
    volatile uint32_t                  _pad_0x400c_0x4fff[1021];    /* *UNDEFINED* */
    volatile ALT_L3_MST_STM_t          mastergrp_stm;               /* ALT_L3_MST_STM */
    volatile uint32_t                  _pad_0x510c_0x5fff[957];     /* *UNDEFINED* */
    volatile ALT_L3_MST_LWH2F_t        mastergrp_lwhps2fpga;        /* ALT_L3_MST_LWH2F */
    volatile uint32_t                  _pad_0x610c_0x7fff[1981];    /* *UNDEFINED* */
    volatile ALT_L3_MST_USB1_t         mastergrp_usb1;              /* ALT_L3_MST_USB1 */
    volatile uint32_t                  _pad_0x8048_0x8fff[1006];    /* *UNDEFINED* */
    volatile ALT_L3_MST_NANDDATA_t     mastergrp_nanddata;          /* ALT_L3_MST_NANDDATA */
    volatile uint32_t                  _pad_0x910c_0x1dfff[21437];  /* *UNDEFINED* */
    volatile ALT_L3_MST_USB0_t         mastergrp_usb0;              /* ALT_L3_MST_USB0 */
    volatile uint32_t                  _pad_0x1e048_0x1efff[1006];  /* *UNDEFINED* */
    volatile ALT_L3_MST_NAND_t         mastergrp_nandregs;          /* ALT_L3_MST_NAND */
    volatile uint32_t                  _pad_0x1f10c_0x1ffff[957];   /* *UNDEFINED* */
    volatile ALT_L3_MST_QSPIDATA_t     mastergrp_qspidata;          /* ALT_L3_MST_QSPIDATA */
    volatile uint32_t                  _pad_0x20048_0x20fff[1006];  /* *UNDEFINED* */
    volatile ALT_L3_MST_FPGAMGRDATA_t  mastergrp_fpgamgrdata;       /* ALT_L3_MST_FPGAMGRDATA */
    volatile uint32_t                  _pad_0x2110c_0x21fff[957];   /* *UNDEFINED* */
    volatile ALT_L3_MST_H2F_t          mastergrp_hps2fpga;          /* ALT_L3_MST_H2F */
    volatile uint32_t                  _pad_0x2210c_0x22fff[957];   /* *UNDEFINED* */
    volatile ALT_L3_MST_ACP_t          mastergrp_acp;               /* ALT_L3_MST_ACP */
    volatile uint32_t                  _pad_0x2310c_0x23fff[957];   /* *UNDEFINED* */
    volatile ALT_L3_MST_ROM_t          mastergrp_rom;               /* ALT_L3_MST_ROM */
    volatile uint32_t                  _pad_0x2410c_0x24fff[957];   /* *UNDEFINED* */
    volatile ALT_L3_MST_OCRAM_t        mastergrp_ocram;             /* ALT_L3_MST_OCRAM */
};

/* The typedef declaration for register group ALT_L3_MSTGRP. */
typedef volatile struct ALT_L3_MSTGRP_s  ALT_L3_MSTGRP_t;
/* The struct declaration for the raw register contents of register group ALT_L3_MSTGRP. */
struct ALT_L3_MSTGRP_raw_s
{
    volatile ALT_L3_MST_L4MAIN_raw_t       mastergrp_l4main;            /* ALT_L3_MST_L4MAIN */
    volatile uint32_t                      _pad_0xc_0xfff[1021];        /* *UNDEFINED* */
    volatile ALT_L3_MST_L4SP_raw_t         mastergrp_l4sp;              /* ALT_L3_MST_L4SP */
    volatile uint32_t                      _pad_0x100c_0x1fff[1021];    /* *UNDEFINED* */
    volatile ALT_L3_MST_L4MP_raw_t         mastergrp_l4mp;              /* ALT_L3_MST_L4MP */
    volatile uint32_t                      _pad_0x200c_0x2fff[1021];    /* *UNDEFINED* */
    volatile ALT_L3_MST_L4OSC1_raw_t       mastergrp_l4osc1;            /* ALT_L3_MST_L4OSC1 */
    volatile uint32_t                      _pad_0x300c_0x3fff[1021];    /* *UNDEFINED* */
    volatile ALT_L3_MST_L4SPIM_raw_t       mastergrp_l4spim;            /* ALT_L3_MST_L4SPIM */
    volatile uint32_t                      _pad_0x400c_0x4fff[1021];    /* *UNDEFINED* */
    volatile ALT_L3_MST_STM_raw_t          mastergrp_stm;               /* ALT_L3_MST_STM */
    volatile uint32_t                      _pad_0x510c_0x5fff[957];     /* *UNDEFINED* */
    volatile ALT_L3_MST_LWH2F_raw_t        mastergrp_lwhps2fpga;        /* ALT_L3_MST_LWH2F */
    volatile uint32_t                      _pad_0x610c_0x7fff[1981];    /* *UNDEFINED* */
    volatile ALT_L3_MST_USB1_raw_t         mastergrp_usb1;              /* ALT_L3_MST_USB1 */
    volatile uint32_t                      _pad_0x8048_0x8fff[1006];    /* *UNDEFINED* */
    volatile ALT_L3_MST_NANDDATA_raw_t     mastergrp_nanddata;          /* ALT_L3_MST_NANDDATA */
    volatile uint32_t                      _pad_0x910c_0x1dfff[21437];  /* *UNDEFINED* */
    volatile ALT_L3_MST_USB0_raw_t         mastergrp_usb0;              /* ALT_L3_MST_USB0 */
    volatile uint32_t                      _pad_0x1e048_0x1efff[1006];  /* *UNDEFINED* */
    volatile ALT_L3_MST_NAND_raw_t         mastergrp_nandregs;          /* ALT_L3_MST_NAND */
    volatile uint32_t                      _pad_0x1f10c_0x1ffff[957];   /* *UNDEFINED* */
    volatile ALT_L3_MST_QSPIDATA_raw_t     mastergrp_qspidata;          /* ALT_L3_MST_QSPIDATA */
    volatile uint32_t                      _pad_0x20048_0x20fff[1006];  /* *UNDEFINED* */
    volatile ALT_L3_MST_FPGAMGRDATA_raw_t  mastergrp_fpgamgrdata;       /* ALT_L3_MST_FPGAMGRDATA */
    volatile uint32_t                      _pad_0x2110c_0x21fff[957];   /* *UNDEFINED* */
    volatile ALT_L3_MST_H2F_raw_t          mastergrp_hps2fpga;          /* ALT_L3_MST_H2F */
    volatile uint32_t                      _pad_0x2210c_0x22fff[957];   /* *UNDEFINED* */
    volatile ALT_L3_MST_ACP_raw_t          mastergrp_acp;               /* ALT_L3_MST_ACP */
    volatile uint32_t                      _pad_0x2310c_0x23fff[957];   /* *UNDEFINED* */
    volatile ALT_L3_MST_ROM_raw_t          mastergrp_rom;               /* ALT_L3_MST_ROM */
    volatile uint32_t                      _pad_0x2410c_0x24fff[957];   /* *UNDEFINED* */
    volatile ALT_L3_MST_OCRAM_raw_t        mastergrp_ocram;             /* ALT_L3_MST_OCRAM */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_MSTGRP. */
typedef volatile struct ALT_L3_MSTGRP_raw_s  ALT_L3_MSTGRP_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : Slave Register Group - ALT_L3_SLVGRP
 * Slave Register Group
 * 
 * Registers associated with slave interfaces.
 * 
 */
/*
 * Register Group : DAP - ALT_L3_SLV_DAP
 * DAP
 * 
 * Registers associated with the DAP slave interface. This slave is used by the DAP
 * to access slaves attached to the L3/L4 Interconnect.
 * 
 */
/*
 * Register : Functionality Modification 2 Register - fn_mod2
 * 
 * Controls bypass merge of upsizing/downsizing.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description 
 * :-------|:-------|:------|:-------------
 *  [0]    | RW     | 0x0   | Bypass Merge
 *  [31:1] | ???    | 0x0   | *UNDEFINED* 
 * 
 */
/*
 * Field : Bypass Merge - bypass_merge
 * 
 * Controls bypass merge of upsizing/downsizing.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                  | Value | Description                                     
 * :--------------------------------------|:------|:-------------------------------------------------
 *  ALT_L3_FN_MOD2_BYPASS_MERGE_E_ALTER   | 0x0   | The network can alter transactions.             
 *  ALT_L3_FN_MOD2_BYPASS_MERGE_E_NOALTER | 0x1   | The network does not alter any transactions that
 * :                                      |       | could pass through the upsizer legally without  
 * :                                      |       | alteration.                                     
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_FN_MOD2_BYPASS_MERGE
 * 
 * The network can alter transactions.
 */
#define ALT_L3_FN_MOD2_BYPASS_MERGE_E_ALTER     0x0
/*
 * Enumerated value for register field ALT_L3_FN_MOD2_BYPASS_MERGE
 * 
 * The network does not alter any transactions that could pass through the upsizer
 * legally without alteration.
 */
#define ALT_L3_FN_MOD2_BYPASS_MERGE_E_NOALTER   0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_FN_MOD2_BYPASS_MERGE register field. */
#define ALT_L3_FN_MOD2_BYPASS_MERGE_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_FN_MOD2_BYPASS_MERGE register field. */
#define ALT_L3_FN_MOD2_BYPASS_MERGE_MSB        0
/* The width in bits of the ALT_L3_FN_MOD2_BYPASS_MERGE register field. */
#define ALT_L3_FN_MOD2_BYPASS_MERGE_WIDTH      1
/* The mask used to set the ALT_L3_FN_MOD2_BYPASS_MERGE register field value. */
#define ALT_L3_FN_MOD2_BYPASS_MERGE_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_FN_MOD2_BYPASS_MERGE register field value. */
#define ALT_L3_FN_MOD2_BYPASS_MERGE_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_FN_MOD2_BYPASS_MERGE register field. */
#define ALT_L3_FN_MOD2_BYPASS_MERGE_RESET      0x0
/* Extracts the ALT_L3_FN_MOD2_BYPASS_MERGE field value from a register. */
#define ALT_L3_FN_MOD2_BYPASS_MERGE_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_FN_MOD2_BYPASS_MERGE register field value suitable for setting the register. */
#define ALT_L3_FN_MOD2_BYPASS_MERGE_SET(value) (((value) << 0) & 0x00000001)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_FN_MOD2.
 */
struct ALT_L3_FN_MOD2_s
{
    uint32_t  bypass_merge :  1;  /* Bypass Merge */
    uint32_t               : 31;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_FN_MOD2. */
typedef volatile struct ALT_L3_FN_MOD2_s  ALT_L3_FN_MOD2_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_FN_MOD2 register from the beginning of the component. */
#define ALT_L3_FN_MOD2_OFST        0x24
/* The address of the ALT_L3_FN_MOD2 register. */
#define ALT_L3_FN_MOD2_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_L3_FN_MOD2_OFST))

/*
 * Register : Functionality Modification AHB Register - fn_mod_ahb
 * 
 * Controls how AHB-lite burst transactions are converted to AXI tranactions.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description             
 * :-------|:-------|:------|:-------------------------
 *  [0]    | RW     | 0x0   | Read Increment Override 
 *  [1]    | RW     | 0x0   | Write Increment Override
 *  [31:2] | ???    | 0x0   | *UNDEFINED*             
 * 
 */
/*
 * Field : Read Increment Override - rd_incr_override
 * 
 * Controls how AHB-lite read burst transactions are converted to AXI tranactions.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                         | Value | Description                                  
 * :---------------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE_E_DEFAULT | 0x0   | The L3 Interconnect converts AHB-lite read   
 * :                                             |       | bursts to AXI transactions in accordance with
 * :                                             |       | the default behavior as specified in the ARM 
 * :                                             |       | NIC-301 documentation.                       
 *  ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE_E_SINGLES | 0x1   | The L3 Interconnect converts AHB-lite read   
 * :                                             |       | bursts to AXI single transactions.           
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE
 * 
 * The L3 Interconnect converts AHB-lite read bursts to AXI transactions in
 * accordance with the default behavior as specified in the ARM NIC-301
 * documentation.
 */
#define ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE_E_DEFAULT    0x0
/*
 * Enumerated value for register field ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE
 * 
 * The L3 Interconnect converts AHB-lite read bursts to AXI single transactions.
 */
#define ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE_E_SINGLES    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE register field. */
#define ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE register field. */
#define ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE_MSB        0
/* The width in bits of the ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE register field. */
#define ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE_WIDTH      1
/* The mask used to set the ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE register field value. */
#define ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE_SET_MSK    0x00000001
/* The mask used to clear the ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE register field value. */
#define ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE_CLR_MSK    0xfffffffe
/* The reset value of the ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE register field. */
#define ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE_RESET      0x0
/* Extracts the ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE field value from a register. */
#define ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE_GET(value) (((value) & 0x00000001) >> 0)
/* Produces a ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE register field value suitable for setting the register. */
#define ALT_L3_FN_MOD_AHB_RD_INCR_OVERRIDE_SET(value) (((value) << 0) & 0x00000001)

/*
 * Field : Write Increment Override - wr_incr_override
 * 
 * Controls how AHB-lite write burst transactions are converted to AXI tranactions.
 * 
 * Field Enumeration Values:
 * 
 *  Enum                                         | Value | Description                                  
 * :---------------------------------------------|:------|:----------------------------------------------
 *  ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE_E_DEFAULT | 0x0   | The L3 Interconnect converts AHB-lite write  
 * :                                             |       | bursts to AXI transactions in accordance with
 * :                                             |       | the default behavior as specified in the ARM 
 * :                                             |       | NIC-301 documentation.                       
 *  ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE_E_SINGLES | 0x1   | The L3 Interconnect converts AHB-lite write  
 * :                                             |       | bursts to AXI single transactions.           
 * 
 * Field Access Macros:
 * 
 */
/*
 * Enumerated value for register field ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE
 * 
 * The L3 Interconnect converts AHB-lite write bursts to AXI transactions in
 * accordance with the default behavior as specified in the ARM NIC-301
 * documentation.
 */
#define ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE_E_DEFAULT    0x0
/*
 * Enumerated value for register field ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE
 * 
 * The L3 Interconnect converts AHB-lite write bursts to AXI single transactions.
 */
#define ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE_E_SINGLES    0x1

/* The Least Significant Bit (LSB) position of the ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE register field. */
#define ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE_LSB        1
/* The Most Significant Bit (MSB) position of the ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE register field. */
#define ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE_MSB        1
/* The width in bits of the ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE register field. */
#define ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE_WIDTH      1
/* The mask used to set the ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE register field value. */
#define ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE_SET_MSK    0x00000002
/* The mask used to clear the ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE register field value. */
#define ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE_CLR_MSK    0xfffffffd
/* The reset value of the ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE register field. */
#define ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE_RESET      0x0
/* Extracts the ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE field value from a register. */
#define ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE_GET(value) (((value) & 0x00000002) >> 1)
/* Produces a ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE register field value suitable for setting the register. */
#define ALT_L3_FN_MOD_AHB_WR_INCR_OVERRIDE_SET(value) (((value) << 1) & 0x00000002)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_FN_MOD_AHB.
 */
struct ALT_L3_FN_MOD_AHB_s
{
    uint32_t  rd_incr_override :  1;  /* Read Increment Override */
    uint32_t  wr_incr_override :  1;  /* Write Increment Override */
    uint32_t                   : 30;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_FN_MOD_AHB. */
typedef volatile struct ALT_L3_FN_MOD_AHB_s  ALT_L3_FN_MOD_AHB_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_FN_MOD_AHB register from the beginning of the component. */
#define ALT_L3_FN_MOD_AHB_OFST        0x28
/* The address of the ALT_L3_FN_MOD_AHB register. */
#define ALT_L3_FN_MOD_AHB_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_L3_FN_MOD_AHB_OFST))

/*
 * Register : Read Channel QoS Value - read_qos
 * 
 * QoS (Quality of Service) value for the read channel.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description
 * :-------|:-------|:------|:------------
 *  [3:0]  | RW     | 0x0   | Priority   
 *  [31:4] | ???    | 0x0   | *UNDEFINED*
 * 
 */
/*
 * Field : Priority - pri
 * 
 * QoS (Quality of Service) value for the read channel. A higher value has a higher
 * priority.
 * 
 * Field Access Macros:
 * 
 */
/* The Least Significant Bit (LSB) position of the ALT_L3_RD_QOS_PRI register field. */
#define ALT_L3_RD_QOS_PRI_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_RD_QOS_PRI register field. */
#define ALT_L3_RD_QOS_PRI_MSB        3
/* The width in bits of the ALT_L3_RD_QOS_PRI register field. */
#define ALT_L3_RD_QOS_PRI_WIDTH      4
/* The mask used to set the ALT_L3_RD_QOS_PRI register field value. */
#define ALT_L3_RD_QOS_PRI_SET_MSK    0x0000000f
/* The mask used to clear the ALT_L3_RD_QOS_PRI register field value. */
#define ALT_L3_RD_QOS_PRI_CLR_MSK    0xfffffff0
/* The reset value of the ALT_L3_RD_QOS_PRI register field. */
#define ALT_L3_RD_QOS_PRI_RESET      0x0
/* Extracts the ALT_L3_RD_QOS_PRI field value from a register. */
#define ALT_L3_RD_QOS_PRI_GET(value) (((value) & 0x0000000f) >> 0)
/* Produces a ALT_L3_RD_QOS_PRI register field value suitable for setting the register. */
#define ALT_L3_RD_QOS_PRI_SET(value) (((value) << 0) & 0x0000000f)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_RD_QOS.
 */
struct ALT_L3_RD_QOS_s
{
    uint32_t  pri :  4;  /* Priority */
    uint32_t      : 28;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_RD_QOS. */
typedef volatile struct ALT_L3_RD_QOS_s  ALT_L3_RD_QOS_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_RD_QOS register from the beginning of the component. */
#define ALT_L3_RD_QOS_OFST        0x100
/* The address of the ALT_L3_RD_QOS register. */
#define ALT_L3_RD_QOS_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_L3_RD_QOS_OFST))

/*
 * Register : Write Channel QoS Value - write_qos
 * 
 * QoS (Quality of Service) value for the write channel.
 * 
 * Register Layout
 * 
 *  Bits   | Access | Reset | Description
 * :-------|:-------|:------|:------------
 *  [3:0]  | RW     | 0x0   | Priority   
 *  [31:4] | ???    | 0x0   | *UNDEFINED*
 * 
 */
/*
 * Field : Priority - pri
 * 
 * QoS (Quality of Service) value for the write channel. A higher value has a
 * higher priority.
 * 
 * Field Access Macros:
 * 
 */
/* The Least Significant Bit (LSB) position of the ALT_L3_WR_QOS_PRI register field. */
#define ALT_L3_WR_QOS_PRI_LSB        0
/* The Most Significant Bit (MSB) position of the ALT_L3_WR_QOS_PRI register field. */
#define ALT_L3_WR_QOS_PRI_MSB        3
/* The width in bits of the ALT_L3_WR_QOS_PRI register field. */
#define ALT_L3_WR_QOS_PRI_WIDTH      4
/* The mask used to set the ALT_L3_WR_QOS_PRI register field value. */
#define ALT_L3_WR_QOS_PRI_SET_MSK    0x0000000f
/* The mask used to clear the ALT_L3_WR_QOS_PRI register field value. */
#define ALT_L3_WR_QOS_PRI_CLR_MSK    0xfffffff0
/* The reset value of the ALT_L3_WR_QOS_PRI register field. */
#define ALT_L3_WR_QOS_PRI_RESET      0x0
/* Extracts the ALT_L3_WR_QOS_PRI field value from a register. */
#define ALT_L3_WR_QOS_PRI_GET(value) (((value) & 0x0000000f) >> 0)
/* Produces a ALT_L3_WR_QOS_PRI register field value suitable for setting the register. */
#define ALT_L3_WR_QOS_PRI_SET(value) (((value) << 0) & 0x0000000f)

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register ALT_L3_WR_QOS.
 */
struct ALT_L3_WR_QOS_s
{
    uint32_t  pri :  4;  /* Priority */
    uint32_t      : 28;  /* *UNDEFINED* */
};

/* The typedef declaration for register ALT_L3_WR_QOS. */
typedef volatile struct ALT_L3_WR_QOS_s  ALT_L3_WR_QOS_t;
#endif  /* __ASSEMBLY__ */

/* The byte offset of the ALT_L3_WR_QOS register from the beginning of the component. */
#define ALT_L3_WR_QOS_OFST        0x104
/* The address of the ALT_L3_WR_QOS register. */
#define ALT_L3_WR_QOS_ADDR(base)  ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_L3_WR_QOS_OFST))

#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_SLV_DAP.
 */
struct ALT_L3_SLV_DAP_s
{
    volatile uint32_t             _pad_0x0_0x23[9];    /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD2_t     fn_mod2;             /* ALT_L3_FN_MOD2 */
    volatile ALT_L3_FN_MOD_AHB_t  fn_mod_ahb;          /* ALT_L3_FN_MOD_AHB */
    volatile uint32_t             _pad_0x2c_0xff[53];  /* *UNDEFINED* */
    volatile ALT_L3_RD_QOS_t      read_qos;            /* ALT_L3_RD_QOS */
    volatile ALT_L3_WR_QOS_t      write_qos;           /* ALT_L3_WR_QOS */
    volatile ALT_L3_FN_MOD_t      fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_SLV_DAP. */
typedef volatile struct ALT_L3_SLV_DAP_s  ALT_L3_SLV_DAP_t;
/* The struct declaration for the raw register contents of register group ALT_L3_SLV_DAP. */
struct ALT_L3_SLV_DAP_raw_s
{
    volatile uint32_t  _pad_0x0_0x23[9];    /* *UNDEFINED* */
    volatile uint32_t  fn_mod2;             /* ALT_L3_FN_MOD2 */
    volatile uint32_t  fn_mod_ahb;          /* ALT_L3_FN_MOD_AHB */
    volatile uint32_t  _pad_0x2c_0xff[53];  /* *UNDEFINED* */
    volatile uint32_t  read_qos;            /* ALT_L3_RD_QOS */
    volatile uint32_t  write_qos;           /* ALT_L3_WR_QOS */
    volatile uint32_t  fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_SLV_DAP. */
typedef volatile struct ALT_L3_SLV_DAP_raw_s  ALT_L3_SLV_DAP_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : MPU - ALT_L3_SLV_MPU
 * MPU
 * 
 * Registers associated with the MPU slave interface. This slave is used by the MPU
 * to access slaves attached to the L3/L4 Interconnect.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_SLV_MPU.
 */
struct ALT_L3_SLV_MPU_s
{
    volatile uint32_t         _pad_0x0_0xff[64];  /* *UNDEFINED* */
    volatile ALT_L3_RD_QOS_t  read_qos;           /* ALT_L3_RD_QOS */
    volatile ALT_L3_WR_QOS_t  write_qos;          /* ALT_L3_WR_QOS */
    volatile ALT_L3_FN_MOD_t  fn_mod;             /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_SLV_MPU. */
typedef volatile struct ALT_L3_SLV_MPU_s  ALT_L3_SLV_MPU_t;
/* The struct declaration for the raw register contents of register group ALT_L3_SLV_MPU. */
struct ALT_L3_SLV_MPU_raw_s
{
    volatile uint32_t  _pad_0x0_0xff[64];  /* *UNDEFINED* */
    volatile uint32_t  read_qos;           /* ALT_L3_RD_QOS */
    volatile uint32_t  write_qos;          /* ALT_L3_WR_QOS */
    volatile uint32_t  fn_mod;             /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_SLV_MPU. */
typedef volatile struct ALT_L3_SLV_MPU_raw_s  ALT_L3_SLV_MPU_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : SDMMC - ALT_L3_SLV_SDMMC
 * SDMMC
 * 
 * Registers associated with the SDMMC slave interface. This slave is used by the
 * DMA controller built into the SDMMC to access slaves attached to the L3/L4
 * Interconnect.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_SLV_SDMMC.
 */
struct ALT_L3_SLV_SDMMC_s
{
    volatile uint32_t             _pad_0x0_0x27[10];   /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_AHB_t  fn_mod_ahb;          /* ALT_L3_FN_MOD_AHB */
    volatile uint32_t             _pad_0x2c_0xff[53];  /* *UNDEFINED* */
    volatile ALT_L3_RD_QOS_t      read_qos;            /* ALT_L3_RD_QOS */
    volatile ALT_L3_WR_QOS_t      write_qos;           /* ALT_L3_WR_QOS */
    volatile ALT_L3_FN_MOD_t      fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_SLV_SDMMC. */
typedef volatile struct ALT_L3_SLV_SDMMC_s  ALT_L3_SLV_SDMMC_t;
/* The struct declaration for the raw register contents of register group ALT_L3_SLV_SDMMC. */
struct ALT_L3_SLV_SDMMC_raw_s
{
    volatile uint32_t  _pad_0x0_0x27[10];   /* *UNDEFINED* */
    volatile uint32_t  fn_mod_ahb;          /* ALT_L3_FN_MOD_AHB */
    volatile uint32_t  _pad_0x2c_0xff[53];  /* *UNDEFINED* */
    volatile uint32_t  read_qos;            /* ALT_L3_RD_QOS */
    volatile uint32_t  write_qos;           /* ALT_L3_WR_QOS */
    volatile uint32_t  fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_SLV_SDMMC. */
typedef volatile struct ALT_L3_SLV_SDMMC_raw_s  ALT_L3_SLV_SDMMC_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : DMA - ALT_L3_SLV_DMA
 * DMA
 * 
 * Registers associated with the DMA Controller slave interface. This slave is used
 * by the DMA Controller to access slaves attached to the L3/L4 Interconnect.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_SLV_DMA.
 */
struct ALT_L3_SLV_DMA_s
{
    volatile uint32_t         _pad_0x0_0xff[64];  /* *UNDEFINED* */
    volatile ALT_L3_RD_QOS_t  read_qos;           /* ALT_L3_RD_QOS */
    volatile ALT_L3_WR_QOS_t  write_qos;          /* ALT_L3_WR_QOS */
    volatile ALT_L3_FN_MOD_t  fn_mod;             /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_SLV_DMA. */
typedef volatile struct ALT_L3_SLV_DMA_s  ALT_L3_SLV_DMA_t;
/* The struct declaration for the raw register contents of register group ALT_L3_SLV_DMA. */
struct ALT_L3_SLV_DMA_raw_s
{
    volatile uint32_t  _pad_0x0_0xff[64];  /* *UNDEFINED* */
    volatile uint32_t  read_qos;           /* ALT_L3_RD_QOS */
    volatile uint32_t  write_qos;          /* ALT_L3_WR_QOS */
    volatile uint32_t  fn_mod;             /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_SLV_DMA. */
typedef volatile struct ALT_L3_SLV_DMA_raw_s  ALT_L3_SLV_DMA_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : FPGA2HPS - ALT_L3_SLV_F2H
 * FPGA2HPS
 * 
 * Registers associated with the FPGA2HPS AXI Bridge slave interface. This slave is
 * used by the FPGA2HPS AXI Bridge to access slaves attached to the L3/L4
 * Interconnect.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_SLV_F2H.
 */
struct ALT_L3_SLV_F2H_s
{
    volatile uint32_t              _pad_0x0_0x3f[16];   /* *UNDEFINED* */
    volatile ALT_L3_WR_TIDEMARK_t  wr_tidemark;         /* ALT_L3_WR_TIDEMARK */
    volatile uint32_t              _pad_0x44_0xff[47];  /* *UNDEFINED* */
    volatile ALT_L3_RD_QOS_t       read_qos;            /* ALT_L3_RD_QOS */
    volatile ALT_L3_WR_QOS_t       write_qos;           /* ALT_L3_WR_QOS */
    volatile ALT_L3_FN_MOD_t       fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_SLV_F2H. */
typedef volatile struct ALT_L3_SLV_F2H_s  ALT_L3_SLV_F2H_t;
/* The struct declaration for the raw register contents of register group ALT_L3_SLV_F2H. */
struct ALT_L3_SLV_F2H_raw_s
{
    volatile uint32_t  _pad_0x0_0x3f[16];   /* *UNDEFINED* */
    volatile uint32_t  wr_tidemark;         /* ALT_L3_WR_TIDEMARK */
    volatile uint32_t  _pad_0x44_0xff[47];  /* *UNDEFINED* */
    volatile uint32_t  read_qos;            /* ALT_L3_RD_QOS */
    volatile uint32_t  write_qos;           /* ALT_L3_WR_QOS */
    volatile uint32_t  fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_SLV_F2H. */
typedef volatile struct ALT_L3_SLV_F2H_raw_s  ALT_L3_SLV_F2H_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : ETR - ALT_L3_SLV_ETR
 * ETR
 * 
 * Registers associated with the ETR (TMC) slave interface. This slave is used by
 * the ETR to access slaves attached to the L3/L4 Interconnect.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_SLV_ETR.
 */
struct ALT_L3_SLV_ETR_s
{
    volatile uint32_t         _pad_0x0_0xff[64];  /* *UNDEFINED* */
    volatile ALT_L3_RD_QOS_t  read_qos;           /* ALT_L3_RD_QOS */
    volatile ALT_L3_WR_QOS_t  write_qos;          /* ALT_L3_WR_QOS */
    volatile ALT_L3_FN_MOD_t  fn_mod;             /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_SLV_ETR. */
typedef volatile struct ALT_L3_SLV_ETR_s  ALT_L3_SLV_ETR_t;
/* The struct declaration for the raw register contents of register group ALT_L3_SLV_ETR. */
struct ALT_L3_SLV_ETR_raw_s
{
    volatile uint32_t  _pad_0x0_0xff[64];  /* *UNDEFINED* */
    volatile uint32_t  read_qos;           /* ALT_L3_RD_QOS */
    volatile uint32_t  write_qos;          /* ALT_L3_WR_QOS */
    volatile uint32_t  fn_mod;             /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_SLV_ETR. */
typedef volatile struct ALT_L3_SLV_ETR_raw_s  ALT_L3_SLV_ETR_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : EMAC0 - ALT_L3_SLV_EMAC0
 * EMAC0
 * 
 * Registers associated with the EMAC0 slave interface. This slave is used by the
 * DMA controller built into the EMAC0 to access slaves attached to the L3/L4
 * Interconnect.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_SLV_EMAC0.
 */
struct ALT_L3_SLV_EMAC0_s
{
    volatile uint32_t         _pad_0x0_0xff[64];  /* *UNDEFINED* */
    volatile ALT_L3_RD_QOS_t  read_qos;           /* ALT_L3_RD_QOS */
    volatile ALT_L3_WR_QOS_t  write_qos;          /* ALT_L3_WR_QOS */
    volatile ALT_L3_FN_MOD_t  fn_mod;             /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_SLV_EMAC0. */
typedef volatile struct ALT_L3_SLV_EMAC0_s  ALT_L3_SLV_EMAC0_t;
/* The struct declaration for the raw register contents of register group ALT_L3_SLV_EMAC0. */
struct ALT_L3_SLV_EMAC0_raw_s
{
    volatile uint32_t  _pad_0x0_0xff[64];  /* *UNDEFINED* */
    volatile uint32_t  read_qos;           /* ALT_L3_RD_QOS */
    volatile uint32_t  write_qos;          /* ALT_L3_WR_QOS */
    volatile uint32_t  fn_mod;             /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_SLV_EMAC0. */
typedef volatile struct ALT_L3_SLV_EMAC0_raw_s  ALT_L3_SLV_EMAC0_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : EMAC1 - ALT_L3_SLV_EMAC1
 * EMAC1
 * 
 * Registers associated with the EMAC1 slave interface. This slave is used by the
 * DMA controller built into the EMAC1 to access slaves attached to the L3/L4
 * Interconnect.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_SLV_EMAC1.
 */
struct ALT_L3_SLV_EMAC1_s
{
    volatile uint32_t         _pad_0x0_0xff[64];  /* *UNDEFINED* */
    volatile ALT_L3_RD_QOS_t  read_qos;           /* ALT_L3_RD_QOS */
    volatile ALT_L3_WR_QOS_t  write_qos;          /* ALT_L3_WR_QOS */
    volatile ALT_L3_FN_MOD_t  fn_mod;             /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_SLV_EMAC1. */
typedef volatile struct ALT_L3_SLV_EMAC1_s  ALT_L3_SLV_EMAC1_t;
/* The struct declaration for the raw register contents of register group ALT_L3_SLV_EMAC1. */
struct ALT_L3_SLV_EMAC1_raw_s
{
    volatile uint32_t  _pad_0x0_0xff[64];  /* *UNDEFINED* */
    volatile uint32_t  read_qos;           /* ALT_L3_RD_QOS */
    volatile uint32_t  write_qos;          /* ALT_L3_WR_QOS */
    volatile uint32_t  fn_mod;             /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_SLV_EMAC1. */
typedef volatile struct ALT_L3_SLV_EMAC1_raw_s  ALT_L3_SLV_EMAC1_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : USB0 - ALT_L3_SLV_USB0
 * USB0
 * 
 * Registers associated with the USB0 slave interface. This slave is used by the
 * DMA controller built into the USB0 to access slaves attached to the L3/L4
 * Interconnect.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_SLV_USB0.
 */
struct ALT_L3_SLV_USB0_s
{
    volatile uint32_t             _pad_0x0_0x27[10];   /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_AHB_t  fn_mod_ahb;          /* ALT_L3_FN_MOD_AHB */
    volatile uint32_t             _pad_0x2c_0xff[53];  /* *UNDEFINED* */
    volatile ALT_L3_RD_QOS_t      read_qos;            /* ALT_L3_RD_QOS */
    volatile ALT_L3_WR_QOS_t      write_qos;           /* ALT_L3_WR_QOS */
    volatile ALT_L3_FN_MOD_t      fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_SLV_USB0. */
typedef volatile struct ALT_L3_SLV_USB0_s  ALT_L3_SLV_USB0_t;
/* The struct declaration for the raw register contents of register group ALT_L3_SLV_USB0. */
struct ALT_L3_SLV_USB0_raw_s
{
    volatile uint32_t  _pad_0x0_0x27[10];   /* *UNDEFINED* */
    volatile uint32_t  fn_mod_ahb;          /* ALT_L3_FN_MOD_AHB */
    volatile uint32_t  _pad_0x2c_0xff[53];  /* *UNDEFINED* */
    volatile uint32_t  read_qos;            /* ALT_L3_RD_QOS */
    volatile uint32_t  write_qos;           /* ALT_L3_WR_QOS */
    volatile uint32_t  fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_SLV_USB0. */
typedef volatile struct ALT_L3_SLV_USB0_raw_s  ALT_L3_SLV_USB0_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : NAND - ALT_L3_SLV_NAND
 * NAND
 * 
 * Registers associated with the NAND slave interface. This slave is used by the
 * DMA controller built into the NAND flash controller to access slaves attached to
 * the L3/L4 Interconnect.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_SLV_NAND.
 */
struct ALT_L3_SLV_NAND_s
{
    volatile uint32_t         _pad_0x0_0xff[64];  /* *UNDEFINED* */
    volatile ALT_L3_RD_QOS_t  read_qos;           /* ALT_L3_RD_QOS */
    volatile ALT_L3_WR_QOS_t  write_qos;          /* ALT_L3_WR_QOS */
    volatile ALT_L3_FN_MOD_t  fn_mod;             /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_SLV_NAND. */
typedef volatile struct ALT_L3_SLV_NAND_s  ALT_L3_SLV_NAND_t;
/* The struct declaration for the raw register contents of register group ALT_L3_SLV_NAND. */
struct ALT_L3_SLV_NAND_raw_s
{
    volatile uint32_t  _pad_0x0_0xff[64];  /* *UNDEFINED* */
    volatile uint32_t  read_qos;           /* ALT_L3_RD_QOS */
    volatile uint32_t  write_qos;          /* ALT_L3_WR_QOS */
    volatile uint32_t  fn_mod;             /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_SLV_NAND. */
typedef volatile struct ALT_L3_SLV_NAND_raw_s  ALT_L3_SLV_NAND_raw_t;
#endif  /* __ASSEMBLY__ */


/*
 * Register Group : USB1 - ALT_L3_SLV_USB1
 * USB1
 * 
 * Registers associated with the USB1 slave interface. This slave is used by the
 * DMA controller built into the USB1 to access slaves attached to the L3/L4
 * Interconnect.
 * 
 */
#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_SLV_USB1.
 */
struct ALT_L3_SLV_USB1_s
{
    volatile uint32_t             _pad_0x0_0x27[10];   /* *UNDEFINED* */
    volatile ALT_L3_FN_MOD_AHB_t  fn_mod_ahb;          /* ALT_L3_FN_MOD_AHB */
    volatile uint32_t             _pad_0x2c_0xff[53];  /* *UNDEFINED* */
    volatile ALT_L3_RD_QOS_t      read_qos;            /* ALT_L3_RD_QOS */
    volatile ALT_L3_WR_QOS_t      write_qos;           /* ALT_L3_WR_QOS */
    volatile ALT_L3_FN_MOD_t      fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for register group ALT_L3_SLV_USB1. */
typedef volatile struct ALT_L3_SLV_USB1_s  ALT_L3_SLV_USB1_t;
/* The struct declaration for the raw register contents of register group ALT_L3_SLV_USB1. */
struct ALT_L3_SLV_USB1_raw_s
{
    volatile uint32_t  _pad_0x0_0x27[10];   /* *UNDEFINED* */
    volatile uint32_t  fn_mod_ahb;          /* ALT_L3_FN_MOD_AHB */
    volatile uint32_t  _pad_0x2c_0xff[53];  /* *UNDEFINED* */
    volatile uint32_t  read_qos;            /* ALT_L3_RD_QOS */
    volatile uint32_t  write_qos;           /* ALT_L3_WR_QOS */
    volatile uint32_t  fn_mod;              /* ALT_L3_FN_MOD */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_SLV_USB1. */
typedef volatile struct ALT_L3_SLV_USB1_raw_s  ALT_L3_SLV_USB1_raw_t;
#endif  /* __ASSEMBLY__ */


#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3_SLVGRP.
 */
struct ALT_L3_SLVGRP_s
{
    volatile ALT_L3_SLV_DAP_t    slavegrp_dap;             /* ALT_L3_SLV_DAP */
    volatile uint32_t            _pad_0x10c_0xfff[957];    /* *UNDEFINED* */
    volatile ALT_L3_SLV_MPU_t    slavegrp_mpu;             /* ALT_L3_SLV_MPU */
    volatile uint32_t            _pad_0x110c_0x1fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_SDMMC_t  slavegrp_sdmmc;           /* ALT_L3_SLV_SDMMC */
    volatile uint32_t            _pad_0x210c_0x2fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_DMA_t    slavegrp_dma;             /* ALT_L3_SLV_DMA */
    volatile uint32_t            _pad_0x310c_0x3fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_F2H_t    slavegrp_fpga2hps;        /* ALT_L3_SLV_F2H */
    volatile uint32_t            _pad_0x410c_0x4fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_ETR_t    slavegrp_etr;             /* ALT_L3_SLV_ETR */
    volatile uint32_t            _pad_0x510c_0x5fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_EMAC0_t  slavegrp_emac0;           /* ALT_L3_SLV_EMAC0 */
    volatile uint32_t            _pad_0x610c_0x6fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_EMAC1_t  slavegrp_emac1;           /* ALT_L3_SLV_EMAC1 */
    volatile uint32_t            _pad_0x710c_0x7fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_USB0_t   slavegrp_usb0;            /* ALT_L3_SLV_USB0 */
    volatile uint32_t            _pad_0x810c_0x8fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_NAND_t   slavegrp_nand;            /* ALT_L3_SLV_NAND */
    volatile uint32_t            _pad_0x910c_0x9fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_USB1_t   slavegrp_usb1;            /* ALT_L3_SLV_USB1 */
};

/* The typedef declaration for register group ALT_L3_SLVGRP. */
typedef volatile struct ALT_L3_SLVGRP_s  ALT_L3_SLVGRP_t;
/* The struct declaration for the raw register contents of register group ALT_L3_SLVGRP. */
struct ALT_L3_SLVGRP_raw_s
{
    volatile ALT_L3_SLV_DAP_raw_t    slavegrp_dap;             /* ALT_L3_SLV_DAP */
    volatile uint32_t                _pad_0x10c_0xfff[957];    /* *UNDEFINED* */
    volatile ALT_L3_SLV_MPU_raw_t    slavegrp_mpu;             /* ALT_L3_SLV_MPU */
    volatile uint32_t                _pad_0x110c_0x1fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_SDMMC_raw_t  slavegrp_sdmmc;           /* ALT_L3_SLV_SDMMC */
    volatile uint32_t                _pad_0x210c_0x2fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_DMA_raw_t    slavegrp_dma;             /* ALT_L3_SLV_DMA */
    volatile uint32_t                _pad_0x310c_0x3fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_F2H_raw_t    slavegrp_fpga2hps;        /* ALT_L3_SLV_F2H */
    volatile uint32_t                _pad_0x410c_0x4fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_ETR_raw_t    slavegrp_etr;             /* ALT_L3_SLV_ETR */
    volatile uint32_t                _pad_0x510c_0x5fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_EMAC0_raw_t  slavegrp_emac0;           /* ALT_L3_SLV_EMAC0 */
    volatile uint32_t                _pad_0x610c_0x6fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_EMAC1_raw_t  slavegrp_emac1;           /* ALT_L3_SLV_EMAC1 */
    volatile uint32_t                _pad_0x710c_0x7fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_USB0_raw_t   slavegrp_usb0;            /* ALT_L3_SLV_USB0 */
    volatile uint32_t                _pad_0x810c_0x8fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_NAND_raw_t   slavegrp_nand;            /* ALT_L3_SLV_NAND */
    volatile uint32_t                _pad_0x910c_0x9fff[957];  /* *UNDEFINED* */
    volatile ALT_L3_SLV_USB1_raw_t   slavegrp_usb1;            /* ALT_L3_SLV_USB1 */
};

/* The typedef declaration for the raw register contents of register group ALT_L3_SLVGRP. */
typedef volatile struct ALT_L3_SLVGRP_raw_s  ALT_L3_SLVGRP_raw_t;
#endif  /* __ASSEMBLY__ */


#ifndef __ASSEMBLY__
/*
 * WARNING: The C register and register group struct declarations are provided for
 * convenience and illustrative purposes. They should, however, be used with
 * caution as the C language standard provides no guarantees about the alignment or
 * atomicity of device memory accesses. The recommended practice for writing
 * hardware drivers is to use the SoCAL access macros and alt_read_word() and
 * alt_write_word() functions.
 * 
 * The struct declaration for register group ALT_L3.
 */
struct ALT_L3_s
{
    volatile ALT_L3_REMAP_t   remap;                        /* ALT_L3_REMAP */
    volatile uint32_t         _pad_0x4_0x7;                 /* *UNDEFINED* */
    volatile ALT_L3_SECGRP_t  secgrp;                       /* ALT_L3_SECGRP */
    volatile uint32_t         _pad_0xa4_0xfff[983];         /* *UNDEFINED* */
    volatile ALT_L3_IDGRP_t   idgrp;                        /* ALT_L3_IDGRP */
    volatile ALT_L3_MSTGRP_t  mastergrp;                    /* ALT_L3_MSTGRP */
    volatile uint32_t         _pad_0x2710c_0x41fff[27581];  /* *UNDEFINED* */
    volatile ALT_L3_SLVGRP_t  slavegrp;                     /* ALT_L3_SLVGRP */
    volatile uint32_t         _pad_0x4c10c_0x80000[53181];  /* *UNDEFINED* */
};

/* The typedef declaration for register group ALT_L3. */
typedef volatile struct ALT_L3_s  ALT_L3_t;
/* The struct declaration for the raw register contents of register group ALT_L3. */
struct ALT_L3_raw_s
{
    volatile uint32_t             remap;                        /* ALT_L3_REMAP */
    volatile uint32_t             _pad_0x4_0x7;                 /* *UNDEFINED* */
    volatile ALT_L3_SECGRP_raw_t  secgrp;                       /* ALT_L3_SECGRP */
    volatile uint32_t             _pad_0xa4_0xfff[983];         /* *UNDEFINED* */
    volatile ALT_L3_IDGRP_raw_t   idgrp;                        /* ALT_L3_IDGRP */
    volatile ALT_L3_MSTGRP_raw_t  mastergrp;                    /* ALT_L3_MSTGRP */
    volatile uint32_t             _pad_0x2710c_0x41fff[27581];  /* *UNDEFINED* */
    volatile ALT_L3_SLVGRP_raw_t  slavegrp;                     /* ALT_L3_SLVGRP */
    volatile uint32_t             _pad_0x4c10c_0x80000[53181];  /* *UNDEFINED* */
};

/* The typedef declaration for the raw register contents of register group ALT_L3. */
typedef volatile struct ALT_L3_raw_s  ALT_L3_raw_t;
#endif  /* __ASSEMBLY__ */


#ifdef __cplusplus
}
#endif  /* __cplusplus */
#endif  /* __ALTERA_ALT_L3_H__ */

