package genconfig

configuration conf {
	include embox.arch.system(core_freq=48000000)
	include embox.arch.riscv.kernel.entry(tvec_alignment=6)
	include embox.arch.riscv.kernel.locore
	include embox.arch.riscv.kernel.context
	include embox.arch.riscv.libarch
	include embox.arch.riscv.vfork

	include platform.milandr.mdr1206fi.platform_init
	include platform.milandr.mdr1206fi.cpu_info

	include embox.driver.interrupt.riscv_clic

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

	include embox.driver.diag(impl="embox__driver__serial__pl011_diag")
	include embox.driver.serial.pl011(uartclk=8000000, use_bconf=true)
	include embox.driver.serial.pl011_diag(base_addr=0x50008000)
	include embox.driver.serial.pl011_ttyS0(base_addr=0x50008000, irq_num=17)

	include embox.driver.gpio.milandr_gpio

	@Runlevel(1) include embox.driver.lcd.ks0108_lcd

	include embox.driver.periph_memory_stub
	include embox.driver.tty.task_breaking_disable

	include embox.device.char_dev(idesc_pool_size=4)

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

	include embox.kernel.critical
	include embox.kernel.irq
	include embox.kernel.spinlock(spin_debug=false)

	include embox.kernel.task.multi
//	include embox.kernel.task.single
	include embox.kernel.task.resource.idesc_table(idesc_table_size=8)
//	include embox.kernel.task.task_no_table
	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)

	@Runlevel(1) include embox.kernel.timer.sys_timer(timer_quantity=4)
	@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=0)
	include embox.kernel.timer.sleep_nosched

	include embox.kernel.thread.signal_stub
	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.lthread.lthread
	@Runlevel(2) include embox.kernel.sched.sched
	@Runlevel(2) include embox.kernel.sched.idle_light
	@Runlevel(2) include embox.kernel.sched.sched_ticker
	@Runlevel(2) include embox.kernel.sched.strategy.priority_based

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


	include embox.lib.libds
	include embox.framework.mod(
		use_mod_depends=true,
		use_mod_labels=true,
		use_mod_logger=true,
		use_mod_names=true,
		use_cmd_details=true)
	include embox.compat.libc.stdio.print(support_floating=0)
	include embox.compat.libc.stdio.scanf_without_file
	include embox.compat.libc.stdio.file_pool(file_quantity=4)
	include embox.compat.posix.util.time
	include embox.compat.posix.pwd_stub

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

	//include embox.cmd.shell
	include embox.cmd.sh.tish(
		builtin_commands = "version pin uname help ticker cpuinfo"
	)

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

	include embox.cmd.testing.ticker

	include embox.cmd.hardware.pin
}
