* [PATCH v3.1 0/3] soc: amlogic: Add Amlogic SoC Information driver @ 2017-06-23 8:28 Neil Armstrong 2017-06-23 8:28 ` [PATCH v3.1 1/3] dt-bindings: arm: amlogic: Add SoC information bindings Neil Armstrong ` (3 more replies) 0 siblings, 4 replies; 7+ messages in thread From: Neil Armstrong @ 2017-06-23 8:28 UTC (permalink / raw) To: khilman, carlo Cc: Neil Armstrong, linux-amlogic, linux-arm-kernel, linux-kernel Amlogic SoCs have a SoC information register for SoC type, package type and revision information. This patchset adds support for this register decoding and exposing with the SoC bus infrastructure, with dt-bindings and DT node. Changes since v3.1 at [3] : - Prepend amlogic to has-chip-id property Changes since v2 at [2] : - Removed subnodes of socinfo node - Checks has-chip-id property and if node is enabled Changes since v1 at [1] : - Switch DT representation to use regmap ans sub-node of a simple-mfd node - Updated DT, bindings and driver accordingly [1] http://lkml.kernel.org/r/1490950079-10145-1-git-send-email-narmstrong@baylibre.com [2] http://lkml.kernel.org/r/1496742340-10307-1-git-send-email-narmstrong@baylibre.com [3] http://lkml.kernel.org/r/1497441946-24379-1-git-send-email-narmstrong@baylibre.com Neil Armstrong (3): dt-bindings: arm: amlogic: Add SoC information bindings ARM64: dts: meson-gx: Add SoC info register soc: Add Amlogic SoC Information driver Documentation/devicetree/bindings/arm/amlogic.txt | 29 ++++ arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 + drivers/soc/Kconfig | 1 + drivers/soc/Makefile | 1 + drivers/soc/amlogic/Kconfig | 12 ++ drivers/soc/amlogic/Makefile | 1 + drivers/soc/amlogic/meson-gx-socinfo.c | 177 ++++++++++++++++++++++ 7 files changed, 227 insertions(+) create mode 100644 drivers/soc/amlogic/Kconfig create mode 100644 drivers/soc/amlogic/Makefile create mode 100644 drivers/soc/amlogic/meson-gx-socinfo.c -- 1.9.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3.1 1/3] dt-bindings: arm: amlogic: Add SoC information bindings 2017-06-23 8:28 [PATCH v3.1 0/3] soc: amlogic: Add Amlogic SoC Information driver Neil Armstrong @ 2017-06-23 8:28 ` Neil Armstrong 2017-06-23 8:28 ` [PATCH v3.1 2/3] ARM64: dts: meson-gx: Add SoC info register Neil Armstrong ` (2 subsequent siblings) 3 siblings, 0 replies; 7+ messages in thread From: Neil Armstrong @ 2017-06-23 8:28 UTC (permalink / raw) To: khilman, carlo Cc: Neil Armstrong, linux-amlogic, linux-arm-kernel, linux-kernel, devicetree Add bindings for the SoC information register of the Amlogic SoCs. Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> --- Documentation/devicetree/bindings/arm/amlogic.txt | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.txt b/Documentation/devicetree/bindings/arm/amlogic.txt index 5c01e65..eecb4084 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.txt +++ b/Documentation/devicetree/bindings/arm/amlogic.txt @@ -60,3 +60,32 @@ Board compatible values (alphabetically, grouped by SoC): - "amlogic,q201" (Meson gxm s912) - "kingnovel,r-box-pro" (Meson gxm S912) - "nexbox,a1" (Meson gxm s912) + +Amlogic Meson Firmware registers Interface +------------------------------------------ + +The Meson SoCs have a register bank with status and data shared with the +secure firmware. + +Required properties: + - compatible: For Meson GX SoCs, must be "amlogic,meson-gx-ao-secure", "syscon" + +Properties should indentify components of this register interface : + +Meson GX SoC Information +------------------------ +A firmware register encodes the SoC type, package and revision information on +the Meson GX SoCs. +If present, the following property should be added : + +Optional properties: + - amlogic,has-chip-id: If present, the interface gives the current SoC version. + +Example +------- + +ao-secure@140 { + compatible = "amlogic,meson-gx-ao-secure", "syscon"; + reg = <0x0 0x140 0x0 0x140>; + amlogic,has-chip-id; +}; -- 1.9.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3.1 2/3] ARM64: dts: meson-gx: Add SoC info register 2017-06-23 8:28 [PATCH v3.1 0/3] soc: amlogic: Add Amlogic SoC Information driver Neil Armstrong 2017-06-23 8:28 ` [PATCH v3.1 1/3] dt-bindings: arm: amlogic: Add SoC information bindings Neil Armstrong @ 2017-06-23 8:28 ` Neil Armstrong 2017-06-23 8:28 ` [PATCH v3.1 3/3] soc: Add Amlogic SoC Information driver Neil Armstrong 2017-07-12 19:03 ` [PATCH v3.1 0/3] soc: amlogic: " Martin Blumenstingl 3 siblings, 0 replies; 7+ messages in thread From: Neil Armstrong @ 2017-06-23 8:28 UTC (permalink / raw) To: khilman, carlo Cc: Neil Armstrong, linux-amlogic, linux-arm-kernel, linux-kernel, devicetree Add node for the Amlogic Meson GX SoC information register. Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> --- arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi index 603491d..b74935e 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi @@ -365,6 +365,12 @@ #reset-cells = <1>; }; + sec_AO: ao-secure@140 { + compatible = "amlogic,meson-gx-ao-secure", "syscon"; + reg = <0x0 0x140 0x0 0x140>; + amlogic,has-chip-id; + }; + uart_AO: serial@4c0 { compatible = "amlogic,meson-uart"; reg = <0x0 0x004c0 0x0 0x14>; -- 1.9.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3.1 3/3] soc: Add Amlogic SoC Information driver 2017-06-23 8:28 [PATCH v3.1 0/3] soc: amlogic: Add Amlogic SoC Information driver Neil Armstrong 2017-06-23 8:28 ` [PATCH v3.1 1/3] dt-bindings: arm: amlogic: Add SoC information bindings Neil Armstrong 2017-06-23 8:28 ` [PATCH v3.1 2/3] ARM64: dts: meson-gx: Add SoC info register Neil Armstrong @ 2017-06-23 8:28 ` Neil Armstrong 2017-07-12 19:03 ` [PATCH v3.1 0/3] soc: amlogic: " Martin Blumenstingl 3 siblings, 0 replies; 7+ messages in thread From: Neil Armstrong @ 2017-06-23 8:28 UTC (permalink / raw) To: khilman, carlo Cc: Neil Armstrong, linux-amlogic, linux-arm-kernel, linux-kernel Amlogic SoCs have a SoC information register for SoC type, package type and revision information. This patchs adds support for this register decoding and exposing with the SoC bus infrastructure. Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> --- drivers/soc/Kconfig | 1 + drivers/soc/Makefile | 1 + drivers/soc/amlogic/Kconfig | 12 +++ drivers/soc/amlogic/Makefile | 1 + drivers/soc/amlogic/meson-gx-socinfo.c | 177 +++++++++++++++++++++++++++++++++ 5 files changed, 192 insertions(+) create mode 100644 drivers/soc/amlogic/Kconfig create mode 100644 drivers/soc/amlogic/Makefile create mode 100644 drivers/soc/amlogic/meson-gx-socinfo.c diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig index 309643f..95416a4 100644 --- a/drivers/soc/Kconfig +++ b/drivers/soc/Kconfig @@ -1,5 +1,6 @@ menu "SOC (System On Chip) specific Drivers" +source "drivers/soc/amlogic/Kconfig" source "drivers/soc/atmel/Kconfig" source "drivers/soc/bcm/Kconfig" source "drivers/soc/fsl/Kconfig" diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile index 824b442..4fc957e 100644 --- a/drivers/soc/Makefile +++ b/drivers/soc/Makefile @@ -9,6 +9,7 @@ obj-$(CONFIG_MACH_DOVE) += dove/ obj-y += fsl/ obj-$(CONFIG_ARCH_MXC) += imx/ obj-$(CONFIG_ARCH_MEDIATEK) += mediatek/ +obj-$(CONFIG_ARCH_MESON) += amlogic/ obj-$(CONFIG_ARCH_QCOM) += qcom/ obj-$(CONFIG_ARCH_RENESAS) += renesas/ obj-$(CONFIG_ARCH_ROCKCHIP) += rockchip/ diff --git a/drivers/soc/amlogic/Kconfig b/drivers/soc/amlogic/Kconfig new file mode 100644 index 0000000..22acf06 --- /dev/null +++ b/drivers/soc/amlogic/Kconfig @@ -0,0 +1,12 @@ +menu "Amlogic SoC drivers" + +config MESON_GX_SOCINFO + bool "Amlogic Meson GX SoC Information driver" + depends on ARCH_MESON || COMPILE_TEST + default ARCH_MESON + select SOC_BUS + help + Say yes to support decoding of Amlogic Meson GX SoC family + information about the type, package and version. + +endmenu diff --git a/drivers/soc/amlogic/Makefile b/drivers/soc/amlogic/Makefile new file mode 100644 index 0000000..3e85fc4 --- /dev/null +++ b/drivers/soc/amlogic/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_MESON_GX_SOCINFO) += meson-gx-socinfo.o diff --git a/drivers/soc/amlogic/meson-gx-socinfo.c b/drivers/soc/amlogic/meson-gx-socinfo.c new file mode 100644 index 0000000..89f4cf5 --- /dev/null +++ b/drivers/soc/amlogic/meson-gx-socinfo.c @@ -0,0 +1,177 @@ +/* + * Copyright (c) 2017 BayLibre, SAS + * Author: Neil Armstrong <narmstrong@baylibre.com> + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <linux/io.h> +#include <linux/of.h> +#include <linux/of_address.h> +#include <linux/of_platform.h> +#include <linux/platform_device.h> +#include <linux/slab.h> +#include <linux/sys_soc.h> +#include <linux/bitfield.h> +#include <linux/regmap.h> +#include <linux/mfd/syscon.h> + +#define AO_SEC_SD_CFG8 0xe0 +#define AO_SEC_SOCINFO_OFFSET AO_SEC_SD_CFG8 + +#define SOCINFO_MAJOR GENMASK(31, 24) +#define SOCINFO_MINOR GENMASK(23, 16) +#define SOCINFO_PACK GENMASK(15, 8) +#define SOCINFO_MISC GENMASK(7, 0) + +static const struct meson_gx_soc_id { + const char *name; + unsigned int id; +} soc_ids[] = { + { "GXBB", 0x1f }, + { "GXTVBB", 0x20 }, + { "GXL", 0x21 }, + { "GXM", 0x22 }, + { "TXL", 0x23 }, +}; + +static const struct meson_gx_package_id { + const char *name; + unsigned int major_id; + unsigned int pack_id; +} soc_packages[] = { + { "S905", 0x1f, 0 }, + { "S905M", 0x1f, 0x20 }, + { "S905D", 0x21, 0 }, + { "S905X", 0x21, 0x80 }, + { "S905L", 0x21, 0xc0 }, + { "S905M2", 0x21, 0xe0 }, + { "S912", 0x22, 0 }, +}; + +static inline unsigned int socinfo_to_major(u32 socinfo) +{ + return FIELD_GET(SOCINFO_MAJOR, socinfo); +} + +static inline unsigned int socinfo_to_minor(u32 socinfo) +{ + return FIELD_GET(SOCINFO_MINOR, socinfo); +} + +static inline unsigned int socinfo_to_pack(u32 socinfo) +{ + return FIELD_GET(SOCINFO_PACK, socinfo); +} + +static inline unsigned int socinfo_to_misc(u32 socinfo) +{ + return FIELD_GET(SOCINFO_MISC, socinfo); +} + +static const char *socinfo_to_package_id(u32 socinfo) +{ + unsigned int pack = socinfo_to_pack(socinfo) & 0xf0; + unsigned int major = socinfo_to_major(socinfo); + int i; + + for (i = 0 ; i < ARRAY_SIZE(soc_packages) ; ++i) { + if (soc_packages[i].major_id == major && + soc_packages[i].pack_id == pack) + return soc_packages[i].name; + } + + return "Unknown"; +} + +static const char *socinfo_to_soc_id(u32 socinfo) +{ + unsigned int id = socinfo_to_major(socinfo); + int i; + + for (i = 0 ; i < ARRAY_SIZE(soc_ids) ; ++i) { + if (soc_ids[i].id == id) + return soc_ids[i].name; + } + + return "Unknown"; +} + +int __init meson_gx_socinfo_init(void) +{ + struct soc_device_attribute *soc_dev_attr; + struct soc_device *soc_dev; + struct device_node *np; + struct regmap *regmap; + unsigned int socinfo; + struct device *dev; + int ret; + + /* look up for chipid node */ + np = of_find_compatible_node(NULL, NULL, "amlogic,meson-gx-ao-secure"); + if (!np) + return -ENODEV; + + /* check if interface is enabled */ + if (!of_device_is_available(np)) + return -ENODEV; + + /* check if chip-id is available */ + if (!of_property_read_bool(np, "amlogic,has-chip-id")) + return -ENODEV; + + /* node should be a syscon */ + regmap = syscon_node_to_regmap(np); + of_node_put(np); + if (IS_ERR(regmap)) { + pr_err("%s: failed to get regmap\n", __func__); + return -ENODEV; + } + + ret = regmap_read(regmap, AO_SEC_SOCINFO_OFFSET, &socinfo); + if (ret < 0) + return ret; + + if (!socinfo) { + pr_err("%s: invalid chipid value\n", __func__); + return -EINVAL; + } + + soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL); + if (!soc_dev_attr) + return -ENODEV; + + soc_dev_attr->family = "Amlogic Meson"; + + np = of_find_node_by_path("/"); + of_property_read_string(np, "model", &soc_dev_attr->machine); + of_node_put(np); + + soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%x:%x - %x:%x", + socinfo_to_major(socinfo), + socinfo_to_minor(socinfo), + socinfo_to_pack(socinfo), + socinfo_to_misc(socinfo)); + soc_dev_attr->soc_id = kasprintf(GFP_KERNEL, "%s (%s)", + socinfo_to_soc_id(socinfo), + socinfo_to_package_id(socinfo)); + + soc_dev = soc_device_register(soc_dev_attr); + if (IS_ERR(soc_dev)) { + kfree(soc_dev_attr->revision); + kfree_const(soc_dev_attr->soc_id); + kfree(soc_dev_attr); + return PTR_ERR(soc_dev); + } + dev = soc_device_to_device(soc_dev); + + dev_info(dev, "Amlogic Meson %s Revision %x:%x (%x:%x) Detected\n", + soc_dev_attr->soc_id, + socinfo_to_major(socinfo), + socinfo_to_minor(socinfo), + socinfo_to_pack(socinfo), + socinfo_to_misc(socinfo)); + + return 0; +} +device_initcall(meson_gx_socinfo_init); -- 1.9.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v3.1 0/3] soc: amlogic: Add Amlogic SoC Information driver 2017-06-23 8:28 [PATCH v3.1 0/3] soc: amlogic: Add Amlogic SoC Information driver Neil Armstrong ` (2 preceding siblings ...) 2017-06-23 8:28 ` [PATCH v3.1 3/3] soc: Add Amlogic SoC Information driver Neil Armstrong @ 2017-07-12 19:03 ` Martin Blumenstingl 2017-07-13 10:25 ` Neil Armstrong 3 siblings, 1 reply; 7+ messages in thread From: Martin Blumenstingl @ 2017-07-12 19:03 UTC (permalink / raw) To: khilman Cc: carlo, linux-amlogic, linux-kernel, linux-arm-kernel, Neil Armstrong Hi Kevin, On Fri, Jun 23, 2017 at 10:28 AM, Neil Armstrong <narmstrong@baylibre.com> wrote: > Amlogic SoCs have a SoC information register for SoC type, package type and > revision information. > This patchset adds support for this register decoding and exposing with the > SoC bus infrastructure, with dt-bindings and DT node. I'm curious: are you going to take this through your tree or are we waiting for someone's ACK here? > Changes since v3.1 at [3] : > - Prepend amlogic to has-chip-id property > > Changes since v2 at [2] : > - Removed subnodes of socinfo node > - Checks has-chip-id property and if node is enabled > > Changes since v1 at [1] : > - Switch DT representation to use regmap ans sub-node of a simple-mfd node > - Updated DT, bindings and driver accordingly > > [1] http://lkml.kernel.org/r/1490950079-10145-1-git-send-email-narmstrong@baylibre.com > [2] http://lkml.kernel.org/r/1496742340-10307-1-git-send-email-narmstrong@baylibre.com > [3] http://lkml.kernel.org/r/1497441946-24379-1-git-send-email-narmstrong@baylibre.com > > Neil Armstrong (3): > dt-bindings: arm: amlogic: Add SoC information bindings > ARM64: dts: meson-gx: Add SoC info register > soc: Add Amlogic SoC Information driver > > Documentation/devicetree/bindings/arm/amlogic.txt | 29 ++++ > arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 + > drivers/soc/Kconfig | 1 + > drivers/soc/Makefile | 1 + > drivers/soc/amlogic/Kconfig | 12 ++ > drivers/soc/amlogic/Makefile | 1 + > drivers/soc/amlogic/meson-gx-socinfo.c | 177 ++++++++++++++++++++++ > 7 files changed, 227 insertions(+) > create mode 100644 drivers/soc/amlogic/Kconfig > create mode 100644 drivers/soc/amlogic/Makefile > create mode 100644 drivers/soc/amlogic/meson-gx-socinfo.c > > -- > 1.9.1 > > > _______________________________________________ > linux-amlogic mailing list > linux-amlogic@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-amlogic ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3.1 0/3] soc: amlogic: Add Amlogic SoC Information driver 2017-07-12 19:03 ` [PATCH v3.1 0/3] soc: amlogic: " Martin Blumenstingl @ 2017-07-13 10:25 ` Neil Armstrong 2017-07-28 0:29 ` Kevin Hilman 0 siblings, 1 reply; 7+ messages in thread From: Neil Armstrong @ 2017-07-13 10:25 UTC (permalink / raw) To: Martin Blumenstingl, khilman Cc: carlo, linux-amlogic, linux-kernel, linux-arm-kernel On 07/12/2017 09:03 PM, Martin Blumenstingl wrote: > Hi Kevin, > > On Fri, Jun 23, 2017 at 10:28 AM, Neil Armstrong > <narmstrong@baylibre.com> wrote: >> Amlogic SoCs have a SoC information register for SoC type, package type and >> revision information. >> This patchset adds support for this register decoding and exposing with the >> SoC bus infrastructure, with dt-bindings and DT node. > I'm curious: are you going to take this through your tree or are we > waiting for someone's ACK here? I'm curious also, it should go through armsoc-drivers, no ? Neil > >> Changes since v3.1 at [3] : >> - Prepend amlogic to has-chip-id property >> >> Changes since v2 at [2] : >> - Removed subnodes of socinfo node >> - Checks has-chip-id property and if node is enabled >> >> Changes since v1 at [1] : >> - Switch DT representation to use regmap ans sub-node of a simple-mfd node >> - Updated DT, bindings and driver accordingly >> >> [1] http://lkml.kernel.org/r/1490950079-10145-1-git-send-email-narmstrong@baylibre.com >> [2] http://lkml.kernel.org/r/1496742340-10307-1-git-send-email-narmstrong@baylibre.com >> [3] http://lkml.kernel.org/r/1497441946-24379-1-git-send-email-narmstrong@baylibre.com >> >> Neil Armstrong (3): >> dt-bindings: arm: amlogic: Add SoC information bindings >> ARM64: dts: meson-gx: Add SoC info register >> soc: Add Amlogic SoC Information driver >> >> Documentation/devicetree/bindings/arm/amlogic.txt | 29 ++++ >> arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 + >> drivers/soc/Kconfig | 1 + >> drivers/soc/Makefile | 1 + >> drivers/soc/amlogic/Kconfig | 12 ++ >> drivers/soc/amlogic/Makefile | 1 + >> drivers/soc/amlogic/meson-gx-socinfo.c | 177 ++++++++++++++++++++++ >> 7 files changed, 227 insertions(+) >> create mode 100644 drivers/soc/amlogic/Kconfig >> create mode 100644 drivers/soc/amlogic/Makefile >> create mode 100644 drivers/soc/amlogic/meson-gx-socinfo.c >> >> -- >> 1.9.1 >> >> >> _______________________________________________ >> linux-amlogic mailing list >> linux-amlogic@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-amlogic ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3.1 0/3] soc: amlogic: Add Amlogic SoC Information driver 2017-07-13 10:25 ` Neil Armstrong @ 2017-07-28 0:29 ` Kevin Hilman 0 siblings, 0 replies; 7+ messages in thread From: Kevin Hilman @ 2017-07-28 0:29 UTC (permalink / raw) To: Neil Armstrong Cc: Martin Blumenstingl, carlo, linux-amlogic, linux-kernel, linux-arm-kernel Neil Armstrong <narmstrong@baylibre.com> writes: > On 07/12/2017 09:03 PM, Martin Blumenstingl wrote: >> Hi Kevin, >> >> On Fri, Jun 23, 2017 at 10:28 AM, Neil Armstrong >> <narmstrong@baylibre.com> wrote: >>> Amlogic SoCs have a SoC information register for SoC type, package type and >>> revision information. >>> This patchset adds support for this register decoding and exposing with the >>> SoC bus infrastructure, with dt-bindings and DT node. >> I'm curious: are you going to take this through your tree or are we >> waiting for someone's ACK here? > > I'm curious also, it should go through armsoc-drivers, no ? I was being lazy and assuming that Arnd would have another look as he reviewed an earlier version, but since there appear to be no further reviews/comments, I'll take it through the amlogic tree in the v4.14/drivers branch. Kevin ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-07-28 0:29 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-06-23 8:28 [PATCH v3.1 0/3] soc: amlogic: Add Amlogic SoC Information driver Neil Armstrong 2017-06-23 8:28 ` [PATCH v3.1 1/3] dt-bindings: arm: amlogic: Add SoC information bindings Neil Armstrong 2017-06-23 8:28 ` [PATCH v3.1 2/3] ARM64: dts: meson-gx: Add SoC info register Neil Armstrong 2017-06-23 8:28 ` [PATCH v3.1 3/3] soc: Add Amlogic SoC Information driver Neil Armstrong 2017-07-12 19:03 ` [PATCH v3.1 0/3] soc: amlogic: " Martin Blumenstingl 2017-07-13 10:25 ` Neil Armstrong 2017-07-28 0:29 ` Kevin Hilman
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).