Esempio n. 1
0
def main(argv):
	parser = argparse.ArgumentParser(prog="check_fuse_creation",
		usage="%(prog)s [options] <log_file>.log")
	parser.add_argument("bits_file", metavar="<log_file>.bits", nargs="?",
		help="Anlogic bitstream generated .bits file")
	parser.add_argument("log_file", metavar="<log_file>.log", nargs="?",
		help="Anlogic bitstream generated .log file")
	parser.add_argument('part', type=str,
		help="FPGA part (e.g. eagle_s20)")
	args = parser.parse_args(argv[1:])	
	log_file = args.log_file
	bits_file = args.bits_file

	if log_file is None or bits_file is None :
		parser.print_help()
		sys.exit()

	if not os.path.isfile(log_file):
		print("File path {} does not exist...".format(log_file))
		sys.exit()
	if not os.path.isfile(bits_file):
		print("File path {} does not exist...".format(bits_file))
		sys.exit()

	tang_root = database.get_tangdinasty_root()
	chipdb = os.path.join(tang_root, "arch", args.part + ".db") 
	unlogic.decode_chipdb(["decrypt_all", chipdb, "--datadir", os.path.join("work_decrypt",args.part)])
	print()
	extract_elements(bits_file,log_file)
Esempio n. 2
0
def main():
    devices = database.get_devices()
    tang_root = database.get_tangdinasty_root()
    shutil.rmtree("work_decrypt", ignore_errors=True)
    os.mkdir("work_decrypt")
    print("Decrypting all chipdb files...")
    for family in devices["families"].keys():
        print("Family: " + family)
        for device in devices["families"][family]["devices"].keys():
            print("Device: " + device)
            selected_device = devices["families"][family]["devices"][device]
            unc_file = path.join("work_decrypt", device + ".unc")
            chipdb = path.join(tang_root, "arch", device + ".db")
            unlogic.decode_chipdb(
                ["decrypt_all", chipdb, "--decrypt", unc_file])
Esempio n. 3
0
def main():
    devices = database.get_devices()
    tang_root = database.get_tangdinasty_root()
    for architecture in devices["architectures"].keys():
        print("Architecture: " + architecture)
        for part in devices["architectures"][architecture]["parts"].keys():
            print("Part: " + part)
            selected_part = devices["architectures"][architecture]["parts"][
                part]
            package = selected_part["packages"][0]

            json_file = path.join(database.get_db_subdir(architecture, part),
                                  "tilegrid.json")
            chipdb = path.join(tang_root, "arch", part + ".db")
            unlogic.decode_chipdb([
                "get_tilegrid_all", chipdb, "--tilegrid", json_file,
                "--datadir",
                path.join("work_decrypt", part)
            ])
Esempio n. 4
0
def main():
	devices = database.get_devices()
	tang_root = database.get_tangdinasty_root()
	shutil.rmtree(database.get_db_root(), ignore_errors=True)
	os.mkdir(database.get_db_root())

	shutil.copy(path.join(database.get_tang_root(), "devices.json"), path.join(database.get_db_root(), "devices.json"))

	for family in devices["families"].keys():
		print("Family: " + family)
		for device in devices["families"][family]["devices"].keys():
			print("Device: " + device)
			selected_device = devices["families"][family]["devices"][device]

			database_dir = database.get_db_subdir(family, device)
			if not path.exists(path.join(database_dir,"bits")):
				os.mkdir(path.join(database_dir,"bits"))
			chipdb = path.join(tang_root, "arch", device + ".db")
			unlogic.decode_chipdb(["create_database", chipdb, "--db_dir", database_dir])
Esempio n. 5
0
def main():
    devices = database.get_devices()
    tang_root = database.get_tangdinasty_root()
    shutil.rmtree("work_decrypt", ignore_errors=True)
    os.mkdir("work_decrypt")
    print("Decrypting all chipdb files...")
    for architecture in devices["architectures"].keys():
        print("Architecture: " + architecture)
        for part in devices["architectures"][architecture]["parts"].keys():
            print("Part: " + part)
            selected_part = devices["architectures"][architecture]["parts"][
                part]
            package = selected_part["packages"][0]
            os.mkdir(path.join("work_decrypt", part))
            unc_file = path.join("work_decrypt", part + ".unc")
            chipdb = path.join(tang_root, "arch", part + ".db")
            unlogic.decode_chipdb([
                "decrypt_all", chipdb, "--decrypt", unc_file, "--datadir",
                path.join("work_decrypt", part)
            ])