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.armmlib.exception_entry(irq_stack_size=1024)
	include embox.arch.arm.armmlib.lthread_own_stack(stack_size=1024)
	include embox.arch.arm.libarch
	include embox.arch.arm.vfork

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

	@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 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)

	/* Check your board revision! */
	include platform.stm32.f7.stm32f769i_discovery.lcd_mb1166_a03
	// include platform.stm32.f7.stm32f769i_discovery.lcd_mb1166_a09

	@Runlevel(1) include embox.driver.interrupt.cortexm_nvic
	@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_ttyS0(baud_rate=115200, usartx=1)
	@Runlevel(1) include embox.driver.serial.stm_ttyS1(baud_rate=115200, usartx=6)

	include embox.driver.tty.serial(idesc_serial_quantity=4)

	@Runlevel(1) include embox.driver.video.stm32f7_lcd(fb_base=0x60000000)

	@Runlevel(1) include embox.driver.gpio.stm32cube_gpio
	@Runlevel(1) include embox.driver.input.button.stm32cube_button
	@Runlevel(2) include embox.driver.input.input_dev_devfs

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

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

	include embox.driver.flash.flash_cache_ram
	include embox.driver.flash.stm32f7cube(flash_size=0x10000)
	include embox.driver.flash.stm32cube_fix_addr(log_level="LOG_DEBUG",
					flash_start_addr=0x08100000, flash_end_addr=0x08200000)
	include embox.driver.flash.flash_fs

	@Runlevel(2) include embox.driver.sd.stm32f769i_discovery_sd
	@Runlevel(2) include embox.driver.block.partition

	@Runlevel(1) include embox.driver.usb.core(usb_max_hcd=1, usb_max_dev=2, usb_max_hub=1,
					usb_max_req=4, urb_alignment=4)
	@Runlevel(1) include embox.driver.usb.class.mass_storage
	@Runlevel(1) include embox.driver.usb.class.ccid(log_level="LOG_DEBUG")
	@Runlevel(1) include embox.driver.usb.class.hid
	@Runlevel(1) include embox.driver.usb.hub
	@Runlevel(2) include embox.driver.usb.stm32_hc.stm32f7_hc(log_level="LOG_DEBUG")

	include embox.driver.tty.tty(rx_buff_sz=32, io_buff_sz=32)
	include embox.driver.block_dev

	@Runlevel(0) include embox.kernel.stack(stack_size=0x4000, alignment=4)

	include embox.kernel.critical
	include embox.kernel.irq_static

	include embox.kernel.task.multi
	include embox.kernel.task.resource.idesc_table(idesc_table_size=32)
	include embox.kernel.task.resource.sig_table(sig_table_size=20)
	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.thread.core(thread_pool_size=6, thread_stack_size=0x4000)

	include embox.kernel.timer.sleep

	include embox.kernel.sched.sched
	include embox.kernel.sched.idle_light
	include embox.kernel.lthread.lthread
	include embox.kernel.thread.mutex

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

	include embox.compat.libc.stdio.print
	include embox.compat.libc.math_openlibm

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

	include embox.mem.heap_bm
	include embox.mem.fixed_heap(heap_start=0x60200000, heap_size=0x400000)
	include embox.mem.static_heap(heap_size=0x4000)
	include embox.mem.bitmask(page_size=64)
	include embox.mem.pool_adapter

	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.fs.driver.dfs(inode_count=4)
	include embox.fs.driver.fat_dvfs(log_level="LOG_ERR")
	include embox.fs.syslib.perm_stub

	include embox.net.skbuff(amount_skb=50)
	include embox.net.skbuff_data(amount_skb_data=50)
	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.init.system_start_service(log_level="LOG_INFO", tty_dev="ttyS0")

	include embox.cmd.sh.tish(builtin_commands="cd export exit logout httpd tinypy")
	include embox.cmd.service

	include embox.cmd.msleep
	include embox.cmd.help

	include embox.cmd.sys.version
	include embox.cmd.sys.export

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

	include embox.cmd.fs.dd
	include embox.cmd.fs.md5sum
	include embox.cmd.fs.uniq
	include embox.cmd.fs.cat
	include embox.cmd.fs.ls
	include embox.cmd.fs.rm
	include embox.cmd.fs.mkfs
	include embox.cmd.fs.mount
	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.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.blink
	include embox.cmd.testing.fb_direct_access
	include embox.cmd.testing.block_dev_test
	include embox.cmd.testing.input.touchscreen_test
	include embox.cmd.testing.input.input_test
	include embox.cmd.testing.input.button_test

	include embox.cmd.hardware.pin
	include embox.cmd.hw.input
	include embox.cmd.hw.lsblk
	include embox.cmd.hw.partition
	include embox.cmd.hw.lsusb
	include embox.cmd.hw.flash_erase
	include embox.cmd.hw.mem

 	include embox.lib.leddrv_gpio

	include project.plc.cmd.plc_start
	include project.plc.cmd.plc_stop
	include project.plc.cmd.plc_info
	include project.plc.cmd.plc_slave_tcp
	include project.plc.cmd.plc_slave_rtu

	include project.plc.examples.blink_leddrv
	include project.plc.examples.delay_check
}
