xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-devtools/qemu/qemu-targets.inc (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# possible arch values are:
2*4882a593Smuzhiyun#    aarch64 arm armeb alpha cris i386 x86_64 m68k microblaze
3*4882a593Smuzhiyun#    mips mipsel mips64 mips64el ppc ppc64 ppc64abi32 ppcemb
4*4882a593Smuzhiyun#    riscv32 riscv64 sparc sparc32 sparc32plus
5*4882a593Smuzhiyun
6*4882a593Smuzhiyundef get_qemu_target_list(d):
7*4882a593Smuzhiyun    import bb
8*4882a593Smuzhiyun    archs = d.getVar('QEMU_TARGETS').split()
9*4882a593Smuzhiyun    tos = d.getVar('HOST_OS')
10*4882a593Smuzhiyun    softmmuonly = ""
11*4882a593Smuzhiyun    for arch in ['ppcemb', 'lm32']:
12*4882a593Smuzhiyun        if arch in archs:
13*4882a593Smuzhiyun            softmmuonly += arch + "-softmmu,"
14*4882a593Smuzhiyun            archs.remove(arch)
15*4882a593Smuzhiyun    linuxuseronly = ""
16*4882a593Smuzhiyun    for arch in ['armeb', 'alpha', 'ppc64abi32', 'ppc64le', 'sparc32plus', 'aarch64_be']:
17*4882a593Smuzhiyun        if arch in archs:
18*4882a593Smuzhiyun            linuxuseronly += arch + "-linux-user,"
19*4882a593Smuzhiyun            archs.remove(arch)
20*4882a593Smuzhiyun    if 'linux' not in tos:
21*4882a593Smuzhiyun        return softmmuonly + ''.join([arch + "-softmmu" + "," for arch in archs]).rstrip(',')
22*4882a593Smuzhiyun    return softmmuonly + linuxuseronly + ''.join([arch + "-linux-user" + "," + arch + "-softmmu" + "," for arch in archs]).rstrip(',')
23*4882a593Smuzhiyun
24*4882a593Smuzhiyundef get_qemu_usermode_target_list(d):
25*4882a593Smuzhiyun    return ",".join(filter(lambda i: "-linux-user" in i, get_qemu_target_list(d).split(',')))
26*4882a593Smuzhiyun
27*4882a593Smuzhiyundef get_qemu_system_target_list(d):
28*4882a593Smuzhiyun    return ",".join(filter(lambda i: "-linux-user" not in i, get_qemu_target_list(d).split(',')))
29