Linux-Amlogic Archive on lore.kernel.org
 help / Atom feed
* [PATCH 1/2] dt-bindings: arm: amlogic: add amediatech x96-max bindings
@ 2018-12-19  0:26 Kevin Hilman
  2018-12-19  0:26 ` [PATCH 2/2] arm64: dts: meson: add g12a x96 max board Kevin Hilman
  2018-12-20  5:38 ` [PATCH 1/2] dt-bindings: arm: amlogic: add amediatech x96-max bindings Chris Moore
  0 siblings, 2 replies; 9+ messages in thread
From: Kevin Hilman @ 2018-12-19  0:26 UTC (permalink / raw)
  To: linux-amlogic; +Cc: devicetree, linux-arm-kernel

Add new vendor for amediatech, and initial board: x96-max

Signed-off-by: Kevin Hilman <khilman@baylibre.com>
---
 Documentation/devicetree/bindings/arm/amlogic.txt     | 1 +
 Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
 2 files changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/amlogic.txt b/Documentation/devicetree/bindings/arm/amlogic.txt
index 8dbc259081e4..c50b084b6c59 100644
--- a/Documentation/devicetree/bindings/arm/amlogic.txt
+++ b/Documentation/devicetree/bindings/arm/amlogic.txt
@@ -99,6 +99,7 @@ Board compatible values (alphabetically, grouped by SoC):
   - "amlogic,p281" (Meson gxl s905w)
   - "oranth,tx3-mini" (Meson gxl s905w)
 
+  - "amediatech,x96-max" (Meson gxm s912)
   - "amlogic,q200" (Meson gxm s912)
   - "amlogic,q201" (Meson gxm s912)
   - "khadas,vim2" (Meson gxm s912)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 8c413d8cc2a5..c1bb0c220429 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -24,6 +24,7 @@ amarula	Amarula Solutions
 amazon	Amazon.com, Inc.
 amcc	Applied Micro Circuits Corporation (APM, formally AMCC)
 amd	Advanced Micro Devices (AMD), Inc.
+amediatech	Shenzhen Amediatech Technology Co., Ltd
 amlogic	Amlogic, Inc.
 ampire	Ampire Co., Ltd.
 ams	AMS AG
-- 
2.19.2


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 2/2] arm64: dts: meson: add g12a x96 max board
  2018-12-19  0:26 [PATCH 1/2] dt-bindings: arm: amlogic: add amediatech x96-max bindings Kevin Hilman
@ 2018-12-19  0:26 ` Kevin Hilman
  2018-12-19 16:13   ` Peter Korsgaard
  2018-12-22 16:57   ` Martin Blumenstingl
  2018-12-20  5:38 ` [PATCH 1/2] dt-bindings: arm: amlogic: add amediatech x96-max bindings Chris Moore
  1 sibling, 2 replies; 9+ messages in thread
From: Kevin Hilman @ 2018-12-19  0:26 UTC (permalink / raw)
  To: linux-amlogic; +Cc: Martin Blumenstingl, devicetree, linux-arm-kernel

Add the G12a (S905X2) based X96 Max board[1].

There is no branding for the manufacturer anywhere on the product, so it
took some digging to find the manufacturer.  But since there's nothing
about the maker on the product I've left it out of the DT name because
1) nobody will no that name and 2) keeps the DT filename shorter.

[1] https://www.cnx-software.com/2018/09/25/x96-max-amlogic-s905x2-tv-box/

Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
---
Special thanks to Martin Blumenstingl for extra digging for the manufacturer

 .../boot/dts/amlogic/meson-g12a-x96-max.dts   | 28 +++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts

diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
new file mode 100644
index 000000000000..fe94765b671e
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2018 Amlogic, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "meson-g12a.dtsi"
+
+/ {
+	compatible = "amediatech,x96-max", "amlogic,u200", "amlogic,g12a";
+	model = "Shenzhen Amediatech Technology Co., Ltd X96 Max";
+
+	aliases {
+		serial0 = &uart_AO;
+	};
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+	memory@0 {
+		device_type = "memory";
+		reg = <0x0 0x0 0x0 0x40000000>;
+	};
+};
+
+&uart_AO {
+	status = "okay";
+};
-- 
2.19.2


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] arm64: dts: meson: add g12a x96 max board
  2018-12-19  0:26 ` [PATCH 2/2] arm64: dts: meson: add g12a x96 max board Kevin Hilman
@ 2018-12-19 16:13   ` Peter Korsgaard
  2018-12-19 23:31     ` Kevin Hilman
  2018-12-22 16:57   ` Martin Blumenstingl
  1 sibling, 1 reply; 9+ messages in thread
From: Peter Korsgaard @ 2018-12-19 16:13 UTC (permalink / raw)
  To: Kevin Hilman
  Cc: Martin Blumenstingl, linux-amlogic, linux-arm-kernel, devicetree

>>>>> "Kevin" == Kevin Hilman <khilman@baylibre.com> writes:

 > Add the G12a (S905X2) based X96 Max board[1].
 > There is no branding for the manufacturer anywhere on the product, so it
 > took some digging to find the manufacturer.  But since there's nothing
 > about the maker on the product I've left it out of the DT name because
 > 1) nobody will no that name and 2) keeps the DT filename shorter.

