package genconfig

configuration conf {
	include embox.arch.system(core_freq=12500000)
	include embox.arch.arm.cortexm3.bundle
	include embox.arch.arm.armmlib.cpu_idle
	include embox.arch.arm.libarch
	include embox.arch.arm.vfork

	@Runlevel(1) include embox.driver.interrupt.cortexm_nvic
	@Runlevel(1) include embox.driver.clock.cortexm_systick
	include embox.kernel.time.jiffies(cs_name="cortexm_systick")

	include embox.driver.serial.pl011
	include embox.driver.serial.pl011_diag(base_addr=0x4000c000)
	include embox.driver.diag(impl="embox__driver__serial__pl011_diag")
	include embox.driver.serial.pl011_ttyS0(base_addr=0x4000c000, irq_num=5)
	//include embox.driver.serial.pl011_ttyS1(base_addr=0x4000d000, irq_num=6)
	//include embox.driver.serial.pl011_ttyS2(base_addr=0x4000e000, irq_num=33)

	@Runlevel(1) include embox.driver.spi.pl022_spi1(base_addr=0x40008000, irq_num=7)
	@Runlevel(2) include embox.driver.video.ssd0323(display_width=128, display_height=64)

	include embox.driver.periph_memory_stub
	include embox.driver.block_dev(dev_quantity=4)

	include embox.driver.tty.tty(rx_buff_sz=16, io_buff_sz=16)
	include embox.driver.tty.task_breaking_disable

	include embox.kernel.irq_static

	include embox.kernel.critical
	include embox.kernel.spinlock(spin_debug=false)
	include embox.kernel.stack(stack_size=0x1000,alignment=4)

	include embox.kernel.task.multi
	include embox.kernel.task.resource.idesc_table(idesc_table_size=8)
	include embox.kernel.task.resource.sig_table(sig_table_size=20)
	include embox.kernel.task.resource.env(env_per_task=4,env_str_len=64)

	include embox.kernel.sched.strategy.priority_based

	include embox.kernel.thread.signal.siginfoq(siginfo_pool_sz=4)
	include embox.kernel.thread.thread_local_none
	include embox.kernel.thread.thread_cancel_disable
	include embox.kernel.thread.core(thread_pool_size=2, thread_stack_size=0x1000)
	include embox.kernel.thread.mutex

	@Runlevel(1) include embox.kernel.timer.sys_timer(timer_quantity=8)
	@Runlevel(1) include embox.kernel.timer.strategy.head_timer
	@Runlevel(1) include embox.kernel.time.kernel_time
	@Runlevel(1) include embox.kernel.timer.itimer(itimer_quantity=4)

	include embox.fs.rootfs_dvfs(fstype="initfs")
	include embox.fs.driver.initfs_dvfs(file_quantity=32)
	include embox.fs.driver.devfs_dvfs

	include embox.framework.LibFramework
	include embox.lib.libds
	include embox.framework.mod(
		use_mod_depends=false,
		use_mod_labels=false,
		use_mod_logger=false,
		use_mod_names=true,
		use_cmd_details=false)	
	include embox.compat.libc.stdio.print(support_floating=0)
	include embox.compat.posix.util.time

	include embox.compat.libc.stdio.scanf
	include embox.compat.libc.stdio.file_ops
	include embox.compat.posix.index_descriptor
	include embox.compat.posix.file_system_dvfs

	include embox.mem.heap_bm
	include embox.mem.static_heap(heap_size=0x2000)
	include embox.mem.bitmask(page_size=64)

	// dd if=/dev/zero bs=1M count=2 | tr '\0' '\377' > flash.bin
	// -device sst25vf016b,cs=2,drive=spi_flash -drive if=none,file=flash.bin,format=raw,id=spi_flash
	//@Runlevel(2) include embox.test.spi.spi_jedec_test(bus_num=0, cs_num=0)

	@Runlevel(3) include embox.init.start_script(shell_name="tish", tty_dev="ttyS0")

	include embox.cmd.sh.tish(
		builtin_commands = "exit logout service"
	)

	include embox.cmd.help
	include embox.cmd.sys.version
	include embox.cmd.sys.uname

	include embox.cmd.testing.ticker

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

	include embox.cmd.hardware.spi
}
