diff options
author | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2020-01-08 19:37:35 +0100 |
---|---|---|
committer | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2020-01-08 19:47:50 +0100 |
commit | 3d00a8089ed6fd5875be75733adc2da3768ba252 (patch) | |
tree | 5ed74e627f761c0054ae4bbc71185c380f6806f6 /kernels/linux-libre-arm64/0003-SMILE-Plug-device-tree-file.patch | |
parent | b8dd027e7c1b4103263135b75537d7117792ac8e (diff) |
kernels: add linux-libre-aarch64
Some System On a Chip (SOC) have 64bit ARM CPUs that are also
capable of running arm 32bit applications.
Since:
- Parabola doesn't have an aarch64 package repository yet
- The devicetree of devices using such System On a Chip
are not compiled when using the armv7 defconfig
- Drivers or other platform support code for such hardware
might also not be compiled in with the armv7 defconfig
- This approach has already been tested with the linux-libre-x86_64
kenrel
It's then a good idea to add support for such devices by adding
an arrch64 kernel as the maintenance and work is minimal.
The downside is that the external kernel modules that are either
compiled against the kernel or using DKMS will not work by default.
It's however still possible to compile them by hand by using
ARCH= and CROSS_COMPILE= as it is done for this kernel, so it
should be relatively easy to add support for the non-dkms modules.
As for DKMS, someone would need to look into it to understand how
to pass it the make flags (ARCH= and CROSS_COMPILE=) that are
required to automatically build modules.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'kernels/linux-libre-arm64/0003-SMILE-Plug-device-tree-file.patch')
-rw-r--r-- | kernels/linux-libre-arm64/0003-SMILE-Plug-device-tree-file.patch | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/kernels/linux-libre-arm64/0003-SMILE-Plug-device-tree-file.patch b/kernels/linux-libre-arm64/0003-SMILE-Plug-device-tree-file.patch new file mode 100644 index 000000000..b07e149b7 --- /dev/null +++ b/kernels/linux-libre-arm64/0003-SMILE-Plug-device-tree-file.patch @@ -0,0 +1,209 @@ +From 8dc29eb34efbef2aa3ce6e499cea11765286ffbd Mon Sep 17 00:00:00 2001 +From: Kevin Mihelich <kevin@archlinuxarm.org> +Date: Fri, 5 Sep 2014 15:41:19 -0600 +Subject: [PATCH 3/9] SMILE Plug device tree file + +This adds a dts file for the SMILE Plug, which only differs from the Mirabox +dts with the LED definitions. + +Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org> +--- + arch/arm/boot/dts/Makefile | 1 + + arch/arm/boot/dts/armada-370-smileplug.dts | 173 +++++++++++++++++++++ + 2 files changed, 174 insertions(+) + create mode 100644 arch/arm/boot/dts/armada-370-smileplug.dts + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index b21b3a64641a..a0f92b9dbd7d 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -1216,6 +1216,7 @@ dtb-$(CONFIG_MACH_ARMADA_370) += \ + armada-370-db.dtb \ + armada-370-dlink-dns327l.dtb \ + armada-370-mirabox.dtb \ ++ armada-370-smileplug.dtb \ + armada-370-netgear-rn102.dtb \ + armada-370-netgear-rn104.dtb \ + armada-370-rd.dtb \ +diff --git a/arch/arm/boot/dts/armada-370-smileplug.dts b/arch/arm/boot/dts/armada-370-smileplug.dts +new file mode 100644 +index 000000000000..d01308ab848b +--- /dev/null ++++ b/arch/arm/boot/dts/armada-370-smileplug.dts +@@ -0,0 +1,173 @@ ++/* ++ * Device Tree file for Marvell SMILE Plug ++ * ++ * Kevin Mihelich <kevin@archlinuxarm.org> ++ * Gregory CLEMENT <gregory.clement@free-electrons.com> ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++/dts-v1/; ++#include <dt-bindings/gpio/gpio.h> ++#include "armada-370.dtsi" ++ ++/ { ++ model = "Marvell SMILE Plug"; ++ compatible = "marvell,smileplug", "marvell,armada370", "marvell,armada-370-xp"; ++ ++ chosen { ++ bootargs = "console=ttyS0,115200 earlyprintk"; ++ }; ++ ++ memory { ++ device_type = "memory"; ++ reg = <0x00000000 0x20000000>; /* 512 MB */ ++ }; ++ ++ soc { ++ ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000 ++ MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>; ++ ++ pcie-controller { ++ status = "okay"; ++ ++ /* Internal mini-PCIe connector */ ++ pcie@1,0 { ++ /* Port 0, Lane 0 */ ++ status = "okay"; ++ }; ++ ++ /* Connected on the PCB to a USB 3.0 XHCI controller */ ++ pcie@2,0 { ++ /* Port 1, Lane 0 */ ++ status = "okay"; ++ }; ++ }; ++ ++ internal-regs { ++ serial@12000 { ++ status = "okay"; ++ }; ++ timer@20300 { ++ clock-frequency = <600000000>; ++ status = "okay"; ++ }; ++ ++ gpio_leds { ++ compatible = "gpio-leds"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&smile_led_pins>; ++ ++ red_eyes_led { ++ label = "smileplug:red:eyes"; ++ gpios = <&gpio1 31 0>; ++ default-state = "off"; ++ }; ++ ++ green_eyes_led { ++ label = "smileplug:green:eyes"; ++ gpios = <&gpio2 0 0>; ++ linux,default-trigger = "default-on"; ++ }; ++ ++ red_smile_led { ++ label = "smileplug:red:smile"; ++ gpios = <&gpio1 15 0>; ++ default-state = "off"; ++ }; ++ ++ green_smile_led { ++ label = "smileplug:green:smile"; ++ gpios = <&gpio1 27 0>; ++ linux,default-trigger = "default-on"; ++ }; ++ }; ++ ++ mdio { ++ pinctrl-0 = <&mdio_pins>; ++ pinctrl-names = "default"; ++ phy0: ethernet-phy@0 { ++ reg = <0>; ++ }; ++ ++ phy1: ethernet-phy@1 { ++ reg = <1>; ++ }; ++ }; ++ ethernet@70000 { ++ pinctrl-0 = <&ge0_rgmii_pins>; ++ pinctrl-names = "default"; ++ status = "okay"; ++ phy = <&phy0>; ++ phy-mode = "rgmii-id"; ++ }; ++ ethernet@74000 { ++ pinctrl-0 = <&ge1_rgmii_pins>; ++ pinctrl-names = "default"; ++ status = "okay"; ++ phy = <&phy1>; ++ phy-mode = "rgmii-id"; ++ }; ++ ++ mvsdio@d4000 { ++ pinctrl-0 = <&sdio_pins3>; ++ pinctrl-names = "default"; ++ status = "okay"; ++ /* ++ * No CD or WP GPIOs: SDIO interface used for ++ * Wifi/Bluetooth chip ++ */ ++ broken-cd; ++ }; ++ ++ usb@50000 { ++ status = "okay"; ++ }; ++ ++ usb@51000 { ++ status = "okay"; ++ }; ++ ++ i2c@11000 { ++ status = "okay"; ++ clock-frequency = <100000>; ++ pca9505: pca9505@25 { ++ compatible = "nxp,pca9505"; ++ gpio-controller; ++ #gpio-cells = <2>; ++ reg = <0x25>; ++ }; ++ }; ++ ++ nand@d0000 { ++ status = "okay"; ++ num-cs = <1>; ++ marvell,nand-keep-config; ++ marvell,nand-enable-arbiter; ++ nand-on-flash-bbt; ++ ++ partition@0 { ++ label = "U-Boot"; ++ reg = <0 0x400000>; ++ }; ++ partition@400000 { ++ label = "Linux"; ++ reg = <0x400000 0x400000>; ++ }; ++ partition@800000 { ++ label = "Filesystem"; ++ reg = <0x800000 0x3f800000>; ++ }; ++ }; ++ }; ++ }; ++}; ++ ++&pinctrl { ++ smile_led_pins: smile-led-pins { ++ marvell,pins = "mpp63", "mpp64", "mpp47", "mpp59"; ++ marvell,function = "gpio"; ++ }; ++}; +-- +2.23.0 + |