s/no/know/


 > [1] https://www.cnx-software.com/2018/09/25/x96-max-amlogic-s905x2-tv-box/

 > Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
 > Signed-off-by: Kevin Hilman <khilman@baylibre.com>
 > ---
 > Special thanks to Martin Blumenstingl for extra digging for the manufacturer

 >  .../boot/dts/amlogic/meson-g12a-x96-max.dts   | 28 +++++++++++++++++++
 >  1 file changed, 28 insertions(+)
 >  create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts

 > diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
 > b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
 > new file mode 100644
 > index 000000000000..fe94765b671e
 > --- /dev/null
 > +++ b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
 > @@ -0,0 +1,28 @@
 > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 > +/*
 > + * Copyright (c) 2018 Amlogic, Inc. All rights reserved.

Amlogic? Shouldn't that be Baylibre?

-- 
Bye, Peter Korsgaard

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] arm64: dts: meson: add g12a x96 max board
  2018-12-19 16:13   ` Peter Korsgaard
@ 2018-12-19 23:31     ` Kevin Hilman
  0 siblings, 0 replies; 9+ messages in thread
From: Kevin Hilman @ 2018-12-19 23:31 UTC (permalink / raw)
  To: Peter Korsgaard
  Cc: Martin Blumenstingl, linux-amlogic, linux-arm-kernel, devicetree

Peter Korsgaard <peter@korsgaard.com> writes:

>>>>>> "Kevin" == Kevin Hilman <khilman@baylibre.com> writes:
>
>  > Add the G12a (S905X2) based X96 Max board[1].
>  > There is no branding for the manufacturer anywhere on the product, so it
>  > took some digging to find the manufacturer.  But since there's nothing
>  > about the maker on the product I've left it out of the DT name because
>  > 1) nobody will no that name and 2) keeps the DT filename shorter.
>
> s/no/know/

Thanks.

>  > [1] https://www.cnx-software.com/2018/09/25/x96-max-amlogic-s905x2-tv-box/
>
>  > Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
>  > Signed-off-by: Kevin Hilman <khilman@baylibre.com>
>  > ---
>  > Special thanks to Martin Blumenstingl for extra digging for the manufacturer
>
>  >  .../boot/dts/amlogic/meson-g12a-x96-max.dts   | 28 +++++++++++++++++++
>  >  1 file changed, 28 insertions(+)
>  >  create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
>
>  > diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
>  > b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
>  > new file mode 100644
>  > index 000000000000..fe94765b671e
>  > --- /dev/null
>  > +++ b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
>  > @@ -0,0 +1,28 @@
>  > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>  > +/*
>  > + * Copyright (c) 2018 Amlogic, Inc. All rights reserved.
>
> Amlogic? Shouldn't that be Baylibre?

Yes.

Thanks for the review,

Kevin

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] dt-bindings: arm: amlogic: add amediatech x96-max bindings
  2018-12-19  0:26 [PATCH 1/2] dt-bindings: arm: amlogic: add amediatech x96-max bindings Kevin Hilman
  2018-12-19  0:26 ` [PATCH 2/2] arm64: dts: meson: add g12a x96 max board Kevin Hilman
@ 2018-12-20  5:38 ` Chris Moore
  1 sibling, 0 replies; 9+ messages in thread
From: Chris Moore @ 2018-12-20  5:38 UTC (permalink / raw)
  To: Kevin Hilman, linux-amlogic; +Cc: devicetree, linux-arm-kernel

Hi,

Le 19/12/2018 à 01:26, Kevin Hilman a écrit :
> Add new vendor for amediatech, and initial board: x96-max
>
> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
> ---
>   Documentation/devicetree/bindings/arm/amlogic.txt     | 1 +
>   Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
>   2 files changed, 2 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/arm/amlogic.txt b/Documentation/devicetree/bindings/arm/amlogic.txt
> index 8dbc259081e4..c50b084b6c59 100644
> --- a/Documentation/devicetree/bindings/arm/amlogic.txt
> +++ b/Documentation/devicetree/bindings/arm/amlogic.txt
> @@ -99,6 +99,7 @@ Board compatible values (alphabetically, grouped by SoC):
>     - "amlogic,p281" (Meson gxl s905w)
>     - "oranth,tx3-mini" (Meson gxl s905w)
>   
> +  - "amediatech,x96-max" (Meson gxm s912)
>

Shouldn't that be Meson g12a s905x2 ?

Cheers,
Chris


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] arm64: dts: meson: add g12a x96 max board
  2018-12-19  0:26 ` [PATCH 2/2] arm64: dts: meson: add g12a x96 max board Kevin Hilman
  2018-12-19 16:13   ` Peter Korsgaard
@ 2018-12-22 16:57   ` Martin Blumenstingl
  2019-01-08 22:32     ` Martin Blumenstingl
  1 sibling, 1 reply; 9+ messages in thread
From: Martin Blumenstingl @ 2018-12-22 16:57 UTC (permalink / raw)
  To: Kevin Hilman; +Cc: linux-amlogic, linux-arm-kernel, devicetree

Hi Kevin,

On Wed, Dec 19, 2018 at 1:26 AM Kevin Hilman <khilman@baylibre.com> wrote:
>
> Add the G12a (S905X2) based X96 Max board[1].
>
> There is no branding for the manufacturer anywhere on the product, so it
> took some digging to find the manufacturer.  But since there's nothing
> about the maker on the product I've left it out of the DT name because
> 1) nobody will no that name and 2) keeps the DT filename shorter.
based on the cnx-soft article and my own board I would add the
following section:
-----
There are three variants of this device:
- 2GB LPDDR4, 16GB flash, 2.4G WiFi, 100M Ethernet
- 4GB LPDDR4, 32GB flash, dual band AC WiFi, Bluetooth 4.x, Gigabit Ethernet
- 4GB LPDDR4, 64GB flash, dual band  AC WiFi, Bluetooth 4.x, Gigabit Ethernet

Presumably the 4GB variants are identical except for the eMMC chip.

This patch is tested on the 4GB LPDDR4 32GB eMMC variant.
The WiFi / Bluetooth chip is an AP6356S. The Ethernet PHY is a Realtek RTL8211F.
-----

While writing this a question came up:
should we rename the board if there's a variant using the internal 100M PHY?
for example: "meson-g12a-x96-max-gbit"
this will allow us to add a "meson-g12a-x96-max-100m" (or any better
name) later on

> [1] https://www.cnx-software.com/2018/09/25/x96-max-amlogic-s905x2-tv-box/
>
> Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
(with the Makefile adjustments, see below)

> ---
> Special thanks to Martin Blumenstingl for extra digging for the manufacturer
>
>  .../boot/dts/amlogic/meson-g12a-x96-max.dts   | 28 +++++++++++++++++++
>  1 file changed, 28 insertions(+)
it doesn't build the .dtb for me without adding the board to
arch/arm64/boot/dts/amlogic/Makefile

>  create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
>
> diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
> new file mode 100644
> index 000000000000..fe94765b671e
> --- /dev/null
> +++ b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
> @@ -0,0 +1,28 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2018 Amlogic, Inc. All rights reserved.
> + */
> +
> +/dts-v1/;
> +
> +#include "meson-g12a.dtsi"
> +
> +/ {
> +       compatible = "amediatech,x96-max", "amlogic,u200", "amlogic,g12a";
did you leave the u200 compatible in there on purpose?

> +       model = "Shenzhen Amediatech Technology Co., Ltd X96 Max";
> +
> +       aliases {
> +               serial0 = &uart_AO;
> +       };
> +       chosen {
> +               stdout-path = "serial0:115200n8";
> +       };
> +       memory@0 {
> +               device_type = "memory";
> +               reg = <0x0 0x0 0x0 0x40000000>;
according to that cnx-soft report the smalles RAM size is 2GiB
however the bootloader will update it anyways so I believe this is fine


Regards
Martin

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] arm64: dts: meson: add g12a x96 max board
  2018-12-22 16:57   ` Martin Blumenstingl
@ 2019-01-08 22:32     ` Martin Blumenstingl
       [not found]       ` <CACdvmAg3=GmcLOKJ33K6aGks7DRnityd4KiU30qwCb-YWz_EPA@mail.gmail.com>
  0 siblings, 1 reply; 9+ messages in thread
From: Martin Blumenstingl @ 2019-01-08 22:32 UTC (permalink / raw)
  To: Kevin Hilman; +Cc: linux-amlogic, linux-arm-kernel, devicetree

Hi Kevin,

On Sat, Dec 22, 2018 at 5:57 PM Martin Blumenstingl
<martin.blumenstingl@googlemail.com> wrote:
>
> Hi Kevin,
>
> On Wed, Dec 19, 2018 at 1:26 AM Kevin Hilman <khilman@baylibre.com> wrote:
> >
> > Add the G12a (S905X2) based X96 Max board[1].
> >
> > There is no branding for the manufacturer anywhere on the product, so it
> > took some digging to find the manufacturer.  But since there's nothing
> > about the maker on the product I've left it out of the DT name because
> > 1) nobody will no that name and 2) keeps the DT filename shorter.
> based on the cnx-soft article and my own board I would add the
> following section:
> -----
> There are three variants of this device:
I had a chat with Chris Moore (who replied on the dt-bindings patch).

> - 2GB LPDDR4, 16GB flash, 2.4G WiFi, 100M Ethernet
> - 4GB LPDDR4, 32GB flash, dual band AC WiFi, Bluetooth 4.x, Gigabit Ethernet
I have the 4GB LPDDR4, 32G flash variant which uses:
RAM: SpecTek LPDDR4 (chip markings: PS082-062 BT / on the side it says R5JH)
eMMC: Micron (chip markings: 8FAI8 SJJML / on the side it says JXML ->
this might be "MTFC32GAKAECN-AIT")
WiFi: Ampak AP6356S

> - 4GB LPDDR4, 64GB flash, dual band  AC WiFi, Bluetooth 4.x, Gigabit Ethernet
Chris has the 4GB LPDDR4, 64GB flash variant.
RAM: same as on mine
eMMC: Samsung KLMCG4JENB-B041
WiFi: same as on mine


Regards
Martin

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] arm64: dts: meson: add g12a x96 max board
       [not found]       ` <CACdvmAg3=GmcLOKJ33K6aGks7DRnityd4KiU30qwCb-YWz_EPA@mail.gmail.com>
@ 2019-01-09 22:22         ` Martin Blumenstingl
       [not found]           ` <CACdvmAhi92uLcBfzoJeqkC94np8t7wg7ivb3dz11cTvAO5D60w@mail.gmail.com>
  0 siblings, 1 reply; 9+ messages in thread
From: Martin Blumenstingl @ 2019-01-09 22:22 UTC (permalink / raw)
  To: Da Xue; +Cc: Kevin Hilman, devicetree, linux-arm-kernel, linux-amlogic

Hi,

On Wed, Jan 9, 2019 at 1:11 AM Da Xue <da@lessconfused.com> wrote:
>
> I would be careful about adding TV boxes from unknown manufacturers in China. The manufacturer can and will change part numbers willy nilly and cause a ton of confusion. They are assembled with the cheapest part at the time so the DDR, WiFi module, eMMC, and even PCB will change without warning.
this is why I sent an update with the actual hardware which was
available for testing at the time this patch written / tested.

do you have any suggestion how to add support for this device while
being prepare for future changes?


Regards
Martin

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] arm64: dts: meson: add g12a x96 max board
       [not found]           ` <CACdvmAhi92uLcBfzoJeqkC94np8t7wg7ivb3dz11cTvAO5D60w@mail.gmail.com>
@ 2019-01-17 19:55             ` Martin Blumenstingl
  0 siblings, 0 replies; 9+ messages in thread
