package genconfig

configuration conf {
	include embox.arch.system(core_freq=800000000)
	include embox.arch.arm.armv7a.head
	include embox.arch.arm.armv7a.cpu_idle
	include embox.arch.arm.armlib.locore
	include embox.arch.arm.armlib.interrupt
	include embox.arch.arm.armlib.context
	include embox.arch.arm.armlib.mem_barriers
	include embox.arch.arm.armlib.static_excpt_table
	include embox.arch.arm.stackframe
	include embox.arch.arm.vfork
	include embox.arch.arm.fpu.vfpv3
	
	include platform.imx.platform_shutdown
	include platform.imx.cpuinfo
	
	include embox.kernel.cpu.bkl
	include embox.kernel.cpu.cpudata
	include embox.kernel.irq

	@Runlevel(0) include embox.driver.cache.pl310(base_addr=0x00A02000)

	@Runlevel(0) include embox.kernel.task.kernel_task
	@Runlevel(0) include embox.mem.phymem
	@Runlevel(0) include embox.arch.arm.mmu_small_page(domain_access=1)
	//@Runlevel(0) include embox.mem.vmem

	include embox.kernel.thread.core(thread_stack_size=0x200000)

	include embox.arch.arm.libarch

	@Runlevel(0) include embox.kernel.critical

	@Runlevel(0) include embox.driver.gpio.imx(gpio_ports=7)
	include embox.driver.interrupt.gicv1(gicd_base=0x00a01000, gicc_base=0x00a00100)
	@Runlevel(0) include embox.kernel.stack(stack_size=0x200000)

	include embox.driver.serial.imx_uart_diag(base_addr=0x021e8000)
	include embox.driver.serial.imx_uart_ttyS0(base_addr=0x021e8000, irq_num=59)
	@Runlevel(1) include embox.driver.diag(impl="embox__driver__serial__imx_uart_diag")

	@Runlevel(0) include embox.driver.clock.cortexa9(periph_base_addr=0x00a00000,irq_num=29)
	include embox.kernel.time.jiffies(cs_name="cortexa9_timer")

	@Runlevel(2) include embox.driver.net.fec(log_level="LOG_NONE", speed=1000)
	@Runlevel(2) include embox.driver.net.loopback

	//@Runlevel(2) include embox.driver.video.dw_hdmi(base_addr=0x00120000,log_level="LOG_DEBUG")
	@Runlevel(2) include embox.driver.gpu.ipu_v3(base_addr=0x02600000,log_level="LOG_NONE")
	@Runlevel(2) include embox.driver.gpu.ldb(log_level="LOG_NONE")

	@Runlevel(2) include embox.driver.i2c.imx_i2c1(
		base_addr=0x21A0000, irq_num=68, i2c_pins_select=0)
	@Runlevel(2) include embox.driver.i2c.imx_i2c2(
		base_addr=0x21A4000, irq_num=69, i2c_pins_select=1)

	@Runlevel(1) include embox.driver.usb.class.mass_storage(log_level="LOG_ERR")
	@Runlevel(2) include embox.driver.usb.core(log_level="LOG_ERR")
	@Runlevel(2) include embox.driver.usb.hc.ehci_hcd(log_level="LOG_ERR", tt_support=1)
	@Runlevel(2) include embox.driver.usb.ci_hdrc_imx(log_level="LOG_ERR", base_addr=0x02184200, irq_num=72)

	include embox.fs.syslib.file_system_none
	include embox.fs.syslib.perm_stub
	include embox.compat.posix.file_system_dvfs

	include embox.fs.driver.initfs_dvfs
	include embox.fs.driver.devfs_dvfs
	include embox.fs.driver.fat_dvfs
	@Runlevel(2) include embox.fs.rootfs_dvfs

	include embox.test.kernel.timer_test
	include embox.kernel.task.resource.errno

	include embox.mem.bitmask(page_size=1048576)
	include embox.lib.debug.whereami

	@Runlevel(2) include embox.cmd.sh.tish(prompt="%u@%h:%w%$", rich_prompt_support=1, builtin_commands="exit logout cd export mount umount")
	@Runlevel(3) include embox.init.start_script(shell_name="tish", tty_dev="ttyS0", shell_start=1, stop_on_error=true)

	@Runlevel(2) include embox.net.skbuff(amount_skb=4000)
	@Runlevel(2) include embox.net.skbuff_data(amount_skb_data=4000,data_size=1514,data_align=1,data_padto=1,ip_align=true)
	@Runlevel(2) include embox.net.skbuff_extra(amount_skb_extra=128,extra_size=10,extra_align=1,extra_padto=1)

	include embox.cmd.help
	include embox.cmd.service
	include embox.cmd.sys.env
	include embox.cmd.sys.export
	include embox.cmd.sys.shutdown

	include embox.cmd.fs.cat
	include embox.cmd.fs.ls
	include embox.cmd.fs.cd
	include embox.cmd.fs.dd
	include embox.cmd.fs.mkdir
	include embox.cmd.fs.touch
	include embox.cmd.fs.echo
	include embox.cmd.fs.mount
	include embox.cmd.fs.umount

	include embox.cmd.net.ifconfig
	include embox.cmd.net.httpd
	include embox.cmd.net.ping
	include embox.cmd.net.route
	include embox.cmd.net.telnetd
	include embox.cmd.i2c_tools.i2cdetect
	include embox.cmd.i2c_tools.i2cdump
	include embox.cmd.i2c_tools.i2cset
	include embox.cmd.i2c_tools.i2cget

	include embox.cmd.testing.ticker
	include embox.cmd.testing.block_dev_test

	include embox.cmd.hw.lsusb
	include embox.cmd.hw.lsblk
	include embox.cmd.hw.partition

	@Runlevel(2) include embox.mem.static_heap(heap_size=64000000)
	@Runlevel(2) include embox.mem.heap_bm(heap_size=32000000)

	include embox.driver.spi.imx6_ecspi
	@Runlevel(1) include embox.driver.spi.imx6_ecspi1(
		base_addr=0x02008000, pins_group=1)
	@Runlevel(1) include embox.driver.spi.imx6_ecspi2(
		base_addr=0x0200c000, pins_group=1)

	include embox.compat.posix.passwd
	include embox.compat.libc.stdio.print(support_floating=0)
	include embox.test.spi.spi_jedec_test

	include embox.driver.clk.ccm_imx6(log_level="LOG_DEBUG")

	@Runlevel(2) include embox.lib.libds
	@Runlevel(2) include embox.framework.LibFramework
	@Runlevel(2) include embox.compat.libc.all
	include embox.compat.libc.math_openlibm
	include embox.compat.libc.stdio.asprintf
	include embox.compat.posix.proc.atexit_stub

	include embox.cmd.testing.fb_devfs_access
	include embox.cmd.testing.fb_direct_access
	include embox.compat.atomic.pseudo_atomic
}
