
;
; Copyright (C) 2021-23 Texas Instruments Incorporated
;
; Redistribution and use in source and binary forms, with or without
; modification, are permitted provided that the following conditions
; are met:
;
;   Redistributions of source code must retain the above copyright
;   notice, this list of conditions and the following disclaimer.
;
;   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.
;
;   Neither the name of Texas Instruments Incorporated nor the names of
;   its contributors may be used to endorse or promote products derived
;   from this software without specific prior written permission.
;
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
; "AS IS" AND ANY EXPgResS 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 COPYRIGHT
; OWNER OR CONTRIBUTORS 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.
;

	.if	!$isdefed("__firmware_version_h")
__firmware_version_h	.set	1

;  ICSS_FIRMWARE_RELEASE_1:
;  bit 31..16 reserved
;  bit15..8	device number
FIRMWARE_DEVICE_AM335x	.set		0	;  AM335x
FIRMWARE_DEVICE_AM437x	.set		1	;  AM437x
FIRMWARE_DEVICE_AM64x	.set		2	;  AM64x
;  bit7..0	protocol type
FIRMWARE_PROTOCOL_TYPE_PROFIBUS_SLAVE	.set	0x00
FIRMWARE_PROTOCOL_TYPE_ETHERCAT_SLAVE	.set	0x01
FIRMWARE_PROTOCOL_TYPE_PROFINET_DEVICE	.set	0x02
FIRMWARE_PROTOCOL_TYPE_SERCOS_SLAVE	.set		0x03
FIRMWARE_PROTOCOL_TYPE_OPENMAC_SLAVE	.set	0x04
FIRMWARE_PROTOCOL_TYPE_ETHERNET	.set 		0x05
FIRMWARE_PROTOCOL_TYPE_ENETIP_SLAVE	.set		0x06
FIRMWARE_PROTOCOL_TYPE_ENDAT_MASTER	.set		0x07

;  ICSS_FIRMWARE_RELEASE_2:
;  bit31		release or internal version
FIRMWARE_VERSION_RELEASE	.set	0
FIRMWARE_VERSION_INTERNAL	.set	1
;  bit30..24		version number
FIRMWARE_VERSION_REVISION	.set		0x00
;  bit23..16		major number
FIRMWARE_VERSION_MAJOR	.set			0x02
;  bit15..0		minor number
FIRMWARE_VERSION_MINOR	.set			0x0001

ICSS_FIRMWARE_RELEASE_1	.set	((FIRMWARE_DEVICE_AM64x << 8) | (FIRMWARE_PROTOCOL_TYPE_ENDAT_MASTER << 0))
ICSS_FIRMWARE_RELEASE_2	.set ((FIRMWARE_VERSION_RELEASE << 31) | (FIRMWARE_VERSION_REVISION << 24) | (FIRMWARE_VERSION_MAJOR << 16) | (FIRMWARE_VERSION_MINOR << 0))

	.endif
