package genconfig

configuration conf {
	include embox.arch.system(core_freq=90000000)
	include embox.arch.arm.armv7a.head(multi_processing=1)
	include embox.arch.arm.armv7a.cpu_idle
	include embox.arch.arm.armlib.locore
	include embox.arch.arm.armlib.context
	include embox.arch.arm.armlib.mem_barriers
	include embox.arch.arm.armlib.static_excpt_table
	include embox.arch.arm.stackframe
	include embox.arch.arm.libarch
	include embox.arch.arm.vfork

	@Runlevel(0) include embox.arch.arm.mmu_small_page(domain_access=3)
	@Runlevel(0) include embox.arch.arm.mmuinfo
	include embox.cmd.mmuinfo

	include embox.driver.interrupt.gicv1(gicd_base=0x01c81000, gicc_base=0x01c82000)
	@Runlevel(1) include embox.driver.clock.allwinner.sun4i_timer(irq_num=50, base_addr=0x01C20C00)
	include embox.kernel.time.jiffies(cs_name="allwinner_sun4i_timer")

	include embox.driver.serial.ns16550
	include embox.driver.serial.ns16550_diag(base_addr=0x01c28000)
	include embox.driver.serial.ns16550_ttyS0(base_addr=0x01c28000, irq_num=32)
	include embox.driver.diag(impl="embox__driver__serial__ns16550_diag")

	@Runlevel(1) include embox.kernel.timer.sys_timer

	include embox.kernel.spinlock(spin_debug=false)

	@Runlevel(2) include embox.lib.debug.whereami
	//@Runlevel(2) include embox.profiler.tracing

	@Runlevel(0) include embox.mem.phymem
	@Runlevel(0) include embox.mem.vmem_alloc_pool
	@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(thread_stack_size=0x20000)
	include embox.kernel.stack(stack_size=0x20000)
	include embox.kernel.sched.strategy.priority_based
	include embox.kernel.thread.signal.sigstate
	include embox.kernel.thread.signal.siginfoq
	include embox.kernel.task.resource.env(env_str_len=64)

	include embox.mem.pool_adapter
	@Runlevel(2) include embox.mem.static_heap(heap_size=0x80000)
	include embox.mem.heap_bm(heap_size=0x40000)
	include embox.mem.bitmask

	//@Runlevel(1) include embox.driver.mmc.host.dw_mmc_socfpga(base_addr=0x01c10000, irq_num=0)
	//@Runlevel(1) include embox.driver.mmc.mmc_core(log_level="LOG_ERR")

/* for old fs comment dvfs part */
/*
	@Runlevel(2) include embox.fs.node(fnode_quantity=1024)
	@Runlevel(2) include embox.fs.driver.fat
	@Runlevel(2) include embox.fs.driver.initfs
	@Runlevel(2) include embox.fs.driver.ramfs
	@Runlevel(2) include embox.fs.rootfs_oldfs
	include embox.fs.driver.devfs_old
	include embox.fs.driver.ramfs_old(ramfs_file_size=8192, ramfs_quantity=1, inode_quantity=2)
	include embox.compat.posix.file_system_oldfs
*/

/* for dvfs comment old fs part */

	@Runlevel(2) include embox.fs.dvfs.core
	@Runlevel(2) include embox.fs.driver.fat_dvfs
	@Runlevel(2) include embox.fs.driver.initfs_dvfs
	@Runlevel(2) include embox.fs.rootfs_dvfs
	include embox.compat.posix.file_system_dvfs
	include embox.fs.driver.devfs_dvfs
	include embox.fs.driver.ramfs_dvfs(ramfs_file_size=8192, ramfs_quantity=1, inode_quantity=2)

	include embox.driver.ramdisk(ramdisk_quantity=1)
	include embox.driver.static_ramdisk(ramdisk_name="static_ramdisk", size=16384, block_size=512)

//	include embox.init.setup_tty_diag
	include embox.init.system_start_service(log_level="LOG_INFO", tty_dev="ttyS0")

	include embox.cmd.source_cmd
	include embox.cmd.sh.tish(
				prompt="%u@%h:%w%$", rich_prompt_support=1,
				builtin_commands="exit logout cd export mount umount")
	include embox.cmd.service

//	include embox.cmd.net.arp
//	include embox.cmd.net.netstat
//	include embox.cmd.net.arping
//	include embox.cmd.net.rarping
//	include embox.cmd.net.ifconfig
//	include embox.cmd.net.ping
//	include embox.cmd.net.iptables
//	include embox.cmd.net.route
//	include embox.cmd.net.ftp
//	include embox.cmd.net.tftp
//	include embox.cmd.net.snmpd
//	include embox.cmd.net.ntpdate
//	include embox.cmd.net.ntpd
//	include embox.cmd.net.telnetd
//	include embox.cmd.net.nslookup
//	include embox.cmd.net.getmail
//	include embox.cmd.net.sendmail
//	include embox.cmd.net.httpd
//	include embox.cmd.net.httpd_cgi(use_real_cmd=true, use_parallel_cgi=false)
//	include embox.service.http_admin
//	include embox.service.http_admin_iface_list(is_readonly=true)
//	include embox.service.http_admin_iface_html
//	include embox.demo.website
//	include embox.cmd.net.netmanager
//	include embox.cmd.net.bootpc

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

	include embox.cmd.testing.block_dev_test
	include embox.cmd.testing.ticker

	include embox.cmd.fs.mkramdisk
	include embox.cmd.fs.dd
	include embox.cmd.fs.md5sum
	include embox.cmd.fs.uniq
	include embox.cmd.fs.cat
	include embox.cmd.fs.cd
	include embox.cmd.fs.pwd
	include embox.cmd.fs.ls
	include embox.cmd.fs.rm
	include embox.cmd.fs.mkfs
	include embox.cmd.fs.mount
	include embox.cmd.fs.more
	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.fs.cp
	include embox.cmd.fs.mv

	include embox.cmd.hw.lsblk
	include embox.cmd.hw.partition

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

//	@Runlevel(2) include embox.net.core
//	@Runlevel(2) include embox.net.skbuff(amount_skb=4000)
//	@Runlevel(2) include embox.net.skbuff_data(
//				amount_skb_data=4, data_size=1514,
//				data_align=1, data_padto=1,ip_align=false)
//	@Runlevel(2) include embox.net.skbuff_extra(
//				amount_skb_extra=128,extra_size=10,extra_align=1,extra_padto=1)
//	@Runlevel(2) include embox.net.socket
//	@Runlevel(2) include embox.net.dev
//	@Runlevel(2) include embox.net.af_inet
//	@Runlevel(2) include embox.net.af_packet
//	@Runlevel(2) include embox.net.ipv4
//	@Runlevel(2) include embox.net.arp
//	@Runlevel(2) include embox.net.rarp
//	@Runlevel(2) include embox.net.icmpv4
//	@Runlevel(2) include embox.net.udp
//	@Runlevel(2) include embox.net.tcp
//	@Runlevel(2) include embox.net.udp_sock
//	@Runlevel(2) include embox.net.tcp_sock
//	@Runlevel(2) include embox.net.raw_sock
//	@Runlevel(2) include embox.net.net_entry
//	include embox.net.lib.dns_file

	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.util.LibUtil
	include embox.framework.LibFramework
}
