mbox series

[u-boot-marvell,0/8] Turris Omnia: Add support for configuring mSATA and WWAN slots via env variables

Message ID 20220302114758.21787-1-pali@kernel.org
Headers show
Series Turris Omnia: Add support for configuring mSATA and WWAN slots via env variables | expand

Message

Pali Rohár March 2, 2022, 11:47 a.m. UTC
Some mPCIe cards are broken and their PIN 43 incorrectly that card is
mSATA. U-Boot SPL on Turris Omnia is using PIN 43 for configuring PCIe
vs SATA functionality on SerDes. Allow to configure functionality via
additional env variable "omnia_msata_slot" which may override PIN 43.

To force PCIe mode for broken MiniPCIe cards, call U-Boot commands:

  => setenv omnia_msata_slot pcie
  => saveenv
  => reset


PCI-SIG in PCIe Mini CEM 2.1 spec added support for USB3.0 mode to mPCIe
cards. PCIe and USB3.0 functions share same pins (like SATA pins on mSATA
with PCIe on mPCIe) and therefore only one function may be active at the
same time. This mode was introduced by PCI-SIG specially for LTE/5G modems.

One mPCIe slot on Turris Omnia is connected to A385 CPU SerDes which
can be configured for PCIe or USB3.0 function. It is the slot with SIM
card suitable for cellular modems. As PCIe Mini CEM 2.1 spec say that
detection of PCIe vs USB3.0 functionality is platform specific, add a
new U-Boot variable "omnia_wwan_slot" for configuring functionality in
this slot. By default PCIe is used like before.

To set this WWAN slot to USB3.0 mode, call U-Boot commands:

  => setenv omnia_wwan_slot usb3
  => saveenv
  => reset


Pali Rohár (8):
  env: sf: Allow to use env_sf_init_addr() at any stage
  arm: mvebu: turris_omnia: Provide env_sf_get_env_addr() function
  arm: mvebu: turris_omnia: Enable ENV support in SPL
  arm: mvebu: turris_omnia: Define only one serdes map variable
  arm: mvebu: turris_omnia: Allow to configure mSATA slot via env
    variable
  arm: mvebu: turris_omnia: Extract code for disabling sata/pcie
  arm: mvebu: turris_omnia: Signal error when sata/pcie DT mode
  arm: mvebu: turris_omnia: Add support for USB3.0 mode in WWAN MiniPCIe
    slot

 board/CZ.NIC/turris_omnia/turris_omnia.c | 207 +++++++++++++++++------
 configs/turris_omnia_defconfig           |   1 +
 env/sf.c                                 |  22 +--
 3 files changed, 163 insertions(+), 67 deletions(-)

Comments

Pali Rohár May 1, 2022, 2:57 p.m. UTC | #1
On Wednesday 02 March 2022 12:47:50 Pali Rohár wrote:
> Some mPCIe cards are broken and their PIN 43 incorrectly that card is
> mSATA. U-Boot SPL on Turris Omnia is using PIN 43 for configuring PCIe
> vs SATA functionality on SerDes. Allow to configure functionality via
> additional env variable "omnia_msata_slot" which may override PIN 43.
> 
> To force PCIe mode for broken MiniPCIe cards, call U-Boot commands:
> 
>   => setenv omnia_msata_slot pcie
>   => saveenv
>   => reset
> 
> 
> PCI-SIG in PCIe Mini CEM 2.1 spec added support for USB3.0 mode to mPCIe
> cards. PCIe and USB3.0 functions share same pins (like SATA pins on mSATA
> with PCIe on mPCIe) and therefore only one function may be active at the
> same time. This mode was introduced by PCI-SIG specially for LTE/5G modems.
> 
> One mPCIe slot on Turris Omnia is connected to A385 CPU SerDes which
> can be configured for PCIe or USB3.0 function. It is the slot with SIM
> card suitable for cellular modems. As PCIe Mini CEM 2.1 spec say that
> detection of PCIe vs USB3.0 functionality is platform specific, add a
> new U-Boot variable "omnia_wwan_slot" for configuring functionality in
> this slot. By default PCIe is used like before.
> 
> To set this WWAN slot to USB3.0 mode, call U-Boot commands:
> 
>   => setenv omnia_wwan_slot usb3
>   => saveenv
>   => reset
> 

