Merge pull request #285 from cdwijs/master

Typo fixes
This commit is contained in:
Gwenhael Goavec-Merou 2022-12-19 07:27:54 +01:00 committed by GitHub
commit 5b0c0db5c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 61 additions and 60 deletions

View File

@ -43,7 +43,7 @@ Automatic file type detection bypass
==================================== ====================================
Default behavior is to use file extension to determine file parser. Default behavior is to use file extension to determine file parser.
To avoid this mecanism ``--file-type type`` must be used. To avoid this mechanism ``--file-type type`` must be used.
FT231/FT232 bitbang mode and pins configuration FT231/FT232 bitbang mode and pins configuration
=============================================== ===============================================

View File

@ -6,7 +6,7 @@ First steps with openFPGALoader
Install Install
======= =======
Packages are available for Linux distributionsm, Windows (MSYS2) and macOS: Packages are available for Linux distributions, Windows (MSYS2) and macOS:
* *Arch Linux*: ``sudo pacman -S openfpgaloader`` * *Arch Linux*: ``sudo pacman -S openfpgaloader``

View File

@ -41,6 +41,7 @@ This application uses ``libftdi1``, so this library must be installed (and, depe
.. code-block:: bash .. code-block:: bash
sudo apt install \ sudo apt install \
git \
libftdi1-2 \ libftdi1-2 \
libftdi1-dev \ libftdi1-dev \
libhidapi-hidraw0 \ libhidapi-hidraw0 \
@ -92,7 +93,7 @@ If you don't want this option, use:
-DENABLE_LIBGPIOD=OFF -DENABLE_LIBGPIOD=OFF
Additionnaly you have to install ``libgpiod`` Additionaly you have to install ``libgpiod``
To build the app: To build the app:
@ -137,7 +138,7 @@ After that you need to unplug and replug your device.
``usermod`` is used to add ``$USER`` as a member of ``plugdev`` group. ``usermod`` is used to add ``$USER`` as a member of ``plugdev`` group.
However this update is not taken into account immediately: it's required to However this update is not taken into account immediately: it's required to
logout from current session and login again. logout from current session and login again.
Check, by using ``id $USER``, if ``plugdev`` is mentionned after ``groups=``. Check, by using ``id $USER``, if ``plugdev`` is mentioned after ``groups=``.
An alternate (and temporary) solution is to use ``sudo - $USER`` to have An alternate (and temporary) solution is to use ``sudo - $USER`` to have
your user seen as a member of ``plugdev`` group (works only for the current terminal). your user seen as a member of ``plugdev`` group (works only for the current terminal).
@ -150,7 +151,7 @@ openFPGALoader is available as a `Homebrew <https://brew.sh>`__ formula:
brew install openfpgaloader brew install openfpgaloader
Alternatively, if you want to build it from hand: Alternatively, if you want to build it by hand:
.. code-block:: bash .. code-block:: bash

View File

@ -30,7 +30,7 @@ SVF and RBF files are supported.
quartus_cpf --option=bitstream_compression=off -c project_name.sof project_name.rbf quartus_cpf --option=bitstream_compression=off -c project_name.sof project_name.rbf
.. WARNING:: .. WARNING::
As mentionned in ``cyclone`` handbooks, real-time decompression is not supported by FPGA in JTAG mode. As mentioned in ``cyclone`` handbooks, real-time decompression is not supported by FPGA in JTAG mode.
Keep in mind to disable this option. Keep in mind to disable this option.
file load: file load:

View File

@ -60,7 +60,7 @@ SPI flash
.. NOTE:: .. NOTE::
``.bit``, ``.bin``, and ``.mcs`` are supported for FLASH. ``.bit``, ``.bin``, and ``.mcs`` are supported for FLASH.
``.mcs`` must be generated through vivado with a tcl script like: ``.mcs`` must be generated through Vivado with a tcl script like:
.. code-block:: tcl .. code-block:: tcl
@ -94,5 +94,5 @@ File load:
.. NOTE:: .. NOTE::
``--fpga-part`` is only required if this information is not provided at ``board.hpp`` level or if the board is not ``--fpga-part`` is only required if this information is not provided at ``board.hpp`` level or if the board is not
officially supported. officially supported.
device/packagee format is something like xc7a35tcsg324 (arty model). device/package format is something like xc7a35tcsg324 (arty model).
See :ghsrc:`src/board.hpp <src/board.hpp>`, or :ghsrc:`spiOverJtag <spiOverJtag>` directory for examples. See :ghsrc:`src/board.hpp <src/board.hpp>`, or :ghsrc:`spiOverJtag <spiOverJtag>` directory for examples.

View File

@ -68,7 +68,7 @@ enum {
}; };
/*! /*!
* \brief a board has a target cable and optionnally a pin configuration * \brief a board has a target cable and optionally a pin configuration
* (bitbang mode) * (bitbang mode)
*/ */
typedef struct { typedef struct {

View File

@ -50,7 +50,7 @@ enum ftdi_if {
}; };
/*! /*!
* \brief cable caracteristics * \brief cable characteristics
*/ */
struct cable_t { struct cable_t {
communication_type type; /*! see enum communication_type */ communication_type type; /*! see enum communication_type */

View File

@ -181,7 +181,7 @@ int CH552_jtag::writeTDI(uint8_t *tdi, uint8_t *tdo, uint32_t len, bool last)
*/ */
int tx_buff_size = mpsse_get_buffer_size(); int tx_buff_size = mpsse_get_buffer_size();
int real_len = (last) ? len - 1 : len; // if its a buffer in a big send send len int real_len = (last) ? len - 1 : len; // if its a buffer in a big send send len
// else supress last bit -> with TMS // else suppress last bit -> with TMS
int nb_byte = real_len >> 3; // number of byte to send int nb_byte = real_len >> 3; // number of byte to send
int nb_bit = (real_len & 0x07); // residual bits int nb_bit = (real_len & 0x07); // residual bits
int xfer = tx_buff_size - 7; // 2 byte for opcode and size 2 time int xfer = tx_buff_size - 7; // 2 byte for opcode and size 2 time
@ -286,7 +286,7 @@ int CH552_jtag::writeTDI(uint8_t *tdi, uint8_t *tdo, uint32_t len, bool last)
unsigned char last_bit = (tdi) ? *tx_ptr : 0; unsigned char last_bit = (tdi) ? *tx_ptr : 0;
/* next: serie of bit to send: inconditionnaly write AND read /* next: serie of bit to send: unconditionally write AND read
*/ */
if (nb_bit != 0) { if (nb_bit != 0) {
display("%s read/write %d bit\n", __func__, nb_bit); display("%s read/write %d bit\n", __func__, nb_bit);

View File

@ -18,7 +18,7 @@
class CmsisDAP: public JtagInterface { class CmsisDAP: public JtagInterface {
public: public:
/*! /*!
* \brief contructor: open device with vid/pid if != 0 * \brief constructor: open device with vid/pid if != 0
* else search for a compatible device * else search for a compatible device
* \param[in] vid: vendor id * \param[in] vid: vendor id
* \param[in] pid: product id * \param[in] pid: product id
@ -79,13 +79,13 @@ class CmsisDAP: public JtagInterface {
private: private:
/*! /*!
* \brief connect device in JTAG mode * \brief connect device in JTAG mode
* \return 1 if success <= 0 otherwhise * \return 1 if success <= 0 otherwise
*/ */
int dapConnect(); int dapConnect();
/*! /*!
* \brief disconnect device * \brief disconnect device
* \return 1 if success <= 0 otherwhise * \return 1 if success <= 0 otherwise
*/ */
int dapDisconnect(); int dapDisconnect();
int dapResetTarget(); int dapResetTarget();

View File

@ -82,7 +82,7 @@ void CologneChip::reset()
} }
/** /**
* Obtain CFG_DONE and CFG_FAILED signals. Configuration is successfull iff * Obtain CFG_DONE and CFG_FAILED signals. Configuration is successful if
* CFG_DONE=true and CFG_FAILED=false. * CFG_DONE=true and CFG_FAILED=false.
*/ */
bool CologneChip::cfgDone() bool CologneChip::cfgDone()
@ -99,7 +99,7 @@ bool CologneChip::cfgDone()
} }
/** /**
* Prints information if configuration was successfull. * Prints information if configuration was successful.
*/ */
void CologneChip::waitCfgDone() void CologneChip::waitCfgDone()
{ {

View File

@ -235,7 +235,7 @@ class DFU {
int dev_idx; /**< device index in dfu_dev */ int dev_idx; /**< device index in dfu_dev */
uint16_t _vid; /**< device Vendor ID */ uint16_t _vid; /**< device Vendor ID */
uint16_t _pid; /**< device Product ID */ uint16_t _pid; /**< device Product ID */
int16_t _altsetting; /**< device altesetting */ int16_t _altsetting; /**< device altsetting */
struct libusb_context *usb_ctx; /**< usb context */ struct libusb_context *usb_ctx; /**< usb context */
libusb_device_handle * dev_handle; /**< current device handle */ libusb_device_handle * dev_handle; /**< current device handle */
int curr_intf; /**< device interface to use */ int curr_intf; /**< device interface to use */

View File

@ -25,12 +25,12 @@ class DFUFileParser: public ConfigBitstreamParser {
DFUFileParser(const std::string &filename, bool verbose); DFUFileParser(const std::string &filename, bool verbose);
/*! /*!
* \brief read full content of the file, fill the buffer * \brief read full content of the file, fill the buffer
* \return EXIT_SUCCESS is file is fully read, EXIT_FAILURE otherwhise * \return EXIT_SUCCESS is file is fully read, EXIT_FAILURE otherwise
*/ */
int parse() override; int parse() override;
/*! /*!
* \brief read DFU suffix content of the file, fill _hdr structure * \brief read DFU suffix content of the file, fill _hdr structure
* \return EXIT_SUCCESS if suffix is fully read, EXIT_FAILURE otherwhise * \return EXIT_SUCCESS if suffix is fully read, EXIT_FAILURE otherwise
*/ */
int parseHeader(); int parseHeader();
/*! /*!

View File

@ -44,7 +44,7 @@ enum CommandModifier {
struct version_specific struct version_specific
{ {
uint8_t no_read; // command modifer for xfer no read uint8_t no_read; // command modifier for xfer no read
uint16_t max_bits; // max bit count that can be transferred uint16_t max_bits; // max bit count that can be transferred
}; };

View File

@ -25,7 +25,7 @@ class EfinixHexParser: public ConfigBitstreamParser {
EfinixHexParser(const std::string &filename); EfinixHexParser(const std::string &filename);
/*! /*!
* \brief read full content of the file, fill the buffer * \brief read full content of the file, fill the buffer
* \return EXIT_SUCCESS is file is fully read, EXIT_FAILURE otherwhise * \return EXIT_SUCCESS is file is fully read, EXIT_FAILURE otherwise
*/ */
int parse() override; int parse() override;
}; };

View File

@ -133,7 +133,7 @@ int EPCQ::erase_sector(char start_sector, char nb_sectors)
} }
#endif #endif
/* write must be do by 256bytes. Before writting next 256bytes we must /* write must be do by 256bytes. Before writing next 256bytes we must
* wait for WIP goes low * wait for WIP goes low
*/ */
@ -185,7 +185,7 @@ void EPCQ::program(unsigned int start_offset, string filename, bool reverse)
nb_read = fread(rd_buffer, 1, 256, fd); nb_read = fread(rd_buffer, 1, 256, fd);
if (nb_read == 0) { if (nb_read == 0) {
printf("problem dans le read du fichier source\n"); printf("problem reading the source file\n");
break; break;
} }
buffer[1] = (offset >> 16) & 0xff; buffer[1] = (offset >> 16) & 0xff;
@ -262,14 +262,14 @@ void EPCQ::read_id()
_spi->spi_put(0x9F, NULL, rx_buf, 3); _spi->spi_put(0x9F, NULL, rx_buf, 3);
_device_id = rx_buf[2]; _device_id = rx_buf[2];
if (_verbose) if (_verbose)
printf("device id 0x%x attendu 0x15\n", _device_id); printf("device id 0x%x expected 0x15\n", _device_id);
/* read EPCQ silicon id */ /* read EPCQ silicon id */
//tx_buf[0] = 0xAB; //tx_buf[0] = 0xAB;
/* 3 dummy_byte + 1 byte*/ /* 3 dummy_byte + 1 byte*/
_spi->spi_put(0xAB, NULL, rx_buf, 4); _spi->spi_put(0xAB, NULL, rx_buf, 4);
_silicon_id = rx_buf[3]; _silicon_id = rx_buf[3];
if (_verbose) if (_verbose)
printf("silicon id 0x%x attendu 0x14\n", _silicon_id); printf("silicon id 0x%x expected 0x14\n", _silicon_id);
} }
EPCQ::EPCQ(SPIInterface *spi, int8_t verbose):SPIFlash(spi, verbose) EPCQ::EPCQ(SPIInterface *spi, int8_t verbose):SPIFlash(spi, verbose)

View File

@ -17,7 +17,7 @@ class EPCQ: public SPIFlash {
void read_id() override; void read_id() override;
//void program(unsigned int start_offet, string filename, bool reverse=true); //void program(unsigned int start_offset, string filename, bool reverse=true);
//int erase_sector(char start_sector, char nb_sectors); //int erase_sector(char start_sector, char nb_sectors);
//void dumpflash(char *dest_file, int size); //void dumpflash(char *dest_file, int size);

View File

@ -24,7 +24,7 @@
# define FEA_I2C_DG_FIL_EN (1 << 0) /* I2C deglitch filter enable for Primary I2C Port 0=Disabled (Default), 1=Enabled */ # define FEA_I2C_DG_FIL_EN (1 << 0) /* I2C deglitch filter enable for Primary I2C Port 0=Disabled (Default), 1=Enabled */
# define FEA_FLASH_PROT_SEC_SEL (0x7 << 1) /* Flash Protection Sector Selection */ # define FEA_FLASH_PROT_SEC_SEL (0x7 << 1) /* Flash Protection Sector Selection */
# define FEA_MY_ASSP_EN (1 << 4) /* MY_ASSP Enabled 0=Disabled (Default), 1=Enabled */ # define FEA_MY_ASSP_EN (1 << 4) /* MY_ASSP Enabled 0=Disabled (Default), 1=Enabled */
# define FEA_PROG_PERSIST (1 << 5) /* PROGRAMN Persistence 0=Enabled (Default), 1=Disabled */ # define FEA_PROG_PERSIST (1 << 5) /* PROGRAM Persistence 0=Enabled (Default), 1=Disabled */
# define FEA_INITN_PERSIST (1 << 6) /* INITN Persistence 0=Disabled (Default), 1=Enabled */ # define FEA_INITN_PERSIST (1 << 6) /* INITN Persistence 0=Disabled (Default), 1=Enabled */
# define FEA_DONE_PERSIST (1 << 7) /* DONE Persistence 0=Disabled (Default), 1=Enabled */ # define FEA_DONE_PERSIST (1 << 7) /* DONE Persistence 0=Disabled (Default), 1=Enabled */
# define FEA_JTAG_PERSIST (1 << 8) /* JTAG Port Persistence 0=Enabled (Default), 1=Disabled */ # define FEA_JTAG_PERSIST (1 << 8) /* JTAG Port Persistence 0=Enabled (Default), 1=Disabled */
@ -73,7 +73,7 @@ FeaParser::FeaParser(string filename, bool verbose):
_featuresRow[i] = 0; _featuresRow[i] = 0;
} }
/* fill a vector with consecutive lines, begining with 0 or 1, until EOF /* fill a vector with consecutive lines, beginning with 0 or 1, until EOF
* \brief read a line with '\r''\n' or '\n' termination * \brief read a line with '\r''\n' or '\n' termination
* check if last char is '\r' * check if last char is '\r'
* \return a vector of lines without [\r]\n * \return a vector of lines without [\r]\n

View File

@ -52,7 +52,7 @@ int FsParser::parseHeader()
if (buffer[buffer.size()-1] == '\r') if (buffer[buffer.size()-1] == '\r')
buffer.pop_back(); buffer.pop_back();
/* store each line in dedicated buffer for futur use /* store each line in dedicated buffer for future use
*/ */
_lstRawData.push_back(buffer); _lstRawData.push_back(buffer);

