2018-04-24 09:34:46

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH 0/2] ARM64: allwinner: Add support for Libre Computer Board ALL-H3-CC H5 ver.

The Libre Computer Board ALL-H3-CC from Libre Technology is a Raspberry
Pi B+ form factor single board computer based on the Allwinner H2+, H3, or H5
SoCs with the same PCB.
The board has 1GB DDR3 SDRAM, provided by 4 2Gb chips. The mounting holes
and connectors are in the exact same position as on the Raspberry Pi B+.

This patchset enables the H5 variant by moving the H3 board definition to a
common dtsi then include this common dtsi in the H5 dts variant then declares
the correct compatible and model of the H5 variant.

Neil Armstrong (2):
ARM: dts: sun8i-h3-libretech-all-h3-cc: Move board definition to
common dtsi
ARM64: dts: allwinner: Add dts file for Libre Computer Board ALL-H3-CC
H5 ver.

arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dts | 209 +-------------------
arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi | 211 +++++++++++++++++++++
arch/arm64/boot/dts/allwinner/Makefile | 1 +
.../allwinner/sun50i-h5-libretech-all-h3-cc.dts | 14 ++
4 files changed, 228 insertions(+), 207 deletions(-)
create mode 100644 arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h5-libretech-all-h3-cc.dts

--
2.7.4



2018-04-24 09:36:10

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH 1/2] ARM: dts: sun8i-h3-libretech-all-h3-cc: Move board definition to common dtsi

Since the libretech-all-h3-cc can use either the H2+, H3 or H5, move the
content of the dts file to a common dtsi file to be included by the H3 variant
and in a following patch the H5 variant.

By the way, update the SPDX licence tag position.

Suggested-by: Corentin Labbe <[email protected]>
Signed-off-by: Neil Armstrong <[email protected]>
---
arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dts | 209 +-------------------
arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi | 211 +++++++++++++++++++++
2 files changed, 213 insertions(+), 207 deletions(-)
create mode 100644 arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi

diff --git a/arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dts b/arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dts
index b20a710..50f2fb3 100644
--- a/arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dts
+++ b/arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dts
@@ -1,218 +1,13 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (C) 2017 Chen-Yu Tsai <[email protected]>
- *
- * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
*/

/dts-v1/;
#include "sun8i-h3.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
+#include "sunxi-libretech-all-h3-cc.dtsi"

