Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions docs/advanced/boot_source/M.2/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
M.2
#####

This section covers boot source selection for LimeSDR Micro M.2 boards, across their available hardware versions: v1.0, v1.1 and v1.2.

Before proceeding, identify your board's version (see :doc:`/user/M.2/versions`), then follow the corresponding guide below.

.. toctree::
:maxdepth: 1

v1.2
v1.1
v1.0
24 changes: 24 additions & 0 deletions docs/advanced/boot_source/M.2/v1.0.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
v1.0
#####

The LimeSDR Micro M.2 v1.0 board uses a pair of resistors, R117 and R126, to choose how the LA9310 boots. Only one of them should ever be fitted at a time.

- **Fit R117 (default):** the LA9310 boots from PCIe.
- **Fit R126 instead:** the LA9310 boots from the I\ :sup:`2`\ C EEPROM.

.. note::

R117 connects the LA9310's ``CFG_BOOT_SRC0`` pin to the 1.8 V power rail (``VCC1P8``), while R126 connects it to ground.

The resistors' location on the board is shown below.

.. figure:: /images/LimeSDR-Micro_M.2_2280_v1.0_3D_boot_source.png
:align: center

Figure 1. R117 and R126 resistor locations

By default, the board boots from PCIe, with R117 fitted and R126 not fitted. To boot from the I\ :sup:`2`\ C EEPROM instead, remove R117 and fit R126. Use a 10 k\ |Omega| resistor for R117 or a 3.3 k\ |Omega| resistor for R126. Both use the 0201 package size, so appropriate tools and care are required.

.. warning::

Make any changes to R117 and R126 while the board is disconnected from the host. Carefully check that your modification does not touch any other hardware on the board. When connecting the board to the host's M.2 slot, ensure the host is powered off. Before powering on the host, check that your modification does not touch the host's hardware, especially on the bottom.
24 changes: 24 additions & 0 deletions docs/advanced/boot_source/M.2/v1.1.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
v1.1
#####

The LimeSDR Micro M.2 v1.1 board uses a pair of resistors, R121 and R130, to choose how the LA9310 boots. Only one of them should ever be fitted at a time.

- **Fit R121 (default):** the LA9310 boots from PCIe.
- **Fit R130 instead:** the LA9310 boots from the I\ :sup:`2`\ C EEPROM.

.. note::

R121 connects the LA9310's ``CFG_BOOT_SRC0`` pin to the 1.8 V power rail (``VCC1P8``), while R130 connects it to ground.

The resistors' location on the board is shown below.

.. figure:: /images/LimeSDR-Micro_M.2_2280_v1.1_3D_boot_source.png
:align: center

Figure 1: R121 and R130 resistor locations

By default, the board boots from PCIe, with R121 fitted and R130 not fitted. To boot from the I\ :sup:`2`\ C EEPROM instead, remove R121 and fit R130. Use a 10 k\ |Omega| resistor for R121 or a 3.3 k\ |Omega| resistor for R130. Both use the 0201 package size, so appropriate tools and care are required.

.. warning::

Make any changes to R121 and R130 while the board is disconnected from the host. Carefully check that your modification does not touch any other hardware on the board. When connecting the board to the host's M.2 slot, ensure the host is powered off. Before powering on the host, check that your modification does not touch the host's hardware, especially on the bottom.
24 changes: 24 additions & 0 deletions docs/advanced/boot_source/M.2/v1.2.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
v1.2
####

The LimeSDR Micro M.2 v1.2 board has a jumper, JP1, that lets you choose how the LA9310 boots.

- **Leave JP1 unplaced (default):** the LA9310 boots from the I\ :sup:`2`\ C EEPROM.
- **Place JP1:** the LA9310 boots from PCIe instead.

.. note::

JP1 connects the LA9310's ``CFG_BOOT_SRC0`` pin to the 1.8 V power rail (``VCC1P8``).

The jumper's location on the board is shown below.

.. figure:: /images/LimeSDR-Micro_M.2_2280_v1.2_3D_boot_source.png
:align: center

Figure 1: JP1 jumper location

