forked from M-Labs/artiq
1
0
Fork 0

artiq_netboot: moved to git.m-labs.hk/M-Labs/artiq-netboot

This commit is contained in:
Sebastien Bourdeauducq 2020-10-15 16:14:22 +08:00
parent e66d2a6408
commit 7a5996ba79
2 changed files with 0 additions and 51 deletions

View File

@ -1,50 +0,0 @@
#!/usr/bin/env python3
import argparse
import socket
import struct
import os
def send_file(sock, filename):
with open(filename, "rb") as input_file:
sock.sendall(struct.pack(">I", os.fstat(input_file.fileno()).st_size))
while True:
data = input_file.read(4096)
if not data:
break
sock.sendall(data)
sock.sendall(b"OK")
def main():
parser = argparse.ArgumentParser(description="ARTIQ netboot tool")
parser.add_argument("hostname", metavar="HOSTNAME",
help="hostname of the target board")
parser.add_argument("-f", "--firmware", nargs=1,
help="firmware to load")
# Note that on softcore systems, the main gateware cannot be replaced
# with -g. This option is used for loading the RTM FPGA from the AMC
# on Sayma, and the PL on Zynq.
parser.add_argument("-g", "--gateware", nargs=1,
help="gateware to load")
parser.add_argument("-b", "--boot", action="store_true",
help="boot the device")
args = parser.parse_args()
sock = socket.create_connection((args.hostname, 4269))
try:
if args.firmware is not None:
sock.sendall(b"F")
send_file(sock, args.firmware[0])
if args.gateware is not None:
sock.sendall(b"G")
send_file(sock, args.gateware[0])
if args.boot:
sock.sendall(b"B")
finally:
sock.close()
if __name__ == "__main__":
main()

View File

@ -24,7 +24,6 @@ console_scripts = [
"artiq_coreanalyzer = artiq.frontend.artiq_coreanalyzer:main", "artiq_coreanalyzer = artiq.frontend.artiq_coreanalyzer:main",
"artiq_coremgmt = artiq.frontend.artiq_coremgmt:main", "artiq_coremgmt = artiq.frontend.artiq_coremgmt:main",
"artiq_ddb_template = artiq.frontend.artiq_ddb_template:main", "artiq_ddb_template = artiq.frontend.artiq_ddb_template:main",
"artiq_netboot = artiq.frontend.artiq_netboot:main",
"artiq_master = artiq.frontend.artiq_master:main", "artiq_master = artiq.frontend.artiq_master:main",
"artiq_mkfs = artiq.frontend.artiq_mkfs:main", "artiq_mkfs = artiq.frontend.artiq_mkfs:main",
"artiq_rtiomon = artiq.frontend.artiq_rtiomon:main", "artiq_rtiomon = artiq.frontend.artiq_rtiomon:main",