Bump buildroot to 2020.11-rc1 (#985)
* Update buildroot-patches for 2020.11-rc1 buildroot * Update buildroot to 2020.11-rc1 Signed-off-by: Stefan Agner <stefan@agner.ch> * Don't rely on sfdisk --list-free output The --list-free (-F) argument does not allow machine readable mode. And it seems that the output format changes over time (different spacing, using size postfixes instead of raw blocks). Use sfdisk json output and calculate free partition space ourselfs. This works for 2.35 and 2.36 and is more robust since we rely on output which is meant for scripts to parse. * Migrate defconfigs for Buildroot 2020.11-rc1 In particular, rename BR2_TARGET_UBOOT_BOOT_SCRIPT(_SOURCE) to BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT(_SOURCE). * Rebase/remove systemd patches for systemd 246 * Drop apparmor/libapparmor from buildroot-external * hassos-persists: use /run as directory for lockfiles The U-Boot tools use /var/lock by default which is not created any more by systemd by default (it is under tmpfiles legacy.conf, which we no longer install). * Disable systemd-update-done.service The service is not suited for pure read-only systems. In particular the service needs to be able to write a file in /etc and /var. Remove the service. Note: This is a static service and cannot be removed using systemd-preset. * Disable apparmor.service for now The service loads all default profiles. Some might actually cause problems. E.g. the profile for ping seems not to match our setup for /etc/resolv.conf: [85503.634653] audit: type=1400 audit(1605286002.684:236): apparmor="DENIED" operation="open" profile="ping" name="/run/resolv.conf" pid=27585 comm="ping" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
This commit is contained in:
5
buildroot/board/arcturus/aarch64-ucls1012a/post-build.sh
Executable file
5
buildroot/board/arcturus/aarch64-ucls1012a/post-build.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
mkdir -p ${TARGET_DIR}/lib/firmware
|
||||
cp -f ${BUILD_DIR}/linux-custom/firmware/ppfe/* ${TARGET_DIR}/lib/firmware/
|
||||
cp -f ${BUILD_DIR}/linux-custom/br2-ucls1012a.its ${BINARIES_DIR}/
|
||||
@@ -1,6 +1,6 @@
|
||||
This document explains how to set up a basic Buildroot system on various
|
||||
Atmel boards. Additional details can also be found on the Linux4SAM website:
|
||||
http://www.at91.com/linux4sam/bin/view/Linux4SAM/
|
||||
This document explains how to set up a basic Buildroot system on
|
||||
various Atmel/Microchip boards. Additional details can also be found
|
||||
on the Linux4SAM website: http://www.linux4sam.org
|
||||
|
||||
This guide covers the following configurations:
|
||||
- at91sam9g45m10ek_defconfig
|
||||
@@ -19,6 +19,8 @@ This guide covers the following configurations:
|
||||
- atmel_sama5d4_xplained_mmc_dev_defconfig
|
||||
- atmel_sama5d2_xplained_mmc_defconfig
|
||||
- atmel_sama5d2_xplained_mmc_dev_defconfig
|
||||
- microchip_sama5d27_wlsom1_ek_mmc_defconfig
|
||||
- microchip_sama5d27_wlsom1_ek_mmc_dev_defconfig
|
||||
|
||||
These configurations will use AT91Bootstrap, u-boot and a linux kernel from
|
||||
the git trees maintained by Atmel.
|
||||
@@ -29,23 +31,23 @@ tests the features of the SoC:
|
||||
- FFMPEG to record video from the ISI/ISC
|
||||
- I2C, SPI, CAN, etc. tools
|
||||
- modetest for LCD screens, HDMI
|
||||
- Wilc1000 firmware for the Atmel Wireless sdio module
|
||||
- Wilc1000/Wilc3000 firmware for the Atmel Wireless sdio module
|
||||
- SSH for convenience
|
||||
- GDB/GDB server for debug
|
||||
|
||||
Configuring and building Buildroot
|
||||
==================================
|
||||
|
||||
For most configurations listed above, the Buildroot configuration
|
||||
assumes the system will be flashed on NAND. In this case, after
|
||||
building Buildroot, follow the instructions in the "Flashing the NAND
|
||||
using SAM-BA" section below.
|
||||
|
||||
For the Xplained boards, an alternative Buildroot configuration is
|
||||
For the Xplained/Evaluation Kit boards, the Buildroot configuration is
|
||||
provided to boot from an SD card. Those configurations are labeled as
|
||||
'mmc'. In this case, after building Buildroot, follow the instructions
|
||||
in the "Preparing the SD card" section.
|
||||
|
||||
For the other configurations listed above, the Buildroot configuration
|
||||
assumes the system will be flashed on NAND. In this case, after
|
||||
building Buildroot, follow the instructions in the "Flashing the NAND
|
||||
using SAM-BA" section below.
|
||||
|
||||
To configure and build Buildroot, run:
|
||||
|
||||
make <board>_defconfig
|
||||
@@ -144,10 +146,10 @@ lost. To copy the image on the SD card:
|
||||
|
||||
dd if=output/images/sdcard.img of=/dev/mmcblk0
|
||||
|
||||
Insert your SD card in your Xplained board, and enjoy. The default
|
||||
U-Boot environment will load properly the kernel and Device Tree blob
|
||||
from the first partition of the SD card, so everything works
|
||||
automatically.
|
||||
Insert your SD card in your Xplained/Evaluation Kit board, and
|
||||
enjoy. The default U-Boot environment will load properly the kernel
|
||||
and Device Tree blob from the first partition of the SD card, so
|
||||
everything works automatically.
|
||||
|
||||
By default a 16MB FAT partition is created. It contains at91bootstrap,
|
||||
u-boot, the kernel image and all dtb variants for your board. The dtb
|
||||
|
||||
31
buildroot/board/atmel/sama5d27_wlsom1_ek_mmc/genimage.cfg
Normal file
31
buildroot/board/atmel/sama5d27_wlsom1_ek_mmc/genimage.cfg
Normal file
@@ -0,0 +1,31 @@
|
||||
# Image for SD card boot on Microchip SAMA5D27 WLSOM1 EK
|
||||
#
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"zImage",
|
||||
"at91-sama5d27_wlsom1_ek.dtb",
|
||||
"boot.bin",
|
||||
"u-boot.bin"
|
||||
}
|
||||
}
|
||||
size = 16M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
offset = 1M
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
size = 512M
|
||||
}
|
||||
}
|
||||
7
buildroot/board/bananapi/bananapi-m2-zero/boot.cmd
Normal file
7
buildroot/board/bananapi/bananapi-m2-zero/boot.cmd
Normal file
@@ -0,0 +1,7 @@
|
||||
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
|
||||
|
||||
mmc dev 0
|
||||
fatload mmc 0 $kernel_addr_r zImage
|
||||
fatload mmc 0 $fdt_addr_r sun8i-h2-plus-bananapi-m2-zero.dtb
|
||||
|
||||
bootz $kernel_addr_r - $fdt_addr_r
|
||||
33
buildroot/board/bananapi/bananapi-m2-zero/genimage.cfg
Normal file
33
buildroot/board/bananapi/bananapi-m2-zero/genimage.cfg
Normal file
@@ -0,0 +1,33 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"zImage",
|
||||
"sun8i-h2-plus-bananapi-m2-zero.dtb",
|
||||
"boot.scr"
|
||||
}
|
||||
}
|
||||
size = 64M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition u-boot {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot-sunxi-with-spl.bin"
|
||||
offset = 8192
|
||||
size = 1040384 # 1MB - 8192
|
||||
}
|
||||
|
||||
partition boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
34
buildroot/board/bananapi/bananapi-m2-zero/readme.txt
Normal file
34
buildroot/board/bananapi/bananapi-m2-zero/readme.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
Intro
|
||||
=====
|
||||
|
||||
This default configuration will allow you to start experimenting with the
|
||||
Buildroot environment for the Bananapi M2 Zero. With the current configuration
|
||||
it will bring-up the board, and allow access through the serial console.
|
||||
|
||||
Bananapi M2 Zero link:
|
||||
http://www.banana-pi.org/m2z.html
|
||||
|
||||
This configuration uses U-Boot mainline and kernel mainline.
|
||||
|
||||
How to build
|
||||
============
|
||||
|
||||
$ make bananapi_m2_zero_defconfig
|
||||
$ make
|
||||
|
||||
Note: you will need access to the internet to download the required
|
||||
sources.
|
||||
|
||||
How to write the SD card
|
||||
========================
|
||||
|
||||
Once the build process is finished you will have an image called "sdcard.img"
|
||||
in the output/images/ directory.
|
||||
|
||||
Copy the bootable "sdcard.img" onto an SD card with "dd":
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
|
||||
$ sync
|
||||
|
||||
Insert the micro SDcard in your Bananapi M2 Zero and power it up. The console
|
||||
is on the Debug UART on the CON3 header, with serial settings 115200 8N1.
|
||||
@@ -1,39 +0,0 @@
|
||||
From 523ab5be1a84e9aa15fb62c3a15a6338b01d3961 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= <peron.clem@gmail.com>
|
||||
Date: Tue, 9 Apr 2019 00:15:06 +0200
|
||||
Subject: [PATCH] plat: allwinner: common: use r_wdog instead of wdog
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Some Allwinner H6 has a broken watchdog that doesn't
|
||||
make the soc reboot.
|
||||
|
||||
Use the R_WATCHDOG instead.
|
||||
|
||||
Signed-off-by: Clément Péron <peron.clem@gmail.com>
|
||||
Change-Id: Ie95cc30a80ed517b60b30d6bc2e655a1b53f18ba
|
||||
---
|
||||
plat/allwinner/common/sunxi_pm.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/plat/allwinner/common/sunxi_pm.c b/plat/allwinner/common/sunxi_pm.c
|
||||
index 1d2dc938..13e13532 100644
|
||||
--- a/plat/allwinner/common/sunxi_pm.c
|
||||
+++ b/plat/allwinner/common/sunxi_pm.c
|
||||
@@ -20,9 +20,9 @@
|
||||
#include <sunxi_mmap.h>
|
||||
#include <sunxi_private.h>
|
||||
|
||||
-#define SUNXI_WDOG0_CTRL_REG (SUNXI_WDOG_BASE + 0x0010)
|
||||
-#define SUNXI_WDOG0_CFG_REG (SUNXI_WDOG_BASE + 0x0014)
|
||||
-#define SUNXI_WDOG0_MODE_REG (SUNXI_WDOG_BASE + 0x0018)
|
||||
+#define SUNXI_WDOG0_CTRL_REG (SUNXI_R_WDOG_BASE + 0x0010)
|
||||
+#define SUNXI_WDOG0_CFG_REG (SUNXI_R_WDOG_BASE + 0x0014)
|
||||
+#define SUNXI_WDOG0_MODE_REG (SUNXI_R_WDOG_BASE + 0x0018)
|
||||
|
||||
#define mpidr_is_valid(mpidr) ( \
|
||||
MPIDR_AFFLVL3_VAL(mpidr) == 0 && \
|
||||
--
|
||||
2.20.1
|
||||
|
||||
@@ -1,279 +0,0 @@
|
||||
From 99cade8743158889b3e8db93c003b3318ebd4bda Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= <peron.clem@gmail.com>
|
||||
Date: Sun, 11 Aug 2019 22:38:57 +0200
|
||||
Subject: [PATCH] arm: dts: sync dts for Allwinner H6
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Sync Kernel DTS for Allwinner H6 boards.
|
||||
|
||||
Drop /omit-if-no-ref/ keyword as it's not supported by U-boot.
|
||||
|
||||
commit <d45331b00ddb> Linux 5.3-rc4
|
||||
|
||||
Signed-off-by: Clément Péron <peron.clem@gmail.com>
|
||||
---
|
||||
arch/arm/dts/sun50i-h6-beelink-gs1.dts | 76 ++++++++++++++++++++++++++
|
||||
arch/arm/dts/sun50i-h6-pine-h64.dts | 12 ++++
|
||||
arch/arm/dts/sun50i-h6.dtsi | 46 +++++++++++++++-
|
||||
3 files changed, 131 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/dts/sun50i-h6-beelink-gs1.dts b/arch/arm/dts/sun50i-h6-beelink-gs1.dts
|
||||
index 54b0882bed..0dc33c90dd 100644
|
||||
--- a/arch/arm/dts/sun50i-h6-beelink-gs1.dts
|
||||
+++ b/arch/arm/dts/sun50i-h6-beelink-gs1.dts
|
||||
@@ -14,6 +14,7 @@
|
||||
compatible = "azw,beelink-gs1", "allwinner,sun50i-h6";
|
||||
|
||||
aliases {
|
||||
+ ethernet0 = &emac;
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
@@ -21,6 +22,17 @@
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
+ connector {
|
||||
+ compatible = "hdmi-connector";
|
||||
+ type = "a";
|
||||
+
|
||||
+ port {
|
||||
+ hdmi_con_in: endpoint {
|
||||
+ remote-endpoint = <&hdmi_out_con>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
@@ -41,6 +53,40 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&de {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ehci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&emac {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&ext_rgmii_pins>;
|
||||
+ phy-mode = "rgmii";
|
||||
+ phy-handle = <&ext_rgmii_phy>;
|
||||
+ phy-supply = <®_aldo2>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi_out {
|
||||
+ hdmi_out_con: endpoint {
|
||||
+ remote-endpoint = <&hdmi_con_in>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mdio {
|
||||
+ ext_rgmii_phy: ethernet-phy@1 {
|
||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <1>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&mmc0 {
|
||||
vmmc-supply = <®_cldo1>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
|
||||
@@ -57,6 +103,15 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&ohci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pio {
|
||||
+ vcc-pd-supply = <®_cldo1>;
|
||||
+ vcc-pg-supply = <®_aldo1>;
|
||||
+};
|
||||
+
|
||||
&r_i2c {
|
||||
status = "okay";
|
||||
|
||||
@@ -177,8 +232,29 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&r_pio {
|
||||
+ /*
|
||||
+ * PL0 and PL1 are used for PMIC I2C
|
||||
+ * don't enable the pl-supply else
|
||||
+ * it will fail at boot
|
||||
+ *
|
||||
+ * vcc-pl-supply = <®_aldo1>;
|
||||
+ */
|
||||
+ vcc-pm-supply = <®_aldo1>;
|
||||
+};
|
||||
+
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_ph_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+&usb2otg {
|
||||
+ dr_mode = "host";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb2phy {
|
||||
+ usb0_vbus-supply = <®_vcc5v>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/arch/arm/dts/sun50i-h6-pine-h64.dts b/arch/arm/dts/sun50i-h6-pine-h64.dts
|
||||
index 4802902e12..1898345183 100644
|
||||
--- a/arch/arm/dts/sun50i-h6-pine-h64.dts
|
||||
+++ b/arch/arm/dts/sun50i-h6-pine-h64.dts
|
||||
@@ -127,6 +127,12 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&pio {
|
||||
+ vcc-pc-supply = <®_bldo2>;
|
||||
+ vcc-pd-supply = <®_cldo1>;
|
||||
+ vcc-pg-supply = <®_aldo1>;
|
||||
+};
|
||||
+
|
||||
&r_i2c {
|
||||
status = "okay";
|
||||
|
||||
@@ -243,10 +249,16 @@
|
||||
pcf8563: rtc@51 {
|
||||
compatible = "nxp,pcf8563";
|
||||
reg = <0x51>;
|
||||
+ interrupt-parent = <&r_intc>;
|
||||
+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
+&r_pio {
|
||||
+ vcc-pm-supply = <®_aldo1>;
|
||||
+};
|
||||
+
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_ph_pins>;
|
||||
diff --git a/arch/arm/dts/sun50i-h6.dtsi b/arch/arm/dts/sun50i-h6.dtsi
|
||||
index e0dc4a05c1..a117f479ae 100644
|
||||
--- a/arch/arm/dts/sun50i-h6.dtsi
|
||||
+++ b/arch/arm/dts/sun50i-h6.dtsi
|
||||
@@ -101,7 +101,7 @@
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
- display-engine@1000000 {
|
||||
+ bus@1000000 {
|
||||
compatible = "allwinner,sun50i-h6-de3",
|
||||
"allwinner,sun50i-a64-de2";
|
||||
reg = <0x1000000 0x400000>;
|
||||
@@ -203,11 +203,32 @@
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
+ dma: dma-controller@3002000 {
|
||||
+ compatible = "allwinner,sun50i-h6-dma";
|
||||
+ reg = <0x03002000 0x1000>;
|
||||
+ interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&ccu CLK_BUS_DMA>, <&ccu CLK_MBUS_DMA>;
|
||||
+ clock-names = "bus", "mbus";
|
||||
+ dma-channels = <16>;
|
||||
+ dma-requests = <46>;
|
||||
+ resets = <&ccu RST_BUS_DMA>;
|
||||
+ #dma-cells = <1>;
|
||||
+ };
|
||||
+
|
||||
sid: sid@3006000 {
|
||||
compatible = "allwinner,sun50i-h6-sid";
|
||||
reg = <0x03006000 0x400>;
|
||||
};
|
||||
|
||||
+ watchdog: watchdog@30090a0 {
|
||||
+ compatible = "allwinner,sun50i-h6-wdt",
|
||||
+ "allwinner,sun6i-a31-wdt";
|
||||
+ reg = <0x030090a0 0x20>;
|
||||
+ interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ /* Broken on some H6 boards */
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
pio: pinctrl@300b000 {
|
||||
compatible = "allwinner,sun50i-h6-pinctrl";
|
||||
reg = <0x0300b000 0x400>;
|
||||
@@ -243,6 +264,18 @@
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
+ /*
|
||||
+ * /omit-if-no-ref/ isn't supported by U-boot
|
||||
+ * keep this comment to avoid bad sync with Linux
|
||||
+ */
|
||||
+ mmc1_pins: mmc1-pins {
|
||||
+ pins = "PG0", "PG1", "PG2", "PG3",
|
||||
+ "PG4", "PG5";
|
||||
+ function = "mmc1";
|
||||
+ drive-strength = <30>;
|
||||
+ bias-pull-up;
|
||||
+ };
|
||||
+
|
||||
mmc2_pins: mmc2-pins {
|
||||
pins = "PC1", "PC4", "PC5", "PC6",
|
||||
"PC7", "PC8", "PC9", "PC10",
|
||||
@@ -294,6 +327,8 @@
|
||||
resets = <&ccu RST_BUS_MMC1>;
|
||||
reset-names = "ahb";
|
||||
interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&mmc1_pins>;
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -445,7 +480,6 @@
|
||||
resets = <&ccu RST_BUS_OHCI3>,
|
||||
<&ccu RST_BUS_EHCI3>;
|
||||
phys = <&usb2phy 3>;
|
||||
- phy-names = "usb";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -457,7 +491,6 @@
|
||||
<&ccu CLK_USB_OHCI3>;
|
||||
resets = <&ccu RST_BUS_OHCI3>;
|
||||
phys = <&usb2phy 3>;
|
||||
- phy-names = "usb";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -613,6 +646,13 @@
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
+ r_watchdog: watchdog@7020400 {
|
||||
+ compatible = "allwinner,sun50i-h6-wdt",
|
||||
+ "allwinner,sun6i-a31-wdt";
|
||||
+ reg = <0x07020400 0x20>;
|
||||
+ interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ };
|
||||
+
|
||||
r_intc: interrupt-controller@7021000 {
|
||||
compatible = "allwinner,sun50i-h6-r-intc",
|
||||
"allwinner,sun6i-a31-r-intc";
|
||||
--
|
||||
2.20.1
|
||||
|
||||
@@ -9,9 +9,9 @@ if itest.s x51 == "x${imx_cpu}" ; then
|
||||
a_base=0x90000000
|
||||
elif itest.s x53 == "x${imx_cpu}"; then
|
||||
a_base=0x70000000
|
||||
elif itest.s x6SX == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
|
||||
elif itest.s x6SX == "x${imx_cpu}" || itest.s x6ULL == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
|
||||
a_base=0x80000000
|
||||
elif itest.s x8MQ == "x${imx_cpu}"; then
|
||||
elif itest.s x8MQ == "x${imx_cpu}" || itest.s x8MM == "x${imx_cpu}" || itest.s x8MMQ == "x${imx_cpu}" || itest.s x8MNano == "x${imx_cpu}"; then
|
||||
a_base=0x40000000
|
||||
kernelimage=Image
|
||||
bootcommand=booti
|
||||
@@ -43,10 +43,18 @@ if itest.s "x" == "x${fdt_file}" ; then
|
||||
fdt_file=imx6qp-${board}.dtb;
|
||||
elif itest.s x6SX == "x${imx_cpu}" ; then
|
||||
fdt_file=imx6sx-${board}${m4}.dtb;
|
||||
elif itest.s x6ULL == "x${imx_cpu}" ; then
|
||||
fdt_file=imx6ull-${board}.dtb;
|
||||
elif itest.s x7D == "x${imx_cpu}" ; then
|
||||
fdt_file=imx7d-${board}${m4}.dtb;
|
||||
elif itest.s x8MQ == "x${imx_cpu}" ; then
|
||||
fdt_file=imx8mq-${board}${m4}.dtb;
|
||||
elif itest.s x8MM == "x${imx_cpu}" ; then
|
||||
fdt_file=imx8mm-${board}${m4}.dtb;
|
||||
elif itest.s x8MMQ == "x${imx_cpu}" ; then
|
||||
fdt_file=imx8mm-${board}${m4}.dtb;
|
||||
elif itest.s x8MNano == "x${imx_cpu}" ; then
|
||||
fdt_file=imx8mn-${board}${m4}.dtb;
|
||||
elif itest.s x51 == "x${imx_cpu}" ; then
|
||||
fdt_file=imx51-${board}.dtb;
|
||||
elif itest.s x53 == "x${imx_cpu}" ; then
|
||||
@@ -63,7 +71,6 @@ fi
|
||||
if load ${devtype} ${devnum}:${distro_bootpart} ${a_script} uEnv.txt ; then
|
||||
env import -t ${a_script} ${filesize}
|
||||
fi
|
||||
|
||||
setenv bootargs ${bootargs} console=${console},115200 vmalloc=400M consoleblank=0 rootwait fixrtc cpu=${imx_cpu} board=${board}
|
||||
|
||||
if load ${devtype} ${devnum}:${distro_bootpart} ${a_fdt} ${prefix}${fdt_file} ; then
|
||||
@@ -74,21 +81,20 @@ else
|
||||
exit;
|
||||
fi
|
||||
|
||||
fdt resize
|
||||
fdt resize 4096
|
||||
if itest.s "x" != "x${cmd_board}" ; then
|
||||
run cmd_board
|
||||
fi
|
||||
if itest.s "x" != "x${cmd_custom}" ; then
|
||||
run cmd_custom
|
||||
fi
|
||||
if itest.s "x" != "x${cmd_hdmi}" ; then
|
||||
run cmd_hdmi
|
||||
if itest.s x == x${allow_noncea} ; then
|
||||
setenv bootargs ${bootargs} mxc_hdmi.only_cea=1;
|
||||
echo "only CEA modes allowed on HDMI port";
|
||||
else
|
||||
if itest.s x != x${allow_noncea} ; then
|
||||
setenv bootargs ${bootargs} mxc_hdmi.only_cea=0;
|
||||
echo "non-CEA modes allowed on HDMI, audio may be affected";
|
||||
fi
|
||||
fi
|
||||
|
||||
if itest.s "x" != "x${cmd_lcd}" ; then
|
||||
run cmd_lcd
|
||||
fi
|
||||
|
||||
@@ -1,16 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
|
||||
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
|
||||
|
||||
rm -rf "${GENIMAGE_TMP}"
|
||||
|
||||
genimage \
|
||||
--rootpath "${TARGET_DIR}" \
|
||||
--tmppath "${GENIMAGE_TMP}" \
|
||||
--inputpath "${BINARIES_DIR}" \
|
||||
--outputpath "${BINARIES_DIR}" \
|
||||
--config "${GENIMAGE_CFG}"
|
||||
support/scripts/genimage.sh -c $(dirname $0)/genimage.cfg
|
||||
|
||||
exit $?
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Buildroot for Boundary Devices platforms:
|
||||
|
||||
https://boundarydevices.com/product-category/popular-sbc-and-som-modules/
|
||||
https://boundarydevices.com/nitrogen-sbcs-and-soms/
|
||||
|
||||
Here is the list of targeted platforms per defconfig:
|
||||
|
||||
@@ -19,7 +19,19 @@ Here is the list of targeted platforms per defconfig:
|
||||
- nitrogen7_defconfig
|
||||
- Nitrogen7
|
||||
|
||||
To install, simply copy the image to a uSD card:
|
||||
- nitrogen8m_defconfig
|
||||
- Nitrogen8M
|
||||
- Nitrogen8M_SOM
|
||||
|
||||
- nitrogen8mm_defconfig
|
||||
- Nitrogen8MMini
|
||||
- Nitrogen8MMini_SOM
|
||||
|
||||
- nitrogen8mn_defconfig
|
||||
- Nitrogen8MNano
|
||||
- Nitrogen8MNano_SOM
|
||||
|
||||
To install, simply copy the image to your storage (SD, eMMC, USB):
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
|
||||
|
||||
|
||||
@@ -13,11 +13,14 @@ if itest.s x51 == "x${imx_cpu}"; then
|
||||
a_base=0x92000000
|
||||
elif itest.s x53 == "x${imx_cpu}"; then
|
||||
a_base=0x72000000
|
||||
elif itest.s x6SX == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
|
||||
elif itest.s x6SX == "x${imx_cpu}" || itest.s x6ULL == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
|
||||
a_base=0x82000000
|
||||
elif itest.s x8MQ == "x${imx_cpu}"; then
|
||||
elif itest.s x8MQ == "x${imx_cpu}" || itest.s x8MM == "x${imx_cpu}" || itest.s x8MMQ == "x${imx_cpu}"; then
|
||||
a_base=0x42000000
|
||||
offset=0x8400
|
||||
elif itest.s x8MNano == "x${imx_cpu}"; then
|
||||
a_base=0x42000000
|
||||
offset=0x8000
|
||||
fi
|
||||
|
||||
qspi_match=1
|
||||
@@ -56,6 +59,7 @@ mmc dev ${env_dev} ${env_part}
|
||||
mmc read ${a_uImage2} ${cntoffset} ${cntfile}
|
||||
if cmp.b ${a_uImage1} ${a_uImage2} ${filesize} ; then
|
||||
echo "------- U-Boot versions match" ;
|
||||
echo "------- U-Boot upgrade NOT needed" ;
|
||||
exit ;
|
||||
fi
|
||||
|
||||
@@ -134,7 +138,7 @@ fi
|
||||
if cmp.b ${a_uImage1} ${a_uImage2} $filesize ; then
|
||||
echo "------- U-Boot versions match" ;
|
||||
if itest.s "${qspi_match}" == "1" ; then
|
||||
echo "------- upgrade not needed" ;
|
||||
echo "------- U-Boot upgrade NOT needed" ;
|
||||
if itest.s "x" != "x${next}" ; then
|
||||
if ${fs}load ${devtype} ${devnum}:${distro_bootpart} ${a_script} ${next} ; then
|
||||
source ${a_script}
|
||||
@@ -206,6 +210,12 @@ if itest.s "x" != "x${next}" ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
while echo "---- U-Boot upgraded. Please reset the board" ; do
|
||||
sleep 120
|
||||
if itest.s "xno" == "x${reset}" ; then
|
||||
while echo "---- U-Boot upgraded. Please reset the board" ; do
|
||||
sleep 120
|
||||
done
|
||||
fi
|
||||
echo "---- U-Boot upgraded. The board will now reset."
|
||||
sleep 1
|
||||
reset
|
||||
done
|
||||
|
||||
1
buildroot/board/chromebook/elm/kernel.args
Normal file
1
buildroot/board/chromebook/elm/kernel.args
Normal file
@@ -0,0 +1 @@
|
||||
root=PARTUUID=%U/PARTNROFF=1 rootwait rw noinitrd kern_guid=%U console=tty0
|
||||
38
buildroot/board/chromebook/elm/kernel.its
Normal file
38
buildroot/board/chromebook/elm/kernel.its
Normal file
@@ -0,0 +1,38 @@
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
description = "Chrome OS kernel image with FDT";
|
||||
#address-cells = <1>;
|
||||
|
||||
images {
|
||||
kernel-1 {
|
||||
data = /incbin/("Image");
|
||||
type = "kernel_noload";
|
||||
arch = "arm64";
|
||||
os = "linux";
|
||||
compression = "none";
|
||||
load = <0>;
|
||||
entry = <0>;
|
||||
};
|
||||
|
||||
fdt-1 {
|
||||
description = "mt8173-elm.dtb";
|
||||
data = /incbin/("mt8173-elm.dtb");
|
||||
type = "flat_dt";
|
||||
arch = "arm64";
|
||||
compression = "none";
|
||||
|
||||
hash-1 {
|
||||
algo = "sha1";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
configurations {
|
||||
default = "conf-1";
|
||||
conf-1 {
|
||||
kernel = "kernel-1";
|
||||
fdt = "fdt-1";
|
||||
};
|
||||
};
|
||||
};
|
||||
453
buildroot/board/chromebook/elm/linux.config
Normal file
453
buildroot/board/chromebook/elm/linux.config
Normal file
@@ -0,0 +1,453 @@
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_NO_HZ_IDLE=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_IRQ_TIME_ACCOUNTING=y
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
CONFIG_BSD_PROCESS_ACCT_V3=y
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_NUMA_BALANCING=y
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_BLK_CGROUP=y
|
||||
CONFIG_CGROUP_PIDS=y
|
||||
CONFIG_CGROUP_HUGETLB=y
|
||||
CONFIG_CPUSETS=y
|
||||
CONFIG_CGROUP_DEVICE=y
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_CGROUP_PERF=y
|
||||
CONFIG_USER_NS=y
|
||||
CONFIG_SCHED_AUTOGROUP=y
|
||||
CONFIG_RELAY=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_COMPAT_BRK is not set
|
||||
CONFIG_SLAB=y
|
||||
CONFIG_PROFILING=y
|
||||
CONFIG_ARCH_MEDIATEK=y
|
||||
CONFIG_ARM64_VA_BITS_48=y
|
||||
CONFIG_SCHED_MC=y
|
||||
CONFIG_SCHED_SMT=y
|
||||
CONFIG_NR_CPUS=4
|
||||
CONFIG_NUMA=y
|
||||
CONFIG_SECCOMP=y
|
||||
CONFIG_PARAVIRT=y
|
||||
CONFIG_CRASH_DUMP=y
|
||||
CONFIG_COMPAT=y
|
||||
CONFIG_RANDOMIZE_BASE=y
|
||||
# CONFIG_EFI is not set
|
||||
# CONFIG_SUSPEND is not set
|
||||
CONFIG_PM=y
|
||||
CONFIG_PM_DEBUG=y
|
||||
CONFIG_PM_ADVANCED_DEBUG=y
|
||||
CONFIG_CPU_IDLE=y
|
||||
CONFIG_CPU_IDLE_GOV_LADDER=y
|
||||
CONFIG_ARM_CPUIDLE=y
|
||||
CONFIG_ARM_PSCI_CPUIDLE=y
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_STAT=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
|
||||
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
|
||||
CONFIG_CPUFREQ_DT=y
|
||||
CONFIG_ARM_SCPI_CPUFREQ=y
|
||||
CONFIG_ARM_MEDIATEK_CPUFREQ=y
|
||||
CONFIG_ARM_SCPI_PROTOCOL=y
|
||||
CONFIG_JUMP_LABEL=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_BLK_DEBUG_FS is not set
|
||||
# CONFIG_MQ_IOSCHED_KYBER is not set
|
||||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
|
||||
CONFIG_KSM=y
|
||||
CONFIG_MEMORY_FAILURE=y
|
||||
CONFIG_TRANSPARENT_HUGEPAGE=y
|
||||
CONFIG_CMA=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_UNIX_DIAG=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_INET_UDP_DIAG=y
|
||||
# CONFIG_IPV6 is not set
|
||||
CONFIG_CFG80211=y
|
||||
# CONFIG_CFG80211_DEFAULT_PS is not set
|
||||
CONFIG_MAC80211=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_FW_LOADER_USER_HELPER=y
|
||||
CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
|
||||
CONFIG_BRCMSTB_GISB_ARB=y
|
||||
CONFIG_VEXPRESS_CONFIG=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_CFI_ADV_OPTIONS=y
|
||||
CONFIG_MTD_CFI_INTELEXT=y
|
||||
CONFIG_MTD_CFI_AMDSTD=y
|
||||
CONFIG_MTD_CFI_STAA=y
|
||||
CONFIG_MTD_PHYSMAP=y
|
||||
CONFIG_MTD_PHYSMAP_OF=y
|
||||
CONFIG_MTD_DATAFLASH=y
|
||||
CONFIG_MTD_SST25L=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
CONFIG_MTD_NAND_DENALI_DT=y
|
||||
CONFIG_MTD_SPI_NOR=y
|
||||
CONFIG_SPI_CADENCE_QUADSPI=y
|
||||
CONFIG_OF_OVERLAY=y
|
||||
# CONFIG_BLK_DEV is not set
|
||||
CONFIG_SRAM=y
|
||||
CONFIG_EEPROM_AT24=m
|
||||
CONFIG_EEPROM_AT25=m
|
||||
CONFIG_RAID_ATTRS=m
|
||||
CONFIG_SCSI=y
|
||||
# CONFIG_SCSI_PROC_FS is not set
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_SCSI_SAS_LIBSAS=y
|
||||
CONFIG_SCSI_UFSHCD=y
|
||||
CONFIG_SCSI_UFSHCD_PLATFORM=y
|
||||
CONFIG_MD=y
|
||||
CONFIG_BLK_DEV_MD=m
|
||||
CONFIG_BLK_DEV_DM=m
|
||||
CONFIG_DM_MIRROR=m
|
||||
CONFIG_DM_ZERO=m
|
||||
CONFIG_NETDEVICES=y
|
||||
# CONFIG_ETHERNET is not set
|
||||
CONFIG_USB_RTL8152=y
|
||||
CONFIG_USB_USBNET=y
|
||||
# CONFIG_USB_NET_AX88179_178A is not set
|
||||
# CONFIG_USB_NET_NET1080 is not set
|
||||
# CONFIG_USB_NET_CDC_SUBSET is not set
|
||||
# CONFIG_USB_NET_ZAURUS is not set
|
||||
# CONFIG_WLAN_VENDOR_ADMTEK is not set
|
||||
# CONFIG_WLAN_VENDOR_ATH is not set
|
||||
# CONFIG_WLAN_VENDOR_ATMEL is not set
|
||||
# CONFIG_WLAN_VENDOR_BROADCOM is not set
|
||||
# CONFIG_WLAN_VENDOR_CISCO is not set
|
||||
# CONFIG_WLAN_VENDOR_INTEL is not set
|
||||
# CONFIG_WLAN_VENDOR_INTERSIL is not set
|
||||
CONFIG_MWIFIEX=m
|
||||
CONFIG_MWIFIEX_SDIO=m
|
||||
# CONFIG_WLAN_VENDOR_MEDIATEK is not set
|
||||
# CONFIG_WLAN_VENDOR_RALINK is not set
|
||||
# CONFIG_WLAN_VENDOR_REALTEK is not set
|
||||
# CONFIG_WLAN_VENDOR_RSI is not set
|
||||
# CONFIG_WLAN_VENDOR_ST is not set
|
||||
# CONFIG_WLAN_VENDOR_TI is not set
|
||||
# CONFIG_WLAN_VENDOR_ZYDAS is not set
|
||||
# CONFIG_WLAN_VENDOR_QUANTENNA is not set
|
||||
CONFIG_INPUT_POLLDEV=m
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
CONFIG_KEYBOARD_ADC=m
|
||||
CONFIG_KEYBOARD_GPIO=y
|
||||
CONFIG_KEYBOARD_CROS_EC=y
|
||||
CONFIG_MOUSE_ELAN_I2C=y
|
||||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
CONFIG_TOUCHSCREEN_ATMEL_MXT=m
|
||||
CONFIG_TOUCHSCREEN_ELAN=y
|
||||
CONFIG_INPUT_MISC=y
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
CONFIG_SERIO_AMBAKMI=y
|
||||
CONFIG_LEGACY_PTY_COUNT=16
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_EXTENDED=y
|
||||
CONFIG_SERIAL_8250_SHARE_IRQ=y
|
||||
CONFIG_SERIAL_8250_DW=y
|
||||
CONFIG_SERIAL_8250_MT6577=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
CONFIG_SERIAL_XILINX_PS_UART=y
|
||||
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
|
||||
CONFIG_SERIAL_FSL_LPUART=y
|
||||
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
|
||||
CONFIG_SERIAL_FSL_LINFLEXUART=y
|
||||
CONFIG_SERIAL_FSL_LINFLEXUART_CONSOLE=y
|
||||
CONFIG_SERIAL_DEV_BUS=y
|
||||
CONFIG_VIRTIO_CONSOLE=y
|
||||
CONFIG_IPMI_HANDLER=m
|
||||
CONFIG_IPMI_DEVICE_INTERFACE=m
|
||||
CONFIG_IPMI_SI=m
|
||||
CONFIG_TCG_TPM=y
|
||||
CONFIG_TCG_TIS_I2C_INFINEON=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_MUX_PCA954x=y
|
||||
CONFIG_I2C_DESIGNWARE_PLATFORM=y
|
||||
CONFIG_I2C_GPIO=m
|
||||
CONFIG_I2C_MT65XX=y
|
||||
CONFIG_I2C_RK3X=y
|
||||
CONFIG_I2C_CROS_EC_TUNNEL=y
|
||||
CONFIG_I2C_SLAVE=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_NXP_FLEXSPI=y
|
||||
CONFIG_SPI_GPIO=y
|
||||
CONFIG_SPI_MT65XX=y
|
||||
CONFIG_SPI_PL022=y
|
||||
CONFIG_SPI_ROCKCHIP=y
|
||||
CONFIG_SPI_SPIDEV=y
|
||||
CONFIG_PINCTRL_SINGLE=y
|
||||
CONFIG_PINCTRL_MAX77620=y
|
||||
CONFIG_GPIO_ALTERA=m
|
||||
CONFIG_GPIO_DWAPB=y
|
||||
CONFIG_GPIO_MB86S7X=y
|
||||
CONFIG_GPIO_PL061=y
|
||||
CONFIG_GPIO_XGENE=y
|
||||
CONFIG_GPIO_MAX732X=y
|
||||
CONFIG_GPIO_PCA953X=y
|
||||
CONFIG_GPIO_PCA953X_IRQ=y
|
||||
CONFIG_GPIO_BD9571MWV=m
|
||||
CONFIG_GPIO_MAX77620=y
|
||||
CONFIG_POWER_AVS=y
|
||||
CONFIG_POWER_RESET_BRCMSTB=y
|
||||
CONFIG_POWER_RESET_XGENE=y
|
||||
CONFIG_POWER_RESET_SYSCON=y
|
||||
CONFIG_SYSCON_REBOOT_MODE=y
|
||||
CONFIG_BATTERY_SBS=m
|
||||
CONFIG_BATTERY_BQ27XXX=y
|
||||
CONFIG_SENSORS_ARM_SCPI=y
|
||||
CONFIG_SENSORS_LM90=m
|
||||
CONFIG_SENSORS_PWM_FAN=m
|
||||
CONFIG_SENSORS_INA2XX=m
|
||||
CONFIG_SENSORS_INA3221=m
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_CPU_THERMAL=y
|
||||
CONFIG_DEVFREQ_THERMAL=y
|
||||
CONFIG_THERMAL_EMULATION=y
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_MEDIATEK_WATCHDOG=y
|
||||
CONFIG_MFD_BD9571MWV=y
|
||||
CONFIG_MFD_AXP20X_I2C=y
|
||||
CONFIG_MFD_HI6421_PMIC=y
|
||||
CONFIG_MFD_MAX77620=y
|
||||
CONFIG_MFD_MT6397=y
|
||||
CONFIG_MFD_RK808=y
|
||||
CONFIG_MFD_SEC_CORE=y
|
||||
CONFIG_MFD_ROHM_BD718XX=y
|
||||
CONFIG_REGULATOR_DEBUG=y
|
||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
CONFIG_REGULATOR_AXP20X=y
|
||||
CONFIG_REGULATOR_BD718XX=y
|
||||
CONFIG_REGULATOR_BD9571MWV=y
|
||||
CONFIG_REGULATOR_DA9211=y
|
||||
CONFIG_REGULATOR_FAN53555=y
|
||||
CONFIG_REGULATOR_GPIO=y
|
||||
CONFIG_REGULATOR_HI6421V530=y
|
||||
CONFIG_REGULATOR_MAX77620=y
|
||||
CONFIG_REGULATOR_MAX8973=y
|
||||
CONFIG_REGULATOR_MT6397=y
|
||||
CONFIG_REGULATOR_PFUZE100=y
|
||||
CONFIG_REGULATOR_PWM=y
|
||||
CONFIG_REGULATOR_RK808=y
|
||||
CONFIG_REGULATOR_S2MPS11=y
|
||||
CONFIG_REGULATOR_VCTRL=m
|
||||
CONFIG_MEDIA_SUPPORT=y
|
||||
CONFIG_MEDIA_CAMERA_SUPPORT=y
|
||||
CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
|
||||
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
|
||||
CONFIG_MEDIA_SDR_SUPPORT=y
|
||||
CONFIG_VIDEO_V4L2_SUBDEV_API=y
|
||||
CONFIG_MEDIA_USB_SUPPORT=y
|
||||
CONFIG_USB_VIDEO_CLASS=m
|
||||
CONFIG_DRM=y
|
||||
CONFIG_DRM_I2C_CH7006=m
|
||||
CONFIG_DRM_I2C_SIL164=m
|
||||
CONFIG_DRM_I2C_NXP_TDA998X=m
|
||||
CONFIG_DRM_MALI_DISPLAY=m
|
||||
CONFIG_DRM_PANEL_LVDS=m
|
||||
CONFIG_DRM_PANEL_SIMPLE=y
|
||||
CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
|
||||
CONFIG_DRM_DISPLAY_CONNECTOR=y
|
||||
CONFIG_DRM_PARADE_PS8640=y
|
||||
CONFIG_DRM_SII902X=m
|
||||
CONFIG_DRM_THINE_THC63LVD1024=m
|
||||
CONFIG_DRM_TI_SN65DSI86=m
|
||||
CONFIG_DRM_ANALOGIX_ANX78XX=y
|
||||
CONFIG_DRM_I2C_ADV7511=m
|
||||
CONFIG_DRM_MEDIATEK=y
|
||||
CONFIG_DRM_MEDIATEK_HDMI=y
|
||||
CONFIG_FB_MODE_HELPERS=y
|
||||
CONFIG_FB_SIMPLE=y
|
||||
CONFIG_BACKLIGHT_CLASS_DEVICE=y
|
||||
CONFIG_BACKLIGHT_PWM=y
|
||||
CONFIG_BACKLIGHT_LP855X=y
|
||||
CONFIG_SOUND=y
|
||||
CONFIG_SND=y
|
||||
CONFIG_SND_SOC=y
|
||||
CONFIG_SND_SOC_MT8173=y
|
||||
CONFIG_SND_SOC_MT8173_RT5650_RT5676=y
|
||||
CONFIG_I2C_HID=m
|
||||
CONFIG_USB_CONN_GPIO=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_XHCI_HCD=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_EHCI_HCD_PLATFORM=y
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
CONFIG_USB_OHCI_HCD_PLATFORM=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_USB_MTU3=y
|
||||
CONFIG_USB_MUSB_HDRC=y
|
||||
CONFIG_USB_DWC3=y
|
||||
CONFIG_USB_DWC2=y
|
||||
CONFIG_USB_CHIPIDEA=y
|
||||
CONFIG_USB_CHIPIDEA_UDC=y
|
||||
CONFIG_USB_CHIPIDEA_HOST=y
|
||||
CONFIG_USB_ISP1760=y
|
||||
CONFIG_USB_SERIAL=y
|
||||
CONFIG_USB_SERIAL_CONSOLE=y
|
||||
CONFIG_USB_SERIAL_PL2303=y
|
||||
CONFIG_USB_HSIC_USB3503=y
|
||||
CONFIG_NOP_USB_XCEIV=y
|
||||
CONFIG_USB_ULPI=y
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_SNP_UDC_PLAT=y
|
||||
CONFIG_USB_BDC_UDC=y
|
||||
CONFIG_USB_ETH=m
|
||||
CONFIG_USB_ETH_EEM=y
|
||||
CONFIG_TYPEC=m
|
||||
CONFIG_TYPEC_TCPM=m
|
||||
CONFIG_TYPEC_FUSB302=m
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_BLOCK_MINORS=32
|
||||
CONFIG_MMC_ARMMMCI=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_PLTFM=y
|
||||
CONFIG_MMC_SDHCI_OF_ARASAN=y
|
||||
CONFIG_MMC_SDHCI_CADENCE=y
|
||||
CONFIG_MMC_SDHCI_F_SDH30=y
|
||||
CONFIG_MMC_SPI=y
|
||||
CONFIG_MMC_DW=y
|
||||
CONFIG_MMC_DW_EXYNOS=y
|
||||
CONFIG_MMC_DW_HI3798CV200=y
|
||||
CONFIG_MMC_DW_K3=y
|
||||
CONFIG_MMC_MTK=y
|
||||
CONFIG_MMC_SDHCI_XENON=y
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
CONFIG_LEDS_GPIO=y
|
||||
CONFIG_LEDS_PWM=y
|
||||
CONFIG_LEDS_SYSCON=y
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_TIMER=y
|
||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
CONFIG_LEDS_TRIGGER_CPU=y
|
||||
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
|
||||
CONFIG_LEDS_TRIGGER_PANIC=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_DRV_DS1307=m
|
||||
CONFIG_RTC_DRV_MAX77686=y
|
||||
CONFIG_RTC_DRV_RK808=m
|
||||
CONFIG_RTC_DRV_PCF85363=m
|
||||
CONFIG_RTC_DRV_RX8581=m
|
||||
CONFIG_RTC_DRV_S5M=y
|
||||
CONFIG_RTC_DRV_DS3232=y
|
||||
CONFIG_RTC_DRV_PCF2127=m
|
||||
CONFIG_RTC_DRV_CROS_EC=y
|
||||
CONFIG_RTC_DRV_PL031=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_FSL_EDMA=y
|
||||
CONFIG_MV_XOR_V2=y
|
||||
CONFIG_PL330_DMA=y
|
||||
CONFIG_MTK_CQDMA=y
|
||||
CONFIG_QCOM_HIDMA_MGMT=y
|
||||
CONFIG_QCOM_HIDMA=y
|
||||
# CONFIG_VIRTIO_MENU is not set
|
||||
CONFIG_MFD_CROS_EC=y
|
||||
CONFIG_CROS_EC_I2C=y
|
||||
CONFIG_CROS_EC_SPI=y
|
||||
CONFIG_COMMON_CLK_RK808=y
|
||||
CONFIG_COMMON_CLK_SCPI=y
|
||||
CONFIG_COMMON_CLK_CS2000_CP=y
|
||||
CONFIG_COMMON_CLK_S2MPS11=y
|
||||
CONFIG_CLK_QORIQ=y
|
||||
CONFIG_COMMON_CLK_XGENE=y
|
||||
CONFIG_COMMON_CLK_PWM=y
|
||||
CONFIG_COMMON_CLK_VC5=y
|
||||
CONFIG_COMMON_CLK_MT6797_MMSYS=y
|
||||
CONFIG_COMMON_CLK_MT6797_IMGSYS=y
|
||||
CONFIG_COMMON_CLK_MT6797_VDECSYS=y
|
||||
CONFIG_COMMON_CLK_MT6797_VENCSYS=y
|
||||
CONFIG_HWSPINLOCK=y
|
||||
CONFIG_ARM_MHU=y
|
||||
CONFIG_PLATFORM_MHU=y
|
||||
CONFIG_ARM_SMMU=y
|
||||
CONFIG_ARM_SMMU_V3=y
|
||||
CONFIG_MTK_IOMMU=y
|
||||
CONFIG_REMOTEPROC=y
|
||||
CONFIG_MTK_CMDQ=y
|
||||
CONFIG_MTK_PMIC_WRAP=y
|
||||
CONFIG_EXTCON_USB_GPIO=y
|
||||
CONFIG_EXTCON_USBC_CROS_EC=y
|
||||
CONFIG_IIO=y
|
||||
CONFIG_MAX9611=m
|
||||
CONFIG_IIO_CROS_EC_SENSORS_CORE=m
|
||||
CONFIG_IIO_CROS_EC_SENSORS=m
|
||||
CONFIG_IIO_CROS_EC_LIGHT_PROX=m
|
||||
CONFIG_SENSORS_ISL29018=m
|
||||
CONFIG_IIO_CROS_EC_BARO=m
|
||||
CONFIG_MPL3115=m
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_CROS_EC=m
|
||||
CONFIG_PWM_MTK_DISP=y
|
||||
CONFIG_PWM_MEDIATEK=y
|
||||
CONFIG_PHY_XGENE=y
|
||||
CONFIG_PHY_FSL_IMX8MQ_USB=y
|
||||
CONFIG_PHY_MTK_TPHY=y
|
||||
CONFIG_PHY_QCOM_USB_HS=y
|
||||
CONFIG_PHY_SAMSUNG_USB2=y
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT3_FS=y
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_FANOTIFY=y
|
||||
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
|
||||
CONFIG_QUOTA=y
|
||||
CONFIG_AUTOFS4_FS=y
|
||||
CONFIG_FUSE_FS=m
|
||||
CONFIG_CUSE=m
|
||||
CONFIG_OVERLAY_FS=y
|
||||
CONFIG_OVERLAY_FS_INDEX=y
|
||||
CONFIG_OVERLAY_FS_XINO_AUTO=y
|
||||
CONFIG_OVERLAY_FS_METACOPY=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_HUGETLBFS=y
|
||||
CONFIG_CONFIGFS_FS=y
|
||||
CONFIG_PSTORE=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO_CRYPTD=y
|
||||
CONFIG_CRYPTO_DH=m
|
||||
CONFIG_CRYPTO_ECDH=m
|
||||
CONFIG_CRYPTO_SEQIV=y
|
||||
CONFIG_CRYPTO_ECHAINIV=y
|
||||
CONFIG_CRYPTO_CBC=y
|
||||
CONFIG_CRYPTO_ECB=y
|
||||
CONFIG_CRYPTO_XXHASH=m
|
||||
CONFIG_CRYPTO_SHA1=y
|
||||
CONFIG_CRYPTO_SHA3=m
|
||||
CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_ANSI_CPRNG=y
|
||||
CONFIG_CRYPTO_DEV_CCREE=m
|
||||
CONFIG_PACKING=y
|
||||
CONFIG_INDIRECT_PIO=y
|
||||
CONFIG_CRC_CCITT=m
|
||||
CONFIG_CRC_T10DIF=y
|
||||
CONFIG_LIBCRC32C=m
|
||||
CONFIG_DMA_CMA=y
|
||||
CONFIG_CMA_SIZE_MBYTES=32
|
||||
CONFIG_IRQ_POLL=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_DEBUG_FS=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
CONFIG_STACKTRACE=y
|
||||
# CONFIG_FTRACE is not set
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
||||
@@ -0,0 +1,35 @@
|
||||
From 510d0ad0ce1b51c072309ba12dfb024fc2c3dbac Mon Sep 17 00:00:00 2001
|
||||
From: Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
||||
Date: Wed, 26 Aug 2020 10:15:22 +0200
|
||||
Subject: [PATCH 1/5] drm/bridge_connector: Set default status connected for
|
||||
eDP connectors
|
||||
|
||||
In an eDP application, HPD is not required and on most bridge chips
|
||||
useless. If HPD is not used, we need to set initial status as connected,
|
||||
otherwise the connector created by the drm_bridge_connector API remains
|
||||
in an unknown state.
|
||||
|
||||
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||
Acked-by: Sam Ravnborg <sam@ravnborg.org>
|
||||
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
||||
Reviewed-by: Bilal Wasim <bwasim.lkml@gmail.com>
|
||||
Tested-by: Bilal Wasim <bwasim.lkml@gmail.com>
|
||||
---
|
||||
drivers/gpu/drm/drm_bridge_connector.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/gpu/drm/drm_bridge_connector.c b/drivers/gpu/drm/drm_bridge_connector.c
|
||||
index c6994fe673f3..a58cbde59c34 100644
|
||||
--- a/drivers/gpu/drm/drm_bridge_connector.c
|
||||
+++ b/drivers/gpu/drm/drm_bridge_connector.c
|
||||
@@ -187,6 +187,7 @@ drm_bridge_connector_detect(struct drm_connector *connector, bool force)
|
||||
case DRM_MODE_CONNECTOR_DPI:
|
||||
case DRM_MODE_CONNECTOR_LVDS:
|
||||
case DRM_MODE_CONNECTOR_DSI:
|
||||
+ case DRM_MODE_CONNECTOR_eDP:
|
||||
status = connector_status_connected;
|
||||
break;
|
||||
default:
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
From cc0f2fea61fb34ca84e4812a615e0035d812aa8b Mon Sep 17 00:00:00 2001
|
||||
From: Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
||||
Date: Wed, 26 Aug 2020 10:15:23 +0200
|
||||
Subject: [PATCH 2/5] drm/bridge: ps8640: Get the EDID from eDP control
|
||||
|
||||
The PS8640 DSI-to-eDP bridge can retrieve the EDID, so implement the
|
||||
.get_edid callback and set the flag to indicate the core to use it.
|
||||
|
||||
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||
Acked-by: Sam Ravnborg <sam@ravnborg.org>
|
||||
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
||||
---
|
||||
drivers/gpu/drm/bridge/parade-ps8640.c | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c
|
||||
index 4b099196afeb..13755d278db6 100644
|
||||
--- a/drivers/gpu/drm/bridge/parade-ps8640.c
|
||||
+++ b/drivers/gpu/drm/bridge/parade-ps8640.c
|
||||
@@ -242,8 +242,18 @@ static int ps8640_bridge_attach(struct drm_bridge *bridge,
|
||||
return ret;
|
||||
}
|
||||
|
||||
+static struct edid *ps8640_bridge_get_edid(struct drm_bridge *bridge,
|
||||
+ struct drm_connector *connector)
|
||||
+{
|
||||
+ struct ps8640 *ps_bridge = bridge_to_ps8640(bridge);
|
||||
+
|
||||
+ return drm_get_edid(connector,
|
||||
+ ps_bridge->page[PAGE0_DP_CNTL]->adapter);
|
||||
+}
|
||||
+
|
||||
static const struct drm_bridge_funcs ps8640_bridge_funcs = {
|
||||
.attach = ps8640_bridge_attach,
|
||||
+ .get_edid = ps8640_bridge_get_edid,
|
||||
.post_disable = ps8640_post_disable,
|
||||
.pre_enable = ps8640_pre_enable,
|
||||
};
|
||||
@@ -294,6 +304,8 @@ static int ps8640_probe(struct i2c_client *client)
|
||||
|
||||
ps_bridge->bridge.funcs = &ps8640_bridge_funcs;
|
||||
ps_bridge->bridge.of_node = dev->of_node;
|
||||
+ ps_bridge->bridge.ops = DRM_BRIDGE_OP_EDID;
|
||||
+ ps_bridge->bridge.type = DRM_MODE_CONNECTOR_eDP;
|
||||
|
||||
ps_bridge->page[PAGE0_DP_CNTL] = client;
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
From 62afc499fc46c8018f40733c31a675b28f0717d8 Mon Sep 17 00:00:00 2001
|
||||
From: Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
||||
Date: Wed, 26 Aug 2020 10:15:24 +0200
|
||||
Subject: [PATCH 3/5] drm/bridge: ps8640: Return an error for incorrect attach
|
||||
flags
|
||||
|
||||
Bridge drivers that implement the new model only shall return an error
|
||||
from their attach() handler when the DRM_BRIDGE_ATTACH_NO_CONNECTOR flag
|
||||
is not set. So make sure we return an error because only the new
|
||||
drm_bridge model is supported.
|
||||
|
||||
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
|
||||
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
||||
---
|
||||
drivers/gpu/drm/bridge/parade-ps8640.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c
|
||||
index 13755d278db6..ce3e8b2da8c9 100644
|
||||
--- a/drivers/gpu/drm/bridge/parade-ps8640.c
|
||||
+++ b/drivers/gpu/drm/bridge/parade-ps8640.c
|
||||
@@ -200,6 +200,10 @@ static int ps8640_bridge_attach(struct drm_bridge *bridge,
|
||||
.channel = 0,
|
||||
.node = NULL,
|
||||
};
|
||||
+
|
||||
+ if (!(flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR))
|
||||
+ return -EINVAL;
|
||||
+
|
||||
/* port@0 is ps8640 dsi input port */
|
||||
in_ep = of_graph_get_endpoint_by_regs(dev->of_node, 0, -1);
|
||||
if (!in_ep)
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
From 4897262a71cbf55d726d9174f5f646897dc13704 Mon Sep 17 00:00:00 2001
|
||||
From: Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
||||
Date: Wed, 26 Aug 2020 10:15:25 +0200
|
||||
Subject: [PATCH 4/5] drm/bridge: ps8640: Print an error if VDO control fails
|
||||
|
||||
Print an error message inside ps8640_bridge_vdo_control() function when
|
||||
it fails so we can simplify a bit the callers, they will only need to
|
||||
check the error code.
|
||||
|
||||
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
|
||||
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
||||
---
|
||||
drivers/gpu/drm/bridge/parade-ps8640.c | 13 ++++++-------
|
||||
1 file changed, 6 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c
|
||||
index ce3e8b2da8c9..9f7b7a9c53c5 100644
|
||||
--- a/drivers/gpu/drm/bridge/parade-ps8640.c
|
||||
+++ b/drivers/gpu/drm/bridge/parade-ps8640.c
|
||||
@@ -82,8 +82,11 @@ static int ps8640_bridge_vdo_control(struct ps8640 *ps_bridge,
|
||||
ret = i2c_smbus_write_i2c_block_data(client, PAGE3_SET_ADD,
|
||||
sizeof(vdo_ctrl_buf),
|
||||
vdo_ctrl_buf);
|
||||
- if (ret < 0)
|
||||
+ if (ret < 0) {
|
||||
+ DRM_ERROR("failed to %sable VDO: %d\n",
|
||||
+ ctrl == ENABLE ? "en" : "dis", ret);
|
||||
return ret;
|
||||
+ }
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -150,10 +153,8 @@ static void ps8640_pre_enable(struct drm_bridge *bridge)
|
||||
}
|
||||
|
||||
ret = ps8640_bridge_vdo_control(ps_bridge, ENABLE);
|
||||
- if (ret) {
|
||||
- DRM_ERROR("failed to enable VDO: %d\n", ret);
|
||||
+ if (ret)
|
||||
goto err_regulators_disable;
|
||||
- }
|
||||
|
||||
/* Switch access edp panel's edid through i2c */
|
||||
ret = i2c_smbus_write_byte_data(client, PAGE2_I2C_BYPASS,
|
||||
@@ -175,9 +176,7 @@ static void ps8640_post_disable(struct drm_bridge *bridge)
|
||||
struct ps8640 *ps_bridge = bridge_to_ps8640(bridge);
|
||||
int ret;
|
||||
|
||||
- ret = ps8640_bridge_vdo_control(ps_bridge, DISABLE);
|
||||
- if (ret < 0)
|
||||
- DRM_ERROR("failed to disable VDO: %d\n", ret);
|
||||
+ ps8640_bridge_vdo_control(ps_bridge, DISABLE);
|
||||
|
||||
gpiod_set_value(ps_bridge->gpio_reset, 1);
|
||||
gpiod_set_value(ps_bridge->gpio_powerdown, 1);
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
From 5bb60fe7c748a0aae2bdbab10e73b2dc48c09dda Mon Sep 17 00:00:00 2001
|
||||
From: Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
||||
Date: Wed, 26 Aug 2020 10:15:26 +0200
|
||||
Subject: [PATCH 5/5] drm/bridge: ps8640: Rework power state handling
|
||||
|
||||
The get_edid() callback can be triggered anytime by an ioctl, i.e
|
||||
|
||||
drm_mode_getconnector (ioctl)
|
||||
-> drm_helper_probe_single_connector_modes
|
||||
-> drm_bridge_connector_get_modes
|
||||
-> ps8640_bridge_get_edid
|
||||
|
||||
Actually if the bridge pre_enable() function was not called before
|
||||
get_edid(), the driver will not be able to get the EDID properly and
|
||||
display will not work until a second get_edid() call is issued and if
|
||||
pre_enable() is called before. The side effect of this, for example, is
|
||||
that you see anything when `Frecon` starts, neither the splash screen,
|
||||
until the graphical session manager starts.
|
||||
|
||||
To fix this we need to make sure that all we need is enabled before
|
||||
reading the EDID. This means the following:
|
||||
|
||||
1. If get_edid() is called before having the device powered we need to
|
||||
power on the device. In such case, the driver will power off again the
|
||||
device.
|
||||
|
||||
2. If get_edid() is called after having the device powered, all should
|
||||
just work. We added a powered flag in order to avoid recurrent calls
|
||||
to ps8640_bridge_poweron() and unneeded delays.
|
||||
|
||||
3. This seems to be specific for this device, but we need to make sure
|
||||
the panel is powered on before do a power on cycle on this device.
|
||||
Otherwise the device fails to retrieve the EDID.
|
||||
|
||||
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
||||
---
|
||||
drivers/gpu/drm/bridge/parade-ps8640.c | 64 +++++++++++++++++++++++---
|
||||
1 file changed, 58 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c
|
||||
index 9f7b7a9c53c5..c5d76e209bda 100644
|
||||
--- a/drivers/gpu/drm/bridge/parade-ps8640.c
|
||||
+++ b/drivers/gpu/drm/bridge/parade-ps8640.c
|
||||
@@ -65,6 +65,7 @@ struct ps8640 {
|
||||
struct regulator_bulk_data supplies[2];
|
||||
struct gpio_desc *gpio_reset;
|
||||
struct gpio_desc *gpio_powerdown;
|
||||
+ bool powered;
|
||||
};
|
||||
|
||||
static inline struct ps8640 *bridge_to_ps8640(struct drm_bridge *e)
|
||||
@@ -91,13 +92,15 @@ static int ps8640_bridge_vdo_control(struct ps8640 *ps_bridge,
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static void ps8640_pre_enable(struct drm_bridge *bridge)
|
||||
+static void ps8640_bridge_poweron(struct ps8640 *ps_bridge)
|
||||
{
|
||||
- struct ps8640 *ps_bridge = bridge_to_ps8640(bridge);
|
||||
struct i2c_client *client = ps_bridge->page[PAGE2_TOP_CNTL];
|
||||
unsigned long timeout;
|
||||
int ret, status;
|
||||
|
||||
+ if (ps_bridge->powered)
|
||||
+ return;
|
||||
+
|
||||
ret = regulator_bulk_enable(ARRAY_SIZE(ps_bridge->supplies),
|
||||
ps_bridge->supplies);
|
||||
if (ret < 0) {
|
||||
@@ -164,6 +167,8 @@ static void ps8640_pre_enable(struct drm_bridge *bridge)
|
||||
goto err_regulators_disable;
|
||||
}
|
||||
|
||||
+ ps_bridge->powered = true;
|
||||
+
|
||||
return;
|
||||
|
||||
err_regulators_disable:
|
||||
@@ -171,12 +176,12 @@ static void ps8640_pre_enable(struct drm_bridge *bridge)
|
||||
ps_bridge->supplies);
|
||||
}
|
||||
|
||||
-static void ps8640_post_disable(struct drm_bridge *bridge)
|
||||
+static void ps8640_bridge_poweroff(struct ps8640 *ps_bridge)
|
||||
{
|
||||
- struct ps8640 *ps_bridge = bridge_to_ps8640(bridge);
|
||||
int ret;
|
||||
|
||||
- ps8640_bridge_vdo_control(ps_bridge, DISABLE);
|
||||
+ if (!ps_bridge->powered)
|
||||
+ return;
|
||||
|
||||
gpiod_set_value(ps_bridge->gpio_reset, 1);
|
||||
gpiod_set_value(ps_bridge->gpio_powerdown, 1);
|
||||
@@ -184,6 +189,28 @@ static void ps8640_post_disable(struct drm_bridge *bridge)
|
||||
ps_bridge->supplies);
|
||||
if (ret < 0)
|
||||
DRM_ERROR("cannot disable regulators %d\n", ret);
|
||||
+
|
||||
+ ps_bridge->powered = false;
|
||||
+}
|
||||
+
|
||||
+static void ps8640_pre_enable(struct drm_bridge *bridge)
|
||||
+{
|
||||
+ struct ps8640 *ps_bridge = bridge_to_ps8640(bridge);
|
||||
+ int ret;
|
||||
+
|
||||
+ ps8640_bridge_poweron(ps_bridge);
|
||||
+
|
||||
+ ret = ps8640_bridge_vdo_control(ps_bridge, DISABLE);
|
||||
+ if (ret < 0)
|
||||
+ ps8640_bridge_poweroff(ps_bridge);
|
||||
+}
|
||||
+
|
||||
+static void ps8640_post_disable(struct drm_bridge *bridge)
|
||||
+{
|
||||
+ struct ps8640 *ps_bridge = bridge_to_ps8640(bridge);
|
||||
+
|
||||
+ ps8640_bridge_vdo_control(ps_bridge, DISABLE);
|
||||
+ ps8640_bridge_poweroff(ps_bridge);
|
||||
}
|
||||
|
||||
static int ps8640_bridge_attach(struct drm_bridge *bridge,
|
||||
@@ -249,9 +276,34 @@ static struct edid *ps8640_bridge_get_edid(struct drm_bridge *bridge,
|
||||
struct drm_connector *connector)
|
||||
{
|
||||
struct ps8640 *ps_bridge = bridge_to_ps8640(bridge);
|
||||
+ bool poweroff = !ps_bridge->powered;
|
||||
+ struct edid *edid;
|
||||
+
|
||||
+ /*
|
||||
+ * When we end calling get_edid() triggered by an ioctl, i.e
|
||||
+ *
|
||||
+ * drm_mode_getconnector (ioctl)
|
||||
+ * -> drm_helper_probe_single_connector_modes
|
||||
+ * -> drm_bridge_connector_get_modes
|
||||
+ * -> ps8640_bridge_get_edid
|
||||
+ *
|
||||
+ * We need to make sure that what we need is enabled before reading
|
||||
+ * EDID, for this chip, we need to do a full poweron, otherwise it will
|
||||
+ * fail.
|
||||
+ */
|
||||
+ drm_bridge_chain_pre_enable(bridge);
|
||||
|
||||
- return drm_get_edid(connector,
|
||||
+ edid = drm_get_edid(connector,
|
||||
ps_bridge->page[PAGE0_DP_CNTL]->adapter);
|
||||
+
|
||||
+ /*
|
||||
+ * If we call the get_edid() function without having enabled the chip
|
||||
+ * before, return the chip to its original power state.
|
||||
+ */
|
||||
+ if (poweroff)
|
||||
+ drm_bridge_chain_post_disable(bridge);
|
||||
+
|
||||
+ return edid;
|
||||
}
|
||||
|
||||
static const struct drm_bridge_funcs ps8640_bridge_funcs = {
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
From 51109530891c981b681816152bd205724deabcca Mon Sep 17 00:00:00 2001
|
||||
From: Jitao Shi <jitao.shi@mediatek.com>
|
||||
Date: Sat, 10 Oct 2020 15:09:09 +0800
|
||||
Subject: [PATCH] Revert "drm/mediatek: dsi: Fix scrolling of panel with small
|
||||
hfp or hbp"
|
||||
|
||||
This reverts commit 35bf948f1edbf507f6e57e0879fa6ea36d2d2930.
|
||||
|
||||
Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
|
||||
Reviewed-by: Bilal Wasim <bilal.wasim@imgtec.com>
|
||||
Tested-by: Bilal Wasim <bilal.wasim@imgtec.com>
|
||||
---
|
||||
drivers/gpu/drm/mediatek/mtk_dsi.c | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
|
||||
index 80b7a082e874..16fd99dcdacf 100644
|
||||
--- a/drivers/gpu/drm/mediatek/mtk_dsi.c
|
||||
+++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
|
||||
@@ -466,13 +466,14 @@ static void mtk_dsi_config_vdo_timing(struct mtk_dsi *dsi)
|
||||
horizontal_sync_active_byte = (vm->hsync_len * dsi_tmp_buf_bpp - 10);
|
||||
|
||||
if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE)
|
||||
- horizontal_backporch_byte = vm->hback_porch * dsi_tmp_buf_bpp;
|
||||
+ horizontal_backporch_byte =
|
||||
+ (vm->hback_porch * dsi_tmp_buf_bpp - 10);
|
||||
else
|
||||
- horizontal_backporch_byte = (vm->hback_porch + vm->hsync_len) *
|
||||
- dsi_tmp_buf_bpp;
|
||||
+ horizontal_backporch_byte = ((vm->hback_porch + vm->hsync_len) *
|
||||
+ dsi_tmp_buf_bpp - 10);
|
||||
|
||||
data_phy_cycles = timing->lpx + timing->da_hs_prepare +
|
||||
- timing->da_hs_zero + timing->da_hs_exit;
|
||||
+ timing->da_hs_zero + timing->da_hs_exit + 3;
|
||||
|
||||
if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO_BURST) {
|
||||
if ((vm->hfront_porch + vm->hback_porch) * dsi_tmp_buf_bpp >
|
||||
--
|
||||
2.25.1
|
||||
|
||||
56
buildroot/board/chromebook/elm/readme.txt
Normal file
56
buildroot/board/chromebook/elm/readme.txt
Normal file
@@ -0,0 +1,56 @@
|
||||
Mediatek MT8173 aka Chromebook Elm
|
||||
==================================
|
||||
|
||||
This file describes booting the Chromebook from an SD card containing
|
||||
Buildroot kernel and rootfs, using the original bootloader. This is
|
||||
the least invasive way to get Buildroot onto the devices and a good
|
||||
starting point.
|
||||
|
||||
The bootloader will only boot a kernel from a GPT partition marked
|
||||
bootable with cgpt tool from vboot-utils package.
|
||||
The kernel image must be signed using futility from the same package.
|
||||
The signing part is done by sign.sh script in this directory.
|
||||
|
||||
It does not really matter where rootfs is as long as the kernel is able
|
||||
to find it, but this particular configuration assumes the kernel is on
|
||||
partition 1 and rootfs is on partition 2 of the SD card.
|
||||
Make sure to check kernel.args if you change this.
|
||||
|
||||
Making the boot media
|
||||
---------------------
|
||||
Start by configuring and building the images.
|
||||
|
||||
make chromebook_elm_defconfig
|
||||
make menuconfig # if necessary
|
||||
make
|
||||
|
||||
The important files are:
|
||||
|
||||
uImage.kpart (kernel and device tree, signed)
|
||||
rootfs.tar
|
||||
bootsd.img (SD card image containing both kernel and rootfs)
|
||||
|
||||
Write the image directly to some SD card.
|
||||
WARNING: make sure there is nothing important on that card,
|
||||
and double-check the device name!
|
||||
|
||||
SD=/dev/mmcblk1 # may be /dev/sdX on some hosts
|
||||
dd if=output/images/bootsd.img of=$SD
|
||||
|
||||
Switching to developer mode and booting from SD
|
||||
-----------------------------------------------
|
||||
Power Chromebook down, then power it up while holding Esc+F3.
|
||||
BEWARE: switching to developer mode deletes all user data.
|
||||
Create backups if you need them.
|
||||
|
||||
While in developer mode, Chromebook will boot into a white screen saying
|
||||
"OS verification is off".
|
||||
|
||||
Press Ctrl-D at this screen to boot Chromium OS from eMMC.
|
||||
Press Ctrl-U at this screen to boot from SD (or USB)
|
||||
Press Power to power it off.
|
||||
Do NOT press Space unless you mean it.
|
||||
This will switch it back to normal mode.
|
||||
|
||||
The is no way to get rid of the white screen without re-flashing the bootloader.
|
||||
|
||||
41
buildroot/board/chromebook/elm/sign.sh
Executable file
41
buildroot/board/chromebook/elm/sign.sh
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/bin/sh
|
||||
|
||||
# This script creates u-boot FIT image containing the kernel and the DT,
|
||||
# then signs it using futility from vboot-utils.
|
||||
# The resulting file is called uImage.kpart.
|
||||
|
||||
BOARD_DIR=$(dirname $0)/${BOARD_NAME}
|
||||
mkimage=$HOST_DIR/bin/mkimage
|
||||
futility=$HOST_DIR/bin/futility
|
||||
devkeys=$HOST_DIR/share/vboot/devkeys
|
||||
|
||||
run() { echo "$@"; "$@"; }
|
||||
die() { echo "$@" >&2; exit 1; }
|
||||
test -f $BINARIES_DIR/Image || \
|
||||
die "No kernel image found"
|
||||
test -x $mkimage || \
|
||||
die "No mkimage found (host-uboot-tools has not been built?)"
|
||||
test -x $futility || \
|
||||
die "No futility found (host-vboot-utils has not been built?)"
|
||||
|
||||
# kernel.its references Image and mt8173-elm.dtb, and all three
|
||||
# files must be in current directory for mkimage.
|
||||
run cp $BOARD_DIR/kernel.its $BINARIES_DIR/kernel.its || exit 1
|
||||
echo "# entering $BINARIES_DIR for the next command"
|
||||
(cd $BINARIES_DIR && run $mkimage -f kernel.its uImage.itb) || exit 1
|
||||
|
||||
# futility requires non-empty file to be supplied with --bootloader
|
||||
# even if it does not make sense for the target platform.
|
||||
echo > $BINARIES_DIR/dummy.txt
|
||||
|
||||
run $futility vbutil_kernel \
|
||||
--keyblock $devkeys/kernel.keyblock \
|
||||
--signprivate $devkeys/kernel_data_key.vbprivk \
|
||||
--arch aarch64 \
|
||||
--version 1 \
|
||||
--config $BOARD_DIR/kernel.args \
|
||||
--vmlinuz $BINARIES_DIR/uImage.itb \
|
||||
--bootloader $BINARIES_DIR/dummy.txt \
|
||||
--pack $BINARIES_DIR/uImage.kpart || exit 1
|
||||
|
||||
rm -f $BINARIES_DIR/kernel.its $BINARIES_DIR/dummy.txt
|
||||
4
buildroot/board/firefly/roc-rk3399-pc/extlinux.conf
Normal file
4
buildroot/board/firefly/roc-rk3399-pc/extlinux.conf
Normal file
@@ -0,0 +1,4 @@
|
||||
label RK3399RocPC linux
|
||||
kernel /boot/Image
|
||||
devicetree /boot/rk3399-roc-pc.dtb
|
||||
append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk0p1 rootwait
|
||||
22
buildroot/board/firefly/roc-rk3399-pc/genimage.cfg
Normal file
22
buildroot/board/firefly/roc-rk3399-pc/genimage.cfg
Normal file
@@ -0,0 +1,22 @@
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition u-boot-tpl-spl-dtb {
|
||||
in-partition-table = "no"
|
||||
image = "idbloader.img"
|
||||
offset = 32K
|
||||
}
|
||||
|
||||
partition u-boot-dtb {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot.itb"
|
||||
offset = 8M
|
||||
size = 30M
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
5
buildroot/board/firefly/roc-rk3399-pc/post-build.sh
Executable file
5
buildroot/board/firefly/roc-rk3399-pc/post-build.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf
|
||||
40
buildroot/board/firefly/roc-rk3399-pc/readme.txt
Normal file
40
buildroot/board/firefly/roc-rk3399-pc/readme.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
Libre Computer Board ROC-RK3399-PC
|
||||
===================================
|
||||
|
||||
Build:
|
||||
|
||||
$ make roc_pc_rk3399_defconfig
|
||||
$ make
|
||||
|
||||
Files created in output directory
|
||||
=================================
|
||||
|
||||
output/images
|
||||
|
||||
├── bl31.elf
|
||||
├── idbloader.img
|
||||
├── Image
|
||||
├── rk3399-roc-pc.dtb
|
||||
├── rootfs.ext2
|
||||
├── rootfs.ext4 -> rootfs.ext2
|
||||
├── rootfs.tar
|
||||
├── sdcard.img
|
||||
├── u-boot.bin
|
||||
└── u-boot.itb
|
||||
|
||||
Creating bootable SD card:
|
||||
==========================
|
||||
|
||||
Simply invoke (as root)
|
||||
|
||||
sudo dd if=output/images/sdcard.img of=/dev/sdX && sync
|
||||
|
||||
Where X is your SD card device
|
||||
|
||||
Serial console
|
||||
--------------
|
||||
|
||||
Baudrate for this board is 1500000
|
||||
|
||||
Wiki link:
|
||||
https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/roc-rk3399-pc.html
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
label = "boot"
|
||||
files = {
|
||||
%FILES%
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
label = "boot"
|
||||
files = {
|
||||
%FILES%
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
label = "boot"
|
||||
files = {
|
||||
%FILES%
|
||||
}
|
||||
|
||||
@@ -9,19 +9,26 @@ main ()
|
||||
fi
|
||||
|
||||
if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
|
||||
cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/lpddr4_pmu_train_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
|
||||
cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/ddr_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
|
||||
BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin ATF_LOAD_ADDR=0x00910000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its
|
||||
${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb
|
||||
rm -f ${BINARIES_DIR}/u-boot.its
|
||||
|
||||
${HOST_DIR}/bin/mkimage_imx8 -fit -signed_hdmi ${BINARIES_DIR}/signed_hdmi_imx8m.bin -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx8-boot-sd.bin
|
||||
elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y$" ${BR2_CONFIG}; then
|
||||
cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/lpddr4_pmu_train_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
|
||||
cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/ddr_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
|
||||
BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin ATF_LOAD_ADDR=0x00920000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its
|
||||
${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb
|
||||
rm -f ${BINARIES_DIR}/u-boot.its
|
||||
|
||||
${HOST_DIR}/bin/mkimage_imx8 -fit -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx8-boot-sd.bin
|
||||
elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y$" ${BR2_CONFIG}; then
|
||||
cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/ddr_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
|
||||
BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin ATF_LOAD_ADDR=0x00960000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its
|
||||
${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb
|
||||
rm -f ${BINARIES_DIR}/u-boot.its
|
||||
|
||||
${HOST_DIR}/bin/mkimage_imx8 -v v2 -fit -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x912000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx8-boot-sd.bin
|
||||
else
|
||||
${HOST_DIR}/bin/mkimage_imx8 -commit > ${BINARIES_DIR}/mkimg.commit
|
||||
cat ${BINARIES_DIR}/u-boot.bin ${BINARIES_DIR}/mkimg.commit > ${BINARIES_DIR}/u-boot-hash.bin
|
||||
|
||||
@@ -38,6 +38,8 @@ genimage_type()
|
||||
echo "genimage.cfg.template_imx8"
|
||||
elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y$" ${BR2_CONFIG}; then
|
||||
echo "genimage.cfg.template_imx8"
|
||||
elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y$" ${BR2_CONFIG}; then
|
||||
echo "genimage.cfg.template_imx8"
|
||||
elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X=y$" ${BR2_CONFIG}; then
|
||||
echo "genimage.cfg.template_imx8"
|
||||
elif grep -Eq "^BR2_LINUX_KERNEL_INSTALL_TARGET=y$" ${BR2_CONFIG}; then
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
label = "boot"
|
||||
files = {
|
||||
%FILES%
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 90ecc0ad14337898b75843efc6530fc4a34f7808 Mon Sep 17 00:00:00 2001
|
||||
From e9a88fddc149fc52cdc5a8997f9fd3a29416c643 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Vincent=20Stehl=C3=A9?= <vincent.stehle@freescale.com>
|
||||
Date: Tue, 12 Aug 2014 10:17:31 +0200
|
||||
Subject: [PATCH] mx6qsabre_common: boot Linux to /init in mfgtools mode
|
||||
@@ -14,23 +14,24 @@ This patch tells u-boot to tell the kernel to boot into /init (instead of
|
||||
buildroot system entirely through USB.
|
||||
|
||||
Signed-off-by: Vincent Stehlé <vincent.stehle@freescale.com>
|
||||
Signed-off-by: Julien Olivain <julien.olivain@oss.nxp.com>
|
||||
---
|
||||
include/configs/mx6sabre_common.h | 2 +-
|
||||
include/configs/imx_env.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/configs/mx6sabre_common.h b/include/configs/mx6sabre_common.h
|
||||
index 93d4c4b..d2e7efd 100644
|
||||
--- a/include/configs/mx6sabre_common.h
|
||||
+++ b/include/configs/mx6sabre_common.h
|
||||
@@ -52,7 +52,7 @@
|
||||
diff --git a/include/configs/imx_env.h b/include/configs/imx_env.h
|
||||
index c03748d93f..aa1a8bf488 100644
|
||||
--- a/include/configs/imx_env.h
|
||||
+++ b/include/configs/imx_env.h
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
#define CONFIG_MFG_ENV_SETTINGS \
|
||||
"mfgtool_args=setenv bootargs console=" CONSOLE_DEV ",115200 " \
|
||||
#define CONFIG_MFG_ENV_SETTINGS_DEFAULT \
|
||||
"mfgtool_args=setenv bootargs console=${console},${baudrate} " \
|
||||
- "rdinit=/linuxrc " \
|
||||
+ "rdinit=/init " \
|
||||
"g_mass_storage.stall=0 g_mass_storage.removable=1 " \
|
||||
"g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF "\
|
||||
"g_mass_storage.iSerialNumber=\"\" "\
|
||||
"clk_ignore_unused "\
|
||||
"\0" \
|
||||
"kboot="MFG_BOOT_CMD"\0"\
|
||||
--
|
||||
2.1.4
|
||||
2.26.2
|
||||
|
||||
@@ -1,89 +0,0 @@
|
||||
From 27a2cd6a1980adf3002412678c8fdec6528dc47d Mon Sep 17 00:00:00 2001
|
||||
From: Trent Piepho <tpiepho@impinj.com>
|
||||
Date: Fri, 6 Apr 2018 17:11:27 -0700
|
||||
Subject: [PATCH] imx: Create distinct pre-processed mkimage config files
|
||||
|
||||
Each imx image is created by a separate sub-make and during this process
|
||||
the mkimage config file is run though cpp.
|
||||
|
||||
The cpp output is to the same file no matter what imx image is being
|
||||
created.
|
||||
|
||||
This means if two imx images are generated in parallel they will attempt
|
||||
to independently produce the same pre-processed mkimage config file at
|
||||
the same time.
|
||||
|
||||
Avoid the problem by making the pre-processed config file name unique
|
||||
based on the imx image it will be used in. This way each image will
|
||||
create a unique config file and they won't clobber each other when run
|
||||
in parallel.
|
||||
|
||||
This should fixed the build bug referenced in b5b0e4e3 ("imximage:
|
||||
Remove failure when no IVT offset is found").
|
||||
|
||||
Cc: Breno Lima <breno.lima@nxp.com>
|
||||
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
Cc: Fabio Estevam <fabio.estevam@nxp.com>
|
||||
Signed-off-by: Trent Piepho <tpiepho@impinj.com>
|
||||
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
|
||||
[fabio: Adapted to imx_v2017.03_4.9.11_1.0.0_ga]
|
||||
Signed-off-by: Fabio Estevam <festevam@gmail.com>
|
||||
---
|
||||
arch/arm/imx-common/Makefile | 15 ++++++++-------
|
||||
1 file changed, 8 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/imx-common/Makefile b/arch/arm/imx-common/Makefile
|
||||
index d862258..f1bae8d 100644
|
||||
--- a/arch/arm/imx-common/Makefile
|
||||
+++ b/arch/arm/imx-common/Makefile
|
||||
@@ -69,9 +69,11 @@ endif
|
||||
quiet_cmd_cpp_cfg = CFGS $@
|
||||
cmd_cpp_cfg = $(CPP) $(cpp_flags) -x c -o $@ $<
|
||||
|
||||
-IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%).cfgtmp
|
||||
+# mkimage source config file
|
||||
+IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%)
|
||||
|
||||
-$(IMX_CONFIG): %.cfgtmp: % FORCE
|
||||
+# How to create a cpp processed config file, they all use the same source
|
||||
+%.cfgout: $(IMX_CONFIG) FORCE
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(call if_changed_dep,cpp_cfg)
|
||||
|
||||
@@ -79,7 +81,7 @@ MKIMAGEFLAGS_u-boot.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T imxim
|
||||
-e $(CONFIG_SYS_TEXT_BASE)
|
||||
u-boot.imx: MKIMAGEOUTPUT = u-boot.imx.log
|
||||
|
||||
-u-boot.imx: u-boot.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
|
||||
+u-boot.imx: u-boot.bin u-boot.cfgout $(PLUGIN).bin FORCE
|
||||
$(call if_changed,mkimage)
|
||||
|
||||
ifeq ($(CONFIG_OF_SEPARATE),y)
|
||||
@@ -87,16 +89,15 @@ MKIMAGEFLAGS_u-boot-dtb.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T i
|
||||
-e $(CONFIG_SYS_TEXT_BASE)
|
||||
u-boot-dtb.imx: MKIMAGEOUTPUT = u-boot-dtb.imx.log
|
||||
|
||||
-u-boot-dtb.imx: u-boot-dtb.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
|
||||
+u-boot-dtb.imx: u-boot-dtb.bin u-boot-dtb.cfgout $(PLUGIN).bin FORCE
|
||||
$(call if_changed,mkimage)
|
||||
endif
|
||||
|
||||
MKIMAGEFLAGS_SPL = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T imximage \
|
||||
-e $(CONFIG_SPL_TEXT_BASE)
|
||||
-
|
||||
SPL: MKIMAGEOUTPUT = SPL.log
|
||||
|
||||
-SPL: spl/u-boot-spl.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
|
||||
+SPL: spl/u-boot-spl.bin spl/u-boot-spl.cfgout $(PLUGIN).bin FORCE
|
||||
$(call if_changed,mkimage)
|
||||
|
||||
MKIMAGEFLAGS_u-boot.uim = -A arm -O U-Boot -a $(CONFIG_SYS_TEXT_BASE) \
|
||||
@@ -124,4 +125,4 @@ cmd_u-boot-nand-spl_imx = (printf '\000\000\000\000\106\103\102\040\001' && \
|
||||
spl/u-boot-nand-spl.imx: SPL FORCE
|
||||
$(call if_changed,u-boot-nand-spl_imx)
|
||||
|
||||
-targets += $(addprefix ../../../,$(IMX_CONFIG) SPL u-boot.uim spl/u-boot-nand-spl.imx)
|
||||
+targets += $(addprefix ../../../,SPL spl/u-boot-spl.cfgout u-boot-dtb.cfgout u-boot.cfgout u-boot.uim spl/u-boot-nand-spl.imx)
|
||||
--
|
||||
2.7.4
|
||||
|
||||
71
buildroot/board/freescale/imx6ullevk/readme.txt
Normal file
71
buildroot/board/freescale/imx6ullevk/readme.txt
Normal file
@@ -0,0 +1,71 @@
|
||||
****************************
|
||||
Freescale i.MX6ULL EVK board
|
||||
****************************
|
||||
|
||||
This file documents the Buildroot support for the Freescale i.MX6ULL EVK board.
|
||||
|
||||
Build
|
||||
=====
|
||||
|
||||
First, configure Buildroot for your i.MX6ULL EVK board:
|
||||
|
||||
In order to to do so there are two supported options:
|
||||
|
||||
make freescale_imx6ullevk_defconfig
|
||||
|
||||
if you plan to use NXP provided U-Boot and kernel.
|
||||
|
||||
or
|
||||
|
||||
make imx6ullevk_defconfig
|
||||
|
||||
if you plan to use mainline U-Boot and mainline kernel.
|
||||
|
||||
Build all components:
|
||||
|
||||
make
|
||||
|
||||
You will find in output/images/ the following files:
|
||||
- boot.vfat
|
||||
- imx6ull-14x14-evk.dtb
|
||||
- rootfs.ext2
|
||||
- rootfs.ext4
|
||||
- rootfs.tar
|
||||
- sdcard.img
|
||||
- u-boot.bin
|
||||
- u-boot.imx
|
||||
- zImage
|
||||
|
||||
Create a bootable SD card
|
||||
=========================
|
||||
|
||||
To determine the device associated to the SD card have a look in the
|
||||
/proc/partitions file:
|
||||
|
||||
cat /proc/partitions
|
||||
|
||||
Buildroot prepares a bootable "sdcard.img" image in the output/images/
|
||||
directory, ready to be dumped on a SD card. Launch the following
|
||||
command as root:
|
||||
|
||||
dd if=./output/images/sdcard.img of=/dev/<your-sd-device>
|
||||
|
||||
*** WARNING! This will destroy all the card content. Use with care! ***
|
||||
|
||||
For details about the medium image layout, see the definition in
|
||||
board/freescale/common/imx/genimage.cfg.template.
|
||||
|
||||
Boot the i.MX6ULL EVK board
|
||||
===========================
|
||||
|
||||
To boot your newly created system (refer to the i.MX 6ULL EVK Quick Start Guide [1] for guidance):
|
||||
- insert the SD card in the micro SD slot of the board;
|
||||
- put a micro USB cable into the Debug USB Port and connect using a terminal
|
||||
emulator at 115200 bps, 8n1;
|
||||
- power on the board.
|
||||
|
||||
Enjoy!
|
||||
|
||||
References
|
||||
==========
|
||||
[1] https://www.nxp.com/files-static/32bit/doc/brochure/IMX6ULLQSG.pdf
|
||||
@@ -1,89 +0,0 @@
|
||||
From 27a2cd6a1980adf3002412678c8fdec6528dc47d Mon Sep 17 00:00:00 2001
|
||||
From: Trent Piepho <tpiepho@impinj.com>
|
||||
Date: Fri, 6 Apr 2018 17:11:27 -0700
|
||||
Subject: [PATCH] imx: Create distinct pre-processed mkimage config files
|
||||
|
||||
Each imx image is created by a separate sub-make and during this process
|
||||
the mkimage config file is run though cpp.
|
||||
|
||||
The cpp output is to the same file no matter what imx image is being
|
||||
created.
|
||||
|
||||
This means if two imx images are generated in parallel they will attempt
|
||||
to independently produce the same pre-processed mkimage config file at
|
||||
the same time.
|
||||
|
||||
Avoid the problem by making the pre-processed config file name unique
|
||||
based on the imx image it will be used in. This way each image will
|
||||
create a unique config file and they won't clobber each other when run
|
||||
in parallel.
|
||||
|
||||
This should fixed the build bug referenced in b5b0e4e3 ("imximage:
|
||||
Remove failure when no IVT offset is found").
|
||||
|
||||
Cc: Breno Lima <breno.lima@nxp.com>
|
||||
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
Cc: Fabio Estevam <fabio.estevam@nxp.com>
|
||||
Signed-off-by: Trent Piepho <tpiepho@impinj.com>
|
||||
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
|
||||
[fabio: Adapted to imx_v2017.03_4.9.11_1.0.0_ga]
|
||||
Signed-off-by: Fabio Estevam <festevam@gmail.com>
|
||||
---
|
||||
arch/arm/imx-common/Makefile | 15 ++++++++-------
|
||||
1 file changed, 8 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/imx-common/Makefile b/arch/arm/imx-common/Makefile
|
||||
index d862258..f1bae8d 100644
|
||||
--- a/arch/arm/imx-common/Makefile
|
||||
+++ b/arch/arm/imx-common/Makefile
|
||||
@@ -69,9 +69,11 @@ endif
|
||||
quiet_cmd_cpp_cfg = CFGS $@
|
||||
cmd_cpp_cfg = $(CPP) $(cpp_flags) -x c -o $@ $<
|
||||
|
||||
-IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%).cfgtmp
|
||||
+# mkimage source config file
|
||||
+IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%)
|
||||
|
||||
-$(IMX_CONFIG): %.cfgtmp: % FORCE
|
||||
+# How to create a cpp processed config file, they all use the same source
|
||||
+%.cfgout: $(IMX_CONFIG) FORCE
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(call if_changed_dep,cpp_cfg)
|
||||
|
||||
@@ -79,7 +81,7 @@ MKIMAGEFLAGS_u-boot.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T imxim
|
||||
-e $(CONFIG_SYS_TEXT_BASE)
|
||||
u-boot.imx: MKIMAGEOUTPUT = u-boot.imx.log
|
||||
|
||||
-u-boot.imx: u-boot.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
|
||||
+u-boot.imx: u-boot.bin u-boot.cfgout $(PLUGIN).bin FORCE
|
||||
$(call if_changed,mkimage)
|
||||
|
||||
ifeq ($(CONFIG_OF_SEPARATE),y)
|
||||
@@ -87,16 +89,15 @@ MKIMAGEFLAGS_u-boot-dtb.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T i
|
||||
-e $(CONFIG_SYS_TEXT_BASE)
|
||||
u-boot-dtb.imx: MKIMAGEOUTPUT = u-boot-dtb.imx.log
|
||||
|
||||
-u-boot-dtb.imx: u-boot-dtb.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
|
||||
+u-boot-dtb.imx: u-boot-dtb.bin u-boot-dtb.cfgout $(PLUGIN).bin FORCE
|
||||
$(call if_changed,mkimage)
|
||||
endif
|
||||
|
||||
MKIMAGEFLAGS_SPL = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T imximage \
|
||||
-e $(CONFIG_SPL_TEXT_BASE)
|
||||
-
|
||||
SPL: MKIMAGEOUTPUT = SPL.log
|
||||
|
||||
-SPL: spl/u-boot-spl.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
|
||||
+SPL: spl/u-boot-spl.bin spl/u-boot-spl.cfgout $(PLUGIN).bin FORCE
|
||||
$(call if_changed,mkimage)
|
||||
|
||||
MKIMAGEFLAGS_u-boot.uim = -A arm -O U-Boot -a $(CONFIG_SYS_TEXT_BASE) \
|
||||
@@ -124,4 +125,4 @@ cmd_u-boot-nand-spl_imx = (printf '\000\000\000\000\106\103\102\040\001' && \
|
||||
spl/u-boot-nand-spl.imx: SPL FORCE
|
||||
$(call if_changed,u-boot-nand-spl_imx)
|
||||
|
||||
-targets += $(addprefix ../../../,$(IMX_CONFIG) SPL u-boot.uim spl/u-boot-nand-spl.imx)
|
||||
+targets += $(addprefix ../../../,SPL spl/u-boot-spl.cfgout u-boot-dtb.cfgout u-boot.cfgout u-boot.uim spl/u-boot-nand-spl.imx)
|
||||
--
|
||||
2.7.4
|
||||
|
||||
73
buildroot/board/freescale/imx8mnevk/readme.txt
Normal file
73
buildroot/board/freescale/imx8mnevk/readme.txt
Normal file
@@ -0,0 +1,73 @@
|
||||
***************************
|
||||
Freescale i.MX8MN EVK board
|
||||
***************************
|
||||
|
||||
This file documents the Buildroot support for the i.MX8M Nano EVK board.
|
||||
|
||||
Build
|
||||
=====
|
||||
|
||||
First, configure Buildroot for the i.MX8MN EVK board:
|
||||
|
||||
make freescale_imx8mnevk_defconfig
|
||||
|
||||
Build all components:
|
||||
|
||||
make
|
||||
|
||||
You will find in output/images/ the following files:
|
||||
- bl31.bin
|
||||
- boot.vfat
|
||||
- ddr4_201810_fw.bin
|
||||
- ddr_fw.bin
|
||||
- fsl-imx8mn-ddr4-evk.dtb
|
||||
- Image
|
||||
- imx8-boot-sd.bin
|
||||
- rootfs.ext2
|
||||
- rootfs.ext4
|
||||
- rootfs.tar
|
||||
- sdcard.img
|
||||
- u-boot.bin
|
||||
- u-boot.imx
|
||||
- u-boot.itb
|
||||
- u-boot-nodtb.bin
|
||||
- u-boot-spl.bin
|
||||
- u-boot-spl-ddr.bin
|
||||
|
||||
Create a bootable SD card
|
||||
=========================
|
||||
|
||||
To determine the device associated to the SD card have a look in the
|
||||
/proc/partitions file:
|
||||
|
||||
cat /proc/partitions
|
||||
|
||||
Buildroot prepares a bootable "sdcard.img" image in the output/images/
|
||||
directory, ready to be dumped on a SD card. Launch the following
|
||||
command as root:
|
||||
|
||||
dd if=output/images/sdcard.img of=/dev/<your-sd-device>
|
||||
|
||||
*** WARNING! This will destroy all the card content. Use with care! ***
|
||||
|
||||
For details about the medium image layout, see the definition in
|
||||
board/freescale/common/imx/genimage.cfg.template_imx8.
|
||||
|
||||
Boot the i.MX8MN EVK board
|
||||
==========================
|
||||
|
||||
To boot your newly created system (refer to the i.MX8MNano EVK Quick Start Guide
|
||||
[1] for guidance):
|
||||
- insert the SD card in the SD slot of the board;
|
||||
- Configure the switches as follows (X = "don't care"):
|
||||
SW1101: 1100XXXXXX [D1-D10]
|
||||
SW1102: XXXXXXXXXX [D1-D10]
|
||||
- put a micro USB cable into the Debug USB Port and connect using a terminal
|
||||
emulator at 115200 bps, 8n1;
|
||||
- power on the board.
|
||||
|
||||
Enjoy!
|
||||
|
||||
References
|
||||
==========
|
||||
[1] https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-8m-nano-applications-processor:8MNANOD4-EVK
|
||||
@@ -10,8 +10,14 @@ Build
|
||||
|
||||
First, configure Buildroot for the i.MX8MQ EVK board:
|
||||
|
||||
If you want to use the NXP kernel:
|
||||
|
||||
make freescale_imx8mqevk_defconfig
|
||||
|
||||
Or if you want to use a mainline kernel:
|
||||
|
||||
make imx8mqevk_defconfig
|
||||
|
||||
Build all components:
|
||||
|
||||
make
|
||||
|
||||
76
buildroot/board/freescale/imx8qmmek/readme.txt
Normal file
76
buildroot/board/freescale/imx8qmmek/readme.txt
Normal file
@@ -0,0 +1,76 @@
|
||||
***************************
|
||||
Freescale i.MX8QM MEK board
|
||||
***************************
|
||||
|
||||
This file documents the Buildroot support for the NXP i.MX8QM MEK board.
|
||||
|
||||
You will find a reference to the board on nxp.com:
|
||||
https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/i.mx-8quadmax-multisensory-enablement-kit-mek:MCIMX8QM-CPU
|
||||
|
||||
You can also find the get started guide here:
|
||||
https://www.nxp.com/document/guide/get-started-with-the-i.mx-8quadmax-mek:GS-iMX-8QM-MEK
|
||||
|
||||
Build
|
||||
=====
|
||||
|
||||
First, configure Buildroot for the i.MX8QM MEK board:
|
||||
|
||||
$ make freescale_imx8qmmek_defconfig
|
||||
|
||||
Build all components:
|
||||
|
||||
$ make
|
||||
|
||||
You will find in output/images/ the following files:
|
||||
- ahab-container.img
|
||||
- bl31.bin
|
||||
- boot.vfat
|
||||
- fsl-imx8qm-mek.dtb
|
||||
- Image
|
||||
- imx8-boot-sd.bin
|
||||
- mkimg.commit
|
||||
- mx8qm-mek-scfw-tcm.bin
|
||||
- mx8qm-val-scfw-tcm.bin
|
||||
- mx8qm-a0-ddr4-scfw-tcm.bin
|
||||
- mx8qm-a0-mek-scfw-tcm.bin
|
||||
- mx8qm-a0-val-scfw-tcm.bin
|
||||
- mx8qm-ddr4-scfw-tcm.bin
|
||||
- rootfs.ext2
|
||||
- rootfs.ext4
|
||||
- rootfs.tar
|
||||
- sdcard.img
|
||||
- u-boot-atf.bin
|
||||
- u-boot.bin
|
||||
- u-boot-hash.bin
|
||||
|
||||
Create a bootable SD card
|
||||
=========================
|
||||
|
||||
To determine the device associated to the SD card have a look in the
|
||||
/proc/partitions file:
|
||||
|
||||
cat /proc/partitions
|
||||
|
||||
Buildroot prepares a bootable "sdcard.img" image in the output/images/
|
||||
directory, ready to be dumped on a SD card. Launch the following
|
||||
command as root:
|
||||
|
||||
dd if=output/images/sdcard.img of=/dev/<your-sd-device>
|
||||
|
||||
*** WARNING! This will destroy all the card content. Use with care! ***
|
||||
|
||||
For details about the medium image layout, see the definition in
|
||||
board/freescale/common/imx/genimage.cfg.template_imx8.
|
||||
|
||||
Boot the i.MX8QM MEK board
|
||||
==========================
|
||||
|
||||
To boot your newly created system:
|
||||
- insert the SD card in the SD slot of the board;
|
||||
- Configure the boot switch as follows:
|
||||
SW2: OFF OFF ON ON OFF OFF
|
||||
- put a micro USB cable into the Debug USB Port and connect using a terminal
|
||||
emulator at 115200 bps, 8n1;
|
||||
- power on the board.
|
||||
|
||||
Enjoy!
|
||||
4
buildroot/board/friendlyarm/nanopc-t4/extlinux.conf
Normal file
4
buildroot/board/friendlyarm/nanopc-t4/extlinux.conf
Normal file
@@ -0,0 +1,4 @@
|
||||
label RK3399_NanoPC_T4 linux
|
||||
kernel /Image
|
||||
devicetree /rk3399-nanopc-t4.dtb
|
||||
append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk1p4 rootwait
|
||||
39
buildroot/board/friendlyarm/nanopc-t4/genimage.cfg
Normal file
39
buildroot/board/friendlyarm/nanopc-t4/genimage.cfg
Normal file
@@ -0,0 +1,39 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"Image",
|
||||
"rk3399-nanopc-t4.dtb",
|
||||
"extlinux"
|
||||
}
|
||||
}
|
||||
size = 64M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
|
||||
hdimage {
|
||||
gpt = true
|
||||
}
|
||||
|
||||
partition loader1 {
|
||||
image = "idbloader.img"
|
||||
offset = 32K
|
||||
}
|
||||
|
||||
partition loader2 {
|
||||
image = "u-boot.itb"
|
||||
offset = 8M
|
||||
}
|
||||
|
||||
partition boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
offset = 16M
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
5
buildroot/board/friendlyarm/nanopc-t4/post-build.sh
Executable file
5
buildroot/board/friendlyarm/nanopc-t4/post-build.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf
|
||||
45
buildroot/board/friendlyarm/nanopc-t4/readme.txt
Normal file
45
buildroot/board/friendlyarm/nanopc-t4/readme.txt
Normal file
@@ -0,0 +1,45 @@
|
||||
FriendlyARM NANOPC-T4
|
||||
=====================
|
||||
|
||||
Build:
|
||||
|
||||
$ make nanopc_t4_defconfig
|
||||
$ make
|
||||
|
||||
Files created in output directory
|
||||
=================================
|
||||
|
||||
output/images
|
||||
|
||||
├── bl31.elf
|
||||
├── boot.vfat
|
||||
├── extlinux
|
||||
├── idbloader.img
|
||||
├── Image
|
||||
├── rk3399-nanopc-t4.dtb
|
||||
├── rootfs.ext2
|
||||
├── rootfs.ext4 -> rootfs.ext2
|
||||
├── rootfs.tar
|
||||
├── sdcard.img
|
||||
├── u-boot.bin
|
||||
└── u-boot.itb
|
||||
|
||||
Creating bootable SD card:
|
||||
==========================
|
||||
|
||||
Simply invoke (as root)
|
||||
|
||||
sudo dd if=output/images/sdcard.img of=/dev/sdX && sync
|
||||
|
||||
Where X is your SD card device
|
||||
|
||||
Serial console
|
||||
--------------
|
||||
|
||||
Baudrate for this board is 1500000
|
||||
|
||||
Login:
|
||||
------
|
||||
Apply power and press the PWR button for 3 sec. Enter 'root' as login user, and the prompt is ready.
|
||||
|
||||
https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/npc_t4.html
|
||||
4
buildroot/board/friendlyarm/nanopi-m4/extlinux.conf
Normal file
4
buildroot/board/friendlyarm/nanopi-m4/extlinux.conf
Normal file
@@ -0,0 +1,4 @@
|
||||
label RK3399_NANOPI_M4 linux
|
||||
kernel /Image
|
||||
devicetree /rk3399-nanopi-m4.dtb
|
||||
append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk1p4 rw rootwait
|
||||
39
buildroot/board/friendlyarm/nanopi-m4/genimage.cfg
Normal file
39
buildroot/board/friendlyarm/nanopi-m4/genimage.cfg
Normal file
@@ -0,0 +1,39 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"Image",
|
||||
"rk3399-nanopi-m4.dtb",
|
||||
"extlinux"
|
||||
}
|
||||
}
|
||||
size = 64M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
|
||||
hdimage {
|
||||
gpt = true
|
||||
}
|
||||
|
||||
partition loader1 {
|
||||
image = "idbloader.img"
|
||||
offset = 32K
|
||||
}
|
||||
|
||||
partition loader2 {
|
||||
image = "u-boot.itb"
|
||||
offset = 8M
|
||||
}
|
||||
|
||||
partition boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
offset = 16M
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
5
buildroot/board/friendlyarm/nanopi-m4/post-build.sh
Executable file
5
buildroot/board/friendlyarm/nanopi-m4/post-build.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf
|
||||
45
buildroot/board/friendlyarm/nanopi-m4/readme.txt
Normal file
45
buildroot/board/friendlyarm/nanopi-m4/readme.txt
Normal file
@@ -0,0 +1,45 @@
|
||||
FriendlyARM NANOPI-M4
|
||||
=====================
|
||||
|
||||
Build:
|
||||
|
||||
$ make nanopi_m4_defconfig
|
||||
$ make
|
||||
|
||||
Files created in output directory
|
||||
=================================
|
||||
|
||||
output/images
|
||||
|
||||
├── bl31.elf
|
||||
├── boot.vfat
|
||||
├── extlinux
|
||||
├── idbloader.img
|
||||
├── Image
|
||||
├── rk3399-nanopi-m4.dtb
|
||||
├── rootfs.ext2
|
||||
├── rootfs.ext4 -> rootfs.ext2
|
||||
├── rootfs.tar
|
||||
├── sdcard.img
|
||||
├── u-boot.bin
|
||||
└── u-boot.itb
|
||||
|
||||
Creating bootable SD card:
|
||||
==========================
|
||||
|
||||
Simply invoke (as root)
|
||||
|
||||
sudo dd if=output/images/sdcard.img of=/dev/sdX && sync
|
||||
|
||||
Where X is your SD card device
|
||||
|
||||
Serial console
|
||||
--------------
|
||||
|
||||
Baudrate for this board is 1500000
|
||||
|
||||
Login:
|
||||
------
|
||||
Enter 'root' as login user, and the prompt is ready.
|
||||
|
||||
https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/nanopi_m4.html
|
||||
4
buildroot/board/friendlyarm/nanopi-neo4/extlinux.conf
Normal file
4
buildroot/board/friendlyarm/nanopi-neo4/extlinux.conf
Normal file
@@ -0,0 +1,4 @@
|
||||
label NanoPi Neo4 linux
|
||||
kernel /boot/Image
|
||||
devicetree /boot/rk3399-nanopi-neo4.dtb
|
||||
append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk1p1 rootwait
|
||||
22
buildroot/board/friendlyarm/nanopi-neo4/genimage.cfg
Normal file
22
buildroot/board/friendlyarm/nanopi-neo4/genimage.cfg
Normal file
@@ -0,0 +1,22 @@
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition u-boot-tpl-spl-dtb {
|
||||
in-partition-table = "no"
|
||||
image = "idbloader.img"
|
||||
offset = 32K
|
||||
}
|
||||
|
||||
partition u-boot-dtb {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot.itb"
|
||||
offset = 8M
|
||||
size = 30M
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
5
buildroot/board/friendlyarm/nanopi-neo4/post-build.sh
Executable file
5
buildroot/board/friendlyarm/nanopi-neo4/post-build.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf
|
||||
53
buildroot/board/friendlyarm/nanopi-neo4/readme.txt
Normal file
53
buildroot/board/friendlyarm/nanopi-neo4/readme.txt
Normal file
@@ -0,0 +1,53 @@
|
||||
Intro
|
||||
=====
|
||||
|
||||
NanoPi Neo4 is a RK3399 SoC based ARM64 board.
|
||||
|
||||
|
||||
Official wiki: http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO4
|
||||
Mainline wiki: https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/neo4.html
|
||||
|
||||
Build
|
||||
=====
|
||||
|
||||
Run NanoPi Neo4 configuration
|
||||
|
||||
$ make nanopi_neo4_defconfig
|
||||
|
||||
To build, run make comamnd.
|
||||
|
||||
$ make
|
||||
|
||||
Files created in output directory
|
||||
=================================
|
||||
|
||||
output/images
|
||||
|
||||
├── bl31.bin
|
||||
├── bl31.elf
|
||||
├── Image
|
||||
├── rk3399-nanopi-neo4.dtb
|
||||
├── rootfs.ext2
|
||||
├── rootfs.ext4 -> rootfs.ext2
|
||||
├── rootfs.tar
|
||||
├── sdcard.img
|
||||
├── u-boot.bin
|
||||
├── u-boot.itb
|
||||
├── u-boot-spl-dtb.bin
|
||||
├── u-boot-tpl-dtb.bin
|
||||
├── u-boot-tpl-dtb.img
|
||||
└── u-boot-tpl-spl-dtb.img
|
||||
|
||||
Creating bootable SD card:
|
||||
=========================
|
||||
|
||||
Simply invoke (as root)
|
||||
|
||||
# dd if=output/images/sdcard.img of=/dev/sdX && sync
|
||||
|
||||
Where X is your SD card device
|
||||
|
||||
Serial console
|
||||
--------------
|
||||
|
||||
Baudrate for this board is 1500000
|
||||
8
buildroot/board/friendlyarm/nanopi-r1/boot.cmd
Normal file
8
buildroot/board/friendlyarm/nanopi-r1/boot.cmd
Normal file
@@ -0,0 +1,8 @@
|
||||
setenv fdt_high ffffffff
|
||||
|
||||
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
|
||||
|
||||
fatload mmc 0 $kernel_addr_r zImage
|
||||
fatload mmc 0 $fdt_addr_r sun8i-h3-nanopi-r1.dtb
|
||||
|
||||
bootz $kernel_addr_r - $fdt_addr_r
|
||||
36
buildroot/board/friendlyarm/nanopi-r1/genimage.cfg
Normal file
36
buildroot/board/friendlyarm/nanopi-r1/genimage.cfg
Normal file
@@ -0,0 +1,36 @@
|
||||
# Minimal SD card image for the NanoPi M1
|
||||
#
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"zImage",
|
||||
"sun8i-h3-nanopi-r1.dtb",
|
||||
"boot.scr"
|
||||
}
|
||||
}
|
||||
size = 10M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition u-boot {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot-sunxi-with-spl.bin"
|
||||
offset = 8192
|
||||
size = 1040384 # 1MB - 8192
|
||||
}
|
||||
|
||||
partition boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
size = 512M
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
# USB ethernet
|
||||
CONFIG_USB_RTL8152=y
|
||||
@@ -0,0 +1,170 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Igor Pecovnik <igor@armbian.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "sun8i-h3-nanopi.dtsi"
|
||||
|
||||
/ {
|
||||
model = "FriendlyElec NanoPi-R1";
|
||||
compatible = "friendlyarm,nanopi-r1", "allwinner,sun8i-h3";
|
||||
|
||||
aliases {
|
||||
serial1 = &uart3;
|
||||
ethernet0 = &emac;
|
||||
ethernet1 = &emac;
|
||||
ethernet2 = &sdio_wifi;
|
||||
};
|
||||
|
||||
wifi_pwrseq: wifi_pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
pinctrl-names = "default";
|
||||
reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
|
||||
};
|
||||
|
||||
reg_gmac_3v3: gmac-3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "gmac-3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
startup-delay-us = <100000>;
|
||||
enable-active-high;
|
||||
gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
leds {
|
||||
/delete-node/ status;
|
||||
/delete-node/ pwr;
|
||||
led1 {
|
||||
label = "LED1";
|
||||
gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
|
||||
led2 {
|
||||
label = "LED2";
|
||||
gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
linux,default-trigger = "netdev";
|
||||
};
|
||||
|
||||
led3 {
|
||||
label = "LED3";
|
||||
gpios = <&pio 0 9 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
linux,default-trigger = "netdev";
|
||||
};
|
||||
};
|
||||
|
||||
r_gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
input-name = "k1";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sw_r_npi>;
|
||||
|
||||
/delete-node/ k1;
|
||||
reset {
|
||||
label = "reset";
|
||||
linux,code = <BTN_1>;
|
||||
gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&emac {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&emac_rgmii_pins>;
|
||||
phy-supply = <®_gmac_3v3>;
|
||||
phy-handle = <&ext_rgmii_phy>;
|
||||
phy-mode = "rgmii";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&external_mdio {
|
||||
ext_rgmii_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <7>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
vmmc-supply = <®_vcc3v3>;
|
||||
vqmmc-supply = <®_vcc3v3>;
|
||||
mmc-pwrseq = <&wifi_pwrseq>;
|
||||
bus-width = <4>;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
|
||||
sdio_wifi: sdio_wifi@1 {
|
||||
reg = <1>;
|
||||
compatible = "brcm,bcm4329-fmac";
|
||||
interrupt-parent = <&pio>;
|
||||
interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
|
||||
interrupt-names = "host-wake";
|
||||
};
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc2_8bit_pins>;
|
||||
vmmc-supply = <®_vcc3v3>;
|
||||
vqmmc-supply = <®_vcc3v3>;
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
dr_mode = "peripheral";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
status = "okay";
|
||||
};
|
||||
29
buildroot/board/friendlyarm/nanopi-r1/readme.txt
Normal file
29
buildroot/board/friendlyarm/nanopi-r1/readme.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
NanoPi R1
|
||||
|
||||
Intro
|
||||
=====
|
||||
|
||||
This default configuration will allow you to start experimenting with the
|
||||
buildroot environment for the NanoPi R1. With the current configuration
|
||||
it will bring-up the board, and allow access through the serial console.
|
||||
|
||||
How to build it
|
||||
===============
|
||||
|
||||
Configure Buildroot:
|
||||
|
||||
$ make nanopi_r1_defconfig
|
||||
|
||||
Compile everything and build the SD card image:
|
||||
|
||||
$ make
|
||||
|
||||
How to write the SD card
|
||||
========================
|
||||
|
||||
Once the build process is finished you will have an image called "sdcard.img"
|
||||
in the output/images/ directory.
|
||||
|
||||
Copy the bootable "sdcard.img" onto an SD card with "dd":
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
|
||||
@@ -0,0 +1,22 @@
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARCH_SUNXI=y
|
||||
CONFIG_SPL=y
|
||||
CONFIG_MACH_SUN8I_H3=y
|
||||
CONFIG_DRAM_CLK=408
|
||||
CONFIG_DRAM_ZQ=3881979
|
||||
CONFIG_DRAM_ODT_EN=y
|
||||
CONFIG_MACPWR="PD6"
|
||||
# CONFIG_VIDEO_DE2 is not set
|
||||
CONFIG_NR_DRAM_BANKS=1
|
||||
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
|
||||
CONFIG_CONSOLE_MUX=y
|
||||
CONFIG_SYS_CLK_FREQ=480000000
|
||||
# CONFIG_CMD_FLASH is not set
|
||||
# CONFIG_SPL_DOS_PARTITION is not set
|
||||
# CONFIG_SPL_EFI_PARTITION is not set
|
||||
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-nanopi-r1"
|
||||
CONFIG_SUN8I_EMAC=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
|
||||
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
|
||||
@@ -0,0 +1,102 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Igor Pecovnik <igor@armbian.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "sun8i-h3-nanopi.dtsi"
|
||||
|
||||
/ {
|
||||
model = "FriendlyARM NanoPi R1";
|
||||
compatible = "friendlyarm,nanopi-neo", "allwinner,sun8i-h3";
|
||||
|
||||
reg_gmac_3v3: gmac-3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
pinctrl-names = "default";
|
||||
regulator-name = "gmac-3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
startup-delay-us = <100000>;
|
||||
enable-active-high;
|
||||
gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pio {
|
||||
gmac_power_pin_nanopi: gmac_power_pin@0 {
|
||||
pins = "PD6";
|
||||
function = "gpio_out";
|
||||
};
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc2_8bit_pins>;
|
||||
vmmc-supply = <®_vcc3v3>;
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
cap-mmc-hw-reset;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&emac {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&emac_rgmii_pins>;
|
||||
phy-supply = <®_gmac_3v3>;
|
||||
phy-handle = <&ext_rgmii_phy>;
|
||||
phy-mode = "rgmii";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&external_mdio {
|
||||
ext_rgmii_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <7>;
|
||||
};
|
||||
};
|
||||
11
buildroot/board/globalscale/espressobin/genimage.cfg
Normal file
11
buildroot/board/globalscale/espressobin/genimage.cfg
Normal file
@@ -0,0 +1,11 @@
|
||||
# Minimal image, no U-boot since v3/v5 cannot boot from sdcard, see
|
||||
# readme.txt for details on configuring the on-board u-boot.
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
14
buildroot/board/globalscale/espressobin/linux-extras.config
Normal file
14
buildroot/board/globalscale/espressobin/linux-extras.config
Normal file
@@ -0,0 +1,14 @@
|
||||
#
|
||||
# The Espressobin has a switchcore with full support in the kernel.
|
||||
# This fragment enables DSA and its drivers, inclding VLAN aware bridge
|
||||
# support to allow users to easily set up a LAN switch + WAN interface.
|
||||
#
|
||||
CONFIG_NET_DSA=m
|
||||
CONFIG_VLAN_8021Q=y
|
||||
|
||||
CONFIG_BRIDGE=m
|
||||
CONFIG_BRIDGE_IGMP_SNOOPING=y
|
||||
CONFIG_BRIDGE_VLAN_FILTERING=y
|
||||
|
||||
CONFIG_NET_DSA_MV88E6XXX=m
|
||||
CONFIG_NET_DSA_MV88E6XXX_PTP=y
|
||||
90
buildroot/board/globalscale/espressobin/readme.txt
Normal file
90
buildroot/board/globalscale/espressobin/readme.txt
Normal file
@@ -0,0 +1,90 @@
|
||||
Marvell ESPRESSObin
|
||||
===================
|
||||
|
||||
This default configuration allows you to quickly get up and running with
|
||||
the Marvell ESPRESSObin board by Globalscale Technologies Inc.
|
||||
|
||||
The ESPRESSObin is based on the Marvell Armada 88F3720 SoC, coupled with
|
||||
a Marvell 88E6341 switch core "Topaz", with three exposed gigabit ports.
|
||||
|
||||
_________________________
|
||||
|# U W L L U #|
|
||||
|# S A A A S #|
|
||||
|# B N N N B #|
|
||||
|# 0 1 #|
|
||||
|# Mini #|
|
||||
|# -PCI #|
|
||||
|# #|
|
||||
|# 5 #|
|
||||
|#__V___usb_PWR_SATA__SW_#|
|
||||
|
||||
Fig 1: Overview of board
|
||||
|
||||
Notice difference in Ethernet port layout compared to the Globalscale
|
||||
docs. They order the ports; LAN2, LAN1, WAN (left to right in figure
|
||||
above). For more information, see http://espressobin.net
|
||||
|
||||
|
||||
Building
|
||||
--------
|
||||
|
||||
$ make globalscale_espressobin_defconfig
|
||||
$ make
|
||||
|
||||
This generates the kernel image, the devicetree binary, the rootfs as a
|
||||
tar.gz, and a filesystem image containing everything.
|
||||
|
||||
All build artifacts are located in `output/images/`
|
||||
|
||||
|
||||
Booting
|
||||
-------
|
||||
|
||||
To boot, you need a UART connection, using the on-board micro USB port
|
||||
set to 115200 8N1.
|
||||
|
||||
By default, the ESPRESSObin comes with a pre-flashed U-Boot set up to
|
||||
load the kernel, device-tree and rootfs from SPI NOR flash. The board
|
||||
jumpers can be changed to boot from different sources, see the quick
|
||||
start guide for each board revision for details:
|
||||
|
||||
- ftp://downloads.globalscaletechnologies.com/Downloads/Espressobin/ESPRESSObin%20V5/
|
||||
- ftp://downloads.globalscaletechnologies.com/Downloads/Espressobin/ESPRESSObin%20V7/
|
||||
|
||||
Note: the v5, and earlier, cannot boot from sdcard, so you have to set
|
||||
up the factory U-Boot to boot into Buildroot:
|
||||
|
||||
1. Flash rootfs image to sdcard drive, your `of=` device may differ:
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/mmcblk0 bs=1M
|
||||
$ sync
|
||||
|
||||
2. Boot board from SPI NOR, interrupt boot by pressing any key ...
|
||||
3. Check with `printenv` that the default setup is OK, otherwise ensure
|
||||
the following are set, and define `bootcmd` for automatic boot:
|
||||
|
||||
> setenv kernel_addr 0x5000000
|
||||
> setenv fdt_addr 0x1800000
|
||||
> setenv fdt_name boot/armada-3720-espressobin.dtb
|
||||
> setenv console console=ttyMV0,115200 earlycon=ar3700_uart,0xd0012000
|
||||
> setenv bootcmd 'mmc dev 0; ext4load mmc 0:1 $kernel_addr $image_name;ext4load mmc 0:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk0p1 rw rootwait; booti $kernel_addr - $fdt_addr'
|
||||
|
||||
4. Call the boot command, or `reset` the board to start:
|
||||
|
||||
> run bootcmd
|
||||
|
||||
|
||||
Networking
|
||||
----------
|
||||
|
||||
To enable Ethernet networking, load the `mv88e6xxx` kernel module, and
|
||||
bring up each respective interface needed:
|
||||
|
||||
# modprobe mv88e6xxx
|
||||
# ifconfig wan up
|
||||
|
||||
A more advanced scenario is setting up switching between the ports using
|
||||
the Linux bridge. The kernel switchdev layer, and DSA driver, ensure
|
||||
switch functions are "offloaded" to the HW switch, i.e., all traffic
|
||||
between LAN ports never reach the CPU. For this you need the iproute2
|
||||
suite of tools.
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
|
||||
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
|
||||
|
||||
rm -rf "${GENIMAGE_TMP}"
|
||||
|
||||
genimage \
|
||||
--rootpath "${TARGET_DIR}" \
|
||||
--tmppath "${GENIMAGE_TMP}" \
|
||||
--inputpath "${BINARIES_DIR}" \
|
||||
--outputpath "${BINARIES_DIR}" \
|
||||
--config "${GENIMAGE_CFG}"
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
|
||||
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
|
||||
|
||||
rm -rf "${GENIMAGE_TMP}"
|
||||
|
||||
genimage \
|
||||
--rootpath "${TARGET_DIR}" \
|
||||
--tmppath "${GENIMAGE_TMP}" \
|
||||
--inputpath "${BINARIES_DIR}" \
|
||||
--outputpath "${BINARIES_DIR}" \
|
||||
--config "${GENIMAGE_CFG}"
|
||||
11
buildroot/board/hardkernel/odroidc2/boot.cmd
Normal file
11
buildroot/board/hardkernel/odroidc2/boot.cmd
Normal file
@@ -0,0 +1,11 @@
|
||||
setenv kernel_filename "Image"
|
||||
setenv fdt_filename "meson-gxbb-odroidc2.dtb"
|
||||
setenv bootargs "console=ttyAML0,115200n8 earlyprintk root=/dev/mmcblk1p2 rootwait rw"
|
||||
|
||||
echo > Loading Kernel...
|
||||
fatload mmc 0:1 ${kernel_addr_r} ${kernel_filename}
|
||||
echo > Loading FDT...
|
||||
fatload mmc 0:1 ${fdt_addr_r} ${fdt_filename}
|
||||
|
||||
echo > Booting System...
|
||||
booti ${kernel_addr_r} - ${fdt_addr_r}
|
||||
38
buildroot/board/hardkernel/odroidc2/genimage.cfg
Normal file
38
buildroot/board/hardkernel/odroidc2/genimage.cfg
Normal file
@@ -0,0 +1,38 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"Image",
|
||||
"meson-gxbb-odroidc2.dtb",
|
||||
"boot.scr"
|
||||
}
|
||||
}
|
||||
size = 64M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition bl1 {
|
||||
in-partition-table = "no"
|
||||
image = "bl1.bin.hardkernel"
|
||||
offset = 0
|
||||
}
|
||||
|
||||
partition u-boot {
|
||||
in-partition-table = "no"
|
||||
image = "uboot-odc2.img"
|
||||
offset = 49664
|
||||
}
|
||||
|
||||
partition boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
21
buildroot/board/hardkernel/odroidc2/post-image.sh
Executable file
21
buildroot/board/hardkernel/odroidc2/post-image.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
${HOST_DIR}/bin/fip_create \
|
||||
--bl30 ${BINARIES_DIR}/bl30.bin \
|
||||
--bl301 ${BINARIES_DIR}/bl301.bin \
|
||||
--bl31 ${BINARIES_DIR}/bl31.bin \
|
||||
--bl33 ${BINARIES_DIR}/u-boot.bin \
|
||||
${BINARIES_DIR}/fip.bin
|
||||
|
||||
${HOST_DIR}/bin/fip_create --dump ${BINARIES_DIR}/fip.bin
|
||||
|
||||
cat ${BINARIES_DIR}/bl2.package ${BINARIES_DIR}/fip.bin \
|
||||
> ${BINARIES_DIR}/boot_new.bin
|
||||
|
||||
${HOST_DIR}/bin/amlbootsig ${BINARIES_DIR}/boot_new.bin ${BINARIES_DIR}/u-boot.img
|
||||
|
||||
dd if=${BINARIES_DIR}/u-boot.img of=${BINARIES_DIR}/uboot-odc2.img bs=512 skip=96
|
||||
|
||||
support/scripts/genimage.sh -c ${BOARD_DIR}/genimage.cfg
|
||||
64
buildroot/board/hardkernel/odroidc2/readme.txt
Normal file
64
buildroot/board/hardkernel/odroidc2/readme.txt
Normal file
@@ -0,0 +1,64 @@
|
||||
ODROID-C2
|
||||
|
||||
Intro
|
||||
=====
|
||||
To be able to use ODROID-C2 board with the images generated by
|
||||
Buildroot, you have to prepare the SDCard or eMMC.
|
||||
|
||||
How to build it
|
||||
===============
|
||||
|
||||
$ make odroidc2_defconfig
|
||||
|
||||
Then you can edit the build options using
|
||||
|
||||
$ make menuconfig
|
||||
|
||||
Compile all and build rootfs image:
|
||||
|
||||
$ make
|
||||
|
||||
Note: you will need to have access to the network, since Buildroot will
|
||||
download the packages' sources.
|
||||
|
||||
Result of the build
|
||||
-------------------
|
||||
|
||||
After building, you should obtain this tree:
|
||||
|
||||
output/images/
|
||||
+-- bl1.bin.hardkernel
|
||||
+-- bl2.package
|
||||
+-- bl301.bin
|
||||
+-- bl30.bin
|
||||
+-- bl31.bin
|
||||
+-- boot_new.bin
|
||||
+-- boot.scr [1]
|
||||
+-- boot.vfat
|
||||
+-- fip.bin
|
||||
+-- Image [2]
|
||||
+-- meson-gxbb-odroidc2.dtb
|
||||
+-- rootfs.ext2
|
||||
+-- rootfs.ext4
|
||||
+-- rootfs.tar
|
||||
+-- sdcard.img
|
||||
+-- u-boot.bin
|
||||
+-- u-boot.img
|
||||
+-- uboot-odc2.img [3]
|
||||
|
||||
[1] This is the ODROID-C2 configuration file used in u-boot.
|
||||
[2] This is the ODROID-C2 kernel image file which will be booted.
|
||||
[3] This is the ODROID-C2 signed u-boot image which will be used.
|
||||
|
||||
How to write the SD card or eMMC
|
||||
================================
|
||||
|
||||
Once the build process is finished you will have an image called "sdcard.img"
|
||||
in the output/images/ directory.
|
||||
|
||||
Copy the bootable "sdcard.img" onto an SD card or eMMC with "dd":
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
|
||||
|
||||
Insert the SDcard into your ODROID-C2, and power it up. Your new system
|
||||
should come up now.
|
||||
23
buildroot/board/hardkernel/odroidc2/rootfs_overlay/etc/init.d/S09modload
Executable file
23
buildroot/board/hardkernel/odroidc2/rootfs_overlay/etc/init.d/S09modload
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
|
||||
load_drivers()
|
||||
{
|
||||
echo "Loading needed modules..."
|
||||
for file in $(echo "dwmac_generic dwmac-meson8b meson_dw_hdmi meson_gxbb_wdt"); do
|
||||
modprobe ${file}
|
||||
done
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
load_drivers
|
||||
;;
|
||||
stop)
|
||||
;;
|
||||
restart|reload)
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart}"
|
||||
exit 1
|
||||
esac
|
||||
4
buildroot/board/kontron/smarc-sal28/extlinux.conf
Normal file
4
buildroot/board/kontron/smarc-sal28/extlinux.conf
Normal file
@@ -0,0 +1,4 @@
|
||||
label buildroot
|
||||
kernel /boot/Image
|
||||
devicetreedir /boot
|
||||
append root=PARTUUID=%PARTUUID% rootwait
|
||||
11
buildroot/board/kontron/smarc-sal28/genimage.cfg
Normal file
11
buildroot/board/kontron/smarc-sal28/genimage.cfg
Normal file
@@ -0,0 +1,11 @@
|
||||
image sdcard-emmc.img {
|
||||
hdimage {
|
||||
gpt = true
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
offset = 2M
|
||||
image = rootfs.ext4
|
||||
partition-uuid = %PARTUUID%
|
||||
}
|
||||
}
|
||||
7
buildroot/board/kontron/smarc-sal28/post-build.sh
Executable file
7
buildroot/board/kontron/smarc-sal28/post-build.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
PARTUUID="$($HOST_DIR/bin/uuidgen)"
|
||||
|
||||
install -d "$TARGET_DIR/boot/extlinux/"
|
||||
sed "s/%PARTUUID%/$PARTUUID/g" "$BOARD_DIR/extlinux.conf" > "$TARGET_DIR/boot/extlinux/extlinux.conf"
|
||||
sed "s/%PARTUUID%/$PARTUUID/g" "$BOARD_DIR/genimage.cfg" > "$BINARIES_DIR/genimage.cfg"
|
||||
80
buildroot/board/kontron/smarc-sal28/readme.txt
Normal file
80
buildroot/board/kontron/smarc-sal28/readme.txt
Normal file
@@ -0,0 +1,80 @@
|
||||
Kontron SMARC-sAL28
|
||||
===================
|
||||
|
||||
How to build it
|
||||
===============
|
||||
|
||||
Configure Buildroot:
|
||||
|
||||
$ make kontron_smarc_sal28_defconfig
|
||||
|
||||
Change settings to fit your needs (optional):
|
||||
|
||||
$ make menuconfig
|
||||
|
||||
Compile everything and build the rootfs image:
|
||||
|
||||
$ make
|
||||
|
||||
Copying the image to a storage device
|
||||
=====================================
|
||||
|
||||
Buildroot builds an image which can be written to the internal eMMC
|
||||
storage, a SD card or an USB thumb drive. You can use the following
|
||||
command on your host:
|
||||
|
||||
$ sudo dd if=output/images/sdcard-emmc.img of=/dev/sdx bs=1M
|
||||
|
||||
Where /dev/sdx is the corresponding block device of your SD card or USB
|
||||
thumb drive. To flash it on your internal eMMC use the following command on
|
||||
the board:
|
||||
|
||||
# dd if=sdcard-emmc.img of=/dev/mmcblk1 bs=1M
|
||||
|
||||
Be sure you have not booted from the internal eMMC in this case!
|
||||
|
||||
Booting the board
|
||||
=================
|
||||
|
||||
By default the bootloader will search for the first valid image, starting
|
||||
with the internal eMMC. Consult the vendor documentation on how to use the
|
||||
DIP switches to select specific boot devices. To use the bootloader
|
||||
environment set the boot_targets correspondingly. E.g.:
|
||||
|
||||
# setenv boot_targets usb0
|
||||
|
||||
To boot from an USB thumb drive.
|
||||
|
||||
The device tree is loaded according to the filename in fdtfile. The
|
||||
following command will set the default device tree, which works on almost
|
||||
all variants (with less features of course):
|
||||
|
||||
# setenv fdtfile freescale/fsl-ls1028a-kontron-sl28.dtb
|
||||
|
||||
Set this to a device tree which fits your board variant.
|
||||
|
||||
Connect your serial cable to SER1 and open your favorite terminal emulation
|
||||
program (baudrate 115200, 8n1). E.g.:
|
||||
|
||||
$ picocom -b 115200 /dev/ttyUSB0
|
||||
|
||||
You will get a warning reported by fdisk when you examine the SD card.
|
||||
This is because the genimage.cfg file doesn't specify the SD card size
|
||||
(as people will naturally have different sized cards), so the
|
||||
secondary GPT header is placed after the rootfs rather than at the end
|
||||
of the disk where it is expected to be.
|
||||
|
||||
You will see something like this at boot time:
|
||||
|
||||
[ 4.552797] GPT:Primary header thinks Alt. header is not at the end of the disk.
|
||||
[ 4.560237] GPT:266272 != 7864319
|
||||
[ 4.563565] GPT:Alternate GPT header not at the end of the disk.
|
||||
[ 4.569596] GPT:266272 != 7864319
|
||||
[ 4.572925] GPT: Use GNU Parted to correct GPT errors.
|
||||
|
||||
What does not work
|
||||
==================
|
||||
|
||||
For reasons unknown, the network card doesn't work if you use the original
|
||||
vendor bootloader. Board support patches for upstream u-boot are currently
|
||||
pending. Stay tuned.
|
||||
@@ -0,0 +1,8 @@
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.0", DRIVERS=="fsl_enetc", NAME="eno0"
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.1", DRIVERS=="fsl_enetc", NAME="eno1"
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.2", DRIVERS=="fsl_enetc", NAME="eno2"
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.6", DRIVERS=="fsl_enetc", NAME="eno3"
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:01.0", DRIVERS=="fsl_enetc_vf", NAME="eno0vf0"
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:01.1", DRIVERS=="fsl_enetc_vf", NAME="eno0vf1"
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:01.2", DRIVERS=="fsl_enetc_vf", NAME="eno1vf0"
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:01.3", DRIVERS=="fsl_enetc_vf", NAME="eno1vf1"
|
||||
@@ -0,0 +1,6 @@
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p0", NAME="swp0"
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p1", NAME="swp1"
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p2", NAME="swp2"
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p3", NAME="swp3"
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p4", NAME="swp4"
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p5", NAME="swp5"
|
||||
@@ -0,0 +1,19 @@
|
||||
# Map the GBE0 and GBE1 names from the SMARC standard to the network
|
||||
# interfaces. This depends on the variant of the board.
|
||||
|
||||
# get the variant compatible string
|
||||
PROGRAM=="/bin/grep '^kontron,sl28-var[1-4]$' /sys/firmware/devicetree/base/compatible", ENV{sl28_compatible}="%c"
|
||||
|
||||
# variant 1
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.1", DRIVERS=="fsl_enetc", ENV{sl28_compatible}=="kontron,sl28-var1", NAME="gbe0"
|
||||
|
||||
# variant 2
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p0", ENV{sl28_compatible}=="kontron,sl28-var2", NAME="gbe0"
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p1", ENV{sl28_compatible}=="kontron,sl28-var2", NAME="gbe1"
|
||||
|
||||
# variant 3
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.0", DRIVERS=="fsl_enetc", ENV{sl28_compatible}=="kontron,sl28-var3", NAME="gbe0"
|
||||
|
||||
# variant 4
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.0", DRIVERS=="fsl_enetc", ENV{sl28_compatible}=="kontron,sl28-var4", NAME="gbe0"
|
||||
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.1", DRIVERS=="fsl_enetc", ENV{sl28_compatible}=="kontron,sl28-var4", NAME="gbe1"
|
||||
9
buildroot/board/olpc/genimage.cfg
Normal file
9
buildroot/board/olpc/genimage.cfg
Normal file
@@ -0,0 +1,9 @@
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
71
buildroot/board/olpc/linux.config
Normal file
71
buildroot/board/olpc/linux.config
Normal file
@@ -0,0 +1,71 @@
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_CFG80211=y
|
||||
CONFIG_CFG80211_WEXT=y
|
||||
CONFIG_MAC80211=y
|
||||
CONFIG_RFKILL=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_BLK_DEV_SR=y
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_LIBERTAS=m
|
||||
CONFIG_INPUT_MOUSEDEV=y
|
||||
CONFIG_INPUT_MOUSEDEV_PSAUX=y
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1200
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=900
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
CONFIG_INPUT_TABLET=y
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
CONFIG_BATTERY_OLPC=y
|
||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
CONFIG_MEDIA_SUPPORT=y
|
||||
CONFIG_MEDIA_CAMERA_SUPPORT=y
|
||||
CONFIG_MEDIA_CONTROLLER=y
|
||||
CONFIG_VIDEO_V4L2_SUBDEV_API=y
|
||||
CONFIG_MEDIA_USB_SUPPORT=y
|
||||
CONFIG_USB_VIDEO_CLASS=m
|
||||
CONFIG_V4L_PLATFORM_DRIVERS=y
|
||||
CONFIG_DRM=y
|
||||
CONFIG_DRM_PANEL_SIMPLE=m
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_FB_SIMPLE=y
|
||||
CONFIG_LCD_CLASS_DEVICE=y
|
||||
CONFIG_BACKLIGHT_CLASS_DEVICE=y
|
||||
CONFIG_SOUND=y
|
||||
CONFIG_SND=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
CONFIG_LEDS_GPIO=y
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_MSDOS_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_FONTS=y
|
||||
CONFIG_FONT_TER16x32=y
|
||||
47
buildroot/board/olpc/olpc.fth
Normal file
47
buildroot/board/olpc/olpc.fth
Normal file
@@ -0,0 +1,47 @@
|
||||
\ OLPC XO boot script
|
||||
|
||||
: (visible) " unfreeze visible" evaluate ;
|
||||
' (visible) catch drop forget (visible)
|
||||
|
||||
" /aliases" find-device " last" get-property
|
||||
abort" No last alias"
|
||||
" /pci/sd@c" 2over substring? if " root=/dev/mmcblk0p1 " to boot-file then
|
||||
" /sd/sdhci@d4280000" 2over substring? if " root=/dev/mmcblk1p1 " to boot-file then
|
||||
" /pci/usb@" 2over substring? if " root=/dev/sda1 " to boot-file then
|
||||
" /usb@" 2over substring? if " root=/dev/sda1 " to boot-file then
|
||||
" /pci/nandflash@c" 2over substring? if " root=/dev/mtdblock0 rootfstype=jffs2 " to boot-file then
|
||||
2drop
|
||||
|
||||
root-device " compatible" get-property dend if 0 0 then ( compatible$ )
|
||||
" olpc,xo-1.75" 2over sindex -1 > if ( compatible$ )
|
||||
\ Version check on XO-1.75
|
||||
" mrvl,mmp2" 2over sindex -1 = if ( compatible$ )
|
||||
2drop ( )
|
||||
cr
|
||||
." Firmware Q4E00 or newer is needed to boot a Devicetree enabled kernel." cr
|
||||
cr
|
||||
." One way to update is to copy http://dev.laptop.org/~quozl/q4e00ja.rom" cr
|
||||
." to a FAT partition on a USB flash stick and run ""flash u:\q4e00ja.rom""" cr
|
||||
cr
|
||||
." Aborting boot." cr
|
||||
" show-sad" evaluate
|
||||
abort
|
||||
then
|
||||
then ( compatible$ )
|
||||
|
||||
" mmp" 2swap sindex -1 > if
|
||||
\ A Marvell MMP-based machine
|
||||
" last:\boot\zImage" to boot-device
|
||||
boot-file " console=ttyS2,115200 " $cat2 to boot-file
|
||||
else
|
||||
\ Assume XO-1
|
||||
" last:\boot\bzImage" to boot-device
|
||||
boot-file " console=ttyS0,115200 reboot=pci " $cat2 to boot-file
|
||||
then
|
||||
|
||||
\ Pick a terminal that looks better on the XO screen
|
||||
root-device " architecture" get-property dend if 0 0 else 1- then
|
||||
" OLPC" $= if boot-file " fbcon=font:TER16x32 vt.color=0xf0 " $cat2 to boot-file then
|
||||
|
||||
boot-file " console=tty0 rootwait" $cat2 to boot-file
|
||||
boot
|
||||
4
buildroot/board/olpc/post-build.sh
Executable file
4
buildroot/board/olpc/post-build.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
install -m 0644 -D $BOARD_DIR/olpc.fth $TARGET_DIR/boot/olpc.fth
|
||||
98
buildroot/board/olpc/readme.txt
Normal file
98
buildroot/board/olpc/readme.txt
Normal file
@@ -0,0 +1,98 @@
|
||||
OLPC XO Laptops
|
||||
===============
|
||||
|
||||
This document explains how to build and run images that run on the OLPC
|
||||
XO laptops.
|
||||
|
||||
Supported models
|
||||
----------------
|
||||
|
||||
* OLPC XO-1
|
||||
The original NS Geode based OLPC laptop, uses the x86 architecture.
|
||||
Can be booted either from an internal MTD device formatted with JFFS2
|
||||
or from a FAT or EXT4 partition on a SD card or a USB flash stick.
|
||||
|
||||
* OLPC XO-7.5
|
||||
The ARM-based laptop. Needs a recent enough firmware to provide a good
|
||||
enough flattened device tree to the kernel. Can be from a FAT or EXT4
|
||||
partition on a internal eMMC, a SD card or a USB flash stick.
|
||||
|
||||
Configure and build
|
||||
===================
|
||||
|
||||
$ make olpc_xo1_defconfig # Configure for XO-1
|
||||
|
||||
or:
|
||||
|
||||
$ make olpc_xo175_defconfig # Configure for XO-1.75
|
||||
|
||||
Then:
|
||||
|
||||
$ make menuconfig # Customize the build configuration
|
||||
$ make # Build
|
||||
|
||||
Preparing the machine
|
||||
=====================
|
||||
|
||||
Firmware security
|
||||
-----------------
|
||||
|
||||
Most OLPC machines were shipped with the security system that disallows
|
||||
booting unsigned software. If this is the case with your machine, in order
|
||||
to run the image you've built on it you'll need to get a developer key and
|
||||
deactivate the security system.
|
||||
|
||||
The procedure is descriped in the OLPC wiki:
|
||||
http://wiki.laptop.org/go/Activation_and_Developer_Keys
|
||||
|
||||
Firmware upgrade
|
||||
----------------
|
||||
|
||||
It is always preferrable to use an up to date firmware. The firmware images
|
||||
are available at http://wiki.laptop.org/go/Firmware. For the XO-1.75 laptop
|
||||
to boot the mainline kernel a firmware Q4E00JA or newer is needed. You can
|
||||
get it at http://dev.laptop.org/~quozl/q4e00ja.rom.
|
||||
|
||||
To update the firmware, place the .rom file on to your bootable media,
|
||||
connect a charged battery pack and a wall adapter, and enter the Open
|
||||
Firmware prompt by pressing ESC during the early boot (needs an unlocked
|
||||
laptop -- see "Firmware security" above). Then use the "flash" command
|
||||
to update the firmware:
|
||||
|
||||
ok flash ext:\q4e00ja.rom \ Flash the "q4e00ja.rom" from the SD card
|
||||
ok flash u:\q4e00ja.rom \ Flash the "q4e00ja.rom" from USB stick
|
||||
|
||||
Create the bootable SD card or USB flash stick
|
||||
==============================================
|
||||
|
||||
When the build is finished, an image file called "sdcard.img" will be created.
|
||||
It is suitable for writing directly to a SD card, USB flash stick or (on a
|
||||
XO-1.75) the internal eMMC flash.
|
||||
|
||||
Before writing the image, please double check that you're using the right
|
||||
device (e.g. with "lsblk" command). Doing the following will DESTROY ALL DATA
|
||||
that's currently on the media.
|
||||
|
||||
# cat output/images/sdcard.img >/dev/<device>
|
||||
|
||||
Flashing the JFFS2 image (XO-1 only)
|
||||
====================================
|
||||
|
||||
Unlike XO-1.75, the internal NAND flash on XO-1 is accessed without a
|
||||
FTL and needs a flash-friendly filesystem. A build configured for XO-1
|
||||
creates a file named "root.jffs2" that can be written to it.
|
||||
|
||||
One way to write it is from the Open Firmware prompt. First, partition
|
||||
and format a USB flash disk with a FAT file system and place the
|
||||
"root.jffs2" file onto it. Then power on the machine, enter the
|
||||
Open Firmware port by pressing the ESC key and run the following:
|
||||
|
||||
ok patch noop ?open-crcs copy-nand \ Disable CRC check
|
||||
ok copy-nand u:\root.jffs2
|
||||
|
||||
Booting the machine
|
||||
===================
|
||||
|
||||
Once your machine is unlocked, it will automatically boot from your media
|
||||
wherever it will detect it attached to the USB bus or the SD card slot,
|
||||
otherwise it will proceed booting from the internal flash.
|
||||
55
buildroot/board/olpc/xo-1.75/linux.config
Normal file
55
buildroot/board/olpc/xo-1.75/linux.config
Normal file
@@ -0,0 +1,55 @@
|
||||
CONFIG_ARCH_MMP=y
|
||||
CONFIG_MACH_MMP2_DT=y
|
||||
CONFIG_MACH_MMP3_DT=y
|
||||
CONFIG_USB_EHCI_MV_U2O=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=2
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_FORCE_MAX_ZONEORDER=16
|
||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_ARM_APPENDED_DTB=y
|
||||
CONFIG_ARM_ATAG_DTB_COMPAT=y
|
||||
CONFIG_VFP=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_SENSORS_LIS3_SPI=y
|
||||
CONFIG_SERIO_OLPC_APSP=y
|
||||
CONFIG_REGULATOR_88PG86X=m
|
||||
CONFIG_MEDIA_PLATFORM_SUPPORT=y
|
||||
CONFIG_V4L_PLATFORM_DRIVERS=y
|
||||
CONFIG_VIDEO_MMP_CAMERA=y
|
||||
CONFIG_DRM_ARMADA=y
|
||||
CONFIG_DRM_CHRONTEL_CH7033=m
|
||||
CONFIG_DRM_DISPLAY_CONNECTOR=m
|
||||
CONFIG_DRM_SIMPLE_BRIDGE=m
|
||||
CONFIG_DRM_ETNAVIV=m
|
||||
CONFIG_USB_EHCI_MV=y
|
||||
CONFIG_MMC_SDHCI_PLTFM=y
|
||||
CONFIG_MMC_SDHCI_PXAV3=y
|
||||
CONFIG_OLPC_XO175=y
|
||||
CONFIG_OLPC_XO175_EC=y
|
||||
CONFIG_PHY_PXA_USB=y
|
||||
CONFIG_PHY_MMP3_USB=y
|
||||
CONFIG_CRYPTO_LZO=m
|
||||
CONFIG_LIBERTAS_SDIO=m
|
||||
CONFIG_LIBERTAS_THINFIRM=m
|
||||
CONFIG_MWIFIEX=m
|
||||
CONFIG_MWIFIEX_SDIO=m
|
||||
CONFIG_MTD_SPI_NOR=m
|
||||
CONFIG_SRAM=y
|
||||
CONFIG_I2C_PXA=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_PXA2XX=y
|
||||
CONFIG_SPI_SLAVE=y
|
||||
CONFIG_SND_SOC=y
|
||||
CONFIG_SND_MMP_SOC_SSPA=y
|
||||
CONFIG_SND_SOC_RT5631=y
|
||||
CONFIG_SND_AUDIO_GRAPH_CARD=y
|
||||
CONFIG_PWRSEQ_SD8787=m
|
||||
CONFIG_RTC_DRV_DS1307=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_MMP_TDMA=y
|
||||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
CONFIG_TOUCHSCREEN_ZFORCE=y
|
||||
CONFIG_COMMON_CLK_MMP2_AUDIO=y
|
||||
80
buildroot/board/olpc/xo-1/linux.config
Normal file
80
buildroot/board/olpc/xo-1/linux.config
Normal file
@@ -0,0 +1,80 @@
|
||||
# CONFIG_64BIT is not set
|
||||
CONFIG_IOSF_MBI=y
|
||||
CONFIG_MGEODE_LX=y
|
||||
CONFIG_X86_MSR=y
|
||||
CONFIG_HZ_100=y
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_CMDLINE_BOOL=y
|
||||
CONFIG_ACPI=y
|
||||
CONFIG_CPU_IDLE=y
|
||||
CONFIG_CPU_IDLE_GOV_LADDER=y
|
||||
CONFIG_OLPC=y
|
||||
CONFIG_OLPC_XO1_PM=y
|
||||
CONFIG_OLPC_XO1_RTC=y
|
||||
CONFIG_OLPC_XO1_SCI=y
|
||||
# CONFIG_VIRTUALIZATION is not set
|
||||
CONFIG_SPARSEMEM_MANUAL=y
|
||||
CONFIG_CMA=y
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
CONFIG_MTD_REDBOOT_PARTS=y
|
||||
CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=0
|
||||
CONFIG_MTD_ONENAND=y
|
||||
CONFIG_MTD_ONENAND_GENERIC=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
CONFIG_MTD_NAND_CAFE=y
|
||||
CONFIG_MTD_UBI=y
|
||||
CONFIG_CS5535_MFGPT=y
|
||||
CONFIG_CS5535_CLOCK_EVENT_SRC=y
|
||||
CONFIG_MOUSE_PS2_OLPC=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=1
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=1
|
||||
CONFIG_SERIAL_8250_EXTENDED=y
|
||||
CONFIG_SERIAL_8250_MANY_PORTS=y
|
||||
CONFIG_SERIAL_8250_SHARE_IRQ=y
|
||||
CONFIG_SERIAL_8250_DETECT_IRQ=y
|
||||
CONFIG_SERIAL_8250_RSA=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
# CONFIG_HW_RANDOM_VIA is not set
|
||||
CONFIG_NVRAM=y
|
||||
CONFIG_SCx200_ACB=y
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_SINGLE=y
|
||||
CONFIG_GPIO_CS5535=y
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_GEODE_WDT=y
|
||||
CONFIG_MFD_CS5535=y
|
||||
CONFIG_MFD_MAX8925=y
|
||||
CONFIG_VIDEO_CAFE_CCIC=y
|
||||
CONFIG_FB_TILEBLITTING=y
|
||||
CONFIG_FB_VESA=y
|
||||
CONFIG_FB_GEODE=y
|
||||
CONFIG_FB_GEODE_LX=y
|
||||
CONFIG_BACKLIGHT_MAX8925=y
|
||||
CONFIG_VGACON_SOFT_SCROLLBACK=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
|
||||
CONFIG_SND_OSSEMUL=y
|
||||
CONFIG_SND_DYNAMIC_MINORS=y
|
||||
CONFIG_SND_AC97_POWER_SAVE=y
|
||||
CONFIG_SND_CS5535AUDIO=y
|
||||
CONFIG_USB_EHCI_ROOT_HUB_TT=y
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
CONFIG_MMC_SDHCI_PCI=y
|
||||
CONFIG_STAGING=y
|
||||
CONFIG_FB_OLPC_DCON=y
|
||||
CONFIG_XO1_RFKILL=y
|
||||
CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_GENERIC_PHY=y
|
||||
CONFIG_PROC_KCORE=y
|
||||
CONFIG_HUGETLBFS=y
|
||||
CONFIG_JFFS2_FS=y
|
||||
CONFIG_JFFS2_FS_WBUF_VERIFY=y
|
||||
CONFIG_JFFS2_SUMMARY=y
|
||||
CONFIG_JFFS2_FS_XATTR=y
|
||||
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
|
||||
CONFIG_UBIFS_FS=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_LIBERTAS_USB=m
|
||||
CONFIG_LIBERTAS_MESH=y
|
||||
CONFIG_LIBERTAS_THINFIRM=m
|
||||
CONFIG_LIBERTAS_THINFIRM_USB=m
|
||||
@@ -2,4 +2,3 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
|
||||
CONFIG_REGULATOR_SY8106A=y
|
||||
CONFIG_DRM_SUN8I_DW_HDMI=y
|
||||
CONFIG_SUN8I_DE2_CCU=y
|
||||
CONFIG_SND_SUN8I_CODEC_ANALOG=y
|
||||
|
||||
4
buildroot/board/orangepi/orangepi-rk3399/extlinux.conf
Normal file
4
buildroot/board/orangepi/orangepi-rk3399/extlinux.conf
Normal file
@@ -0,0 +1,4 @@
|
||||
label RK3399_ROCKPRO64 linux
|
||||
kernel /Image
|
||||
devicetree /rk3399-orangepi.dtb
|
||||
append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk1p4 rw rootwait
|
||||
39
buildroot/board/orangepi/orangepi-rk3399/genimage.cfg
Normal file
39
buildroot/board/orangepi/orangepi-rk3399/genimage.cfg
Normal file
@@ -0,0 +1,39 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"Image",
|
||||
"rk3399-orangepi.dtb",
|
||||
"extlinux"
|
||||
}
|
||||
}
|
||||
size = 64M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
|
||||
hdimage {
|
||||
gpt = true
|
||||
}
|
||||
|
||||
partition loader1 {
|
||||
image = "idbloader.img"
|
||||
offset = 32K
|
||||
}
|
||||
|
||||
partition loader2 {
|
||||
image = "u-boot.itb"
|
||||
offset = 8M
|
||||
}
|
||||
|
||||
partition boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
offset = 16M
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
5
buildroot/board/orangepi/orangepi-rk3399/post-build.sh
Executable file
5
buildroot/board/orangepi/orangepi-rk3399/post-build.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf
|
||||
56
buildroot/board/orangepi/orangepi-rk3399/readme.txt
Normal file
56
buildroot/board/orangepi/orangepi-rk3399/readme.txt
Normal file
@@ -0,0 +1,56 @@
|
||||
Orangepi Rk3399
|
||||
================
|
||||
http://www.orangepi.org/Orange%20Pi%20RK3399/
|
||||
|
||||
Build:
|
||||
======
|
||||
$ make orangepi_rk3399_defconfig
|
||||
$ make
|
||||
|
||||
Files created in output directory
|
||||
=================================
|
||||
|
||||
output/images
|
||||
|
||||
├── bl31.elf
|
||||
├── boot.vfat
|
||||
├── extlinux
|
||||
├── idbloader.img
|
||||
├── Image
|
||||
├── rk3399-orangepi.dtb
|
||||
├── rootfs.ext2
|
||||
├── rootfs.ext4 -> rootfs.ext2
|
||||
├── rootfs.tar
|
||||
├── sdcard.img
|
||||
├── u-boot.bin
|
||||
└── u-boot.itb
|
||||
|
||||
Creating bootable SD card:
|
||||
==========================
|
||||
|
||||
Simply invoke (as root)
|
||||
|
||||
sudo dd if=output/images/sdcard.img of=/dev/sdX && sync
|
||||
|
||||
Where X is your SD card device.
|
||||
|
||||
Booting:
|
||||
========
|
||||
Orangepi-RK3399 by default boots from emmc. For SD card boot to
|
||||
happen, emmc should be empty. If emmc happens to have any bootable
|
||||
image then erase emmc so that bootrom will look for a proper image in SD.
|
||||
|
||||
emmc can be erased once after booted into linux as shown in below link.
|
||||
|
||||
https://wiki.amarulasolutions.com/bsp/setup/rockchip/rk3399_emmc.html
|
||||
|
||||
Serial console:
|
||||
---------------
|
||||
|
||||
Baudrate for this board is 1500000.
|
||||
|
||||
Login:
|
||||
------
|
||||
Enter 'root' as login user, and the prompt is ready.
|
||||
|
||||
https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/orangepi.html
|
||||
6
buildroot/board/orangepi/orangepi-zero-plus/boot.cmd
Normal file
6
buildroot/board/orangepi/orangepi-zero-plus/boot.cmd
Normal file
@@ -0,0 +1,6 @@
|
||||
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
|
||||
|
||||
fatload mmc 0 $kernel_addr_r Image
|
||||
fatload mmc 0 $fdt_addr_r sun50i-h5-orangepi-zero-plus.dtb
|
||||
|
||||
booti $kernel_addr_r - $fdt_addr_r
|
||||
39
buildroot/board/orangepi/orangepi-zero-plus/genimage.cfg
Normal file
39
buildroot/board/orangepi/orangepi-zero-plus/genimage.cfg
Normal file
@@ -0,0 +1,39 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"Image",
|
||||
"sun50i-h5-orangepi-zero-plus.dtb",
|
||||
"boot.scr"
|
||||
}
|
||||
}
|
||||
size = 64M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition spl {
|
||||
in-partition-table = "no"
|
||||
image = "sunxi-spl.bin"
|
||||
offset = 8192
|
||||
}
|
||||
|
||||
partition u-boot {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot.itb"
|
||||
offset = 40K
|
||||
size = 1M # 1MB - 40K
|
||||
}
|
||||
|
||||
partition boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
34
buildroot/board/orangepi/orangepi-zero-plus/readme.txt
Normal file
34
buildroot/board/orangepi/orangepi-zero-plus/readme.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
Intro
|
||||
=====
|
||||
|
||||
This default configuration will allow you to start experimenting with the
|
||||
buildroot environment for the Orangepi Zero Plus. With the current configuration
|
||||
it will bring-up the board, and allow access through the serial console.
|
||||
|
||||
Orangepi Zero Plus link:
|
||||
http://www.orangepi.org/OrangePiZeroPlus/
|
||||
|
||||
This configuration uses U-Boot mainline and kernel mainline.
|
||||
|
||||
How to build
|
||||
============
|
||||
|
||||
$ make orangepi_zero_plus_defconfig
|
||||
$ make
|
||||
|
||||
Note: you will need access to the internet to download the required
|
||||
sources.
|
||||
|
||||
How to write the SD card
|
||||
========================
|
||||
|
||||
Once the build process is finished you will have an image called "sdcard.img"
|
||||
in the output/images/ directory.
|
||||
|
||||
Copy the bootable "sdcard.img" onto an SD card with "dd":
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
|
||||
$ sudo sync
|
||||
|
||||
Insert the micro SDcard in your Orangepi Zero Plus and power it up. The console
|
||||
is on the serial line, 115200 8N1.
|
||||
@@ -10,7 +10,8 @@ image efi-part.vfat {
|
||||
image = "bzImage"
|
||||
}
|
||||
}
|
||||
size = 16777216
|
||||
# 16MB - 32KB
|
||||
size = 16744448
|
||||
}
|
||||
|
||||
image disk.img {
|
||||
@@ -22,7 +23,6 @@ image disk.img {
|
||||
image = "efi-part.vfat"
|
||||
partition-type-uuid = c12a7328-f81f-11d2-ba4b-00a0c93ec93b
|
||||
offset = 32768
|
||||
size = 16777216
|
||||
bootable = true
|
||||
}
|
||||
|
||||
@@ -30,6 +30,5 @@ image disk.img {
|
||||
partition-type-uuid = 44479540-f297-41b2-9af7-d131d5f0458a
|
||||
partition-uuid = UUID_TMP
|
||||
image = "rootfs.ext2"
|
||||
offset = 16809984
|
||||
}
|
||||
}
|
||||
|
||||
6
buildroot/board/pcengines/apu2/isolinux.cfg
Normal file
6
buildroot/board/pcengines/apu2/isolinux.cfg
Normal file
@@ -0,0 +1,6 @@
|
||||
serial 0 115200
|
||||
default 1
|
||||
label 1
|
||||
kernel __KERNEL_PATH__
|
||||
initrd __INITRD_PATH__
|
||||
append root=/dev/sr0 console=ttyS0,115200n8
|
||||
51
buildroot/board/pcengines/apu2/linux.config
Normal file
51
buildroot/board/pcengines/apu2/linux.config
Normal file
@@ -0,0 +1,51 @@
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_CGROUPS=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_HYPERVISOR_GUEST=y
|
||||
CONFIG_PARAVIRT=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_VIRTIO_BLK=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_SCSI_VIRTIO=y
|
||||
CONFIG_ATA=y
|
||||
CONFIG_SATA_AHCI=y
|
||||
CONFIG_ATA_PIIX=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_VIRTIO_NET=y
|
||||
CONFIG_IGB=y
|
||||
CONFIG_NE2K_PCI=y
|
||||
CONFIG_8139CP=y
|
||||
# CONFIG_WLAN is not set
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_VIRTIO_CONSOLE=y
|
||||
CONFIG_HW_RANDOM_VIRTIO=m
|
||||
CONFIG_DRM=y
|
||||
CONFIG_SOUND=y
|
||||
CONFIG_SND=y
|
||||
# CONFIG_SND_PCI is not set
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_XHCI_HCD=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_UHCI_HCD=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_VIRTIO_PCI=y
|
||||
CONFIG_VIRTIO_BALLOON=y
|
||||
CONFIG_VIRTIO_INPUT=y
|
||||
CONFIG_VIRTIO_MMIO=y
|
||||
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_AUTOFS4_FS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_UNWINDER_FRAME_POINTER=y
|
||||
40
buildroot/board/pcengines/apu2/readme.txt
Normal file
40
buildroot/board/pcengines/apu2/readme.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
Intro
|
||||
=====
|
||||
|
||||
This is a board configuration for the apu2 platform by PC Engines.
|
||||
|
||||
https://pcengines.ch/apu2.htm
|
||||
|
||||
Since the apu2 does not have any graphical output, the default configuration
|
||||
will ensure that the kernel output as well as the login prompt will be sent to
|
||||
the serial port.
|
||||
|
||||
How to build
|
||||
============
|
||||
|
||||
The provided defconfig creates a hybrid isolinux image that can be booted from
|
||||
either an USB stick or a CD.
|
||||
|
||||
$ make pcengines_apu2_defconfig
|
||||
$ make
|
||||
|
||||
How to write to an USB stick
|
||||
============================
|
||||
|
||||
Once the build process is finished you will have an image
|
||||
called "rootfs.iso9660" in the output/images/ directory.
|
||||
|
||||
Copy the bootable "rootfs.iso9660" onto the USB stick with "dd":
|
||||
|
||||
$ sudo dd if=output/images/rootfs.iso9660 of=/dev/sdX bs=1M conv=fsync
|
||||
$ sudo sync
|
||||
|
||||
How to connect to the apu2
|
||||
==========================
|
||||
|
||||
Connect to the DB9 serial port of the apu2 board (either directly or through a
|
||||
USB adapter) with a baudrate of 115200.
|
||||
|
||||
For example with miniterm (part of pyserial):
|
||||
|
||||
$ miniterm.py -f direct /dev/ttyUSB0 115200
|
||||
4
buildroot/board/pine64/rockpro64/extlinux.conf
Normal file
4
buildroot/board/pine64/rockpro64/extlinux.conf
Normal file
@@ -0,0 +1,4 @@
|
||||
label RK3399_ROCKPRO64 linux
|
||||
kernel /Image
|
||||
devicetree /rk3399-rockpro64.dtb
|
||||
append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk0p4 rw rootwait
|
||||
39
buildroot/board/pine64/rockpro64/genimage.cfg
Normal file
39
buildroot/board/pine64/rockpro64/genimage.cfg
Normal file
@@ -0,0 +1,39 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"Image",
|
||||
"rk3399-rockpro64.dtb",
|
||||
"extlinux"
|
||||
}
|
||||
}
|
||||
size = 64M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
|
||||
hdimage {
|
||||
gpt = true
|
||||
}
|
||||
|
||||
partition loader1 {
|
||||
image = "idbloader.img"
|
||||
offset = 32K
|
||||
}
|
||||
|
||||
partition loader2 {
|
||||
image = "u-boot.itb"
|
||||
offset = 8M
|
||||
}
|
||||
|
||||
partition boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
offset = 16M
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
5
buildroot/board/pine64/rockpro64/post-build.sh
Executable file
5
buildroot/board/pine64/rockpro64/post-build.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf
|
||||
60
buildroot/board/pine64/rockpro64/readme.txt
Normal file
60
buildroot/board/pine64/rockpro64/readme.txt
Normal file
@@ -0,0 +1,60 @@
|
||||
PINE64 ROCKPro64
|
||||
================
|
||||
https://www.pine64.org/rockpro64/
|
||||
|
||||
Build:
|
||||
======
|
||||
$ make rockpro64_defconfig
|
||||
$ make
|
||||
|
||||
Files created in output directory
|
||||
=================================
|
||||
|
||||
output/images
|
||||
|
||||
├── bl31.elf
|
||||
├── boot.vfat
|
||||
├── extlinux
|
||||
├── idbloader.img
|
||||
├── Image
|
||||
├── rk3399-rockpro64.dtb
|
||||
├── rootfs.ext2
|
||||
├── rootfs.ext4 -> rootfs.ext2
|
||||
├── rootfs.tar
|
||||
├── sdcard.img
|
||||
├── u-boot.bin
|
||||
└── u-boot.itb
|
||||
|
||||
Creating bootable SD card:
|
||||
==========================
|
||||
|
||||
Simply invoke (as root)
|
||||
|
||||
sudo dd if=output/images/sdcard.img of=/dev/sdX && sync
|
||||
|
||||
Where X is your SD card device.
|
||||
|
||||
Booting:
|
||||
========
|
||||
RockPro64 has a 40-pin PI-2 GPIO Bus.
|
||||
|
||||
Connect a jumper between pin 23 and pin 25 for SD card boot.
|
||||
|
||||
Serial console:
|
||||
---------------
|
||||
The pin layout for serial console on PI-2 GPIO Bus is as follows:
|
||||
|
||||
pin 6: gnd
|
||||
pin 8: tx
|
||||
pin 10: rx
|
||||
|
||||
Initially connect pin 6 and pin 8(transmit). Apply power to RockPro64, once the
|
||||
power is on then connect pin 10(receive).
|
||||
|
||||
Baudrate for this board is 1500000.
|
||||
|
||||
Login:
|
||||
------
|
||||
Enter 'root' as login user, and the prompt is ready.
|
||||
|
||||
https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/rockpro64.html
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user