package genconfig

configuration conf {
	include embox.arch.system(core_freq=216000000)
	include embox.arch.arm.cortexm3.bundle
	include embox.arch.arm.armmlib.cpu_idle
	include embox.arch.arm.vfork
	include embox.arch.arm.cxxabi
	include embox.arch.arm.libarch

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

	include platform.stm32.platform_init
	include platform.stm32.platform_shutdown
	include platform.stm32.f7.stm32f769i_discovery.bsp
	@Runlevel(0) include third_party.bsp.stmf7cube.sdram(fmc_swap=true)

	@Runlevel(0) include embox.driver.interrupt.cortexm_nvic(irq_table_size=128)
	@Runlevel(1) include embox.driver.clock.cortexm_systick
	include embox.kernel.time.jiffies(cs_name="cortexm_systick")

	@Runlevel(1) include embox.driver.serial.stm_usart_f7
	@Runlevel(1) include embox.driver.serial.stm_diag(baud_rate=115200, usartx=1)
	@Runlevel(1) include embox.driver.diag(impl="embox__driver__serial__stm_diag")
	//@Runlevel(1) include embox.driver.serial.stm_ttyS1(baud_rate=115200, usartx=1)
	@Runlevel(1) include embox.driver.serial.stm_ttyS0(baud_rate=115200, usartx=1)

	@Runlevel(2) include embox.driver.net.stm32f7cube_eth
	@Runlevel(2) include embox.driver.net.loopback

	@Runlevel(2) include embox.driver.video.stm32f7_lcd(fb_base=0x60000000,height=480,width=800)

	include embox.driver.video.fb

	include embox.driver.sd.stm32f769i_discovery_sd

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

	include embox.kernel.task.multi
	include embox.kernel.task.resource.idesc_table(idesc_table_size=10)

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

	include embox.kernel.thread.core(thread_pool_size=4, thread_stack_size=0x6000, thread_stack_align=8)

	/* tty requires */
	include embox.kernel.thread.mutex
	include embox.driver.tty.tty(rx_buff_sz=16, io_buff_sz=16)
	include embox.driver.tty.task_breaking_disable

	include embox.init.setup_tty_diag
	@Runlevel(3) include embox.init.start_script(shell_name="diag_shell")

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

	include embox.util.log
	include embox.kernel.critical
	include embox.kernel.irq_static
	include embox.mem.pool_adapter

	include embox.lib.libds
	include embox.framework.LibFramework
	include embox.compat.libc.stdio.print(support_floating=0)

	include embox.mem.heap_bm
	@Runlevel(1) include embox.mem.fixed_heap(heap_start=0x60200000, heap_size=0x400000)
	@Runlevel(1) include embox.mem.static_heap(heap_size=0x8000)
	include embox.mem.bitmask(page_size=64)

	include embox.fs.dvfs.core(dentry_pool_size=32, inode_pool_size=32)
	include embox.fs.driver.initfs_dvfs
	include embox.fs.driver.devfs_dvfs
	include embox.fs.rootfs_dvfs(fstype="initfs")
	@Runlevel(2) include embox.fs.driver.fat_dvfs

	include embox.net.skbuff(amount_skb=32)
	include embox.net.skbuff_data(amount_skb_data=32)
	include embox.net.sock_noxattr
	include embox.net.tcp
	include embox.net.tcp_sock
	include embox.net.udp
	include embox.net.udp_sock
	include embox.kernel.sched.idle_light



	//@Runlevel(2) include embox.cmd.shell

	@Runlevel(2) include embox.cmd.sh.tish(
				prompt="%u@%h:%w%$", rich_prompt_support=1,
				builtin_commands="mqtt_async_publish mqtt_async_subscribe")

	include embox.cmd.service

	include embox.cmd.fs.dd
	include embox.cmd.fs.cat
	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.hw.mem
	include embox.cmd.goto

	include embox.cmd.net.tftp
	include embox.cmd.qspi_loader

	include embox.cmd.net.netmanager
	include embox.cmd.net.ifconfig
	include embox.cmd.net.route
	include embox.cmd.net.ping
	include embox.cmd.net.telnetd
	include embox.cmd.net.httpd
	include embox.cmd.net.httpd_cgi(use_real_cmd=true)
	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.compat.posix.file_system_dvfs
	include embox.fs.syslib.perm_stub
	include embox.compat.atomic.pseudo_atomic
	include embox.compat.libc.math_openlibm

	@Runlevel (2) include embox.lib.cxx.ConstructionGlobal
	include embox.lib.cxx.DestructionStatic(table_size=32)

	include embox.compat.posix.pthread_key
	include embox.compat.posix.time.time

	include embox.compat.posix.pthread_key
	include embox.compat.posix.time.time
	include embox.compat.libc.stdio.vscanf_stub

	include third_party.gcc.libgcc
	include third_party.gcc.libstdcxx
	include third_party.gcc.libsupcxx

	include project.paho_mqtt_cpp.cmd.mqtt_async_publish
	include project.paho_mqtt_cpp.cmd.mqtt_async_subscribe
}