/ {
model = "Libre Computer Board ALL-H3-CC H3";
compatible = "libretech,all-h3-cc-h3", "allwinner,sun8i-h3";
-
- aliases {
- ethernet0 = &emac;
- serial0 = &uart0;
- };
-
- chosen {
- stdout-path = "serial0:115200n8";
- };
-
- connector {
- compatible = "hdmi-connector";
- type = "a";
-
- port {
- hdmi_con_in: endpoint {
- remote-endpoint = <&hdmi_out_con>;
- };
- };
- };
-
- leds {
- compatible = "gpio-leds";
-
- pwr_led {
- label = "librecomputer:green:pwr";
- gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
- default-state = "on";
- };
-
- status_led {
- label = "librecomputer:blue:status";
- gpios = <&pio 0 7 GPIO_ACTIVE_HIGH>; /* PA7 */
- };
- };
-
- gpio_keys {
- compatible = "gpio-keys";
-
- power {
- label = "power";
- linux,code = <KEY_POWER>;
- gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
- };
- };
-
- reg_vcc1v2: vcc1v2 {
- compatible = "regulator-fixed";
- regulator-name = "vcc1v2";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-always-on;
- regulator-boot-on;
- vin-supply = <&reg_vcc5v0>;
- gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
- enable-active-high;
- };
-
- reg_vcc3v3: vcc3v3 {
- compatible = "regulator-fixed";
- regulator-name = "vcc3v3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- vin-supply = <&reg_vcc5v0>;
- };
-
- /* This represents the board's 5V input */
- reg_vcc5v0: vcc5v0 {
- compatible = "regulator-fixed";
- regulator-name = "vcc5v0";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- };
-
- reg_vcc_dram: vcc-dram {
- compatible = "regulator-fixed";
- regulator-name = "vcc-dram";
- regulator-min-microvolt = <1500000>;
- regulator-max-microvolt = <1500000>;
- regulator-always-on;
- regulator-boot-on;
- vin-supply = <&reg_vcc5v0>;
- gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */
- enable-active-high;
- };
-
- reg_vcc_io: vcc-io {
- compatible = "regulator-fixed";
- regulator-name = "vcc-io";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-always-on;
- regulator-boot-on;
- vin-supply = <&reg_vcc3v3>;
- gpio = <&r_pio 0 5 GPIO_ACTIVE_LOW>; /* PL5 */
- };
-
- reg_vdd_cpux: vdd-cpux {
- compatible = "regulator-fixed";
- regulator-name = "vdd-cpux";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-always-on;
- regulator-boot-on;
- vin-supply = <&reg_vcc5v0>;
- gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
- enable-active-high;
- };
-};
-
-&codec {
- allwinner,audio-routing =
- "Line Out", "LINEOUT",
- "MIC1", "Mic",
- "Mic", "MBIAS";
- status = "okay";
-};
-
-&de {
- status = "okay";
-};
-
-&ehci0 {
- status = "okay";
-};
-
-&ehci1 {
- status = "okay";
-};
-
-&ehci2 {
- status = "okay";
-};
-
-&ehci3 {
- status = "okay";
-};
-
-&emac {
- phy-handle = <&int_mii_phy>;
- phy-mode = "mii";
- allwinner,leds-active-low;
- status = "okay";
-};
-
-&hdmi {
- status = "okay";
-};
-
-&hdmi_out {
- hdmi_out_con: endpoint {
- remote-endpoint = <&hdmi_con_in>;
- };
-};
-
-&ir {
- pinctrl-names = "default";
- pinctrl-0 = <&ir_pins_a>;
- status = "okay";
-};
-
-&mmc0 {
- vmmc-supply = <&reg_vcc_io>;
- bus-width = <4>;
- cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
- status = "okay";
-};
-
-&ohci0 {
- status = "okay";
-};
-
-&ohci1 {
- status = "okay";
-};
-
-&ohci2 {
- status = "okay";
-};
-
-&ohci3 {
- status = "okay";
-};
-
-&uart0 {
- pinctrl-names = "default";
- pinctrl-0 = <&uart0_pins_a>;
- status = "okay";
-};
-
-&usb_otg {
- dr_mode = "host";
- status = "okay";
-};
-
-&usbphy {
- /* VBUS on USB ports are always on */
- usb0_vbus-supply = <&reg_vcc5v0>;
- usb1_vbus-supply = <&reg_vcc5v0>;
- usb2_vbus-supply = <&reg_vcc5v0>;
- usb3_vbus-supply = <&reg_vcc5v0>;
- status = "okay";
};
diff --git a/arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi b/arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi
new file mode 100644
index 0000000..ff42c16
--- /dev/null
+++ b/arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi
@@ -0,0 +1,211 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2017 Chen-Yu Tsai <[email protected]>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+ aliases {
+ ethernet0 = &emac;
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ connector {
+ compatible = "hdmi-connector";
+ type = "a";
+
+ port {
+ hdmi_con_in: endpoint {
+ remote-endpoint = <&hdmi_out_con>;
+ };
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ pwr_led {
+ label = "librecomputer:green:pwr";
+ gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
+ default-state = "on";
+ };
+
+ status_led {
+ label = "librecomputer:blue:status";
+ gpios = <&pio 0 7 GPIO_ACTIVE_HIGH>; /* PA7 */
+ };
+ };
+
+ gpio_keys {
+ compatible = "gpio-keys";
+
+ power {
+ label = "power";
+ linux,code = <KEY_POWER>;
+ gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
+ };
+ };
+
+ reg_vcc1v2: vcc1v2 {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc1v2";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ regulator-boot-on;
+ vin-supply = <&reg_vcc5v0>;
+ gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
+ enable-active-high;
+ };
+
+ reg_vcc3v3: vcc3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc3v3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ vin-supply = <&reg_vcc5v0>;
+ };
+
+ /* This represents the board's 5V input */
+ reg_vcc5v0: vcc5v0 {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc5v0";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ };
+
+ reg_vcc_dram: vcc-dram {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc-dram";
+ regulator-min-microvolt = <1500000>;
+ regulator-max-microvolt = <1500000>;
+ regulator-always-on;
+ regulator-boot-on;
+ vin-supply = <&reg_vcc5v0>;
+ gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */
+ enable-active-high;
+ };
+
+ reg_vcc_io: vcc-io {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc-io";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ regulator-boot-on;
+ vin-supply = <&reg_vcc3v3>;
+ gpio = <&r_pio 0 5 GPIO_ACTIVE_LOW>; /* PL5 */
+ };
+
+ reg_vdd_cpux: vdd-cpux {
+ compatible = "regulator-fixed";
+ regulator-name = "vdd-cpux";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ regulator-boot-on;
+ vin-supply = <&reg_vcc5v0>;
+ gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
+ enable-active-high;
+ };
+};
+
+&codec {
+ allwinner,audio-routing =
+ "Line Out", "LINEOUT",
+ "MIC1", "Mic",
+ "Mic", "MBIAS";
+ status = "okay";
+};
+
+&de {
+ status = "okay";
+};
+
+&ehci0 {
+ status = "okay";
+};
+
+&ehci1 {
+ status = "okay";
+};
+
+&ehci2 {
+ status = "okay";
+};
+
+&ehci3 {
+ status = "okay";
+};
+
+&emac {
+ phy-handle = <&int_mii_phy>;
+ phy-mode = "mii";
+ allwinner,leds-active-low;
+ status = "okay";
+};
+
+&hdmi {
+ status = "okay";
+};
+
+&hdmi_out {
+ hdmi_out_con: endpoint {
+ remote-endpoint = <&hdmi_con_in>;
+ };
+};
+
+&ir {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ir_pins_a>;
+ status = "okay";
+};
+
+&mmc0 {
+ vmmc-supply = <&reg_vcc_io>;
+ bus-width = <4>;
+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
+ status = "okay";
+};
+
+&ohci0 {
+ status = "okay";
+};
+
+&ohci1 {
+ status = "okay";
+};
+
+&ohci2 {
+ status = "okay";
+};
+
+&ohci3 {
+ status = "okay";
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_pins_a>;
+ status = "okay";
+};
+
+&usb_otg {
+ dr_mode = "host";
+ status = "okay";
+};
+
+&usbphy {
+ /* VBUS on USB ports are always on */
+ usb0_vbus-supply = <&reg_vcc5v0>;
+ usb1_vbus-supply = <&reg_vcc5v0>;
+ usb2_vbus-supply = <&reg_vcc5v0>;
+ usb3_vbus-supply = <&reg_vcc5v0>;
+ status = "okay";
+};
--
2.7.4


2018-04-24 09:37:24

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH 2/2] ARM64: dts: allwinner: Add dts file for Libre Computer Board ALL-H3-CC H5 ver.

