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.libarch
	include embox.arch.arm.vfork
	include embox.arch.arm.cxxabi

	@Runlevel(0) include embox.arch.arm.cortexm3.armv7m_cpu_cache(
		log_level="LOG_DEBUG",
		sram_nocache_section_size=0x4000,
		nocache_region0_addr=0x60000000, nocache_region0_size=0x00200000
	)

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

/* 	include platform.stm32.f7.stm32f769i_discovery.lcd_mb1166_a09 */
	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
	@Runlevel(0) include embox.driver.clock.cortexm_systick
	include embox.kernel.time.jiffies(cs_name="cortexm_systick")

	@Runlevel(0) 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_ttyS0(baud_rate=115200, usartx=1)

	/* Check your board revision! It needs to uncomment
	include platform.stm32.f7.stm32f769i_discovery.lcd_mb1166_a09
	for mb1166_a09 one */
	@Runlevel(1) include embox.driver.video.stm32f7_lcd(
		height=480, width=800, bpp=16, fb_base=0x60000000)
	include embox.driver.video.fb

	@Runlevel(1) include embox.driver.input.input_dev_devfs
	@Runlevel(2) include embox.driver.input.touchscreen.stm32f7cube_ts

	@Runlevel(0) include embox.driver.flash.stm32f7_qspi

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

	include embox.driver.block_dev

	@Runlevel(1) include embox.mem.loadsect

	include embox.kernel.stack(stack_size=32000)
	include embox.kernel.irq_static
	include embox.kernel.critical

	include embox.kernel.task.multi
	include embox.kernel.task.resource.idesc_table(idesc_table_size=16)
	include embox.kernel.task.resource.sig_table(sig_table_size=10)
	include embox.kernel.task.resource.env(env_per_task=8,env_str_len=24)

	include embox.kernel.thread.core(thread_pool_size=4, thread_stack_size=8000)
	include embox.kernel.thread.thread_cancel_disable
	include embox.kernel.thread.signal.siginfoq(siginfo_pool_sz=8)
	include embox.kernel.sched.sched
	include embox.kernel.sched.idle_light
	include embox.kernel.sched.strategy.priority_based

	include embox.kernel.timer.sleep

	include embox.lib.libds
	include embox.framework.LibFramework
	include embox.compat.libc.math_openlibm
	include embox.compat.libc.stdio.print(support_floating=0)
	include embox.compat.posix.proc.vfork_exchanged
	include embox.compat.posix.proc.exec_exchanged

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

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

	include embox.net.skbuff(amount_skb=20)
	include embox.net.skbuff_data(amount_skb_data=20)
	include embox.net.sock_noxattr
	include embox.net.tcp
	include embox.net.tcp_sock
	include embox.net.udp
	include embox.net.udp_sock

	@Runlevel(2) include embox.cmd.sh.tish(
		prompt="%u@%h:%w%$", rich_prompt_support=1,
		builtin_commands="exit logout cd export mount umount moveblocks animatedtiles memcpy mem")
	@Runlevel(3) include embox.init.system_start_service(log_level="LOG_INFO", tty_dev="ttyS0", cmd_max_len=128)

	include embox.cmd.service
	include embox.cmd.hw.mem
	include embox.cmd.help
	include embox.cmd.sys.env
	include embox.cmd.sys.export

	include embox.cmd.goto
	include embox.cmd.qspi_loader

	include embox.cmd.fs.ls
	include embox.cmd.fs.cat
	include embox.cmd.fs.mount

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

	include embox.cmd.testing.ticker
	include embox.cmd.testing.fb_devfs_access
	include embox.cmd.testing.input.touchscreen_test

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

	include third_party.lib.libgcc_toolchain
	include embox.lib.cxx.libsupcxx_standalone

	include third_party.qt.core(
		qconfig="small",
		fonts_support=false,
		vnc_support=false,
		touchscreen=true
	)
	include third_party.qt.example.moveblocks
	include third_party.qt.example.animatedtiles
	include third_party.qt.plugin.platform.emboxfb
	include third_party.qt.plugin.generic.emboxinput
}