View File

@ -217,7 +217,7 @@ int FtdiJtagMPSSE::writeTDI(uint8_t *tdi, uint8_t *tdo, uint32_t len, bool last)
*/ */
int tx_buff_size = mpsse_get_buffer_size(); int tx_buff_size = mpsse_get_buffer_size();
int real_len = (last) ? len - 1 : len; // if its a buffer in a big send send len int real_len = (last) ? len - 1 : len; // if its a buffer in a big send send len
// else supress last bit -> with TMS // else suppress last bit -> with TMS
int nb_byte = real_len >> 3; // number of byte to send int nb_byte = real_len >> 3; // number of byte to send
int nb_bit = (real_len & 0x07); // residual bits int nb_bit = (real_len & 0x07); // residual bits
int xfer = tx_buff_size - 3; int xfer = tx_buff_size - 3;

View File

@ -239,7 +239,7 @@ int FtdiSpi::spi_put(uint8_t cmd, uint8_t *tx, uint8_t *rx, uint32_t len)
if (tx != NULL) if (tx != NULL)
memcpy(jtx+1, tx, len); memcpy(jtx+1, tx, len);
/* send first alreay stored cmd, /* send first already stored cmd,
* in the same time store each byte * in the same time store each byte
* to next * to next
*/ */

View File

