Index: tools/autotool.py
===================================================================
--- tools/autotool.py	(revision b1478ff612ef2495ebdd19ef6fb0fdb79a3c794e)
+++ tools/autotool.py	(revision b63f4e8923acb50eeb87d363e82f2908a460b2a9)
@@ -201,4 +201,8 @@
 		target = "arm-helenos"
 
+	if (config['PLATFORM'] == "arm64"):
+		platform = config['PLATFORM']
+		target = "aarch64-helenos"
+
 	if (config['PLATFORM'] == "ia32"):
 		platform = config['PLATFORM']
@@ -633,5 +637,5 @@
 
 		# Platform-specific utilities
-		if ((config['BARCH'] == "amd64") or (config['BARCH'] == "ia32") or (config['BARCH'] == "ppc32") or (config['BARCH'] == "sparc64")):
+		if (config['BARCH'] in ('amd64', 'arm64', 'ia32', 'ppc32', 'sparc64')):
 			common['GENISOIMAGE'] = check_app_alternatives(["genisoimage", "mkisofs", "xorriso"], ["--version"], "ISO 9660 creation utility", "usually part of genisoimage")
 			if common['GENISOIMAGE'] == 'xorriso':
Index: tools/ew.py
===================================================================
--- tools/ew.py	(revision b1478ff612ef2495ebdd19ef6fb0fdb79a3c794e)
+++ tools/ew.py	(revision b63f4e8923acb50eeb87d363e82f2908a460b2a9)
@@ -94,4 +94,20 @@
 	elif platform == 'arm32':
 		return 'system-arm', '-M integratorcp'
+	elif platform == 'arm64':
+		# Check that ROM image is present. Provide the user with
+		# appropriate steps to fix this problem.
+		if not os.path.exists('QEMU_EFI_ARM64.fd'):
+			sys.stderr.write('Could not find ' +
+			    '\'QEMU_EFI_ARM64.fd\' which is expected to ' +
+			    'contain EDK2 firmware image.\n')
+			sys.stderr.write('Pre-built image can be obtained by ' +
+			    'running the following command:\n')
+			sys.stderr.write('$ wget http://snapshots.linaro.org/' +
+			    'components/kernel/leg-virt-tianocore-edk2-' +
+			    'upstream/latest/QEMU-AARCH64/RELEASE_GCC49/' +
+			    'QEMU_EFI.fd -O QEMU_EFI_ARM64.fd\n')
+			raise Exception
+		return 'system-aarch64', \
+		    '-M virt -cpu cortex-a57 -m 1024 -bios QEMU_EFI_ARM64.fd'
 	elif platform == 'ia32':
 		return 'system-i386', pc_options(32)
@@ -208,6 +224,6 @@
 		cmdline += ' ' + options
 
-	cmdline += qemu_bd_options()
-
+	if (not 'hdd' in cfg.keys() or cfg['hdd']):
+		cmdline += qemu_bd_options()
 	if (not 'net' in cfg.keys()) or cfg['net']:
 		cmdline += qemu_net_options()
@@ -234,4 +250,11 @@
 	if cfg['image'] == 'image.iso':
 		cmdline += ' -boot d -cdrom image.iso'
+	elif cfg['image'] == 'image.iso@arm64':
+		# Define image.iso cdrom backend.
+		cmdline += ' -drive if=none,file=image.iso,id=cdrom,media=cdrom'
+		# Define scsi bus.
+		cmdline += ' -device virtio-scsi-device'
+		# Define cdrom frontend connected to this scsi bus.
+		cmdline += ' -device scsi-cd,drive=cdrom'
 	elif cfg['image'] == 'image.boot':
 		cmdline += ' -kernel image.boot'
@@ -276,4 +299,17 @@
 			'xhci' : False,
 			'tablet' : False
+		}
+	},
+	'arm64' : {
+		'virt' : {
+			'run' : qemu_run,
+			'image' : 'image.iso@arm64',
+			'audio' : False,
+			'console' : True,
+			'hdd' : False,
+			'net' : False,
+			'tablet' : False,
+			'usb' : False,
+			'xhci' : False
 		}
 	},
