From 0fcd37172f22a55fecd5ae6752fc18218b88a8f3 Mon Sep 17 00:00:00 2001
From: Maxim Polyakov <max.senia.poliak@gmail.com>
Date: Sat, 20 Jun 2020 17:26:21 +0300
Subject: mb/kontron: Add Kontron mAL10 COMe module support

This patch adds support for the Kontron mAL10 COMe module with the
Apollo Lake SoC together with Kontron T10-TNI carrierboard.

Working:
  - UART console and I2C on Kontron kempld;
  - USB2/3
  - Ethernet controller
  - eMMC
  - SATA
  - PCIe ports
  - IGD/DP
  - SMBus
  - HWM

Not tested:
  - IGD/LVDS
  - SDIO

TODO:
  - HDA (codec IDT 92HD73C1X5, currently disabled)

Tested payloads:
  - SeaBIOS
  - Tianocore, UEFIPayload - without video, EFI-shell in console only

Tested on COMe module with Intel Atom x5-E3940 processor (4 Core,
1.6/1.8GHz, 9.5W TDP). Xubuntu 18.04.2 was used as a bootable OS
(5.0.0-32-generic linux kernel)

Change-Id: Ib8432e10396f77eb05a71af1ccaaa4437a2e43ea
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/39133
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
---
 Documentation/mainboard/kontron/mal10.md | 106 +++++++++++++++++++++++++++++++
 1 file changed, 106 insertions(+)
 create mode 100644 Documentation/mainboard/kontron/mal10.md

(limited to 'Documentation/mainboard/kontron')

diff --git a/Documentation/mainboard/kontron/mal10.md b/Documentation/mainboard/kontron/mal10.md
new file mode 100644
index 0000000000..b2eefc3df2
--- /dev/null
+++ b/Documentation/mainboard/kontron/mal10.md
@@ -0,0 +1,106 @@
+# Kontron mAL10 Computer-on-Modules platform
+
+The Kontron [mAL10] COMe is a credit card sized Computer-on-Modules
+platform based on the Intel Atom E3900 Series, Pentium and Celeron
+processors.
+
+## Technology
+
+```eval_rst
++------------------+----------------------------------+
+| COMe Type        | mini pin-out type 10             |
++------------------+----------------------------------+
+| SoC              | Intel Atom x5-E3940 (4 core)     |
++------------------+----------------------------------+
+| GPU              | Intel HD Graphics 500            |
++------------------+----------------------------------+
+| Coprocessor      | Intel TXE 3.0                    |
++------------------+----------------------------------+
+| RAM              | 8GB DDR3L                        |
++------------------+----------------------------------+
+| eMMC Flash       | 32GB eMMC pSLC                   |
++------------------+----------------------------------+
+| USB3             | x2                               |
++------------------+----------------------------------+
+| USB2             | x6                               |
++------------------+----------------------------------+
+| SATA             | x2                               |
++------------------+----------------------------------+
+| LAN              | Intel I210IT, I211AT             |
++------------------+----------------------------------+
+| Super IO/EC      | Kontron CPLD/EC                  |
++------------------+----------------------------------+
+| HWM              | NCT7802                          |
++------------------+----------------------------------+
+```
+
+## Building coreboot
+
+The following commands will build a working image:
+
+```bash
+make distclean
+make defconfig KBUILD_DEFCONFIG=configs/config.kontron_mal10
+make
+```
+## Payloads
+- SeaBIOS
+- Tianocore
+- Linux as payload
+
+## Flashing coreboot
+
+The SPI flash can be accessed internally using [flashrom].
+The following command is used to flash BIOS region.
+
+```bash
+$ flashrom -p internal --ifd -i bios -w coreboot.rom --noverify-all
+```
+
+## Hardware Monitor
+
+The Nuvoton [NCT7802Y] is a hardware monitoring IC, capable of monitor critical
+system parameters including power supply voltages, fan speeds, and temperatures.
+The remote inputs can be connected to CPU/GPU thermal diode or any thermal diode
+sensors and thermistor.
+
+- 6 temperature sensors;
+- 5 voltage sensors;
+- 3 fan speed sensors;
+- 4 sets of temperature setting points.
+
+PECI is not supported by Apollo Lake Pentium/Celeron/Atom processors and the CPU
+temperature value is taken from a thermal resistor (NTC) that is placed very
+close to the CPU.
+
+## Known issues
+
+- Works only with Tianocore "UEFIPayload" payload edk2-stable201903-1569-g3e63a91
+  Booting with the "CorebootPayload" [crashes].
+- Tianocore outputs video through an external GPU only.
+
+## Untested
+
+- IGD/LVDS
+- SDIO
+
+## Tested and working
+
+- Kontron CPLD/EC (Serial ports, I2C port)
+- NCT7802 [HWM](#Hardware Monitor)
+- USB2/3
+- Gigabit Ethernet ports
+- eMMC
+- SATA
+- PCIe ports
+- IGD/DP
+
+## TODO
+- Onboard audio (codec IDT 92HD73C1X5, currently disabled)
+- S3 suspend/resume
+
+[mAL10]: https://www.kontron.com/products/iot/iot-industry-4.0/iot-ready-boards-and-modules/com-express/com-express-mini/come-mal10-e2-.html
+[W25Q128FV]: https://www.winbond.com/resource-files/w25q128fv%20rev.m%2005132016%20kms.pdf
+[flashrom]: https://flashrom.org/Flashrom
+[NCT7802Y]: https://www.nuvoton.com/products/cloud-computing/hardware-monitors/desktop-server-series/nct7802y/?__locale=en
+[crashes]: https://pastebin.com/cpCfrPCL
-- 
cgit v1.2.3