@ -50,7 +50,7 @@ FX2_ll::FX2_ll(uint16_t uninit_vid, uint16_t uninit_pid,
} }
/* try to open an already init device /* try to open an already init device
* since fx2 may be not immediatly ready * since fx2 may be not immediately ready
* retry with a delay * retry with a delay
*/ */
int timeout = 100; int timeout = 100;

View File

@ -25,7 +25,7 @@ using namespace std;
* 01 -> end of file * 01 -> end of file
* 02 -> extended addr * 02 -> extended addr
* 03 -> start segment addr record * 03 -> start segment addr record
* 04 -> extented linear addr record * 04 -> extended linear addr record
* 05 -> start linear addr record * 05 -> start linear addr record
*/ */

View File

@ -42,7 +42,7 @@ JedParser::JedParser(string filename, bool verbose):
} }
/*! /*!
* \brief read a line with '\r''\n' or '\n' terminaison * \brief read a line with '\r''\n' or '\n' termination
* check if last char is '\r' * check if last char is '\r'
* \return the line without [\r]\n * \return the line without [\r]\n
*/ */

View File

@ -19,7 +19,7 @@
class Jlink: public JtagInterface { class Jlink: public JtagInterface {
public: public:
/*! /*!
* \brief contructor: open device * \brief constructor: open device
* \param[in] clkHz: output clock frequency * \param[in] clkHz: output clock frequency
* \param[in] verbose: verbose level -1 quiet, 0 normal, * \param[in] verbose: verbose level -1 quiet, 0 normal,
* 1 verbose, 2 debug * 1 verbose, 2 debug
@ -58,7 +58,7 @@ class Jlink: public JtagInterface {
/*! /*!
* \brief access ll_write outer this class / directly receives * \brief access ll_write outer this class / directly receives
* fully filled tms, tdi buffers, and optionnally tdo * fully filled tms, tdi buffers, and optionally tdo
* \param[in] tms: tms buffer * \param[in] tms: tms buffer
* \param[in] tdi: tdi buffer * \param[in] tdi: tdi buffer
* \param[out] tdo: tdo buffer * \param[out] tdo: tdo buffer
@ -295,7 +295,7 @@ class Jlink: public JtagInterface {
// buffers for xfer, tdi and tdo // buffers for xfer, tdi and tdo
// each jlink's buffer have 2K Byte // each jlink's buffer have 2K Byte
// enough to send full jtag write // enough to send full jtag write
// buffers must be independant // buffers must be independent
uint8_t _xfer_buf[(2048*2) + 4]; /*!> internal buffer */ uint8_t _xfer_buf[(2048*2) + 4]; /*!> internal buffer */
uint8_t _tms[2048]; /*!< TMS buffer */ uint8_t _tms[2048]; /*!< TMS buffer */
uint8_t _tdi[2048]; /*!< TDI buffer */ uint8_t _tdi[2048]; /*!< TDI buffer */

View File

@ -285,7 +285,7 @@ int Jtag::flushTMS(bool flush_buffer)
void Jtag::go_test_logic_reset() void Jtag::go_test_logic_reset()
{ {
/* idenpendly to current state 5 clk with TMS high is enough */ /* independently to current state 5 clk with TMS high is enough */
for (int i = 0; i < 6; i++) for (int i = 0; i < 6; i++)
setTMS(0x01); setTMS(0x01);
flushTMS(false); flushTMS(false);

View File

@ -248,7 +248,7 @@ void displayFeabits(uint16_t _featbits)
printf("\tMy_ASSP : %s\n", printf("\tMy_ASSP : %s\n",
(((_featbits>>4)&0x01)?"enable":"disable")); (((_featbits>>4)&0x01)?"enable":"disable"));
printf("\tPassword (Flash Protect Key) Protect All : %s\n", printf("\tPassword (Flash Protect Key) Protect All : %s\n",
(((_featbits>>3)&0x01)?"Enaabled" : "Disabled")); (((_featbits>>3)&0x01)?"Enabled" : "Disabled"));
printf("\tPassword (Flash Protect Key) Protect : %s\n", printf("\tPassword (Flash Protect Key) Protect : %s\n",
(((_featbits>>2)&0x01)?"Enabled" : "Disabled")); (((_featbits>>2)&0x01)?"Enabled" : "Disabled"));
} }
@ -983,10 +983,10 @@ void Lattice::displayReadReg(uint32_t dev)
printf("SDM EOF\n"); printf("SDM EOF\n");
break; break;
case 8: case 8:
printf("Authentification ERR\n"); printf("Authentication ERR\n");
break; break;
case 9: case 9:
printf("Authentification Setup ERR\n"); printf("Authentication Setup ERR\n");
break; break;
case 10: case 10:
printf("Bitstream Engine Timeout ERR\n"); printf("Bitstream Engine Timeout ERR\n");
@ -1003,7 +1003,7 @@ void Lattice::displayReadReg(uint32_t dev)
if ((dev >> 46) & 0x01) printf("\tINIT Bus ID Error\n"); if ((dev >> 46) & 0x01) printf("\tINIT Bus ID Error\n");
if ((dev >> 47) & 0x01) printf("\tI3C Parity Error1\n"); if ((dev >> 47) & 0x01) printf("\tI3C Parity Error1\n");
err = (dev >> 48) & 0x03; err = (dev >> 48) & 0x03;
printf("\tAuthentification mode:\n"); printf("\tAuthentication mode:\n");
printf("\t\t"); printf("\t\t");
switch (err) { switch (err) {
case 3: case 3:
@ -1017,8 +1017,8 @@ void Lattice::displayReadReg(uint32_t dev)
printf("HMAC\n"); printf("HMAC\n");
break; break;
} }
if ((dev >> 50) & 0x01) printf("\tAuthentification Done\n"); if ((dev >> 50) & 0x01) printf("\tAuthentication Done\n");
if ((dev >> 51) & 0x01) printf("\tDry Run Authentification Done\n"); if ((dev >> 51) & 0x01) printf("\tDry Run Authentication Done\n");
#endif #endif
} }

