package genconfig

configuration conf {
	include embox.arch.system(core_freq=100000000)
	include embox.arch.riscv.kernel.locore
	include embox.arch.riscv.kernel.context
	include embox.arch.riscv.libarch
	include embox.arch.riscv.vfork

	include platform.vostok.vostok_vg015_dev.platform_init

	include embox.driver.clk.niiet.k1921vg015_rcu

	@Runlevel(1) include embox.driver.interrupt.riscv_plic(base_addr = 0x0C000000)

	@Runlevel(1) include embox.driver.clock.riscv_mtimer(rtc_freq=50000000)
	include embox.kernel.time.jiffies(cs_name="riscv_mtimer")

	include embox.driver.serial.pl011(uartclk=50000000, use_bconf=true)
	include embox.driver.serial.pl011_diag(base_addr=0x30006000)
	include embox.driver.diag(impl="embox__driver__serial__pl011_diag")
	include embox.driver.serial.pl011_ttyS0(base_addr=0x30006000, irq_num=22)
	include embox.driver.serial.pl011_ttyS1(base_addr=0x30007000, irq_num=23)

	//include embox.driver.flash.flash_cache_ram
	include embox.driver.flash.flash_cache_block
	include embox.driver.flash.niiet_mflash_in_chip(log_level="LOG_DEBUG", flash_size=0xC000)
	include embox.driver.flash.flash_fs

	include embox.driver.gpio.niiet_gpio

	include embox.driver.tty.tty(rx_buff_sz=64, io_buff_sz=64)

	include embox.driver.periph_memory_stub

	include embox.kernel.stack(stack_size=0x1000)

	include embox.kernel.irq
	include embox.kernel.spinlock(spin_debug=false)
	include embox.kernel.critical
	
	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=5, thread_stack_size=4096)
	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.fs.driver.dfs(inode_count=4)

	include embox.lib.libds

	include embox.framework.LibFramework

	include embox.compat.libc.stdio.print(support_floating=0)
	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=0x4000)
	include embox.mem.bitmask(page_size=64)

	//@Runlevel(2) include embox.cmd.shell
	include embox.cmd.sh.shell_api(welcome_msg = "Welcome to Embox")
	//include embox.init.setup_tty_diag
	@Runlevel(3) include embox.init.start_script(shell_name="tish",tty_dev="ttyS0")

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

	include embox.cmd.msleep

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

	include embox.cmd.hardware.pin
	include embox.cmd.hw.lsblk
	include embox.cmd.hw.flash_erase
	include embox.cmd.hw.mem

 	include embox.lib.leddrv_gpio

	include project.plc.cmd.plc_start
	include project.plc.cmd.plc_stop
	include project.plc.cmd.plc_info
	// include project.plc.cmd.plc_slave_tcp
	// include project.plc.cmd.plc_slave_rtu

	include project.plc.matiec_lib.led
	include project.plc.examples.blink_leddrv
	include project.plc.examples.blink_leddrv_matiec
	include project.plc.examples.delay_check
}
