package genconfig

configuration conf {
	include embox.arch.system(core_freq=800000000)
	include embox.arch.aarch64.cpu_idle
	include embox.arch.aarch64.locore
	include embox.arch.aarch64.interrupt
	include embox.arch.aarch64.context
	include embox.arch.aarch64.mem_barriers
	include embox.arch.aarch64.libarch
	include embox.arch.aarch64.vfork

	include embox.kernel.cpu.bkl
	include embox.kernel.cpu.cpudata
	include embox.kernel.irq

	@Runlevel(0) include embox.arch.aarch64.mmu(granule=64)
	@Runlevel(0) include embox.kernel.task.kernel_task
	@Runlevel(0) include embox.mem.phymem

	include embox.kernel.critical
	include embox.kernel.stack(stack_size=0x200000)
	include embox.kernel.thread.core(thread_stack_size=0x200000)

	include embox.driver.interrupt.gicv3(gicd_base=0x38800000, gicr_base=0x38880000)

	include embox.driver.serial.imx_uart(uart_clk=12500000)
	include embox.driver.serial.imx_uart_diag(base_addr=0x30860000)
	include embox.driver.serial.imx_uart_ttyS0(base_addr=0x30860000, irq_num=58)
	include embox.driver.diag(impl="embox__driver__serial__imx_uart_diag")

	// include embox.driver.clock.gpt(base_addr=0x302d0000,irq_num=55)
	// include embox.kernel.time.jiffies(cs_name="gpt_timer")

	@Runlevel(0) include embox.driver.clock.armv8_phy_timer(irq_num=30)
	include embox.kernel.time.jiffies(cs_name="armv8_phy_timer")

	include embox.driver.block_dev

	include embox.fs.syslib.file_system_none
	include embox.fs.syslib.perm_stub
	include embox.compat.posix.file_system_dvfs

	include embox.fs.driver.initfs_dvfs
	include embox.fs.driver.devfs_dvfs
	@Runlevel(2) include embox.fs.rootfs_dvfs

	include embox.kernel.task.resource.errno

	include embox.mem.bitmask(page_size=1048576)

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

	include embox.cmd.help
	include embox.cmd.sys.export
	include embox.cmd.sys.shutdown
	include embox.cmd.testing.ticker

	@Runlevel(2) include embox.mem.static_heap(heap_size=64000000)
	@Runlevel(2) include embox.mem.heap_bm(heap_size=32000000)

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

	@Runlevel(2) include embox.lib.libds
	@Runlevel(2) include embox.framework.LibFramework
	@Runlevel(2) include embox.compat.libc.all
	include embox.compat.libc.math_simple
	include embox.compat.libc.stdio.asprintf
	include embox.compat.posix.proc.atexit_stub

	include embox.compat.atomic.pseudo_atomic
}