By default, the JP1 header is not fitted. To select PCIe boot, the header must be shorted using a suitable method, such as a small metal clip or by press-fitting solid-core wire, as shown in the figure. Soldering is not recommended.

.. warning::

Make any changes to JP1 while the board is disconnected from the host. When fitting a clip, wire, or solder to JP1, carefully check that your modification does not touch any other hardware on the board. When connecting the board to the host's M.2 slot, ensure the host is powered off. Before powering on the host, check that your modification does not touch the host's hardware, especially on the bottom.
85 changes: 85 additions & 0 deletions docs/advanced/boot_source/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
Boot Source
#############

.. warning::

This topic involves hardware modifications and can harm the device if performed incorrectly. Proceed with caution.

This guide describes how to select the boot source for the onboard `NXP LA9310`_ baseband processor. The LA9310 supports two boot sources:

- I\ :sup:`2`\ C EEPROM
- PCIe host memory, supplied by an external host

I\ :sup:`2`\ C EEPROM boot is typically used for standalone operation, where the LA9310 boots independently. PCIe host-memory boot is used when an external host controls or downloads the LA9310 firmware.

Boot Source Selection
=====================

Boot source selection is controlled by the ``CFG_BOOT_SRC[1:0]`` POR configuration pins, which are multiplexed with ``TXRX[1:0]``. Their values are sampled when ``PORESET_B`` is deasserted, and are captured in ``DCFG.PORSR1[15:14]``.

.. list-table:: Table 1. LA9310 Boot Source Selection
:header-rows: 1

* - CFG_BOOT_SRC[1:0]
- Boot source
* - 00
- Reserved
* - 01
- Reserved
* - 10
- I\ :sup:`2`\ C EEPROM
* - 11
- PCIe Host Memory

I\ :sup:`2`\ C Boot
-------------------

On selecting this mode, the BootROM reads the boot header and image from an EEPROM at I\ :sup:`2`\ C address ``0x50``. This selection requires a pull-down on ``TXRX[0]``.

PCIe Boot
---------

On selecting this mode, the LA9310 initializes its PCIe interface and waits for the host to enumerate and configure it. The host then supplies the boot header and boot-loader data via host memory.

Default Boot Source
===================

The default boot source depends on the board's form factor and version. Default boot sources are as follows:

.. list-table:: Table 2. Default boot source by board version
:name: default-boot-source-by-version
:header-rows: 1

* - Board version
- Default boot source
* - M.2 v1.2
- I\ :sup:`2`\ C EEPROM
* - M.2 v1.1
- PCIe
* - M.2 v1.0
- PCIe
* - mPCIe v1.3
- PCIe
* - mPCIe v1.2
- PCIe
* - mPCIe v1.1
- PCIe

Changing the Boot Source
========================

Changing the LA9310's boot source requires a hardware modification to the LimeSDR Micro board. The exact modification depends on which form factor and board version you have.

Identify your board's form factor, then follow the corresponding guide:

- :doc:`M.2/index`
- :doc:`mPCIe/index`

.. toctree::
:maxdepth: 1
:hidden:

M.2/index
mPCIe/index

.. _NXP LA9310: https://www.nxp.com/docs/en/reference-manual/LA9310RM.pdf
15 changes: 15 additions & 0 deletions docs/advanced/boot_source/mPCIe/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
mPCIe
#######

This section covers boot source selection for LimeSDR Micro mPCIe boards, across their available hardware versions: v1.1, v1.2, v1.3.

Before proceeding, identify your board's version (see :doc:`/user/mPCIe/versions`), then follow the corresponding guide below.

.. toctree::
:maxdepth: 1

v1.3
v1.2
v1.1

.. Add v1.4 when it is documented
24 changes: 24 additions & 0 deletions docs/advanced/boot_source/mPCIe/v1.1.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
v1.1
#####

The LimeSDR Micro mPCIe v1.1 board uses a pair of resistors, R110 and R120, to choose how the LA9310 boots. Only one of them should ever be fitted at a time.

- **Fit R110 (default):** the LA9310 boots from PCIe.
- **Fit R120 instead:** the LA9310 boots from the I\ :sup:`2`\ C EEPROM.

.. note::

