package genconfig

configuration conf {
	include embox.arch.riscv.kernel.locore
	include embox.arch.riscv.libarch

	include embox.kernel.stack(stack_size=1024)
	include embox.mem.bitmask

	include embox.driver.serial.sifive_uart(base_addr=0x10013000,irq_num=4,baud_rate=115200,clock_freq=32000000)
	include embox.driver.diag(impl="embox__driver__serial__sifive_uart")
	include embox.driver.serial.core_notty
	include embox.driver.tty.serial_stub

	include embox.driver.interrupt.riscv_plic
	include embox.driver.clock.riscv_mtimer(rtc_freq=32768)
	include embox.kernel.time.jiffies(cs_name="riscv_mtimer")

	include embox.driver.periph_memory_stub

	include embox.kernel.irq(action_n=16, entry_n=16)

	include embox.kernel.critical
	include embox.kernel.spinlock(spin_debug=false)
	include embox.kernel.task.single
	include embox.kernel.task.resource.idesc_table(idesc_table_size=12)
	include embox.kernel.task.task_no_table

	@Runlevel(1) include embox.kernel.timer.sys_timer(timer_quantity=2)
	@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.driver.tty.task_breaking_disable
	include embox.fs.driver.devfs_stub

	/* Cooperative-only scheduling */
	@Runlevel(2) include embox.kernel.sched.boot_light
	@Runlevel(2) include embox.kernel.sched.timing.none

	include embox.kernel.thread.thread_none
	include embox.kernel.thread.thread_local_none
	include embox.kernel.thread.thread_cancel_disable
	include embox.kernel.thread.stack_none
	include embox.kernel.thread.signal_stub

	@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_stub
	@Runlevel(2) include embox.kernel.sched.strategy.priority_based

	/* Tell printf() do not support floating point */
	include embox.compat.libc.stdio.print(support_floating=0)
	include embox.compat.libc.stdio.stdio_streams_global

	include embox.framework.unit
	include embox.framework.mod(
		use_mod_depends=false,
		use_mod_labels=false,
		use_mod_logger=false,
		use_mod_names=true,
		use_cmd_details=false)
}
