# -*- python -*-

locs = {}
execfile('mutekh/.config.py', {}, locs)

use_memcheck = (
  "CONFIG_SOCLIB_MEMCHECK" in locs and
  locs["CONFIG_SOCLIB_MEMCHECK"] == 'defined')

if locs['CONFIG_CPU_PPC'] == 'defined':
  cpu = "ppc405"
elif locs['CONFIG_CPU_ARM'] == 'defined':
  cpu = "arm"
elif locs['CONFIG_CPU_MIPS'] == 'defined':
  if locs['CONFIG_CPU_ENDIAN_BIG'] == 'defined':
    cpu = 'mips32eb'
  else:
    cpu = 'mips32el'
else:
  raise ValueError('No suitable cpu found in mutekh configuration')

todo = Platform('caba', 'top.cc',
                uses=[
		Uses('caba:vci_vcache_wrapper', iss_t = 'common:gdb_iss', gdb_iss_t = 'common:iss_memchecker', iss_memchecker_t = 'common:'+cpu),
		Uses('caba:vci_vcache_wrapper', iss_t = 'common:iss_memchecker', iss_memchecker_t = 'common:'+cpu),
		Uses('caba:vci_vcache_wrapper', iss_t = 'common:gdb_iss', gdb_iss_t = 'common:'+cpu),
		Uses('caba:vci_vcache_wrapper', iss_t = 'common:'+cpu),
		Uses('caba:vci_xcache_wrapper', iss_t = 'common:gdb_iss', gdb_iss_t = 'common:iss_memchecker', iss_memchecker_t = 'common:'+cpu),
		Uses('caba:vci_xcache_wrapper', iss_t = 'common:iss_memchecker', iss_memchecker_t = 'common:'+cpu),
		Uses('caba:vci_xcache_wrapper', iss_t = 'common:gdb_iss', gdb_iss_t = 'common:'+cpu),
		Uses('caba:vci_xcache_wrapper', iss_t = 'common:'+cpu),

		Uses('caba:vci_cc_xcache_wrapper_v4', iss_t = 'common:gdb_iss', gdb_iss_t = 'common:iss_memchecker', iss_memchecker_t = 'common:'+cpu),
		Uses('caba:vci_cc_xcache_wrapper_v4', iss_t = 'common:iss_memchecker', iss_memchecker_t = 'common:'+cpu),
		Uses('caba:vci_cc_xcache_wrapper_v4', iss_t = 'common:gdb_iss', gdb_iss_t = 'common:'+cpu),
		Uses('caba:vci_cc_xcache_wrapper_v4', iss_t = 'common:'+cpu),
		Uses('caba:vci_mem_cache_v4'),
    Uses('caba:vci_simple_ring_network'),
		Uses('caba:vci_locks'),
		Uses('caba:vci_ram'),
		Uses('caba:vci_simple_ram'),
		Uses('caba:vci_multi_tty'),
		Uses('caba:vci_timer'),
		Uses('caba:vci_icu'),
		Uses('caba:vci_vgmn'),
		Uses('caba:vci_framebuffer'),
		Uses('caba:vci_dma'),
		Uses("common:elf_file_loader"),
		Uses("common:plain_file_loader"),
	],
	cell_size = 4,
	plen_size = 9,
	addr_size = 32,
	rerror_size = 1,
	clen_size = 1,
	rflag_size = 1,
	srcid_size = 8,
	pktid_size = 1,
	trdid_size = 4,
	wrplen_size = 1
)