R110 connects the LA9310's ``CFG_BOOT_SRC0`` pin to the 1.8 V power rail (``VCC1P8``), while R120 connects it to ground.

The resistors' location on the board is shown below.

.. figure:: /images/LimeSDR-Micro_mPCIe_v1.1_3D_boot_source.png
:align: center

Figure 1: R110 and R120 resistor locations

By default, the board boots from PCIe, with R110 fitted and R120 not fitted. To boot from the I\ :sup:`2`\ C EEPROM instead, remove R110 and fit R120. Use a 10 k\ |Omega| resistor for R110 or a 3.3 k\ |Omega| resistor for R120. Both use the 0201 package size, so appropriate tools and care are required.

.. warning::

Make any changes to R110 and R120 while the board is disconnected from the host. Carefully check that your modification does not touch any other hardware on the board. When connecting the board to the host's mPCIe slot, ensure the host is powered off. Before powering on the host, check that your modification does not touch the host's hardware, especially on the bottom.
24 changes: 24 additions & 0 deletions docs/advanced/boot_source/mPCIe/v1.2.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
v1.2
#####

The LimeSDR Micro mPCIe v1.2 board uses a pair of resistors, R112 and R122, to choose how the LA9310 boots. Only one of them should ever be fitted at a time.

- **Fit R112 (default):** the LA9310 boots from PCIe.
- **Fit R122 instead:** the LA9310 boots from the I\ :sup:`2`\ C EEPROM.

.. note::

R112 connects the LA9310's ``CFG_BOOT_SRC0`` pin to the 1.8 V power rail (``VCC1P8``), while R122 connects it to ground.

The resistors' location on the board is shown below.

.. figure:: /images/LimeSDR-Micro_mPCIe_v1.2_3D_boot_source.png
:align: center

Figure 1: R112 and R122 resistor locations

By default, the board boots from PCIe, with R112 fitted and R122 not fitted. To boot from the I\ :sup:`2`\ C EEPROM instead, remove R112 and fit R122. Use a 10 k\ |Omega| resistor for R112 or a 3.3 k\ |Omega| resistor for R122. Both use the 0201 package size, so appropriate tools and care are required.

.. warning::

Make any changes to R112 and R122 while the board is disconnected from the host. Carefully check that your modification does not touch any other hardware on the board. When connecting the board to the host's mPCIe slot, ensure the host is powered off. Before powering on the host, check that your modification does not touch the host's hardware, especially on the bottom.
24 changes: 24 additions & 0 deletions docs/advanced/boot_source/mPCIe/v1.3.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
v1.3
#####

The LimeSDR Micro mPCIe v1.3 board uses a pair of resistors, R112 and R122, to choose how the LA9310 boots. Only one of them should ever be fitted at a time.

- **Fit R112 (default):** the LA9310 boots from PCIe.
- **Fit R122 instead:** the LA9310 boots from the I\ :sup:`2`\ C EEPROM.

.. note::

R112 connects the LA9310's ``CFG_BOOT_SRC0`` pin to the 1.8 V power rail (``VCC1P8``), while R122 connects it to ground.

The resistors' location on the board is shown below.

.. figure:: /images/LimeSDR-Micro_mPCIe_v1.3_3D_boot_source.png
:align: center

Figure 1: R112 and R122 resistor locations

By default, the board boots from PCIe, with R112 fitted and R122 not fitted. To boot from the I\ :sup:`2`\ C EEPROM instead, remove R112 and fit R122. Use a 10 k\ |Omega| resistor for R112 or a 3.3 k\ |Omega| resistor for R122. Both use the 0201 package size, so appropriate tools and care are required.

.. warning::

Make any changes to R112 and R122 while the board is disconnected from the host. Carefully check that your modification does not touch any other hardware on the board. When connecting the board to the host's mPCIe slot, ensure the host is powered off. Before powering on the host, check that your modification does not touch the host's hardware, especially on the bottom.
14 changes: 14 additions & 0 deletions docs/advanced/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Advanced Topics
################

This section covers advanced topics for users who need to go beyond the standard setup and usage procedures.

.. warning::

This section contains advanced topics that may require specialist knowledge or experience. Proceed with caution!

