build/efinix/programmer: Minor import changes and upadte copyrights.
This commit is contained in:
parent
ba6d9f0751
commit
d214c37b76
|
@ -2,14 +2,13 @@
|
||||||
# This file is part of LiteX.
|
# This file is part of LiteX.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2021 Franck Jullien <franck.jullien@collshade.fr>
|
# Copyright (c) 2021 Franck Jullien <franck.jullien@collshade.fr>
|
||||||
|
# Copyright (c) 2022 Charles-Henri Mousset <ch.mousset@gmail.com>
|
||||||
# SPDX-License-Identifier: BSD-2-Clause
|
# SPDX-License-Identifier: BSD-2-Clause
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import time
|
||||||
import subprocess
|
import subprocess
|
||||||
from time import sleep
|
|
||||||
import usb.core
|
|
||||||
import usb.util
|
|
||||||
|
|
||||||
from litex.build.generic_programmer import GenericProgrammer
|
from litex.build.generic_programmer import GenericProgrammer
|
||||||
|
|
||||||
|
@ -51,6 +50,7 @@ class EfinixAtmelProgrammer:
|
||||||
padding = 0xFF
|
padding = 0xFF
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
import usb.core
|
||||||
dev = usb.core.find(find_all=False, idVendor=self.vid, idProduct=self.pid)
|
dev = usb.core.find(find_all=False, idVendor=self.vid, idProduct=self.pid)
|
||||||
if not dev:
|
if not dev:
|
||||||
raise ValueError(f"did not find Atmel USB programmer device with VID{self.vid:04x} PID{self.pid:04x}")
|
raise ValueError(f"did not find Atmel USB programmer device with VID{self.vid:04x} PID{self.pid:04x}")
|
||||||
|
@ -79,17 +79,17 @@ class EfinixAtmelProgrammer:
|
||||||
|
|
||||||
def _prep_flash(self):
|
def _prep_flash(self):
|
||||||
self._usb_w([0x08]) # 'SPI Master'
|
self._usb_w([0x08]) # 'SPI Master'
|
||||||
sleep(0.05)
|
time.sleep(0.05)
|
||||||
self._usb_w([0x09]) # 'flash_ready'
|
self._usb_w([0x09]) # 'flash_ready'
|
||||||
sleep(0.05)
|
time.sleep(0.05)
|
||||||
|
|
||||||
def _prep_load(self):
|
def _prep_load(self):
|
||||||
self._usb_w([0x0B])
|
self._usb_w([0x0B])
|
||||||
sleep(0.001)
|
time.sleep(0.001)
|
||||||
self._usb_w([0x0C])
|
self._usb_w([0x0C])
|
||||||
sleep(0.002)
|
time.sleep(0.002)
|
||||||
self._usb_w([0x0D])
|
self._usb_w([0x0D])
|
||||||
sleep(0.01)
|
time.sleep(0.01)
|
||||||
self._usb_w([0x01] + [self.padding] * 10) # "write some initial junk bytes"
|
self._usb_w([0x01] + [self.padding] * 10) # "write some initial junk bytes"
|
||||||
|
|
||||||
def _finish_load(self):
|
def _finish_load(self):
|
||||||
|
@ -98,12 +98,12 @@ class EfinixAtmelProgrammer:
|
||||||
def _erase_flash(self):
|
def _erase_flash(self):
|
||||||
print("Erasing Flash...")
|
print("Erasing Flash...")
|
||||||
self._usb_w([0x04])
|
self._usb_w([0x04])
|
||||||
sleep(self.flash_erase_time)
|
time.sleep(self.flash_erase_time)
|
||||||
print("done")
|
print("done")
|
||||||
|
|
||||||
def _reload(self):
|
def _reload(self):
|
||||||
self._usb_w([0x06] + [self.padding] * 63) # toggle CRESET
|
self._usb_w([0x06] + [self.padding] * 63) # toggle CRESET
|
||||||
sleep(0.01)
|
time.sleep(0.01)
|
||||||
|
|
||||||
def _send_packet(self, packet, flash=False):
|
def _send_packet(self, packet, flash=False):
|
||||||
"""send 63 bytes of data"""
|
"""send 63 bytes of data"""
|
||||||
|
@ -124,7 +124,7 @@ class EfinixAtmelProgrammer:
|
||||||
self._send_packet(packet, flash)
|
self._send_packet(packet, flash)
|
||||||
|
|
||||||
self._usb_w([0x21] + [0xFF] * 63) # 'close connection'
|
self._usb_w([0x21] + [0xFF] * 63) # 'close connection'
|
||||||
sleep(0.01)
|
time.sleep(0.01)
|
||||||
print("done")
|
print("done")
|
||||||
|
|
||||||
def add_hex(self, offset, hexfile):
|
def add_hex(self, offset, hexfile):
|
||||||
|
|
Loading…
Reference in New Issue