package genconfig

configuration conf {
	include embox.arch.system(core_freq=48000000)
	include embox.arch.arm.armmlib.locore
	include embox.arch.arm.armmlib.cpu_idle
	include embox.arch.arm.armmlib.context
	include embox.arch.arm.armmlib.ipl
	include embox.arch.arm.armmlib.exception_entry(irq_stack_size=4096)
	include embox.arch.arm.libarch	
	include embox.arch.arm.vfork

	include platform.elvees.eliot1.platform_init

	/* Enable FPU */
	/* only cpu1 has FPU */
	//@Runlevel(0) include embox.arch.arm.fpu.cortex_m7_fp
	//@Runlevel(0) include embox.arch.arm.fpu.fpv5(log_level="LOG_INFO")

	include embox.arch.arm.fpu.fpu_stub

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

	include embox.driver.clk.elvees.eliot.clkctrl

	include embox.driver.gpio.elvees_ioctr(base_addr=0x40030000)
	include embox.driver.gpio.elvees_gpio(base_addr = 0x4010A000)

	@Runlevel(2) include embox.driver.serial.elvees_uart_diag(base_addr=0x40101000, pins_init=1)
	@Runlevel(1) include embox.driver.diag(impl="embox__driver__serial__elvees_uart_diag")
	include embox.driver.serial.elvees_uart(use_bconf=true, pins_init=1)
	@Runlevel(2) include embox.driver.serial.elvees_uart_ttys0(base_addr=0x40101000, irq_num=33, pins_init=1)
	@Runlevel(2) include embox.driver.serial.elvees_uart_ttys1(base_addr=0x40100000, irq_num=32, pins_init=1) 

	include embox.driver.tty.serial(serial_quantity=2, idesc_serial_quantity=4)

	include embox.driver.periph_memory_stub

	include embox.driver.block_dev

	include embox.kernel.irq_static
	include embox.kernel.stack(stack_size=0x4000, alignment=8)

	include embox.kernel.critical
	include embox.compat.libc.math_openlibm
	include embox.kernel.spinlock(spin_debug = false)

	include embox.kernel.task.multi
	include embox.kernel.task.resource.idesc_table(idesc_table_size=32)
	include embox.kernel.task.resource.env(env_per_task=4,env_str_len=64)

	include embox.kernel.thread.thread_local_none
	include embox.kernel.thread.thread_cancel_disable
	include embox.kernel.thread.signal.siginfoq(siginfo_pool_sz=8)
	include embox.kernel.timer.sleep
	include embox.kernel.sched.sched
	include embox.kernel.sched.idle_light

	include embox.kernel.thread.mutex

	include embox.kernel.lthread.lthread
	include embox.kernel.thread.core(thread_pool_size=12)

	include embox.compat.libc.stdio.print(support_floating=0)
	include embox.compat.posix.util.time
	include embox.compat.posix.time.time

	include embox.compat.posix.proc.vfork_exchanged
	include embox.compat.posix.proc.exec_exchanged

	include embox.fs.driver.initfs_dvfs
	include embox.fs.driver.devfs_dvfs
	include embox.fs.rootfs_dvfs(fstype="initfs")
	include embox.fs.dvfs.core(inode_pool_size=24,file_pool_size=20,dentry_pool_size=24)
	include embox.compat.posix.file_system_dvfs
	include embox.fs.syslib.perm_stub

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

	include embox.init.system_start_service(log_level="LOG_INFO", tty_dev="ttyS0")
	
	@Runlevel(2) include embox.cmd.sh.tish(
		builtin_commands = "cd export exit logout pin help version"
	)

	include embox.cmd.help
	include embox.cmd.sys.uname
	include embox.cmd.sys.env
	include embox.cmd.sys.export
	include embox.cmd.sys.version
	include embox.cmd.sys.date
	include embox.cmd.sys.time
	include embox.cmd.service

	include embox.cmd.fs.dd
	include embox.cmd.fs.cat
	include embox.cmd.fs.ls
	include embox.cmd.fs.rm
	include embox.cmd.fs.mkfs
	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.cp

	include embox.cmd.testing.input.input_test
	include embox.cmd.testing.ticker

	include embox.cmd.hw.mem
	include embox.cmd.hardware.pin
	include embox.cmd.hw.input

	include embox.cmd.msleep
}
