<mipdefs>
	<descriptor_set name="ULTRACAL_BACKPLANE" descriptor="0x64">
		<field descriptor="0x01" name="config" proprietary="true">
			Set streaming configuration.
			<param name="output_period" index="0" type="u32" />
			<param name="num_descriptors" index="4" type="u8" />
			<param name="descriptors" index="5" type="u8" count="num_descriptors" />
		</field>
		<field descriptor="0x02" name="led" proprietary="true">
			Set backplane LED behavior.
			<param name="color1_rgb" index="0" type="u8" count="3" />
			<param name="color2_rgb" index="1" type="u8" count="3" />
			<param name="blink_period" index="2" type="u8" />
			<param name="blink_ontime" index="3" type="u8" />
			<param name="blink_count" index="4" type="u8" />
			<param name="smooth_fade" index="5" type="bool" />
		</field>
		<field descriptor="0x03" name="platedetect_control" proprietary="true" functions="WRD">
			READ mode polls the current plate detect line states.
			<param name="topSides" index="0" type="u16" />
			<param name="bottomSides" index="2" type="u16" />
			<response descriptor="0x83">
				<param name="topSides" index="0" type="u16" />
				<param name="bottomSides" index="2" type="u16" />
			</response>
		</field>
		<field descriptor="0x06" name="pps_control" proprietary="true">
			Controls the behavior of the PPS line.
			<enum name="BackplanePpsMode" type="u8">
				<value name="PPS_DISABLED" value="0" />
				<value name="PPS_EXTERNAL" value="1" />
				<value name="PPS_GENERATE" value="2" />
				<value name="PPS_OVERRIDE_LOW" value="3" />
				<value name="PPS_OVERRIDE_HIGH" value="4" />
			</enum>
			<param name="mode" index="0" type="BackplanePpsMode" />
		</field>
		<field descriptor="0x08" name="sniff_ports" proprietary="true" functions="WRD">
			Allows traffic from any switch port to be forwarded to any other (single) port.
			<param name="switch_number" index="0" type="u8" functions="WRD" />
			<param name="sniffer_port" index="1" type="u8" />
			<param name="sniffed_ports" index="2" type="u8" />
			<response descriptor="0x88">
				<param name="switch_number" index="0" type="u8" />
				<param name="sniffer_port" index="1" type="u8" />
				<param name="sniffed_ports" index="2" type="u8" />
			</response>
		</field>
		<field descriptor="0x07" name="config_ports" proprietary="true" functions="WRD">
			Enables or disables specific switch ports.
			<param name="switch_number" index="0" type="u8" functions="WRD" />
			<param name="port_number" index="1" type="u8" functions="WRD" />
			<bitfield name="PhyConfigBits" type="u8">
				<value name="enable" firstBit="0" />
				<value name="isolate" firstBit="1" />
				<value name="loopback" firstBit="2" />
				<value name="no_autoneg" firstBit="3" />
				<value name="half_duplex" firstBit="4" />
				<value name="speed" firstBit="5" lastBit="6" />
				<value name="reset" firstBit="7" />
			</bitfield>
			<param name="phy_bits" index="2" type="PhyConfigBits" />
			<response descriptor="0x87">
				<param name="switch_number" index="0" type="u8" />
				<param name="port_number" index="1" type="u8" />
				<param name="phy_bits" index="2" type="PhyConfigBits" />
			</response>
		</field>
		<field descriptor="0x09" name="switch_config" proprietary="true" functions="WR">
			Allows low-level register reads and writes to the ethernet switches.
			<param name="switch_number" index="0" type="u8" functions="WR" />
			<param name="register_address" index="1" type="u16" functions="WR" />
			<param name="size" index="3" type="u8" functions="WR" />
			<param name="value" index="4" type="u8" count="size" />
			<response descriptor="0x89">
				<param name="switch_number" index="0" type="u8" />
				<param name="register_address" index="1" type="u16" />
				<param name="size" index="3" type="u8" />
				<param name="value" index="4" type="u8" count="size" />
			</response>
		</field>
	</descriptor_set>
</mipdefs>
