<!-- SPDX-License-Identifier: GPL-2.0
#
# Nuvoton IGPS: Image Generation And Programming Scripts For Poleg BMC
#
# Copyright (C) 2018 Nuvoton Technologies, All Rights Reserved
#--------------------------------------------------------------------------->

<?xml version="1.0" encoding="UTF-8"?>

<Bin_Ecc_Map>
	<!-- BMC mandatory fields -->
	<ImageProperties>
		<BinSize>0</BinSize>         <!-- If 0 the binary size will be calculated by the tool -->
		<PadValue>0xFF</PadValue>	<!-- Byte value to pad the empty areas, default is 0 -->
	</ImageProperties>

	<BinField>
		<!-- BootBlock tag (0x50 0x07 0x55 0xAA 0x54 0x4F 0x4F 0x42) or
			     uboot tag (0x55 0x42 0x4F 0x4F 0x54 0x42 0x4C 0x4B) -->
		<name>StartTag</name>         <!-- name of field -->
		<config>
			<offset>0</offset>            <!-- offset in the header -->
			<size>0x8</size>              <!-- size in the header -->
		</config>
		<content format='bytes'>0x55 0x42 0x4F 0x4F 0x54 0x42 0x4C 0x4B</content>  <!-- content the user should fill -->
	</BinField>

	<BinField>
		<!-- Code destination address, 32-bit aligned: for u-boot should be 0x80005000 so code will run in 0x80005200 as linked for -->
		<name>DestAddr</name>         <!-- name of field -->
		<config>
			<offset>0x140</offset>        <!-- offset in the header -->
			<size>0x4</size>              <!-- size in the header -->
		</config>
		<content format='32bit'>0x8000</content>  <!-- content the user should fill -->
	</BinField>

	<BinField>
		<!-- BootBlock or u-boot Code size -->
		<name>CodeSize</name>         <!-- name of field -->
		<config>
			<offset>0x144</offset>        <!-- offset in the header -->
			<size>0x4</size>              <!-- size in the header -->
		</config>
		<content format='FileSize'>u-boot.bin</content>	<!-- content the user should fill -->
	</BinField>

	<BinField>
		<!-- The BootBlock or u-boot binary file -->
		<name>Code</name>             <!-- name of field -->
		<config>
			<offset>0x200</offset>        <!-- offset in the header -->
			<size format='FileSize'>u-boot.bin</size>                 <!-- size in the header calculated by tool-->
		</config>
		<content format='FileContent'>u-boot.bin</content>  <!-- content the user should fill -->
	</BinField>

	<!-- BMC optional fields -->
	<BinField>
		<!-- Word contents copied by ROM code to FIU0 FIU_DRD_CFG register -->
		<name>FIU0_DRD_CFG_Set</name>  <!-- name of field -->
		<config>
			<offset>0x108</offset>        <!-- offset in the header -->
			<size>0x4</size>              <!-- size in the header -->
		</config>
		<content format='32bit'>0x030111BC</content>               <!-- content the user should fill 0x030032EB -->
	</BinField>

	<BinField>
		<!-- Defines the clock divide ratio from AHB to FIU0 clock -->
		<name>FIU0_Clk_Divider</name>  <!-- name of field -->
		<config>
			<offset>0x10C</offset>        <!-- offset in the header -->
			<size>0x1</size>              <!-- size in the header -->
		</config>
		<content format='bytes'>0</content>               <!-- content the user should fill -->
	</BinField>

	<BinField>
		<!-- Defines if FIU0 CS1 is enabled -->
		<name>fiu0_cs1_en</name>  <!-- name of field -->
		<config>
			<offset>0x10D</offset>        <!-- offset in the header -->
			<size>0x1</size>              <!-- size in the header -->
		</config>
		<content format='bytes'>0x0</content>               <!-- content the user should fill -->
	</BinField>

	<BinField>
		<!-- Defines if FIU0 CS2 is enabled -->
		<name>fiu0_cs2_en</name>  <!-- name of field -->
		<config>
			<offset>0x10E</offset>        <!-- offset in the header -->
			<size>0x1</size>              <!-- size in the header -->
		</config>
		<content format='bytes'>0x0</content>               <!-- content the user should fill -->
	</BinField>

	<BinField>
		<!-- Defines if FIU0 CS3 is enabled -->
		<name>fiu0_cs3_en</name>  <!-- name of field -->
		<config>
			<offset>0x10F</offset>        <!-- offset in the header -->
			<size>0x1</size>              <!-- size in the header -->
		</config>
		<content format='bytes'>0x0</content>               <!-- content the user should fill -->
	</BinField>

	<!-- BMC optional fields -->
	<BinField>
		<!-- Word contents copied by ROM code to FIU3 FIU_DRD_CFG register -->
		<name>FIU3_DRD_CFG_Set</name>  <!-- name of field -->
		<config>
			<offset>0x110</offset>        <!-- offset in the header -->
			<size>0x4</size>              <!-- size in the header -->
		</config>
		<content format='32bit'>0x030011BB</content>               <!-- content the user should fill -->
	</BinField>

	<!-- BMC optional fields -->
	<BinField>
		<!-- Word contents copied by ROM code to FIU3 FIU_DRD_CFG register -->
		<name>FIU3_DWR_CFG_Set</name>  <!-- name of field -->
		<config>
			<offset>0x114</offset>        <!-- offset in the header -->
			<size>0x4</size>              <!-- size in the header -->
		</config>
		<content format='32bit'>0x0</content>               <!-- content the user should fill -->
	</BinField>

	<BinField>
		<!-- Defines the clock divide ratio from AHB to FIU3 clock -->
		<name>FIU3_Clk_Divider</name>  <!-- name of field -->
		<config>
			<offset>0x118</offset>        <!-- offset in the header -->
			<size>0x1</size>              <!-- size in the header -->
		</config>
		<content format='bytes'>0x0</content>               <!-- content the user should fill -->
	</BinField>

	<BinField>
		<!-- Defines if FIU3 CS0 is enabled -->
		<name>fiu3_cs0_en</name>  <!-- name of field -->
		<config>
			<offset>0x119</offset>        <!-- offset in the header -->
			<size>0x1</size>              <!-- size in the header -->
		</config>
		<content format='bytes'>0x0</content>               <!-- content the user should fill -->
	</BinField>

	<BinField>
		<!-- Defines if FIU3 CS1 is enabled -->
		<name>fiu3_cs1_en</name>  <!-- name of field -->
		<config>
			<offset>0x11A</offset>        <!-- offset in the header -->
			<size>0x1</size>              <!-- size in the header -->
		</config>
		<content format='bytes'>0x0</content>               <!-- content the user should fill -->
	</BinField>

	<BinField>
		<!-- Defines if FIU3 CS2 is enabled -->
		<name>fiu3_cs2_en</name>  <!-- name of field -->
		<config>
			<offset>0x11B</offset>        <!-- offset in the header -->
			<size>0x1</size>              <!-- size in the header -->
		</config>
		<content format='bytes'>0x0</content>               <!-- content the user should fill -->
	</BinField>

	<BinField>
		<!-- Defines if FIU3 CS3 is enabled -->
		<name>fiu3_cs3_en</name>  <!-- name of field -->
		<config>
			<offset>0x11C</offset>        <!-- offset in the header -->
			<size>0x1</size>              <!-- size in the header -->
		</config>
		<content format='bytes'>0x0</content>               <!-- content the user should fill -->
	</BinField>

	<BinField>
		<!-- Version (Major.Minor) -->
		<name>Version</name>          <!-- name of field -->
		<config>
			<offset>0x148</offset>        <!-- offset in the header -->
			<size>0x4</size>              <!-- size in the header -->
		</config>
		<content format='32bit'>0x0201</content>               <!-- content the user should fill -->
	</BinField>

</Bin_Ecc_Map>
