package genconfig

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

	include embox.mem.bitmask
	include embox.driver.periph_memory_stub
	include embox.arch.generic.nommu
	include embox.mem.sysmalloc_task_based
	include embox.mem.heap_bm

	include embox.kernel.task.resource.errno

	/* K210 UARTHS is compatible with SiFive UART */
	include embox.driver.serial.sifive_uart(base_addr=0x38000000, irq_num=4,
											baud_rate=115200, clock_freq=390000000)
	include embox.driver.diag(impl="embox__driver__serial__sifive_uart")

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

	include embox.driver.gpio.k210_gpio
	include embox.driver.clock.maiix_bit_sysctl

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

	@Runlevel(0) include embox.mem.phymem
	@Runlevel(1) include embox.kernel.timer.sys_timer
	@Runlevel(1) include embox.kernel.time.kernel_time

	@Runlevel(2) include embox.kernel.irq
	@Runlevel(2) include embox.kernel.critical
	@Runlevel(2) include embox.kernel.timer.sleep
	@Runlevel(2) include embox.kernel.timer.strategy.head_timer
	@Runlevel(2) include embox.kernel.time.kernel_time
	@Runlevel(2) include embox.kernel.task.multi
	@Runlevel(2) include embox.kernel.thread.core
	include embox.kernel.stack
	include embox.kernel.sched.strategy.priority_based
	include embox.kernel.thread.signal.sigstate
	include embox.kernel.thread.signal.siginfoq

	include embox.mem.pool_adapter
	@Runlevel(2) include embox.mem.static_heap
	include embox.mem.heap_bm
	include embox.mem.bitmask

	@Runlevel(2) include embox.cmd.sh.tish(
				prompt="embox>", rich_prompt_support=0,
				builtin_commands="exit logout cd export mount umount")
	include embox.init.setup_tty_diag			
	include embox.init.system_start_service(log_level="LOG_INFO", tty_dev="diag")
//	include embox.cmd.service

	include embox.cmd.testing.ticker

	include embox.cmd.wc
	include embox.cmd.fs.head

	include embox.cmd.help
	include embox.cmd.man

	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.shutdown

	include embox.cmd.lsmod
	include embox.cmd.test

//	include embox.cmd.proc.nice
//	include embox.cmd.proc.renice

//	include embox.cmd.proc.thread
	include embox.cmd.proc.top

//	include embox.cmd.mmuinfo
//	include embox.cmd.hw.mmutrans
	include embox.cmd.hw.mem

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

	include embox.kernel.task.resource.vfork
	include embox.compat.posix.proc.exec
	include embox.compat.posix.proc.pid
	include embox.compat.posix.proc.waitpid
	include embox.compat.posix.index_descriptor

	include embox.kernel.task.resource.errno

	include embox.compat.libc.all
	include embox.compat.libc.stdio.asprintf
	include embox.compat.libc.math_simple
	include embox.compat.posix.pthread_key
	include embox.compat.posix.proc.atexit_stub

	include embox.compat.atomic.pseudo_atomic

	include embox.lib.libds
	include embox.framework.LibFramework

	include embox.cmd.hardware.pin
}
