arm: mvebu: turris_omnia: Allow to configure mSATA slot via env variable
authorPali Rohár <pali@kernel.org>
Wed, 2 Mar 2022 11:47:55 +0000 (12:47 +0100)
committerStefan Roese <sr@denx.de>
Mon, 2 May 2022 05:28:25 +0000 (07:28 +0200)
commit1da19dcf3b08db266043960f721d34d13ccc221c
tree7d82492bec11a50c81519e5008b89f170f2b4acd
parent8ead243ecc2c5073cff3bd9dfb4c4fcab8c2a94a
arm: mvebu: turris_omnia: Allow to configure mSATA slot via env variable

Some PCIe-based MiniPCIe cards are broken and they do not ground PIN 43
which is required by PCIe mini CEM specs. Such broken cards are incorrectly
detected as mSATA cards because SATA specs requires that PIN 43 on mSATA
cards has to be disconnected.

PIN 43 on Turris Omnia is used only for MiniPCIe/mSATA card detection by
software in U-Boot SPL. Allow to override that U-Boot SPL detection by a
new "omnia_msata_slot" env variable (to value "pcie" or "sata") so broken
MiniPCIe cards can be used in combo mSATA/MiniPCIe slot too.

As configuration of PCIe vs SATA functionality is done in U-Boot SPL,
it is required to change env variable in permanent storage and reset the
board to take effect.

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

  => setenv omnia_msata_slot pcie
  => saveenv
  => reset

Signed-off-by: Pali Rohár <pali@kernel.org>
board/CZ.NIC/turris_omnia/turris_omnia.c