The Libre Computer Board ALL-H3-CC from Libre Technology is a Raspberry
Pi B+ form factor single board computer based on the Allwinner H2+, H3, or H5
SoCs with the same PCB.
The board has 1GB DDR3 SDRAM, provided by 4 2Gb chips. The mounting holes
and connectors are in the exact same position as on the Raspberry Pi B+.

This patch enables the H5 variant using the H3 board definition moved to
a common dtsi in an earlier patch. The dts simply include the common dtsi
and declares the correct compatible and model of the H5 variant.

Suggested-by: Corentin Labbe <[email protected]>
Signed-off-by: Neil Armstrong <[email protected]>
---
arch/arm64/boot/dts/allwinner/Makefile | 1 +
.../boot/dts/allwinner/sun50i-h5-libretech-all-h3-cc.dts | 14 ++++++++++++++
2 files changed, 15 insertions(+)
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h5-libretech-all-h3-cc.dts

diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
index 8bebe7d..7e07c07 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -6,6 +6,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-libretech-all-h3-cc.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-libretech-all-h3-cc.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-libretech-all-h3-cc.dts
new file mode 100644
index 0000000..95e113c
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-libretech-all-h3-cc.dts
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2018 BayLibre, SAS
+ * Author: Neil Armstrong <[email protected]>
+ */
+
+/dts-v1/;
+#include "sun50i-h5.dtsi"
+#include <arm/sunxi-libretech-all-h3-cc.dtsi>
+
+/ {
+ model = "Libre Computer Board ALL-H3-CC H5";
+ compatible = "libretech,all-h3-cc-h5", "allwinner,sun50i-h5";
+};
--
2.7.4


2018-04-24 09:58:41

by Maxime Ripard

[permalink] [raw]
Subject: Re: [PATCH 1/2] ARM: dts: sun8i-h3-libretech-all-h3-cc: Move board definition to common dtsi

Hi,

On Tue, Apr 24, 2018 at 11:19:35AM +0200, Neil Armstrong wrote:
> Since the libretech-all-h3-cc can use either the H2+, H3 or H5, move the
> content of the dts file to a common dtsi file to be included by the H3 variant
> and in a following patch the H5 variant.
>
> By the way, update the SPDX licence tag position.
>
> Suggested-by: Corentin Labbe <[email protected]>
> Signed-off-by: Neil Armstrong <[email protected]>

This patch looks fine, but doesn't apply anymore. Please resend it.

While you're at it, the prefix should be "arm: dts: sun8i: h3:" (with
arm being lowercase).

Thanks!
Maxime

--
Maxime Ripard, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com


Attachments:
(No filename) (751.00 B)
signature.asc (849.00 B)
Download all attachments

2018-04-24 10:03:46

by Neil Armstrong

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM64: dts: allwinner: Add dts file for Libre Computer Board ALL-H3-CC H5 ver.

