incubator-nuttx/include/nuttx/efuse/sama5_sfc_fuses.h

248 lines
4.1 KiB
C

/****************************************************************************
* include/nuttx/efuse/sama5_sfc_fuses.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
#ifndef __INCLUDE_NUTTX_EFUSE_SAMA5_FUSES_H
#define __INCLUDE_NUTTX_EFUSE_SAMA5_FUSES_H
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
#if defined(ATSAMA5D2)
#define SAM_SFC_EFUSE_MAX_LEN 544 /* Max length of sfc area. */
#elif defined ATSAMA5D4
#define SAM_SFC_EFUSE_MAX_LEN 512 /* Max length of sfc area. */
#endif
/****************************************************************************
* Included Files
****************************************************************************/
/****************************************************************************
* Type Definitions
****************************************************************************/
#if defined(CONFIG_EFUSE) && defined(CONFIG_SAMA5_SFC)
/* enum of SFC blocks for SAMA5 */
enum
{
SFC_DR0 = 0,
SFC_DR1,
SFC_DR2,
SFC_DR3,
SFC_DR4,
SFC_DR5,
SFC_DR6,
SFC_DR7,
SFC_DR8,
SFC_DR9,
SFC_DR10,
SFC_DR11,
SFC_DR12,
SFC_DR13,
SFC_DR14,
#ifdef ATSAMA5D2
SFC_DR15,
SFC_BOOT,
SFC_JTAG,
SFC_SEC_BOOT,
#else
SFC_S,
SFC_MD,
SFC_SECURE_DEBUG,
SFC_JTAG_DIS,
#endif
SFC_DR_END,
};
/* Generic descriptions for the SAM SFC fuses, 32 bits wide.
* These can be replaced by user definitions in board code if required.
*/
static const efuse_desc_t SAMA5_SFC_DATA0[] =
{
{
0, 32
},
};
static const efuse_desc_t SAMA5_SFC_DATA1[] =
{
{
32, 32
},
};
static const efuse_desc_t SAMA5_SFC_DATA2[] =
{
{
64, 32
},
};
static const efuse_desc_t SAMA5_SFC_DATA3[] =
{
{
96, 32
},
};
static const efuse_desc_t SAMA5_SFC_DATA4[] =
{
{
128, 32
},
};
static const efuse_desc_t SAMA5_SFC_DATA5[] =
{
{
160, 32
},
};
static const efuse_desc_t SAMA5_SFC_DATA6[] =
{
{
192, 32
},
};
static const efuse_desc_t SAMA5_SFC_DATA7[] =
{
{
224, 32
},
};
static const efuse_desc_t SAMA5_SFC_DATA8[] =
{
{
256, 32
},
};
static const efuse_desc_t SAMA5_SFC_DATA9[] =
{
{
288, 32
},
};
static const efuse_desc_t SAMA5_SFC_DATA10[] =
{
{
320, 32
},
};
static const efuse_desc_t SAMA5_SFC_DATA11[] =
{
{
352, 32
},
};
static const efuse_desc_t SAMA5_SFC_DATA12[] =
{
{
384, 32
},
};
static const efuse_desc_t SAMA5_SFC_DATA13[] =
{
{
416, 32
},
};
static const efuse_desc_t SAMA5_SFC_DATA14[] =
{
{
448, 32
},
};
#ifdef ATSAMA5D2
static const efuse_desc_t SAMA5_SFC_DATA15[] =
{
{
480, 32
},
};
static const efuse_desc_t SAMA5_SFC_BOOT_CFG[] =
{
{
512, 30
},
};
static const efuse_desc_t SAMA5_SFC_JTAG_DIS[] =
{
{
542, 1
},
};
static const efuse_desc_t SAMA5_SFC_SECURE_DEBUG[] =
{
{
543, 1
},
};
#else
static const efuse_desc_t SAMA5_SFC_S[] =
{
{
480, 1
},
};
static const efuse_desc_t SAMA5_SFC_MD[] =
{
{
482, 1
},
};
static const efuse_desc_t SAMA5_SFC_SECURE_DEBUG[] =
{
{
510, 1
},
};
static const efuse_desc_t SAMA5_SFC_JTAG_DIS[] =
{
{
511, 1
},
};
#endif
#endif /* defined(CONFIG_EFUSE) && defined(CONFIG_SAMA5_SFC) */
#endif /* __INCLUDE_NUTTX_EFUSE_SAMA5_FUSES_H */