.. toctree::
:maxdepth: 1

boot_source/index
update_bootloader
64 changes: 64 additions & 0 deletions docs/advanced/update_bootloader.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
Update Bootloader
##################

.. warning::

This procedure should only be performed if specifically advised to do so by Lime Microsystems support. Do not attempt it otherwise.

This guide describes the bootloader update procedure for LimeSDR Micro M.2 boards, using the LimeSuiteNG command line interface (CLI).

.. note::

For general installation and usage instructions for LimeSuiteNG, see the :external+suiteng:doc:`LimeSuiteNG User Guide <index>`.

Updating the Bootloader
=======================

1. Ensure that the host computer is powered off.
2. Set the board's boot source to PCIe. See :doc:`/advanced/boot_source/index` for instructions specific to your board's form factor and version.
3. Install the DUT into the host computer's M.2 connector and secure it with the retaining screw.

.. warning::

Ensure there is no unintended conductive or bare metal-to-metal contact between the LimeSDR Micro and any host hardware.

4. Power on the host computer and allow the operating system to boot completely.
5. Open a terminal window and confirm that the DUT is enumerated and communicating correctly with the host computer. Since the DUT is running from its bootloader ROM, which only includes PCIe drivers, verify this using the ``lspci`` command instead of LimeSuiteNG's own device discovery:

.. code-block:: shell

lspci -d 1957:1c12

If the DUT is detected, it will be listed in the command output, with NXP vendor ID ``1957`` and device ID ``1c12``. If no devices are listed, check the DUT's connection and seating in the host computer's M.2 connector before continuing.

6. Execute the following command to flash the bootloader to the EEPROM memory:

.. code-block:: shell

limeFLASH -t EEPROM [PATH_TO_EEPROM_FOLDER/]limesdr-micro-eeprom.bin

7. Wait for the programming process to complete.

.. warning::

Do not power off the computer or remove the DUT while programming is in progress.

If the programming completes successfully, the utility will display the following message:

.. code-block:: text

VSPA no clock
VSPA firmware not running?
File size : 832 bytes.
Remaining: 0
Programming completed. Power cycle the device to boot updated gateware

If any other message is displayed, or if the utility reports an error, copy the error message and contact the Lime Microsystems support team for further assistance.

8. After successful programming, shut down the host computer using the normal operating system shutdown procedure.
9. Once the computer has completely powered off, set the board's boot source back to I\ :sup:`2`\ C EEPROM. See :doc:`/advanced/boot_source/index` for instructions specific to your board's form factor and version.
10. The board is now ready for the subsequent functional test procedure.

.. note::

The boot source should only be set to PCIe for the duration of the bootloader programming procedure.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Introduction
Introduction <self>
user/index
reference/index
advanced/index
developer/index

.. figure:: /images/limesdr-micro-m2-2280-mpcie-01_jpg_gallery-lg.jpg
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/M.2/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ Fitted ESDs (TXA, RXA, RXB, GNSS_ANT)
.. figure:: /images/LimeSDR-Micro_M.2_2280_v1.1_changes_esd4.png
:width: 300

Figure 23. I2C secure key storage
Figure 23. ESD protection (TXA, RXA, RXB, GNSS_ANT)


v1.0
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/M.2/v1.0/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ v1.0
:hidden:

overview
digital
rf_transceiver
rfcontrol
BB_CON
clock
Expand Down
4 changes: 2 additions & 2 deletions docs/reference/M.2/v1.0/power.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ LimeSDR Micro M.2 board is powered via M.2 edge connector (3.3V).
LimeSDR Micro M.2 board power delivery network consists of different power rails/voltages and
filters.

LimeSDR Micro M.2 board power distribution block diagram is presented in Figure 10.
LimeSDR Micro M.2 board power distribution block diagram is presented in Figure 9.

.. figure:: /images/LimeSDR-Micro_M.2_v1.0_diagrams_r1_power.png
:width: 600

Figure 10. LimeSDR Micro M.2 2280 v1.0 board power distribution block diagram
Figure 9. LimeSDR Micro M.2 2280 v1.0 board power distribution block diagram
Loading
Loading