package genconfig

configuration conf {
	include embox.arch.system(core_freq=800000000)
	include embox.arch.arm.armv7a.head
	include embox.arch.arm.armv7a.cpu_idle
	include embox.arch.arm.armlib.locore
	include embox.arch.arm.armlib.interrupt
	include embox.arch.arm.armlib.context
	include embox.arch.arm.armlib.mem_barriers
	include embox.arch.arm.armlib.static_excpt_table
	include embox.arch.arm.stackframe
	include embox.arch.arm.vfork
	include embox.arch.arm.libarch

	include embox.arch.arm.fpu.fpu_stub

	@Runlevel(0) include embox.arch.arm.mmu_small_page(domain_access=1)
	@Runlevel(0) include embox.arch.arm.mmuinfo

/* IRQ */
	include embox.driver.interrupt.gicv1(gicd_base=0x01104000, gicc_base=0x01105000)

/* Timer DIT3 */	
	@Runlevel(0) include embox.driver.clock.sp804(base_addr=0x0104B000, TIMCLK_freq=100000000, irq_nr=48, target_freq=1000)
	@Runlevel(1) include embox.kernel.time.jiffies(cs_name="sp804_timer")

	include embox.device.common(device_name_len=32, max_dev_module_count=128)

/* MUART */	
	@Runlevel(2) include embox.driver.serial.rcm_muart_uart_diag(base_addr=0x01044000, baud_rate=115200)
	@Runlevel(1) include embox.driver.diag(impl="embox__driver__serial__rcm_muart_uart_diag")
	@Runlevel(1) include embox.driver.serial.rcm_muart_uart_ttys0(base_addr=0x01044000, baud_rate=115200, irq_num=76)
	@Runlevel(1) include embox.driver.serial.rcm_muart_uart_ttys1(base_addr=0x01045000, baud_rate=115200, irq_num=77)

	include embox.driver.serial.core_tty
	include embox.driver.tty.serial(serial_quantity=4, idesc_serial_quantity=4)

/* PCIe */
/*	include embox.driver.pci(log_level="LOG_NONE", dev_quantity=1, bus_n_to_scan=1)
	include embox.driver.pci_chip.pci_chip_rcm1888bc048(log_level="LOG_NONE")	
*/
/* SPI */		
/*	include embox.driver.spi.core(log_level="LOG_NONE")
	include embox.driver.spi.rcm1888bc048_spi(gspi_base=0x01040000, cs_port_base=0x01088000, cs_pin=5, clkdiv=1000, log_level="LOG_NONE")
*/
/* I2C */	
/*	@Runlevel include embox.driver.i2c.rcm1888bc048_i2c(log_level="LOG_NONE")
	@Runlevel include embox.driver.i2c.rcm1888bc048_i2c0(log_level="LOG_NONE")
	@Runlevel include embox.driver.i2c.rcm1888bc048_i2c1(log_level="LOG_NONE")
*/
/* CAN */	
/*	@Runlevel include embox.driver.i2c.rcm1888bc048_can(log_level="LOG_NONE")
	@Runlevel include embox.driver.i2c.rcm1888bc048_can0(log_level="LOG_NONE")
	@Runlevel include embox.driver.i2c.rcm1888bc048_can1(log_level="LOG_NONE")
*/
/* ARINC429 */
/*	include embox.driver.arinc429.core(log_level="LOG_NONE")
	include embox.driver.arinc429.rcm1888bc048_arinc429tx(log_level="LOG_NONE")
	include embox.driver.arinc429.rcm1888bc048_arinc429rx(log_level="LOG_NONE", use_loopback=false)
*/	
/* MIL1553B RT */	
/*	include embox.driver.mil1553b_rt.core(log_level="LOG_NONE")
	include embox.driver.mil1553b_rt.rcm1888bc048_mil1553b_rt(log_level="LOG_NONE")
*/
/* MIL1553B BC */	
/*	include embox.driver.mil1553b_bc.core(log_level="LOG_NONE")
	include embox.driver.mil1553b_bc.rcm1888bc048_mil1553b_bc(log_level="LOG_NONE")		
*/
/* MGETH */
/*	@Runlevel(2) include embox.driver.net.rcm1888bc048_mgeth(log_level="LOG_NONE")
	@Runlevel(2) include embox.driver.net.loopback
*/

/* Kernel */
	@Runlevel(2) include embox.kernel.timer.sys_timer
	@Runlevel(2) include embox.kernel.time.kernel_time

	@Runlevel(2) include embox.kernel.task.multi
	@Runlevel(2) include embox.kernel.stack(stack_size=0x80000, alignment=4)
	@Runlevel(2) include embox.kernel.thread.core(thread_stack_align=64, thread_stack_size=0x80000)
	@Runlevel(2) include embox.kernel.sched.strategy.priority_based
	@Runlevel(2) include embox.kernel.timer.sleep
	@Runlevel(2) include embox.kernel.timer.strategy.head_timer
	@Runlevel(2) include embox.kernel.irq
	@Runlevel(2) include embox.kernel.critical

	@Runlevel(2) include embox.compat.posix.util.sleep

	@Runlevel(2) include embox.kernel.task.resource.errno

/* NET */
	@Runlevel(2) include embox.net.skbuff(amount_skb=8000)
	@Runlevel(2) include embox.net.skbuff_data(amount_skb_data=8000, data_size=1514, data_align=1, data_padto=1, ip_align=true)

	include embox.net.lib.dns_fixed(nameserver="192.168.1.1")
	include embox.test.net.socket_test(family=2,type=1,proto=0) /* AF_INET, SOCK_STREAM, default */
	include embox.test.net.inet_socket_test(type=1,proto=0) /* SOCK_STREAM, default */
	include embox.test.net.inet_dgram_socket_test(proto=0) /* default */
	include embox.test.net.inet_stream_socket_test(proto=0) /* default */
	include embox.net.lib.getifaddrs

	@Runlevel(2) include embox.net.l2.ethernet
	@Runlevel(2) include embox.net.net_entry
	@Runlevel(2) include embox.net.socket
	@Runlevel(2) include embox.net.dev
	@Runlevel(2) include embox.net.core
	@Runlevel(2) include embox.net.arp
	@Runlevel(2) include embox.net.rarp
	@Runlevel(2) include embox.net.af_inet
	@Runlevel(2) include embox.net.ipv4
	@Runlevel(2) include embox.net.icmpv4
	@Runlevel(2) include embox.net.udp
	@Runlevel(2) include embox.net.tcp
	@Runlevel(2) include embox.net.udp_sock
	@Runlevel(2) include embox.net.tcp_sock
	@Runlevel(2) include embox.net.raw_sock

	include embox.lib.libds
	include embox.framework.LibFramework
	include embox.arch.arm.libarch
	include embox.compat.libc.all
	include embox.compat.libc.math_builtins
		
/* CMD */
	include embox.init.setup_tty_diag
	@Runlevel(2) include embox.cmd.sh.tish(prompt="embox#")
	@Runlevel(3) include embox.init.start_script(shell_name="tish", tty_dev="ttyS0", shell_start=1, stop_on_error=true)
	include embox.cmd.help
	include embox.cmd.sys.version
	include embox.cmd.test
	include embox.cmd.service
	include embox.cmd.proc.thread
	/* HARDWARE */
/*	include embox.cmd.hardware.spi
	include embox.cmd.i2c_tools.i2cdetect
	include embox.cmd.i2c_tools.i2cdump
	include embox.cmd.i2c_tools.i2cget
	include embox.cmd.i2c_tools.i2cset
	include embox.cmd.hardware.pin
*/
	include embox.cmd.hw.mem
//	include embox.cmd.lspci

	/* FS */
	include embox.cmd.fs.echo
	include embox.cmd.fs.ls
	include embox.cmd.fs.cat
	include embox.cmd.fs.cd
	include embox.cmd.fs.pwd
	include embox.cmd.fs.more
	include embox.cmd.fs.stat
	include embox.cmd.fs.echo
	include embox.cmd.fs.touch
	include embox.cmd.fs.cp
	include embox.cmd.fs.mv
	include embox.cmd.fs.dd
	/* NET */
	include embox.cmd.net.arp
	include embox.cmd.net.arping
	include embox.cmd.net.ifconfig
	include embox.cmd.net.route
	include embox.cmd.net.ping
	include embox.cmd.net.telnetd
	include embox.cmd.net.netmanager

	include embox.cmd.testing.ticker

	@Runlevel(1) include embox.mem.bitmask
	@Runlevel(1) include embox.mem.pool_adapter	
	@Runlevel(1) include embox.mem.static_heap(heap_size=16777216)
	@Runlevel(1) include embox.mem.heap_bm(heap_size=8388608)

/* FS */
	include embox.driver.block_dev
	include embox.driver.virtual.null
	include embox.driver.virtual.zero
	include embox.driver.block.partition	
	@Runlevel(2) include embox.fs.node(fnode_quantity=256)
	@Runlevel(2) include embox.fs.driver.initfs
	@Runlevel(2) include embox.fs.rootfs_oldfs

	include embox.compat.posix.file_system_oldfs
	@Runlevel(2) include embox.compat.posix.time.time
	@Runlevel(2) include embox.compat.posix.net.socket

	/* Tell printf() do not support floating point */
	@Runlevel(2) include embox.compat.libc.stdio.print(support_floating=0)
}