PING? Any more comments on this patch series? It is there for two months.

> Pali Rohár (8):
>   env: sf: Allow to use env_sf_init_addr() at any stage
>   arm: mvebu: turris_omnia: Provide env_sf_get_env_addr() function
>   arm: mvebu: turris_omnia: Enable ENV support in SPL
>   arm: mvebu: turris_omnia: Define only one serdes map variable
>   arm: mvebu: turris_omnia: Allow to configure mSATA slot via env
>     variable
>   arm: mvebu: turris_omnia: Extract code for disabling sata/pcie
>   arm: mvebu: turris_omnia: Signal error when sata/pcie DT mode
>   arm: mvebu: turris_omnia: Add support for USB3.0 mode in WWAN MiniPCIe
>     slot
> 
>  board/CZ.NIC/turris_omnia/turris_omnia.c | 207 +++++++++++++++++------
>  configs/turris_omnia_defconfig           |   1 +
>  env/sf.c                                 |  22 +--
>  3 files changed, 163 insertions(+), 67 deletions(-)
> 
> -- 
> 2.20.1
>
Stefan Roese May 2, 2022, 3:39 p.m. UTC | #2
On 02.03.22 12:47, Pali Rohár wrote:
> Some mPCIe cards are broken and their PIN 43 incorrectly that card is
> mSATA. U-Boot SPL on Turris Omnia is using PIN 43 for configuring PCIe
> vs SATA functionality on SerDes. Allow to configure functionality via
> additional env variable "omnia_msata_slot" which may override PIN 43.
> 
> To force PCIe mode for broken MiniPCIe cards, call U-Boot commands:
> 
>    => setenv omnia_msata_slot pcie
>    => saveenv
>    => reset
> 
> 
> PCI-SIG in PCIe Mini CEM 2.1 spec added support for USB3.0 mode to mPCIe
> cards. PCIe and USB3.0 functions share same pins (like SATA pins on mSATA
> with PCIe on mPCIe) and therefore only one function may be active at the
> same time. This mode was introduced by PCI-SIG specially for LTE/5G modems.
> 
> One mPCIe slot on Turris Omnia is connected to A385 CPU SerDes which
> can be configured for PCIe or USB3.0 function. It is the slot with SIM
> card suitable for cellular modems. As PCIe Mini CEM 2.1 spec say that
> detection of PCIe vs USB3.0 functionality is platform specific, add a
> new U-Boot variable "omnia_wwan_slot" for configuring functionality in
> this slot. By default PCIe is used like before.
> 
> To set this WWAN slot to USB3.0 mode, call U-Boot commands:
> 
>    => setenv omnia_wwan_slot usb3
>    => saveenv
>    => reset
> 
> 
> Pali Rohár (8):
>    env: sf: Allow to use env_sf_init_addr() at any stage
>    arm: mvebu: turris_omnia: Provide env_sf_get_env_addr() function
>    arm: mvebu: turris_omnia: Enable ENV support in SPL
>    arm: mvebu: turris_omnia: Define only one serdes map variable
>    arm: mvebu: turris_omnia: Allow to configure mSATA slot via env
>      variable
>    arm: mvebu: turris_omnia: Extract code for disabling sata/pcie
>    arm: mvebu: turris_omnia: Signal error when sata/pcie DT mode
>    arm: mvebu: turris_omnia: Add support for USB3.0 mode in WWAN MiniPCIe
>      slot
> 
>   board/CZ.NIC/turris_omnia/turris_omnia.c | 207 +++++++++++++++++------
>   configs/turris_omnia_defconfig           |   1 +
>   env/sf.c                                 |  22 +--
>   3 files changed, 163 insertions(+), 67 deletions(-)
> 

Applied to u-boot-marvell/master

Thanks,
Stefan