From 5a64deec9ad74c551ba6c1ea7c3724ac7a8d45db Mon Sep 17 00:00:00 2001
From: Sven Eckelmann <sven@narfation.org>
Date: Sun, 10 Oct 2021 17:22:11 +0200
Subject: [PATCH] ath79-generic: Add support for OpenMesh OM2P v2

Device specifications:
======================

* Qualcomm/Atheros AR9330 rev 1
* 400/400/200 MHz (CPU/DDR/AHB)
* 64 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2x 10/100 Mbps Ethernet
* 1T1R 2.4 GHz Wi-Fi
* 6x GPIO-LEDs (3x wifi, 2x ethernet, 1x power)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default)
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x fast ethernet
  - eth0
    + builtin switch port 1
    + used as LAN interface
  - eth1
    + 18-24V passive POE (mode B)
    + used as WAN interface
* 12-24V 1A DC
* external antenna

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

    setenv serverip 192.168.1.21
    setenv ipaddr 192.168.1.1
    tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to
the device via

    scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

    sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Gluon image name change
=======================

The device had the image name "openmesh-om2pv2" in older versions of Gluon.
This had to be changed with the new name in the device trees of the ath79
device tree.
---
 docs/user/supported_devices.rst |  2 +-
 targets/ath79-generic           | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/docs/user/supported_devices.rst b/docs/user/supported_devices.rst
index 9748822c..ae4c7f87 100644
--- a/docs/user/supported_devices.rst
+++ b/docs/user/supported_devices.rst
@@ -40,7 +40,7 @@ ath79-generic
   - MR600 (v1, v2)
   - MR900 (v1, v2)
   - MR1750 (v1, v2)
-  - OM2P (v1)
+  - OM2P (v1, v2)
 
 * Plasma Cloud
 
diff --git a/targets/ath79-generic b/targets/ath79-generic
index 7be977df..5dc188e5 100644
--- a/targets/ath79-generic
+++ b/targets/ath79-generic
@@ -145,6 +145,16 @@ device('openmesh-om2p-v1', 'openmesh_om2p-v1', {
 	manifest_aliases = {'openmesh-om2p'},
 })
 
+device('openmesh-om2p-v2', 'openmesh_om2p-v2', {
+	factory = false,
+	-- old name from OpenWrt 19.07.x; deacticated at the moment because
+	-- the physical ethernet port for this device changed between 19.07
+	-- and 21.02. And automated update could therefore "break" the
+	-- device until someone physically changed the ethernet cable.
+	-- See https://github.com/freifunk-gluon/gluon/pull/2325#issuecomment-940749284
+	--manifest_aliases = {'openmesh-om2pv2'},
+})
+
 
 -- Plasma Cloud
 
-- 
GitLab