From: Martin Blumenstingl @ 2019-01-17 19:55 UTC (permalink / raw)
  To: Da Xue; +Cc: Kevin Hilman, devicetree, linux-arm-kernel, linux-amlogic

On Thu, Jan 10, 2019 at 7:54 PM Da Xue <da@lessconfused.com> wrote:
>
> Hi,
>
> To be on the safe side, I would add the PCB revision number and WiFi module name.
my PCB states: Q5X2 V3.0 18393

> Most of the WiFi modules are from Fn link so simply denoting the AP6356S may be sufficient to distinguish future PCB revisions and wireless modules.
our .dtbs mostly don't care about the WiFi chip (because it can be
auto-detected using the SDIO ID).
however, Bluetooth support on these modules is different because a
different WiFi / Bluetooth combo chip manufacturer also means
different dt-bindings

regarding the .dts name so far we have:
- meson-g12a-x96-max.dts
and your suggestions:
- meson-g12a-x96-max-ap6356s.dts
- meson-g12a-x96-max-3.0-ap6356s.dts


Regards
Martin

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, back to index

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-19  0:26 [PATCH 1/2] dt-bindings: arm: amlogic: add amediatech x96-max bindings Kevin Hilman
2018-12-19  0:26 ` [PATCH 2/2] arm64: dts: meson: add g12a x96 max board Kevin Hilman
2018-12-19 16:13   ` Peter Korsgaard
2018-12-19 23:31     ` Kevin Hilman
2018-12-22 16:57   ` Martin Blumenstingl
2019-01-08 22:32     ` Martin Blumenstingl
     [not found]       ` <CACdvmAg3=GmcLOKJ33K6aGks7DRnityd4KiU30qwCb-YWz_EPA@mail.gmail.com>
2019-01-09 22:22         ` Martin Blumenstingl
     [not found]           ` <CACdvmAhi92uLcBfzoJeqkC94np8t7wg7ivb3dz11cTvAO5D60w@mail.gmail.com>
2019-01-17 19:55             ` Martin Blumenstingl
2018-12-20  5:38 ` [PATCH 1/2] dt-bindings: arm: amlogic: add amediatech x96-max bindings Chris Moore

Linux-Amlogic Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-amlogic/0 linux-amlogic/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-amlogic linux-amlogic/ https://lore.kernel.org/linux-amlogic \
		linux-amlogic@lists.infradead.org linux-amlogic@archiver.kernel.org
	public-inbox-index linux-amlogic


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.infradead.lists.linux-amlogic


AGPL code for this site: git clone https://public-inbox.org/ public-inbox