View File

@ -24,7 +24,7 @@ using namespace std;
* 01 -> end of file * 01 -> end of file
* 02 -> extended addr * 02 -> extended addr
* 03 -> start segment addr record * 03 -> start segment addr record
* 04 -> extented linear addr record * 04 -> extended linear addr record
* 05 -> start linear addr record * 05 -> start linear addr record
*/ */

View File

@ -109,7 +109,7 @@ uint32_t POFParser::parseSection(uint16_t flag, uint32_t pos, uint32_t size)
/* 0x03: bitstream name ? */ /* 0x03: bitstream name ? */
/* 0x3b: ? */ /* 0x3b: ? */
/* 0x12: ? */ /* 0x12: ? */
/* 0x13: containts usercode / checksum */ /* 0x13: contains usercode / checksum */
/* 0x24: ? */ /* 0x24: ? */
/* 0x11: ? */ /* 0x11: ? */
/* 0x18: ? */ /* 0x18: ? */

View File

@ -26,7 +26,7 @@ class RawParser: public ConfigBitstreamParser {
RawParser(const std::string &filename, bool reverseOrder); RawParser(const std::string &filename, bool reverseOrder);
/*! /*!
* \brief read full content of the file, fill the buffer * \brief read full content of the file, fill the buffer
* \return EXIT_SUCCESS is file is fully read, EXIT_FAILURE otherwhise * \return EXIT_SUCCESS is file is fully read, EXIT_FAILURE otherwise
*/ */
int parse() override; int parse() override;

View File

@ -284,7 +284,7 @@ int SPIFlash::erase_and_prog(int base_addr, uint8_t *data, int len)
bool must_relock = false; // used to relock after write; bool must_relock = false; // used to relock after write;
/* microchip SST26VF032B have global lock set /* microchip SST26VF032B have global lock set
* at powerup. global unlock must be send inconditionally * at powerup. global unlock must be send unconditionally
* with or without block protection * with or without block protection
*/ */
if (_jedec_id == 0xbf2642bf) { // microchip SST26VF032B if (_jedec_id == 0xbf2642bf) { // microchip SST26VF032B
@ -457,7 +457,7 @@ void SPIFlash::read_id()
_flash_model->nr_sector, _flash_model->nr_sector * 0x80000 / 1048576); _flash_model->nr_sector, _flash_model->nr_sector * 0x80000 / 1048576);
printInfo(content); printInfo(content);
} else { } else {
/* read extented */ /* read extended */
if ((_jedec_id & 0xff) != 0) { if ((_jedec_id & 0xff) != 0) {
has_edid = true; has_edid = true;
len += (_jedec_id & 0x0ff); len += (_jedec_id & 0x0ff);

View File

@ -29,7 +29,7 @@ class SPIFlash {
int disable_protection(); int disable_protection();
/*! /*!
* \brief enable protection for selected blocks * \brief enable protection for selected blocks
* \param[in] protect_code: bp + tb combinaison * \param[in] protect_code: bp + tb combination
* \return -1 if write enable or enabling failed * \return -1 if write enable or enabling failed
*/ */
int enable_protection(uint8_t protect_code = 0x1c); int enable_protection(uint8_t protect_code = 0x1c);
@ -84,7 +84,7 @@ class SPIFlash {
* \brief check if area base_addr to base_addr + len match * \brief check if area base_addr to base_addr + len match
* data content * data content
* \param[in] base_addr: base address to read * \param[in] base_addr: base address to read
* \param[in] data: theorical area content * \param[in] data: theoretical area content
* \param[in] len: length (in Byte) to area and data * \param[in] len: length (in Byte) to area and data
* \param[in] rd_burst: size of packet to read * \param[in] rd_burst: size of packet to read
* \return false if read fails or content didn't match, true otherwise * \return false if read fails or content didn't match, true otherwise

View File

@ -29,7 +29,7 @@ class SPIInterface {
bool bulk_erase_flash(); bool bulk_erase_flash();
/*! /*!
* \brief write len byte into flash starting at offset, * \brief write len byte into flash starting at offset,
* optionnally verify after write and unprotect * optionally verify after write and unprotect
* blocks if required and allowed * blocks if required and allowed
* \param[in] offset: offset into flash * \param[in] offset: offset into flash
* \param[in] data: data to write * \param[in] data: data to write

View File

@ -52,7 +52,7 @@ class Xilinx: public Device, SPIInterface {
void reset() override; void reset() override;
/* -------------- */ /* -------------- */
/* xc3s managment */ /* xc3s management */
/* -------------- */ /* -------------- */
/*! /*!
@ -119,7 +119,7 @@ class Xilinx: public Device, SPIInterface {
*/ */
void xc2c_flow_reinit(); void xc2c_flow_reinit();
/*! /*!
* \brief erase full internal flash (optionnally verify) * \brief erase full internal flash (optionally verify)
* \return false if erase fails, true otherwise * \return false if erase fails, true otherwise
*/ */
bool xc2c_flow_erase(); bool xc2c_flow_erase();
@ -175,7 +175,7 @@ class Xilinx: public Device, SPIInterface {
/*! /*!
* \brief xilinx ZynqMP Ultrascale+ specific initialization * \brief xilinx ZynqMP Ultrascale+ specific initialization
* \param[in] family name * \param[in] family name
* \return true if device has been correctly initilized * \return true if device has been correctly initialized
*/ */
bool zynqmp_init(const std::string &family); bool zynqmp_init(const std::string &family);

View File

@ -16,7 +16,7 @@
class XVC_client: public JtagInterface { class XVC_client: public JtagInterface {
public: public:
/*! /*!
* \brief contructor: open device * \brief constructor: open device
* \param[in] ip_addr: server IP addr * \param[in] ip_addr: server IP addr
* \param[in] clkHz: output clock frequency * \param[in] clkHz: output clock frequency
* \param[in] verbose: verbose level -1 quiet, 0 normal, * \param[in] verbose: verbose level -1 quiet, 0 normal,

View File

@ -324,7 +324,7 @@ int XVC_server::handle_data(int fd)
return 1; return 1;
} }
/* 3. receiv 2 x nr_bytes (TMS + TDI) */ /* 3. receive 2 x nr_bytes (TMS + TDI) */
memset(_tmstdi, 0, _buffer_size); memset(_tmstdi, 0, _buffer_size);
if (sread(fd, _tmstdi, nr_bytes * 2) != 1) { if (sread(fd, _tmstdi, nr_bytes * 2) != 1) {
printError("reading data failed"); printError("reading data failed");