On 24/04/2018 11:59, Maxime Ripard wrote:
> Hi,
>
> On Tue, Apr 24, 2018 at 11:19:36AM +0200, Neil Armstrong wrote:
>> The Libre Computer Board ALL-H3-CC from Libre Technology is a Raspberry
>> Pi B+ form factor single board computer based on the Allwinner H2+, H3, or H5
>> SoCs with the same PCB.
>> The board has 1GB DDR3 SDRAM, provided by 4 2Gb chips. The mounting holes
>> and connectors are in the exact same position as on the Raspberry Pi B+.
>>
>> This patch enables the H5 variant using the H3 board definition moved to
>> a common dtsi in an earlier patch. The dts simply include the common dtsi
>> and declares the correct compatible and model of the H5 variant.
>>
>> Suggested-by: Corentin Labbe <[email protected]>
>> Signed-off-by: Neil Armstrong <[email protected]>
>
> prefix should be "arm64: dts: allwinner"

Bad habit, will resend with arm64.

>
> You had this issue with the first patch as well, your commit log
> should be wrapped, checkpatch complains at the moment.

Same.

>
> Maxime
>

Thanks,
Neil


Attachments:
signature.asc (836.00 B)
OpenPGP digital signature

2018-04-24 10:06:58

by Neil Armstrong

[permalink] [raw]
Subject: Re: [PATCH 1/2] ARM: dts: sun8i-h3-libretech-all-h3-cc: Move board definition to common dtsi

On 24/04/2018 11:56, Maxime Ripard wrote:
> Hi,
>
> On Tue, Apr 24, 2018 at 11:19:35AM +0200, Neil Armstrong wrote:
>> Since the libretech-all-h3-cc can use either the H2+, H3 or H5, move the
>> content of the dts file to a common dtsi file to be included by the H3 variant
>> and in a following patch the H5 variant.
>>
>> By the way, update the SPDX licence tag position.
>>
>> Suggested-by: Corentin Labbe <[email protected]>
>> Signed-off-by: Neil Armstrong <[email protected]>
>
> This patch looks fine, but doesn't apply anymore. Please resend it.

I based it on 4.17-rc2, should I rebase in your tree ?

>
> While you're at it, the prefix should be "arm: dts: sun8i: h3:" (with
> arm being lowercase).

Good to know,

>
> Thanks!
> Maxime
>

Thanks,
Neil



Attachments:
signature.asc (836.00 B)
OpenPGP digital signature

2018-04-24 11:40:41

by Maxime Ripard

[permalink] [raw]
Subject: Re: [PATCH 1/2] ARM: dts: sun8i-h3-libretech-all-h3-cc: Move board definition to common dtsi

On Tue, Apr 24, 2018 at 12:03:44PM +0200, Neil Armstrong wrote:
> On 24/04/2018 11:56, Maxime Ripard wrote:
> > Hi,
> >
> > On Tue, Apr 24, 2018 at 11:19:35AM +0200, Neil Armstrong wrote:
> >> Since the libretech-all-h3-cc can use either the H2+, H3 or H5, move the
> >> content of the dts file to a common dtsi file to be included by the H3 variant
> >> and in a following patch the H5 variant.
> >>
> >> By the way, update the SPDX licence tag position.
> >>
> >> Suggested-by: Corentin Labbe <[email protected]>
> >> Signed-off-by: Neil Armstrong <[email protected]>
> >
> > This patch looks fine, but doesn't apply anymore. Please resend it.
>
> I based it on 4.17-rc2, should I rebase in your tree ?

Yep, thanks!
Maxime


--
Maxime Ripard, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com


Attachments:
(No filename) (876.00 B)
signature.asc (849.00 B)
Download all attachments

2018-04-24 14:28:52

by Maxime Ripard

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM64: dts: allwinner: Add dts file for Libre Computer Board ALL-H3-CC H5 ver.

Hi,

On Tue, Apr 24, 2018 at 11:19:36AM +0200, Neil Armstrong wrote:
> The Libre Computer Board ALL-H3-CC from Libre Technology is a Raspberry
> Pi B+ form factor single board computer based on the Allwinner H2+, H3, or H5
> SoCs with the same PCB.
> The board has 1GB DDR3 SDRAM, provided by 4 2Gb chips. The mounting holes
> and connectors are in the exact same position as on the Raspberry Pi B+.
>
> This patch enables the H5 variant using the H3 board definition moved to
> a common dtsi in an earlier patch. The dts simply include the common dtsi
> and declares the correct compatible and model of the H5 variant.
>
> Suggested-by: Corentin Labbe <[email protected]>
> Signed-off-by: Neil Armstrong <[email protected]>

prefix should be "arm64: dts: allwinner"

You had this issue with the first patch as well, your commit log
should be wrapped, checkpatch complains at the moment.

Maxime

--
Maxime Ripard, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com


Attachments:
(No filename) (1.02 kB)
signature.asc (849.00 B)
Download all attachments