<config>
	<parent-provides>
		<service name="IRQ"/>
		<service name="IO_MEM"/>
		<service name="ROM"/>
		<service name="PD"/>
		<service name="CPU"/>
		<service name="LOG"/>
		<service name="Timer"/>
	</parent-provides>

	<default caps="100"/>

	<service name="Framebuffer">
		<default-policy> <child name="fb_drv"/> </default-policy> </service>

	<service name="Input">
		<default-policy> <child name="input_filter"/> </default-policy> </service>

	<start name="platform_drv">
		<resource name="RAM" quantum="2M"/>
		<provides> <service name="Platform"/> </provides>
		<route> <any-service> <parent/> </any-service> </route>
		<config>

			<!-- device resource declarations -->

			<device name="clcd">
				<resource name="IO_MEM" address="0x10020000" size="0x1000"/>
				<property name="compatible" value="arm,pl111"/>
			</device>

			<device name="sp810_syscon0">
				<resource name="IO_MEM" address="0x10001000" size="0x1000"/>
				<property name="compatible" value="arm,sp810"/>
			</device>

			<device name="kmi0">
				<resource name="IO_MEM" address="0x10006000" size="0x1000"/>
				<resource name="IRQ"    number="52"/>
				<property name="compatible" value="arm,pl050"/>
			</device>

			<device name="kmi1">
				<resource name="IO_MEM" address="0x10007000" size="0x1000"/>
				<resource name="IRQ"    number="53"/>
				<property name="compatible" value="arm,pl050"/>
			</device>

			<!-- policy part, who owns which devices -->

			<policy label="fb_drv -> ">
				<device name="clcd"/>
				<device name="sp810_syscon0"/>
			</policy>

			<policy label="ps2_drv -> ">
				<device name="kmi0"/>
				<device name="kmi1"/>
			</policy>
		</config>
	</start>

	<start name="fb_drv">
		<binary name="pl11x_fb_drv"/>
		<resource name="RAM" quantum="4M"/>
		<provides> <service name="Framebuffer"/> </provides>
		<route>
			<service name="Platform">
				<child name="platform_drv"/>
			</service>
			<service name="ROM">   <parent/> </service>
			<service name="PD">    <parent/> </service>
			<service name="CPU">   <parent/> </service>
			<service name="LOG">   <parent/> </service>
			<service name="Timer"> <parent/> </service>
		</route>
	</start>

	<start name="ps2_drv">
		<binary name="pl050_input_drv"/>
		<resource name="RAM" quantum="1M"/>
		<provides>
			<service name="Input"/> <service name="Framebuffer"/>
		</provides>
		<route>
			<service name="Platform">
				<child name="platform_drv"/>
			</service>
			<service name="ROM">   <parent/> </service>
			<service name="PD">    <parent/> </service>
			<service name="CPU">   <parent/> </service>
			<service name="LOG">   <parent/> </service>
			<service name="Timer"> <parent/> </service>
		</route>
	</start>

	<start name="input_filter" caps="80">
		<resource name="RAM" quantum="1280K"/>
		<provides> <service name="Input"/> </provides>
		<route>
			<service name="ROM" label="config">
				<parent label="input_filter.config"/>
			</service>
			<service name="Input" label="ps2">
				<child name="ps2_drv"/>
			</service>
			<service name="ROM">   <parent/> </service>
			<service name="PD">    <parent/> </service>
			<service name="CPU">   <parent/> </service>
			<service name="LOG">   <parent/> </service>
			<service name="Timer"> <parent/> </service>
		</route>
	</start>
</config>
