initial commit
This commit is contained in:
commit
398b448a8c
0
artiq_netboot/__init__.py
Normal file
0
artiq_netboot/__init__.py
Normal file
50
artiq_netboot/artiq_netboot.py
Executable file
50
artiq_netboot/artiq_netboot.py
Executable file
@ -0,0 +1,50 @@
|
||||
#!/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()
|
14
setup.py
Executable file
14
setup.py
Executable file
@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
setup(
|
||||
name="artiq_netboot",
|
||||
author="M-Labs",
|
||||
description="Simple netboot tool compatible with ARTIQ/MiSoC and SZL bootloaders",
|
||||
license="LGPLv3+",
|
||||
packages=find_packages(),
|
||||
entry_points={
|
||||
"console_scripts": ["artiq_client = artiq.frontend.artiq_client:main"],
|
||||
}
|
||||
)
|
Loading…
Reference in New Issue
Block a user