nxdrvlinux/libcifx/Toolkit/Source/netx90_4x00_romloader_dpm.h

104 lines
3.6 KiB
C
Raw Normal View History

/**************************************************************************************
Copyright (c) Hilscher Gesellschaft fuer Systemautomation mbH. All Rights Reserved.
***************************************************************************************
$Id: netx90_4x00_romloader_dpm.h 14189 2021-08-31 10:49:31Z RMayer $:
Description:
netX90 and netX4000 ROM Loader DPM layout
Changes:
Date Description
-----------------------------------------------------------------------------------
2021-08-31 added some comments
2018-11-30 initial version
**************************************************************************************/
#ifndef __NETX90_4X00_ROMLOADER_DPM_H__
#define __NETX90_4X00_ROMLOADER_DPM_H__
/*-----------------------------------------------*/
/* netX90 chip identifier definitions */
/*-----------------------------------------------*/
#define HBOOT_DPM_NETX90_COOKIE 0x0900000D
#define MSK_HBOOT_DPM_NETX90_TYPE 0x00FF0000
#define MSK_HBOOT_DPM_NETX90_ROMSTEP 0x0000FF00
/*-----------------------------------------------*/
/* netX4000 chip identifier definitions */
/*-----------------------------------------------*/
#define HBOOT_DPM_NETX4000_COOKIE 0x84524C0B
#define HBOOT_DPM_NETX4100_COOKIE 0x93615B0B
/*-----------------------------------------------*/
/* netX ROM code definitions */
/*-----------------------------------------------*/
/* The 'NXBL' DPM boot identifier ('NXBL') is shown when the ROM code is running. */
#define HBOOT_V2_DPM_ID 0x4c42584e
#define HBOOT_V2_DPM_ID_ADR 0x100
/* Definition of the ROM code DPM layout and functions */
#define HBOOT_V2_DPM_NETX_TO_HOST_BUFFERSIZE 0x0200
#define HBOOT_V2_DPM_HOST_TO_NETX_BUFFERSIZE 0x0400
#define HBOOT_V2_DPM_BITFLIP_BUFFERSIZE 0xf800
#define DPM_BOOT_NETX_RECEIVED_CMD 0x01
#define DPM_BOOT_NETX_SEND_CMD 0x02
#define DPM_BOOT_HOST_SEND_CMD 0x01
#define DPM_BOOT_HOST_RECEIVED_CMD 0x02
#define SRT_HANDSHAKE_REG_ARM_DATA 16
#define SRT_HANDSHAKE_REG_PC_DATA 24
#define HBOOT_MSK_SYS_STA_BITFLIP 0x80
#define MSK_HBOOT_dpm_sys_sta_NETX_STA_CODE_ro 0x00ff0000U
#define SRT_HBOOT_dpm_sys_sta_NETX_STA_CODE_ro 8
#define MSK_HBOOT_dpm_status_unlocked 0x00000001U
#define SRT_HBOOT_dpm_status_unlocked 0
typedef struct HBOOT_V2_DPM_CFG_AREA_STRUCT
{
volatile uint32_t aulReserved0[7];
volatile uint32_t ulDpm_status;
volatile uint32_t aulReserved1[46];
volatile uint32_t ulDpm_sys_sta;
volatile uint32_t ulDpm_reset_request;
volatile uint32_t aulReserved5[7];
volatile uint32_t ulDpm_netx_version;
} HBOOT_V2_DPM_CFG_AREA_T;
typedef struct HBOOT_V2_DPM_BLOCKS_STRUCTURE
{
volatile uint32_t ulDpmBootId;
volatile uint32_t ulDpmByteSize;
volatile uint32_t aulReserved_08[28];
volatile uint32_t ulNetxToHostDataSize;
volatile uint32_t ulHostToNetxDataSize;
volatile uint32_t ulHandshake;
volatile uint32_t aulReserved_84[31];
volatile uint8_t aucNetxToHostData[HBOOT_V2_DPM_NETX_TO_HOST_BUFFERSIZE];
volatile uint8_t aucHostToNetxData[HBOOT_V2_DPM_HOST_TO_NETX_BUFFERSIZE];
} HBOOT_V2_DPM_BLOCKS_T;
typedef struct HBOOT_V2_DPM_AREA_STRUCTURE
{
HBOOT_V2_DPM_CFG_AREA_T tConfigurationRegisters;
HBOOT_V2_DPM_BLOCKS_T tDpmBlocks;
volatile uint8_t aucBitflipArea[HBOOT_V2_DPM_BITFLIP_BUFFERSIZE];
} HBOOT_V2_DPM_AREA_T;
#endif /* __NETX90_4X00_ROMLOADER_DPM_H__ */