package genconfig

configuration conf {
	include embox.arch.system(core_freq=32000000)
	include embox.arch.arm.armmlib.locore
	include embox.arch.arm.armmlib.context
	include embox.arch.arm.armmlib.ipl
	include embox.arch.arm.armmlib.cpu_idle
	include embox.arch.arm.armmlib.exception_entry(irq_stack_size=4096)
	include embox.arch.arm.libarch
	include embox.arch.arm.vfork

	include platform.dialog.da14695.platform_init(flash_size=1024)
	@Runlevel(0) include platform.dialog.da14695.deepsleep

	/* Enable FPU needs for libble_stack*/
	include embox.arch.arm.fpu.cortex_m7_fp
	@Runlevel(0) include embox.arch.arm.fpu.fpv5(log_level="LOG_INFO")

	@Runlevel(1) include embox.driver.interrupt.cortexm_nvic(irq_table_size=128)
	@Runlevel(2) include embox.driver.clock.cortexm_systick
	include embox.kernel.time.jiffies(cs_name="cortexm_systick")
	@Runlevel(2) include embox.driver.clock.da1469x_timer_sdk(
		log_level="LOG_ERR", timer_n=2, irq=17, hz=100
	)
	@Runlevel(2) include embox.driver.rtc.da1469x_rtc_sdk(irq=18)

	include embox.kernel.irq_static
	//include embox.kernel.irq
	include embox.kernel.stack(stack_size=0x4000, alignment=8)

	include embox.driver.serial.rtt
	include embox.driver.diag(impl="embox__driver__serial__rtt")

	include embox.compat.libc.stdio.print(support_floating=0)

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

	//@Runlevel(2) include embox.test.hal.context_switch_test
	//@Runlevel(2) include embox.test.kernel.thread.thread_test

	include embox.kernel.task.multi
	include embox.kernel.task.resource.idesc_table(idesc_table_size=32)
	include embox.kernel.task.resource.env(env_per_task=4,env_str_len=64)

	include embox.kernel.thread.thread_local_none
	include embox.kernel.thread.thread_cancel_disable
	include embox.kernel.thread.signal.siginfoq(siginfo_pool_sz=8)
	include embox.kernel.timer.sleep
	include embox.kernel.sched.sched
	include embox.kernel.sched.idle_light

	include embox.kernel.thread.mutex

	include embox.kernel.lthread.lthread
	include embox.kernel.thread.core(thread_pool_size=12)

	include embox.compat.posix.util.time
	include embox.compat.posix.time.time

	@Runlevel(2) include embox.cmd.sh.tish(
		builtin_commands = "cd export exit logout httpd pin help version"
	)
	include embox.init.setup_tty_diag
	@Runlevel(3) include embox.init.start_script(shell_name="tish")

	include embox.net.skbuff(amount_skb=32)
	include embox.net.skbuff_data(amount_skb_data=32,data_size=1514)
	include embox.net.sock_noxattr
	include embox.net.af_inet(amount_inet_sock=16)
	@Runlevel(2) include embox.net.core(amount_interface=2)
	@Runlevel(2) include embox.net.entry_api
	@Runlevel(2) include embox.net.socket
	@Runlevel(2) include embox.net.dev(netdev_quantity=2)
	@Runlevel(2) include embox.net.arp
	@Runlevel(2) include embox.net.icmpv4
	@Runlevel(2) include embox.net.ipv4(max_uncomplete_cnt=0)
	@Runlevel(2) include embox.net.raw_sock
	@Runlevel(2) include embox.net.tcp
	@Runlevel(2) include embox.net.tcp_sock
	@Runlevel(2) include embox.net.neighbour(neighbour_amount=2)
	@Runlevel(2) include embox.net.netfilter(amount_rules=0)

	include embox.fs.driver.initfs_dvfs
	include embox.fs.driver.devfs_dvfs
	include embox.fs.rootfs_dvfs(fstype="initfs")
	include embox.fs.dvfs.core(inode_pool_size=24,file_pool_size=20,dentry_pool_size=24)
	include embox.compat.posix.file_system_dvfs
	include embox.fs.syslib.perm_stub

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

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

	include embox.compat.posix.proc.vfork_exchanged
	include embox.compat.posix.proc.exec_exchanged

	include embox.cmd.help
	include embox.cmd.fs.ls
	include embox.cmd.msleep
	include embox.cmd.testing.ticker
	include embox.cmd.testing.rtc
	include embox.cmd.sys.date
	include embox.cmd.service
	include embox.cmd.net.ifconfig
	include embox.cmd.net.route
	include embox.cmd.net.ping
	include embox.cmd.net.netmanager
	include embox.cmd.net.net_service
	include embox.cmd.net.telnetd
	include embox.cmd.net.dhcpd(
		if_name="eth0",
		client_ip_addr="10.1.0.20"
	)

	/* HTTP + CGI */
	include embox.cmd.net.httpd
	include embox.cmd.net.httpd_cgi(use_real_cmd=true, use_parallel_cgi=false)
	include project.gpio_httpd_admin.http_admin
	include embox.service.http_admin_iface_list(is_readonly=false)
	include embox.demo.website
	include embox.service.cgi_cmd_wrapper(cmds_check=true, allowed_cmds="led_driver flash_settings")

	include third_party.bsp.dialog.da14695.periphirals
	include third_party.bsp.dialog.da14695.memory
	include third_party.bsp.dialog.da14695.sys_man
	include third_party.bsp.dialog.da14695.system_init

	include third_party.bsp.dialog.da14695.libble_stack
	include third_party.bsp.dialog.da14695.ble_adapter
	include third_party.bsp.dialog.da14695.ble_api
	include third_party.bsp.dialog.da14695.ble_manager
	include third_party.bsp.dialog.da14695.pmu_adapter
	include third_party.bsp.dialog.da14695.sdk_util
	include third_party.bsp.dialog.da14695.osal

	/* BLE Demo */
	include platform.dialog.da14695.cmd.ble_example_sdk

	/* USB Gadget Demo (CDC-ECM) - only appears in lsusb */
	include	embox.driver.usb.gadget.rndis_ecm_gadget
	include embox.driver.usb.gadget.gadget(log_level="LOG_ERR")
	@Runlevel(2) include embox.driver.usb.gadget.udc.da1469x_udc(log_level="LOG_ERR")

	/* Power */
	include platform.dialog.da14695.pwr.cmd.deepsleep_test
}
