Xilinx changes for v2020.10
Versal: - xspi bootmode fix - Removing one clock from clk driver - Align u-boot memory setting with OS by default - Map TCM and OCM by default ZynqMP: - Minor DT improvements - Reduce console buffer for mini configurations - Add fix for AMS - Add support for XDP platform Zynq: - Support for AES engine - Enable bigger memory test by default - Extend documentation for SD preparation - Use different freq for Topic miami board mmc: - minor GD pointer removal net: - Support fixed-link cases by zynq gem - Fix phy looking loop in axi enet driver spi: - Cleanup global macros for xilinx spi drivers firmware: - Add support for pmufw reloading fpga: - Improve error status reporting common: - Remove 4kB addition space for FDT allocation -----BEGIN PGP SIGNATURE----- iF0EABECAB0WIQQbPNTMvXmYlBPRwx7KSWXLKUoMIQUCXvScEQAKCRDKSWXLKUoM IeHUAJ9Z1shAlbILuHZKEpqQySLHdUVgBQCff8Nf+wi1rByTrwflKt14MtIsdFY= =2Yuu -----END PGP SIGNATURE----- Merge tag 'xilinx-for-v2020.10' of https://gitlab.denx.de/u-boot/custodians/u-boot-microblaze into next Xilinx changes for v2020.10 Versal: - xspi bootmode fix - Removing one clock from clk driver - Align u-boot memory setting with OS by default - Map TCM and OCM by default ZynqMP: - Minor DT improvements - Reduce console buffer for mini configurations - Add fix for AMS - Add support for XDP platform Zynq: - Support for AES engine - Enable bigger memory test by default - Extend documentation for SD preparation - Use different freq for Topic miami board mmc: - minor GD pointer removal net: - Support fixed-link cases by zynq gem - Fix phy looking loop in axi enet driver spi: - Cleanup global macros for xilinx spi drivers firmware: - Add support for pmufw reloading fpga: - Improve error status reporting common: - Remove 4kB addition space for FDT allocation
This commit is contained in:
commit
f0e236c8d6
@ -2,7 +2,7 @@ variables:
|
|||||||
windows_vm: vs2017-win2016
|
windows_vm: vs2017-win2016
|
||||||
ubuntu_vm: ubuntu-18.04
|
ubuntu_vm: ubuntu-18.04
|
||||||
macos_vm: macOS-10.15
|
macos_vm: macOS-10.15
|
||||||
ci_runner_image: trini/u-boot-gitlab-ci-runner:bionic-20200403-27Apr2020
|
ci_runner_image: trini/u-boot-gitlab-ci-runner:bionic-20200526-18Jun2020
|
||||||
# Add '-u 0' options for Azure pipelines, otherwise we get "permission
|
# Add '-u 0' options for Azure pipelines, otherwise we get "permission
|
||||||
# denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer",
|
# denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer",
|
||||||
# since our $(ci_runner_image) user is not root.
|
# since our $(ci_runner_image) user is not root.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Grab our configured image. The source for this is found at:
|
# Grab our configured image. The source for this is found at:
|
||||||
# https://gitlab.denx.de/u-boot/gitlab-ci-runner
|
# https://gitlab.denx.de/u-boot/gitlab-ci-runner
|
||||||
image: trini/u-boot-gitlab-ci-runner:bionic-20200403-27Apr2020
|
image: trini/u-boot-gitlab-ci-runner:bionic-20200526-18Jun2020
|
||||||
|
|
||||||
# We run some tests in different order, to catch some failures quicker.
|
# We run some tests in different order, to catch some failures quicker.
|
||||||
stages:
|
stages:
|
||||||
|
@ -145,6 +145,7 @@ F: drivers/power/domain/meson-gx-pwrc-vpu.c
|
|||||||
F: drivers/video/meson/
|
F: drivers/video/meson/
|
||||||
F: include/configs/meson64.h
|
F: include/configs/meson64.h
|
||||||
F: include/configs/meson64_android.h
|
F: include/configs/meson64_android.h
|
||||||
|
F: doc/board/amlogic/
|
||||||
N: meson
|
N: meson
|
||||||
|
|
||||||
ARM BROADCOM BCM283X
|
ARM BROADCOM BCM283X
|
||||||
|
2
Makefile
2
Makefile
@ -3,7 +3,7 @@
|
|||||||
VERSION = 2020
|
VERSION = 2020
|
||||||
PATCHLEVEL = 07
|
PATCHLEVEL = 07
|
||||||
SUBLEVEL =
|
SUBLEVEL =
|
||||||
EXTRAVERSION = -rc4
|
EXTRAVERSION = -rc5
|
||||||
NAME =
|
NAME =
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
|
@ -873,11 +873,11 @@ config ARCH_MX7ULP
|
|||||||
config ARCH_MX7
|
config ARCH_MX7
|
||||||
bool "Freescale MX7"
|
bool "Freescale MX7"
|
||||||
select ARCH_MISC_INIT
|
select ARCH_MISC_INIT
|
||||||
select BOARD_EARLY_INIT_F
|
|
||||||
select CPU_V7A
|
select CPU_V7A
|
||||||
select SYS_FSL_HAS_SEC if IMX_HAB
|
select SYS_FSL_HAS_SEC if IMX_HAB
|
||||||
select SYS_FSL_SEC_COMPAT_4
|
select SYS_FSL_SEC_COMPAT_4
|
||||||
select SYS_FSL_SEC_LE
|
select SYS_FSL_SEC_LE
|
||||||
|
imply BOARD_EARLY_INIT_F
|
||||||
imply MXC_GPIO
|
imply MXC_GPIO
|
||||||
imply SYS_THUMB_BUILD
|
imply SYS_THUMB_BUILD
|
||||||
|
|
||||||
|
@ -280,6 +280,7 @@ dtb-$(CONFIG_ARCH_ZYNQMP) += \
|
|||||||
zynqmp-mini-emmc1.dtb \
|
zynqmp-mini-emmc1.dtb \
|
||||||
zynqmp-mini-nand.dtb \
|
zynqmp-mini-nand.dtb \
|
||||||
zynqmp-mini-qspi.dtb \
|
zynqmp-mini-qspi.dtb \
|
||||||
|
zynqmp-topic-miamimp-xilinx-xdp-v1r1.dtb \
|
||||||
zynqmp-zcu100-revC.dtb \
|
zynqmp-zcu100-revC.dtb \
|
||||||
zynqmp-zcu102-revA.dtb \
|
zynqmp-zcu102-revA.dtb \
|
||||||
zynqmp-zcu102-revB.dtb \
|
zynqmp-zcu102-revB.dtb \
|
||||||
|
@ -21,13 +21,14 @@
|
|||||||
aliases {
|
aliases {
|
||||||
ethernet0 = &fec1;
|
ethernet0 = &fec1;
|
||||||
ethernet1 = &fec2;
|
ethernet1 = &fec2;
|
||||||
gpio0 = &gpio1;
|
gpio0 = &gpio0;
|
||||||
gpio1 = &gpio2;
|
gpio1 = &gpio1;
|
||||||
gpio2 = &gpio3;
|
gpio2 = &gpio2;
|
||||||
gpio3 = &gpio4;
|
gpio3 = &gpio3;
|
||||||
gpio4 = &gpio5;
|
gpio4 = &gpio4;
|
||||||
gpio5 = &gpio6;
|
gpio5 = &gpio5;
|
||||||
gpio6 = &gpio7;
|
gpio6 = &gpio6;
|
||||||
|
gpio7 = &gpio7;
|
||||||
serial0 = &lpuart0;
|
serial0 = &lpuart0;
|
||||||
serial1 = &lpuart1;
|
serial1 = &lpuart1;
|
||||||
serial2 = &lpuart2;
|
serial2 = &lpuart2;
|
||||||
|
@ -34,3 +34,11 @@
|
|||||||
&usdhc1 {
|
&usdhc1 {
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&usdhc2 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&usdhc3 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
@ -281,7 +281,7 @@
|
|||||||
&fec {
|
&fec {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pinctrl_enet>;
|
pinctrl-0 = <&pinctrl_enet>;
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii-id";
|
||||||
interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
|
interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
|
<&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
fsl,err006687-workaround-present;
|
fsl,err006687-workaround-present;
|
||||||
|
@ -204,7 +204,7 @@
|
|||||||
&fec {
|
&fec {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pinctrl_enet>;
|
pinctrl-0 = <&pinctrl_enet>;
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii-id";
|
||||||
phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
|
phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
@ -53,10 +53,21 @@
|
|||||||
&fec {
|
&fec {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pinctrl_microsom_enet_ar8035>;
|
pinctrl-0 = <&pinctrl_microsom_enet_ar8035>;
|
||||||
|
phy-handle = <&phy>;
|
||||||
phy-mode = "rgmii-id";
|
phy-mode = "rgmii-id";
|
||||||
phy-reset-duration = <2>;
|
phy-reset-duration = <2>;
|
||||||
phy-reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
|
phy-reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
|
mdio {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
phy: ethernet-phy@0 {
|
||||||
|
reg = <0>;
|
||||||
|
qca,clk-out-frequency = <125000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&iomuxc {
|
&iomuxc {
|
||||||
|
@ -171,6 +171,8 @@
|
|||||||
|
|
||||||
&sdmmc1 {
|
&sdmmc1 {
|
||||||
u-boot,dm-spl;
|
u-boot,dm-spl;
|
||||||
|
broken-cd;
|
||||||
|
/delete-property/ cd-gpios;
|
||||||
};
|
};
|
||||||
|
|
||||||
&sdmmc1_b4_pins_a {
|
&sdmmc1_b4_pins_a {
|
||||||
|
@ -167,6 +167,8 @@
|
|||||||
|
|
||||||
&sdmmc1 {
|
&sdmmc1 {
|
||||||
u-boot,dm-spl;
|
u-boot,dm-spl;
|
||||||
|
broken-cd;
|
||||||
|
/delete-property/ cd-gpios;
|
||||||
};
|
};
|
||||||
|
|
||||||
&sdmmc1_b4_pins_a {
|
&sdmmc1_b4_pins_a {
|
||||||
|
@ -273,6 +273,9 @@
|
|||||||
|
|
||||||
&sdmmc1 {
|
&sdmmc1 {
|
||||||
u-boot,dm-spl;
|
u-boot,dm-spl;
|
||||||
|
broken-cd;
|
||||||
|
/delete-property/ cd-gpios;
|
||||||
|
/delete-property/ disable-wp;
|
||||||
};
|
};
|
||||||
|
|
||||||
&sdmmc1_b4_pins_a {
|
&sdmmc1_b4_pins_a {
|
||||||
|
@ -335,4 +335,9 @@
|
|||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
psci {
|
||||||
|
compatible = "arm,psci-1.0";
|
||||||
|
method = "smc";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
@ -867,6 +867,11 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
psci {
|
||||||
|
compatible = "arm,psci-1.0";
|
||||||
|
method = "smc";
|
||||||
|
};
|
||||||
|
|
||||||
timer {
|
timer {
|
||||||
compatible = "arm,armv8-timer";
|
compatible = "arm,armv8-timer";
|
||||||
interrupts = <GIC_PPI 13
|
interrupts = <GIC_PPI 13
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/*
|
/*
|
||||||
* dts file for Xilinx Versal a2197 RevA System Controller
|
* dts file for Xilinx Versal a2197 RevA System Controller
|
||||||
*
|
*
|
||||||
* (C) Copyright 2019, Xilinx, Inc.
|
* (C) Copyright 2019 - 2020, Xilinx, Inc.
|
||||||
*
|
*
|
||||||
* Michal Simek <michal.simek@xilinx.com>
|
* Michal Simek <michal.simek@xilinx.com>
|
||||||
*/
|
*/
|
||||||
@ -421,14 +421,14 @@
|
|||||||
temperature-stability = <50>;
|
temperature-stability = <50>;
|
||||||
factory-fout = <156250000>;
|
factory-fout = <156250000>;
|
||||||
clock-frequency = <156250000>;
|
clock-frequency = <156250000>;
|
||||||
clock-output-names = "si570_hsdp_clk";
|
clock-output-names = "si570_zsfp_clk";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
i2c@6 { /* USER_SI570_1 */
|
i2c@6 { /* USER_SI570_1 */
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <6>;
|
reg = <6>;
|
||||||
si570_user1_clk: clock-generator@5d { /* u205 */
|
si570_user1: clock-generator@5d { /* u205 */
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
compatible = "silabs,si570";
|
compatible = "silabs,si570";
|
||||||
reg = <0x5f>;
|
reg = <0x5f>;
|
||||||
@ -510,7 +510,7 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <4>;
|
reg = <4>;
|
||||||
si570_ddr_dimm2: clock-generator@60 { /* u3 */
|
si570_lpddr4clk2: clock-generator@60 { /* u3 */
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
compatible = "silabs,si570";
|
compatible = "silabs,si570";
|
||||||
reg = <0x60>;
|
reg = <0x60>;
|
||||||
@ -524,7 +524,7 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <5>;
|
reg = <5>;
|
||||||
si570_lpddr4: clock-generator@60 { /* u4 */
|
si570_lpddr4clk1: clock-generator@60 { /* u4 */
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
compatible = "silabs,si570";
|
compatible = "silabs,si570";
|
||||||
reg = <0x60>;
|
reg = <0x60>;
|
||||||
|
@ -70,7 +70,7 @@
|
|||||||
reg = <0x0>;
|
reg = <0x0>;
|
||||||
spi-tx-bus-width = <1>;
|
spi-tx-bus-width = <1>;
|
||||||
spi-rx-bus-width = <4>;
|
spi-rx-bus-width = <4>;
|
||||||
spi-max-frequency = <10000000>;
|
spi-max-frequency = <108000000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
117
arch/arm/dts/zynqmp-topic-miamimp-xilinx-xdp-v1r1.dts
Normal file
117
arch/arm/dts/zynqmp-topic-miamimp-xilinx-xdp-v1r1.dts
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* dts file for Topic XDP (Xilinx Drone Platform)
|
||||||
|
*
|
||||||
|
* (C) Copyright 2016, Topic Embedded Products BV
|
||||||
|
* Mike Looijmans <mike.looijmans@topic.nl>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "zynqmp.dtsi"
|
||||||
|
#include "zynqmp-clk-ccf.dtsi"
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/phy/phy.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Topic Miamimp ZynqMP XDP v1r1";
|
||||||
|
compatible = "topic,miamimp-xdp-v1r1", "topic,miamimp-xdp",
|
||||||
|
"topic,miamimp", "xlnx,zynqmp";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
gpio0 = &gpio;
|
||||||
|
i2c0 = &i2c0;
|
||||||
|
i2c1 = &i2c1;
|
||||||
|
mmc0 = &sdhci0;
|
||||||
|
mmc1 = &sdhci1;
|
||||||
|
rtc0 = &rtc;
|
||||||
|
serial0 = &uart1;
|
||||||
|
serial1 = &uart0;
|
||||||
|
serial2 = &dcc;
|
||||||
|
spi0 = &qspi;
|
||||||
|
usb0 = &usb0;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
bootargs = "earlycon";
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
memory@0 {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&dcc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpu {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
status = "okay";
|
||||||
|
is-dual = <1>;
|
||||||
|
flash@0 {
|
||||||
|
compatible = "st,m25p80", "n25q256a";
|
||||||
|
m25p,fast-read;
|
||||||
|
reg = <0x0>;
|
||||||
|
spi-tx-bus-width = <1>;
|
||||||
|
spi-rx-bus-width = <4>;
|
||||||
|
spi-max-frequency = <166000000>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
is-dual = <1>;
|
||||||
|
partition@0 {
|
||||||
|
label = "qspi-boot-bin";
|
||||||
|
reg = <0x00000 0x60000>;
|
||||||
|
};
|
||||||
|
partition@60000 {
|
||||||
|
label = "qspi-u-boot-itb";
|
||||||
|
reg = <0x60000 0x100000>;
|
||||||
|
};
|
||||||
|
partition@160000 {
|
||||||
|
label = "qspi-u-boot-env";
|
||||||
|
reg = <0x160000 0x20000>;
|
||||||
|
};
|
||||||
|
partition@200000 {
|
||||||
|
label = "qspi-rootfs";
|
||||||
|
reg = <0x200000 0x1e00000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&rtc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* eMMC device */
|
||||||
|
&sdhci0 {
|
||||||
|
status = "okay";
|
||||||
|
non-removable;
|
||||||
|
disable-wp; /* We don't have a write-protect detection */
|
||||||
|
bus-width = <8>;
|
||||||
|
xlnx,mio_bank = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* SD1 with level shifter */
|
||||||
|
&sdhci1 {
|
||||||
|
status = "okay";
|
||||||
|
xlnx,mio_bank = <1>;
|
||||||
|
disable-wp; /* We don't have a write-protect detection */
|
||||||
|
bus-width = <4>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
@ -39,7 +39,9 @@ struct ddrc {
|
|||||||
u32 dramtmg8; /* 0x0120 */
|
u32 dramtmg8; /* 0x0120 */
|
||||||
u32 reserved7[0x17];
|
u32 reserved7[0x17];
|
||||||
u32 zqctl0; /* 0x0180 */
|
u32 zqctl0; /* 0x0180 */
|
||||||
u32 reserved8[0x03];
|
u32 zqctl1; /* 0x0184 */
|
||||||
|
u32 zqctl2; /* 0x0188 */
|
||||||
|
u32 zqstat; /* 0x018c */
|
||||||
u32 dfitmg0; /* 0x0190 */
|
u32 dfitmg0; /* 0x0190 */
|
||||||
u32 dfitmg1; /* 0x0194 */
|
u32 dfitmg1; /* 0x0194 */
|
||||||
u32 reserved9[0x02];
|
u32 reserved9[0x02];
|
||||||
|
@ -16,6 +16,13 @@ config MX7D
|
|||||||
select ROM_UNIFIED_SECTIONS
|
select ROM_UNIFIED_SECTIONS
|
||||||
imply CMD_FUSE
|
imply CMD_FUSE
|
||||||
|
|
||||||
|
config SYS_TEXT_BASE
|
||||||
|
default 0x87800000
|
||||||
|
|
||||||
|
config SPL_TEXT_BASE
|
||||||
|
depends on SPL
|
||||||
|
default 0x00912000
|
||||||
|
|
||||||
choice
|
choice
|
||||||
prompt "MX7 board select"
|
prompt "MX7 board select"
|
||||||
optional
|
optional
|
||||||
|
@ -74,6 +74,7 @@ void mx7_dram_cfg(struct ddrc *ddrc_regs_val, struct ddrc_mp *ddrc_mp_val,
|
|||||||
writel(ddrc_regs_val->dramtmg5, &ddrc_regs->dramtmg5);
|
writel(ddrc_regs_val->dramtmg5, &ddrc_regs->dramtmg5);
|
||||||
writel(ddrc_regs_val->dramtmg8, &ddrc_regs->dramtmg8);
|
writel(ddrc_regs_val->dramtmg8, &ddrc_regs->dramtmg8);
|
||||||
writel(ddrc_regs_val->zqctl0, &ddrc_regs->zqctl0);
|
writel(ddrc_regs_val->zqctl0, &ddrc_regs->zqctl0);
|
||||||
|
writel(ddrc_regs_val->zqctl1, &ddrc_regs->zqctl1);
|
||||||
writel(ddrc_regs_val->dfitmg0, &ddrc_regs->dfitmg0);
|
writel(ddrc_regs_val->dfitmg0, &ddrc_regs->dfitmg0);
|
||||||
writel(ddrc_regs_val->dfitmg1, &ddrc_regs->dfitmg1);
|
writel(ddrc_regs_val->dfitmg1, &ddrc_regs->dfitmg1);
|
||||||
writel(ddrc_regs_val->dfiupd0, &ddrc_regs->dfiupd0);
|
writel(ddrc_regs_val->dfiupd0, &ddrc_regs->dfiupd0);
|
||||||
|
@ -29,6 +29,17 @@ $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.0.bin
|
|||||||
$ chmod +x firmware-imx-8.0.bin
|
$ chmod +x firmware-imx-8.0.bin
|
||||||
$ ./firmware-imx-8.0.bin
|
$ ./firmware-imx-8.0.bin
|
||||||
|
|
||||||
|
Or use this to avoid running random scripts from the internet,
|
||||||
|
but note that you must agree to the license the script displays:
|
||||||
|
|
||||||
|
$ dd if=imx-sc-firmware-1.1.bin of=imx-sc-firmware-1.1.tar.bz2 bs=37185 skip=1
|
||||||
|
$ tar -xf imx-sc-firmware-1.1.tar.bz2
|
||||||
|
$ cp imx-sc-firmware-1.1/mx8qm-val-scfw-tcm.bin $(builddir)
|
||||||
|
|
||||||
|
$ dd if=firmware-imx-8.0.bin of=firmware-imx-8.0.tar.bz2 bs=37180 skip=1
|
||||||
|
$ tar -xf firmware-imx-8.0.tar.bz2
|
||||||
|
$ cp firmware-imx-8.0/firmware/seco/mx8qm-ahab-container.img $(builddir)
|
||||||
|
|
||||||
Build U-Boot
|
Build U-Boot
|
||||||
============
|
============
|
||||||
|
|
||||||
|
@ -7,3 +7,6 @@ F: board/amlogic/p200/
|
|||||||
F: configs/nanopi-k2_defconfig
|
F: configs/nanopi-k2_defconfig
|
||||||
F: configs/odroid-c2_defconfig
|
F: configs/odroid-c2_defconfig
|
||||||
F: configs/p200_defconfig
|
F: configs/p200_defconfig
|
||||||
|
F: doc/board/amlogic/p200.rst
|
||||||
|
F: doc/board/amlogic/nanopi-k2.rst
|
||||||
|
F: doc/board/amlogic/odroid-c2.rst
|
||||||
|
@ -1,98 +0,0 @@
|
|||||||
U-Boot for NanoPi-K2
|
|
||||||
====================
|
|
||||||
|
|
||||||
NanoPi-K2 is a single board computer manufactured by FriendlyElec
|
|
||||||
with the following specifications:
|
|
||||||
|
|
||||||
- Amlogic S905 ARM Cortex-A53 quad-core SoC @ 1.5GHz
|
|
||||||
- ARM Mali 450 GPU
|
|
||||||
- 2GB DDR3 SDRAM
|
|
||||||
- Gigabit Ethernet
|
|
||||||
- HDMI 2.0 4K/60Hz display
|
|
||||||
- 40-pin GPIO header
|
|
||||||
- 4 x USB 2.0 Host, 1 x USB OTG
|
|
||||||
- eMMC, microSD
|
|
||||||
- Infrared receiver
|
|
||||||
|
|
||||||
Schematics are available on the manufacturer website.
|
|
||||||
|
|
||||||
Currently the u-boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- eMMC, microSD
|
|
||||||
- Ethernet
|
|
||||||
|
|
||||||
u-boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make nanopi-k2_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
> git clone https://github.com/BayLibre/u-boot.git -b libretech-cc amlogic-u-boot
|
|
||||||
> git clone https://github.com/friendlyarm/u-boot.git -b nanopi-k2-v2015.01 amlogic-u-boot
|
|
||||||
> cd amlogic-u-boot
|
|
||||||
> sed -i 's/aarch64-linux-gnu-/aarch64-none-elf-/' Makefile
|
|
||||||
> sed -i 's/arm-linux-/arm-none-eabi-/' arch/arm/cpu/armv8/gxb/firmware/scp_task/Makefile
|
|
||||||
> make nanopi-k2_defconfig
|
|
||||||
> make
|
|
||||||
> export FIPDIR=$PWD/fip
|
|
||||||
|
|
||||||
Go back to mainline U-Boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> cp $FIPDIR/gxb/bl2.bin fip/
|
|
||||||
> cp $FIPDIR/gxb/acs.bin fip/
|
|
||||||
> cp $FIPDIR/gxb/bl21.bin fip/
|
|
||||||
> cp $FIPDIR/gxb/bl30.bin fip/
|
|
||||||
> cp $FIPDIR/gxb/bl301.bin fip/
|
|
||||||
> cp $FIPDIR/gxb/bl31.img fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> $FIPDIR/fip_create \
|
|
||||||
--bl30 fip/bl30_new.bin \
|
|
||||||
--bl31 fip/bl31.img \
|
|
||||||
--bl33 fip/bl33.bin \
|
|
||||||
fip/fip.bin
|
|
||||||
|
|
||||||
> python $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl2_acs.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/bl21.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> cat fip/bl2_new.bin fip/fip.bin > fip/boot_new.bin
|
|
||||||
|
|
||||||
> $FIPDIR/gxb/aml_encrypt_gxb --bootsig \
|
|
||||||
--input fip/boot_new.bin
|
|
||||||
--output fip/u-boot.bin
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin of=$DEV conv=fsync,notrunc bs=512 seek=1
|
|
@ -1,102 +0,0 @@
|
|||||||
U-Boot for Amlogic P200
|
|
||||||
=======================
|
|
||||||
|
|
||||||
P200 is a reference board manufactured by Amlogic with the following
|
|
||||||
specifications:
|
|
||||||
|
|
||||||
- Amlogic S905 ARM Cortex-A53 quad-core SoC @ 1.5GHz
|
|
||||||
- ARM Mali 450 GPU
|
|
||||||
- 2GB DDR3 SDRAM
|
|
||||||
- Gigabit Ethernet
|
|
||||||
- HDMI 2.0 4K/60Hz display
|
|
||||||
- 2 x USB 2.0 Host
|
|
||||||
- eMMC, microSD
|
|
||||||
- Infrared receiver
|
|
||||||
- SDIO WiFi Module
|
|
||||||
- CVBS+Stereo Audio Jack
|
|
||||||
|
|
||||||
Schematics are available from Amlogic on demand.
|
|
||||||
|
|
||||||
Currently the u-boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- eMMC, microSD
|
|
||||||
- Ethernet
|
|
||||||
- I2C
|
|
||||||
- Regulators
|
|
||||||
- Reset controller
|
|
||||||
- Clock controller
|
|
||||||
- USB Host
|
|
||||||
- ADC
|
|
||||||
|
|
||||||
u-boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make p200_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
> git clone https://github.com/BayLibre/u-boot.git -b n-amlogic-openlinux-20170606 amlogic-u-boot
|
|
||||||
> cd amlogic-u-boot
|
|
||||||
> make gxb_p200_v1_defconfig
|
|
||||||
> make
|
|
||||||
> export FIPDIR=$PWD/fip
|
|
||||||
|
|
||||||
Go back to mainline U-boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> cp $FIPDIR/gxl/bl2.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/acs.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl21.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl30.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl301.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl31.img fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl2_acs.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/bl21.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -4,3 +4,4 @@ S: Maintained
|
|||||||
L: u-boot-amlogic@groups.io
|
L: u-boot-amlogic@groups.io
|
||||||
F: board/amlogic/p201/
|
F: board/amlogic/p201/
|
||||||
F: configs/p201_defconfig
|
F: configs/p201_defconfig
|
||||||
|
F: doc/board/amlogic/p201.rst
|
||||||
|
@ -1,102 +0,0 @@
|
|||||||
U-Boot for Amlogic P201
|
|
||||||
=======================
|
|
||||||
|
|
||||||
P201 is a reference board manufactured by Amlogic with the following
|
|
||||||
specifications:
|
|
||||||
|
|
||||||
- Amlogic S905 ARM Cortex-A53 quad-core SoC @ 1.5GHz
|
|
||||||
- ARM Mali 450 GPU
|
|
||||||
- 2GB DDR3 SDRAM
|
|
||||||
- 10/100 Ethernet
|
|
||||||
- HDMI 2.0 4K/60Hz display
|
|
||||||
- 2 x USB 2.0 Host
|
|
||||||
- eMMC, microSD
|
|
||||||
- Infrared receiver
|
|
||||||
- SDIO WiFi Module
|
|
||||||
- CVBS+Stereo Audio Jack
|
|
||||||
|
|
||||||
Schematics are available from Amlogic on demand.
|
|
||||||
|
|
||||||
Currently the u-boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- eMMC, microSD
|
|
||||||
- Ethernet
|
|
||||||
- I2C
|
|
||||||
- Regulators
|
|
||||||
- Reset controller
|
|
||||||
- Clock controller
|
|
||||||
- USB Host
|
|
||||||
- ADC
|
|
||||||
|
|
||||||
u-boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make p201_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
> git clone https://github.com/BayLibre/u-boot.git -b n-amlogic-openlinux-20170606 amlogic-u-boot
|
|
||||||
> cd amlogic-u-boot
|
|
||||||
> make gxb_p201_v1_defconfig
|
|
||||||
> make
|
|
||||||
> export FIPDIR=$PWD/fip
|
|
||||||
|
|
||||||
Go back to mainline U-boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> cp $FIPDIR/gxl/bl2.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/acs.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl21.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl30.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl301.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl31.img fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl2_acs.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/bl21.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -8,3 +8,7 @@ F: configs/khadas-vim_defconfig
|
|||||||
F: configs/libretech-ac_defconfig
|
F: configs/libretech-ac_defconfig
|
||||||
F: configs/libretech-cc_defconfig
|
F: configs/libretech-cc_defconfig
|
||||||
F: configs/p212_defconfig
|
F: configs/p212_defconfig
|
||||||
|
F: doc/board/amlogic/p212.rst
|
||||||
|
F: doc/board/amlogic/libretech-ac.rst
|
||||||
|
F: doc/board/amlogic/libretech-cc.rst
|
||||||
|
F: doc/board/amlogic/khadas-vim.rst
|
||||||
|
@ -1,101 +0,0 @@
|
|||||||
U-Boot for Khadas VIM
|
|
||||||
=======================
|
|
||||||
|
|
||||||
Khadas VIM is an Open Source DIY Box manufactured by Shenzhen Wesion
|
|
||||||
Technology Co., Ltd with the following specifications:
|
|
||||||
|
|
||||||
- Amlogic S905X ARM Cortex-A53 quad-core SoC @ 1.5GHz
|
|
||||||
- ARM Mali 450 GPU
|
|
||||||
- 2GB DDR3 SDRAM
|
|
||||||
- 10/100 Ethernet
|
|
||||||
- HDMI 2.0 4K/60Hz display
|
|
||||||
- 40-pin GPIO header
|
|
||||||
- 2 x USB 2.0 Host, 1 x USB 2.0 Type-C OTG
|
|
||||||
- 8GB/16GBeMMC
|
|
||||||
- microSD
|
|
||||||
- SDIO Wifi Module, Bluetooth
|
|
||||||
- Two channels IR receiver
|
|
||||||
|
|
||||||
Currently the u-boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- eMMC, microSD
|
|
||||||
- Ethernet
|
|
||||||
- I2C
|
|
||||||
- Regulators
|
|
||||||
- Reset controller
|
|
||||||
- Clock controller
|
|
||||||
- USB Host
|
|
||||||
- ADC
|
|
||||||
|
|
||||||
U-Boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make khadas-vim_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
> git clone https://github.com/khadas/u-boot -b Vim vim-u-boot
|
|
||||||
> cd vim-u-boot
|
|
||||||
> make kvim_defconfig
|
|
||||||
> make CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> export FIPDIR=$PWD/fip
|
|
||||||
|
|
||||||
Go back to mainline U-Boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> cp $FIPDIR/gxl/bl2.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/acs.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl21.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl30.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl301.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl31.img fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> python $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl2_acs.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/bl21.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -1,102 +0,0 @@
|
|||||||
U-Boot for LibreTech AC
|
|
||||||
=======================
|
|
||||||
|
|
||||||
LibreTech AC is a single board computer manufactured by Libre Technology
|
|
||||||
with the following specifications:
|
|
||||||
|
|
||||||
- Amlogic S805X ARM Cortex-A53 quad-core SoC @ 1.2GHz
|
|
||||||
- ARM Mali 450 GPU
|
|
||||||
- 512MiB DDR4 SDRAM
|
|
||||||
- 10/100 Ethernet
|
|
||||||
- HDMI 2.0 4K/60Hz display
|
|
||||||
- 40-pin GPIO header
|
|
||||||
- 4 x USB 2.0 Host
|
|
||||||
- eMMC, SPI NOR Flash
|
|
||||||
- Infrared receiver
|
|
||||||
|
|
||||||
Schematics are available on the manufacturer website.
|
|
||||||
|
|
||||||
Currently the U-Boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- eMMC
|
|
||||||
- Ethernet
|
|
||||||
- USB
|
|
||||||
|
|
||||||
U-Boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make libretech-ac_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
> git clone https://github.com/BayLibre/u-boot.git -b libretech-ac amlogic-u-boot
|
|
||||||
> cd amlogic-u-boot
|
|
||||||
> wget https://raw.githubusercontent.com/BayLibre/u-boot/libretech-cc/fip/blx_fix.sh
|
|
||||||
> make libretech_ac_defconfig
|
|
||||||
> make
|
|
||||||
> export UBOOTDIR=$PWD
|
|
||||||
|
|
||||||
Download the latest Amlogic Buildroot package, and extract it :
|
|
||||||
> wget http://openlinux2.amlogic.com:8000/ARM/filesystem/Linux_BSP/buildroot_openlinux_kernel_4.9_fbdev_20180418.tar.gz
|
|
||||||
> tar xfz buildroot_openlinux_kernel_4.9_fbdev_20180418.tar.gz buildroot_openlinux_kernel_4.9_fbdev_20180418/bootloader
|
|
||||||
> export BRDIR=$PWD/buildroot_openlinux_kernel_4.9_fbdev_20180418
|
|
||||||
|
|
||||||
Go back to mainline U-Boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> cp $UBOOTDIR/build/scp_task/bl301.bin fip/
|
|
||||||
> cp $UBOOTDIR/build/board/amlogic/libretech_ac/firmware/bl21.bin fip/
|
|
||||||
> cp $UBOOTDIR/build/board/amlogic/libretech_ac/firmware/acs.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl2/bin/gxl/bl2.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl30/bin/gxl/bl30.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl31/bin/gxl/bl31.img fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> sh $UBOOTDIR/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> $BRDIR/bootloader/uboot-repo/fip/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
|
||||||
|
|
||||||
> sh $UBOOTDIR/blx_fix.sh \
|
|
||||||
fip/bl2_acs.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/bl21.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
|
|
||||||
> $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
|
|
||||||
> $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
|
|
||||||
> $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
|
|
||||||
> $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -1,134 +0,0 @@
|
|||||||
U-Boot for LibreTech CC
|
|
||||||
=======================
|
|
||||||
|
|
||||||
LibreTech CC is a single board computer manufactured by Libre Technology
|
|
||||||
with the following specifications:
|
|
||||||
|
|
||||||
- Amlogic S905X ARM Cortex-A53 quad-core SoC @ 1.5GHz
|
|
||||||
- ARM Mali 450 GPU
|
|
||||||
- 2GB DDR3 SDRAM
|
|
||||||
- 10/100 Ethernet
|
|
||||||
- HDMI 2.0 4K/60Hz display
|
|
||||||
- 40-pin GPIO header
|
|
||||||
- 4 x USB 2.0 Host
|
|
||||||
- eMMC, microSD
|
|
||||||
- Infrared receiver
|
|
||||||
|
|
||||||
Schematics are available on the manufacturer website.
|
|
||||||
|
|
||||||
Currently the U-Boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- eMMC, microSD
|
|
||||||
- Ethernet
|
|
||||||
- I2C
|
|
||||||
- Regulators
|
|
||||||
- Reset controller
|
|
||||||
- Clock controller
|
|
||||||
- USB Host
|
|
||||||
- ADC
|
|
||||||
|
|
||||||
U-Boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make libretech-cc_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
To boot the system, u-boot must be combined with several earlier stage
|
|
||||||
bootloaders:
|
|
||||||
|
|
||||||
* bl2.bin: vendor-provided binary blob
|
|
||||||
* bl21.bin: built from vendor u-boot source
|
|
||||||
* bl30.bin: vendor-provided binary blob
|
|
||||||
* bl301.bin: built from vendor u-boot source
|
|
||||||
* bl31.bin: vendor-provided binary blob
|
|
||||||
* acs.bin: built from vendor u-boot source
|
|
||||||
|
|
||||||
These binaries and the tools required below have been collected and prebuilt
|
|
||||||
for convenience at <https://github.com/BayLibre/u-boot/releases/>
|
|
||||||
|
|
||||||
Download and extract the libretech-cc release from there, and set FIPDIR to
|
|
||||||
point to the `fip` subdirectory.
|
|
||||||
|
|
||||||
> export FIPDIR=/path/to/extracted/fip
|
|
||||||
|
|
||||||
Alternatively, you can obtain the original vendor u-boot tree which
|
|
||||||
contains the required blobs and sources, and build yourself.
|
|
||||||
Note that old compilers are required for this to build. The compilers here
|
|
||||||
are suggested by Amlogic, and they are 32-bit x86 binaries.
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
> git clone https://github.com/BayLibre/u-boot.git -b libretech-cc amlogic-u-boot
|
|
||||||
> cd amlogic-u-boot
|
|
||||||
> make libretech_cc_defconfig
|
|
||||||
> make
|
|
||||||
> export FIPDIR=$PWD/fip
|
|
||||||
|
|
||||||
Once you have the binaries available (either through the prebuilt download,
|
|
||||||
or having built the vendor u-boot yourself), you can then proceed to glue
|
|
||||||
everything together. Go back to mainline U-Boot source tree then :
|
|
||||||
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> cp $FIPDIR/gxl/bl2.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/acs.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl21.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl30.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl301.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl31.img fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl2_acs.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/bl21.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
||||||
|
|
||||||
Note that Amlogic provides aml_encrypt_gxl as a 32-bit x86 binary with no
|
|
||||||
source code. Should you prefer to avoid that, there are open source reverse
|
|
||||||
engineered versions available:
|
|
||||||
|
|
||||||
1. gxlimg <https://github.com/repk/gxlimg>, which comes with a handy
|
|
||||||
Makefile that automates the whole process.
|
|
||||||
2. meson-tools <https://github.com/afaerber/meson-tools>
|
|
||||||
|
|
||||||
However, these community-developed alternatives are not endorsed by or
|
|
||||||
supported by Amlogic.
|
|
@ -1,102 +0,0 @@
|
|||||||
U-Boot for Amlogic P212
|
|
||||||
=======================
|
|
||||||
|
|
||||||
P212 is a reference board manufactured by Amlogic with the following
|
|
||||||
specifications:
|
|
||||||
|
|
||||||
- Amlogic S905X ARM Cortex-A53 quad-core SoC @ 1.5GHz
|
|
||||||
- ARM Mali 450 GPU
|
|
||||||
- 2GB DDR3 SDRAM
|
|
||||||
- 10/100 Ethernet
|
|
||||||
- HDMI 2.0 4K/60Hz display
|
|
||||||
- 2 x USB 2.0 Host
|
|
||||||
- eMMC, microSD
|
|
||||||
- Infrared receiver
|
|
||||||
- SDIO WiFi Module
|
|
||||||
- CVBS+Stereo Audio Jack
|
|
||||||
|
|
||||||
Schematics are available from Amlogic on demand.
|
|
||||||
|
|
||||||
Currently the u-boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- eMMC, microSD
|
|
||||||
- Ethernet
|
|
||||||
- I2C
|
|
||||||
- Regulators
|
|
||||||
- Reset controller
|
|
||||||
- Clock controller
|
|
||||||
- USB Host
|
|
||||||
- ADC
|
|
||||||
|
|
||||||
u-boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make p212_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
> git clone https://github.com/BayLibre/u-boot.git -b n-amlogic-openlinux-20170606 amlogic-u-boot
|
|
||||||
> cd amlogic-u-boot
|
|
||||||
> make gxl_p212_v1_defconfig
|
|
||||||
> make
|
|
||||||
> export FIPDIR=$PWD/fip
|
|
||||||
|
|
||||||
Go back to mainline U-boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> cp $FIPDIR/gxl/bl2.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/acs.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl21.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl30.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl301.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl31.img fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl2_acs.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/bl21.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -7,3 +7,4 @@ F: include/configs/q200.h
|
|||||||
F: configs/khadas-vim2_defconfig
|
F: configs/khadas-vim2_defconfig
|
||||||
F: configs/libretech-s905d-pc_defconfig
|
F: configs/libretech-s905d-pc_defconfig
|
||||||
F: configs/libretech-s912-pc_defconfig
|
F: configs/libretech-s912-pc_defconfig
|
||||||
|
F: doc/board/amlogic/khadas-vim2.rst
|
||||||
|
@ -1,102 +0,0 @@
|
|||||||
U-Boot for Khadas VIM2
|
|
||||||
=======================
|
|
||||||
|
|
||||||
Khadas VIM2 is an Open Source DIY Box manufactured by Shenzhen Wesion
|
|
||||||
Technology Co., Ltd with the following specifications:
|
|
||||||
|
|
||||||
- Amlogic S912 ARM Cortex-A53 octo-core SoC @ 1.5GHz
|
|
||||||
- ARM Mali T860 GPU
|
|
||||||
- 2/3GB DDR4 SDRAM
|
|
||||||
- 10/100/1000 Ethernet
|
|
||||||
- HDMI 2.0 4K/60Hz display
|
|
||||||
- 40-pin GPIO header
|
|
||||||
- 2 x USB 2.0 Host, 1 x USB 2.0 Type-C OTG
|
|
||||||
- 16GB/32GB/64GB eMMC
|
|
||||||
- 2MB SPI Flash
|
|
||||||
- microSD
|
|
||||||
- SDIO Wifi Module, Bluetooth
|
|
||||||
- Two channels IR receiver
|
|
||||||
|
|
||||||
Currently the u-boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- eMMC, microSD
|
|
||||||
- Ethernet
|
|
||||||
- I2C
|
|
||||||
- Regulators
|
|
||||||
- Reset controller
|
|
||||||
- Clock controller
|
|
||||||
- USB Host
|
|
||||||
- ADC
|
|
||||||
|
|
||||||
U-Boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make khadas-vim2_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
> git clone https://github.com/khadas/u-boot -b khadas-vim-v2015.01 vim-u-boot
|
|
||||||
> cd vim-u-boot
|
|
||||||
> make kvim2_defconfig
|
|
||||||
> make
|
|
||||||
> export FIPDIR=$PWD/fip
|
|
||||||
|
|
||||||
Go back to mainline U-Boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> cp $FIPDIR/gxl/bl2.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/acs.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl21.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl30.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl301.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl31.img fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> python $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl2_acs.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/bl21.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -1,101 +0,0 @@
|
|||||||
U-Boot for Amlogic Q200
|
|
||||||
=======================
|
|
||||||
|
|
||||||
Q200 is a reference board manufactured by Amlogic with the following
|
|
||||||
specifications:
|
|
||||||
|
|
||||||
- Amlogic S912 ARM Cortex-A53 octo-core SoC @ 1.5GHz
|
|
||||||
- ARM Mali T860 GPU
|
|
||||||
- 2/3GB DDR4 SDRAM
|
|
||||||
- 10/100/1000 Ethernet
|
|
||||||
- HDMI 2.0 4K/60Hz display
|
|
||||||
- 2 x USB 2.0 Host, 1 x USB 2.0 Device
|
|
||||||
- 16GB/32GB/64GB eMMC
|
|
||||||
- 2MB SPI Flash
|
|
||||||
- microSD
|
|
||||||
- SDIO Wifi Module, Bluetooth
|
|
||||||
- IR receiver
|
|
||||||
|
|
||||||
Currently the u-boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- eMMC, microSD
|
|
||||||
- Ethernet
|
|
||||||
- I2C
|
|
||||||
- Regulators
|
|
||||||
- Reset controller
|
|
||||||
- Clock controller
|
|
||||||
- USB Host
|
|
||||||
- ADC
|
|
||||||
|
|
||||||
U-Boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make khadas-vim2_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
> git clone https://github.com/BayLibre/u-boot.git -b n-amlogic-openlinux-20170606 amlogic-u-boot
|
|
||||||
> cd amlogic-u-boot
|
|
||||||
> make gxm_q200_v1_defconfig
|
|
||||||
> make
|
|
||||||
> export FIPDIR=$PWD/fip
|
|
||||||
|
|
||||||
Go back to mainline U-Boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> cp $FIPDIR/gxl/bl2.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/acs.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl21.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl30.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl301.bin fip/
|
|
||||||
> cp $FIPDIR/gxl/bl31.img fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> python $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl2_acs.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/bl21.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
|
|
||||||
> $FIPDIR/gxl/aml_encrypt_gxl --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -5,3 +5,4 @@ L: u-boot-amlogic@groups.io
|
|||||||
F: board/amlogic/s400/
|
F: board/amlogic/s400/
|
||||||
F: include/configs/s400.h
|
F: include/configs/s400.h
|
||||||
F: configs/s400_defconfig
|
F: configs/s400_defconfig
|
||||||
|
F: doc/board/amlogic/s400.rst
|
||||||
|
@ -1,109 +0,0 @@
|
|||||||
U-Boot for Amlogic S400
|
|
||||||
=======================
|
|
||||||
|
|
||||||
S400 is a reference board manufactured by Amlogic with the following
|
|
||||||
specifications:
|
|
||||||
|
|
||||||
- Amlogic A113DX ARM Cortex-A53 quad-core SoC @ 1.2GHz
|
|
||||||
- 1GB DDR4 SDRAM
|
|
||||||
- 10/100 Ethernet
|
|
||||||
- 2 x USB 2.0 Host
|
|
||||||
- eMMC
|
|
||||||
- Infrared receiver
|
|
||||||
- SDIO WiFi Module
|
|
||||||
- MIPI DSI Connector
|
|
||||||
- Audio HAT Connector
|
|
||||||
- PCI-E M.2 Connectors
|
|
||||||
|
|
||||||
Schematics are available from Amlogic on demand.
|
|
||||||
|
|
||||||
Currently the u-boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- eMMC
|
|
||||||
- Ethernet
|
|
||||||
- I2C
|
|
||||||
- Regulators
|
|
||||||
- Reset controller
|
|
||||||
- Clock controller
|
|
||||||
- USB Host
|
|
||||||
- ADC
|
|
||||||
|
|
||||||
u-boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make s400_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
> git clone https://github.com/BayLibre/u-boot.git -b n-amlogic-openlinux-20170606 amlogic-u-boot
|
|
||||||
> cd amlogic-u-boot
|
|
||||||
> make axg_s400_v1_defconfig
|
|
||||||
> make
|
|
||||||
> export FIPDIR=$PWD/fip
|
|
||||||
|
|
||||||
Go back to mainline U-boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> cp $FIPDIR/axg/bl2.bin fip/
|
|
||||||
> cp $FIPDIR/axg/acs.bin fip/
|
|
||||||
> cp $FIPDIR/axg/bl21.bin fip/
|
|
||||||
> cp $FIPDIR/axg/bl30.bin fip/
|
|
||||||
> cp $FIPDIR/axg/bl301.bin fip/
|
|
||||||
> cp $FIPDIR/axg/bl31.img fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
|
||||||
|
|
||||||
> $FIPDIR/blx_fix.sh \
|
|
||||||
fip/bl2_acs.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/bl21.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl30_new.bin \
|
|
||||||
--output fip/bl30_new.bin.enc \
|
|
||||||
--level v3 --type bl30
|
|
||||||
> $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl31.img \
|
|
||||||
--output fip/bl31.img.enc \
|
|
||||||
--level v3 --type bl31
|
|
||||||
> $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl33.bin --compress lz4 \
|
|
||||||
--output fip/bl33.bin.enc \
|
|
||||||
--level v3 --type bl33
|
|
||||||
> $FIPDIR/axg/aml_encrypt_axg --bl2sig --input fip/bl2_new.bin \
|
|
||||||
--output fip/bl2.n.bin.sig
|
|
||||||
> $FIPDIR/axg/aml_encrypt_axg --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc --level v3
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -5,3 +5,4 @@ L: u-boot-amlogic@groups.io
|
|||||||
F: board/amlogic/sei510/
|
F: board/amlogic/sei510/
|
||||||
F: configs/sei510_defconfig
|
F: configs/sei510_defconfig
|
||||||
F: include/configs/sei510.h
|
F: include/configs/sei510.h
|
||||||
|
F: doc/board/amlogic/sei510.rst
|
||||||
|
@ -1,122 +0,0 @@
|
|||||||
U-Boot for Amlogic SEI510
|
|
||||||
=======================
|
|
||||||
|
|
||||||
SEI510 is a customer board manufactured by SEI Robotics with the following
|
|
||||||
specifications:
|
|
||||||
|
|
||||||
- Amlogic S905X2 ARM Cortex-A53 quad-core SoC
|
|
||||||
- 2GB DDR4 SDRAM
|
|
||||||
- 10/100 Ethernet (Internal PHY)
|
|
||||||
- 1 x USB 3.0 Host
|
|
||||||
- eMMC
|
|
||||||
- SDcard
|
|
||||||
- Infrared receiver
|
|
||||||
- SDIO WiFi Module
|
|
||||||
|
|
||||||
Currently the u-boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- Ethernet
|
|
||||||
- Regulators
|
|
||||||
- Clock controller
|
|
||||||
|
|
||||||
u-boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make sei510_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
> git clone https://github.com/BayLibre/u-boot.git -b buildroot-openlinux-20180418 amlogic-u-boot
|
|
||||||
> cd amlogic-u-boot
|
|
||||||
> make g12a_u200_v1_defconfig
|
|
||||||
> make
|
|
||||||
> export UBOOTDIR=$PWD
|
|
||||||
|
|
||||||
Download the latest Amlogic Buildroot package, and extract it :
|
|
||||||
> wget http://openlinux2.amlogic.com:8000/ARM/filesystem/Linux_BSP/buildroot_openlinux_kernel_4.9_fbdev_20180706.tar.gz
|
|
||||||
> tar xfz buildroot_openlinux_kernel_4.9_fbdev_20180706.tar.gz buildroot_openlinux_kernel_4.9_fbdev_20180706/bootloader
|
|
||||||
> export BRDIR=$PWD/buildroot_openlinux_kernel_4.9_fbdev_20180706
|
|
||||||
> export FIPDIR=$BRDIR/bootloader/uboot-repo/fip
|
|
||||||
|
|
||||||
Go back to mainline U-Boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> wget https://github.com/BayLibre/u-boot/releases/download/v2017.11-libretech-cc/blx_fix_g12a.sh -O fip/blx_fix.sh
|
|
||||||
> cp $UBOOTDIR/build/scp_task/bl301.bin fip/
|
|
||||||
> cp $UBOOTDIR/build/board/amlogic/g12a_u200_v1/firmware/acs.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl2/bin/g12a/bl2.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl30/bin/g12a/bl30.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl31_1.3/bin/g12a/bl31.img fip/
|
|
||||||
> cp $FIPDIR/g12a/ddr3_1d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/ddr4_1d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/ddr4_2d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/diag_lpddr4.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/lpddr4_1d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/lpddr4_2d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/piei.fw fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> sh fip/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> sh fip/blx_fix.sh \
|
|
||||||
fip/bl2.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/acs.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl30sig --input fip/bl30_new.bin \
|
|
||||||
--output fip/bl30_new.bin.g12a.enc \
|
|
||||||
--level v3
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl30_new.bin.g12a.enc \
|
|
||||||
--output fip/bl30_new.bin.enc \
|
|
||||||
--level v3 --type bl30
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl31.img \
|
|
||||||
--output fip/bl31.img.enc \
|
|
||||||
--level v3 --type bl31
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl33.bin --compress lz4 \
|
|
||||||
--output fip/bl33.bin.enc \
|
|
||||||
--level v3 --type bl33
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl2sig --input fip/bl2_new.bin \
|
|
||||||
--output fip/bl2.n.bin.sig
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc \
|
|
||||||
--ddrfw1 fip/ddr4_1d.fw \
|
|
||||||
--ddrfw2 fip/ddr4_2d.fw \
|
|
||||||
--ddrfw3 fip/ddr3_1d.fw \
|
|
||||||
--ddrfw4 fip/piei.fw \
|
|
||||||
--ddrfw5 fip/lpddr4_1d.fw \
|
|
||||||
--ddrfw6 fip/lpddr4_2d.fw \
|
|
||||||
--ddrfw7 fip/diag_lpddr4.fw \
|
|
||||||
--level v3
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -5,3 +5,4 @@ L: u-boot-amlogic@groups.io
|
|||||||
F: board/amlogic/sei610/
|
F: board/amlogic/sei610/
|
||||||
F: configs/sei610_defconfig
|
F: configs/sei610_defconfig
|
||||||
F: include/configs/sei610.h
|
F: include/configs/sei610.h
|
||||||
|
F: doc/board/amlogic/sei610.rst
|
||||||
|
@ -1,118 +0,0 @@
|
|||||||
U-Boot for Amlogic SEI610
|
|
||||||
=========================
|
|
||||||
|
|
||||||
SEI610 is a customer board manufactured by SEI Robotics with the following
|
|
||||||
specifications:
|
|
||||||
|
|
||||||
- Amlogic S905X3 ARM Cortex-A55 quad-core SoC
|
|
||||||
- 2GB DDR4 SDRAM
|
|
||||||
- 10/100 Ethernet (Internal PHY)
|
|
||||||
- 1 x USB 3.0 Host
|
|
||||||
- 1 x USB Type-C DRD
|
|
||||||
- 1 x FTDI USB Serial Debug Interface
|
|
||||||
- eMMC
|
|
||||||
- SDcard
|
|
||||||
- Infrared receiver
|
|
||||||
- SDIO WiFi Module
|
|
||||||
|
|
||||||
u-boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make sei610_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
> git clone https://github.com/BayLibre/u-boot.git -b buildroot-openlinux-4.9-g12a-201904 amlogic-u-boot
|
|
||||||
> cd amlogic-u-boot
|
|
||||||
> make sm1_ac200_v1_defconfig
|
|
||||||
> make
|
|
||||||
> export UBOOTDIR=$PWD
|
|
||||||
|
|
||||||
Download the latest Amlogic Buildroot package, and extract it :
|
|
||||||
> wget http://openlinux2.amlogic.com:8000/ARM/filesystem/buildroot-openlinux-A113-201901.tgz
|
|
||||||
> tar xfz buildroot-openlinux-A113-201901.tgz buildroot-openlinux-A113-201901/bootloader
|
|
||||||
> export BRDIR=$PWD/buildroot-openlinux-A113-201901
|
|
||||||
> export FIPDIR=$BRDIR/bootloader/uboot-repo/fip
|
|
||||||
|
|
||||||
Go back to mainline U-Boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> wget https://github.com/BayLibre/u-boot/releases/download/v2017.11-libretech-cc/blx_fix_g12a.sh -O fip/blx_fix.sh
|
|
||||||
> cp $UBOOTDIR/build/scp_task/bl301.bin fip/
|
|
||||||
> cp $UBOOTDIR/build/board/amlogic/g12a_u200_v1/firmware/acs.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl2/bin/g12a/bl2.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl30/bin/g12a/bl30.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl31_1.3/bin/g12a/bl31.img fip/
|
|
||||||
> cp $FIPDIR/g12a/ddr3_1d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/ddr4_1d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/ddr4_2d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/diag_lpddr4.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/lpddr4_1d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/lpddr4_2d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/piei.fw fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> sh fip/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> sh fip/blx_fix.sh \
|
|
||||||
fip/bl2.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/acs.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl30sig --input fip/bl30_new.bin \
|
|
||||||
--output fip/bl30_new.bin.g12a.enc \
|
|
||||||
--level v3
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl30_new.bin.g12a.enc \
|
|
||||||
--output fip/bl30_new.bin.enc \
|
|
||||||
--level v3 --type bl30
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl31.img \
|
|
||||||
--output fip/bl31.img.enc \
|
|
||||||
--level v3 --type bl31
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl33.bin --compress lz4 \
|
|
||||||
--output fip/bl33.bin.enc \
|
|
||||||
--level v3 --type bl33
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl2sig --input fip/bl2_new.bin \
|
|
||||||
--output fip/bl2.n.bin.sig
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc \
|
|
||||||
--ddrfw1 fip/ddr4_1d.fw \
|
|
||||||
--ddrfw2 fip/ddr4_2d.fw \
|
|
||||||
--ddrfw3 fip/ddr3_1d.fw \
|
|
||||||
--ddrfw4 fip/piei.fw \
|
|
||||||
--ddrfw5 fip/lpddr4_1d.fw \
|
|
||||||
--ddrfw6 fip/lpddr4_2d.fw \
|
|
||||||
--ddrfw7 fip/diag_lpddr4.fw \
|
|
||||||
--level v3
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -4,3 +4,4 @@ S: Maintained
|
|||||||
L: u-boot-amlogic@groups.io
|
L: u-boot-amlogic@groups.io
|
||||||
F: board/amlogic/u200/
|
F: board/amlogic/u200/
|
||||||
F: configs/u200_defconfig
|
F: configs/u200_defconfig
|
||||||
|
F: doc/board/amlogic/u200.rst
|
||||||
|
@ -1,127 +0,0 @@
|
|||||||
U-Boot for Amlogic U200
|
|
||||||
=======================
|
|
||||||
|
|
||||||
U200 is a reference board manufactured by Amlogic with the following
|
|
||||||
specifications:
|
|
||||||
|
|
||||||
- Amlogic S905D2 ARM Cortex-A53 quad-core SoC
|
|
||||||
- 2GB DDR4 SDRAM
|
|
||||||
- 10/100 Ethernet (Internal PHY)
|
|
||||||
- 1 x USB 3.0 Host
|
|
||||||
- eMMC
|
|
||||||
- SDcard
|
|
||||||
- Infrared receiver
|
|
||||||
- SDIO WiFi Module
|
|
||||||
- MIPI DSI Connector
|
|
||||||
- Audio HAT Connector
|
|
||||||
- PCI-E M.2 Connector
|
|
||||||
|
|
||||||
Schematics are available from Amlogic on demand.
|
|
||||||
|
|
||||||
Currently the u-boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- Ethernet
|
|
||||||
- Regulators
|
|
||||||
- Clock controller
|
|
||||||
|
|
||||||
u-boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make u200_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
> git clone https://github.com/BayLibre/u-boot.git -b buildroot-openlinux-20180418 amlogic-u-boot
|
|
||||||
> cd amlogic-u-boot
|
|
||||||
> make g12a_u200_v1_defconfig
|
|
||||||
> make
|
|
||||||
> export UBOOTDIR=$PWD
|
|
||||||
|
|
||||||
Download the latest Amlogic Buildroot package, and extract it :
|
|
||||||
> wget http://openlinux2.amlogic.com:8000/ARM/filesystem/Linux_BSP/buildroot_openlinux_kernel_4.9_fbdev_20180706.tar.gz
|
|
||||||
> tar xfz buildroot_openlinux_kernel_4.9_fbdev_20180706.tar.gz buildroot_openlinux_kernel_4.9_fbdev_20180706/bootloader
|
|
||||||
> export BRDIR=$PWD/buildroot_openlinux_kernel_4.9_fbdev_20180706
|
|
||||||
> export FIPDIR=$BRDIR/bootloader/uboot-repo/fip
|
|
||||||
|
|
||||||
Go back to mainline U-Boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> wget https://github.com/BayLibre/u-boot/releases/download/v2017.11-libretech-cc/blx_fix_g12a.sh -O fip/blx_fix.sh
|
|
||||||
> cp $UBOOTDIR/build/scp_task/bl301.bin fip/
|
|
||||||
> cp $UBOOTDIR/build/board/amlogic/g12a_u200_v1/firmware/acs.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl2/bin/g12a/bl2.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl30/bin/g12a/bl30.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl31_1.3/bin/g12a/bl31.img fip/
|
|
||||||
> cp $FIPDIR/g12a/ddr3_1d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/ddr4_1d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/ddr4_2d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/diag_lpddr4.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/lpddr4_1d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/lpddr4_2d.fw fip/
|
|
||||||
> cp $FIPDIR/g12a/piei.fw fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> sh fip/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> sh fip/blx_fix.sh \
|
|
||||||
fip/bl2.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/acs.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl30sig --input fip/bl30_new.bin \
|
|
||||||
--output fip/bl30_new.bin.g12a.enc \
|
|
||||||
--level v3
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl30_new.bin.g12a.enc \
|
|
||||||
--output fip/bl30_new.bin.enc \
|
|
||||||
--level v3 --type bl30
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl31.img \
|
|
||||||
--output fip/bl31.img.enc \
|
|
||||||
--level v3 --type bl31
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl33.bin --compress lz4 \
|
|
||||||
--output fip/bl33.bin.enc \
|
|
||||||
--level v3 --type bl33
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bl2sig --input fip/bl2_new.bin \
|
|
||||||
--output fip/bl2.n.bin.sig
|
|
||||||
> $FIPDIR/g12a/aml_encrypt_g12a --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc \
|
|
||||||
--ddrfw1 fip/ddr4_1d.fw \
|
|
||||||
--ddrfw2 fip/ddr4_2d.fw \
|
|
||||||
--ddrfw3 fip/ddr3_1d.fw \
|
|
||||||
--ddrfw4 fip/piei.fw \
|
|
||||||
--ddrfw5 fip/lpddr4_1d.fw \
|
|
||||||
--ddrfw6 fip/lpddr4_2d.fw \
|
|
||||||
--ddrfw7 fip/diag_lpddr4.fw \
|
|
||||||
--level v3
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -6,3 +6,7 @@ F: board/amlogic/w400/
|
|||||||
F: configs/khadas-vim3_defconfig
|
F: configs/khadas-vim3_defconfig
|
||||||
F: configs/khadas-vim3l_defconfig
|
F: configs/khadas-vim3l_defconfig
|
||||||
F: configs/odroid-n2_defconfig
|
F: configs/odroid-n2_defconfig
|
||||||
|
F: doc/board/amlogic/w400.rst
|
||||||
|
F: doc/board/amlogic/khadas-vim3.rst
|
||||||
|
F: doc/board/amlogic/khadas-vim3l.rst
|
||||||
|
F: doc/board/amlogic/odroid-n2.rst
|
||||||
|
@ -1,131 +0,0 @@
|
|||||||
U-Boot for Khadas VIM3
|
|
||||||
======================
|
|
||||||
|
|
||||||
Khadas VIM3 is a single board computer manufactured by Shenzhen Wesion
|
|
||||||
Technology Co., Ltd. with the following specifications:
|
|
||||||
|
|
||||||
- Amlogic A311D Arm Cortex-A53 dual-core + Cortex-A73 quad-core SoC
|
|
||||||
- 4GB LPDDR4 SDRAM
|
|
||||||
- Gigabit Ethernet
|
|
||||||
- HDMI 2.1 display
|
|
||||||
- 40-pin GPIO header
|
|
||||||
- 1 x USB 3.0 Host, 1 x USB 2.0 Host
|
|
||||||
- eMMC, microSD
|
|
||||||
- M.2
|
|
||||||
- Infrared receiver
|
|
||||||
|
|
||||||
Schematics are available on the manufacturer website.
|
|
||||||
|
|
||||||
Currently the U-Boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- eMMC, microSD
|
|
||||||
- Ethernet
|
|
||||||
- I2C
|
|
||||||
- Regulators
|
|
||||||
- Reset controller
|
|
||||||
- Clock controller
|
|
||||||
- ADC
|
|
||||||
|
|
||||||
u-boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make khadas-vim3_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
|
|
||||||
> DIR=vim3-u-boot
|
|
||||||
> git clone --depth 1 \
|
|
||||||
https://github.com/khadas/u-boot.git -b khadas-vims-v2015.01 \
|
|
||||||
$DIR
|
|
||||||
|
|
||||||
> cd vim3-u-boot
|
|
||||||
> make kvim3_defconfig
|
|
||||||
> make
|
|
||||||
> export UBOOTDIR=$PWD
|
|
||||||
|
|
||||||
Go back to mainline U-Boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> cp $UBOOTDIR/build/scp_task/bl301.bin fip/
|
|
||||||
> cp $UBOOTDIR/build/board/khadas/kvim3/firmware/acs.bin fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/bl2.bin fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/bl30.bin fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/bl31.img fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/ddr3_1d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/ddr4_1d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/ddr4_2d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/diag_lpddr4.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/lpddr3_1d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/lpddr4_1d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/lpddr4_2d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/piei.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/aml_ddr.fw fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> sh fip/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> sh fip/blx_fix.sh \
|
|
||||||
fip/bl2.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/acs.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl30sig --input fip/bl30_new.bin \
|
|
||||||
--output fip/bl30_new.bin.g12a.enc \
|
|
||||||
--level v3
|
|
||||||
> $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input fip/bl30_new.bin.g12a.enc \
|
|
||||||
--output fip/bl30_new.bin.enc \
|
|
||||||
--level v3 --type bl30
|
|
||||||
> $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input fip/bl31.img \
|
|
||||||
--output fip/bl31.img.enc \
|
|
||||||
--level v3 --type bl31
|
|
||||||
> $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input fip/bl33.bin --compress lz4 \
|
|
||||||
--output fip/bl33.bin.enc \
|
|
||||||
--level v3 --type bl33 --compress lz4
|
|
||||||
> $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl2sig --input fip/bl2_new.bin \
|
|
||||||
--output fip/bl2.n.bin.sig
|
|
||||||
> $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc \
|
|
||||||
--ddrfw1 fip/ddr4_1d.fw \
|
|
||||||
--ddrfw2 fip/ddr4_2d.fw \
|
|
||||||
--ddrfw3 fip/ddr3_1d.fw \
|
|
||||||
--ddrfw4 fip/piei.fw \
|
|
||||||
--ddrfw5 fip/lpddr4_1d.fw \
|
|
||||||
--ddrfw6 fip/lpddr4_2d.fw \
|
|
||||||
--ddrfw7 fip/diag_lpddr4.fw \
|
|
||||||
--ddrfw8 fip/aml_ddr.fw \
|
|
||||||
--ddrfw9 fip/lpddr3_1d.fw \
|
|
||||||
--level v3
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -1,131 +0,0 @@
|
|||||||
U-Boot for Khadas VIM3L
|
|
||||||
=======================
|
|
||||||
|
|
||||||
Khadas VIM3L is a single board computer manufactured by Shenzhen Wesion
|
|
||||||
Technology Co., Ltd. with the following specifications:
|
|
||||||
|
|
||||||
- Amlogic S905D3 Arm Cortex-A55 quad-core SoC
|
|
||||||
- 2GB LPDDR4 SDRAM
|
|
||||||
- Gigabit Ethernet
|
|
||||||
- HDMI 2.1 display
|
|
||||||
- 40-pin GPIO header
|
|
||||||
- 1 x USB 3.0 Host, 1 x USB 2.0 Host
|
|
||||||
- eMMC, microSD
|
|
||||||
- M.2
|
|
||||||
- Infrared receiver
|
|
||||||
|
|
||||||
Schematics are available on the manufacturer website.
|
|
||||||
|
|
||||||
Currently the U-Boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- eMMC, microSD
|
|
||||||
- Ethernet
|
|
||||||
- I2C
|
|
||||||
- Regulators
|
|
||||||
- Reset controller
|
|
||||||
- Clock controller
|
|
||||||
- ADC
|
|
||||||
|
|
||||||
u-boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make khadas-vim3l_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
|
|
||||||
> DIR=vim3l-u-boot
|
|
||||||
> git clone --depth 1 \
|
|
||||||
https://github.com/khadas/u-boot.git -b khadas-vims-v2015.01 \
|
|
||||||
$DIR
|
|
||||||
|
|
||||||
> cd vim3l-u-boot
|
|
||||||
> make kvim3l_defconfig
|
|
||||||
> make
|
|
||||||
> export UBOOTDIR=$PWD
|
|
||||||
|
|
||||||
Go back to mainline U-Boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> cp $UBOOTDIR/build/scp_task/bl301.bin fip/
|
|
||||||
> cp $UBOOTDIR/build/board/khadas/kvim3l/firmware/acs.bin fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12a/bl2.bin fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12a/bl30.bin fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12a/bl31.img fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12a/ddr3_1d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12a/ddr4_1d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12a/ddr4_2d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12a/diag_lpddr4.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12a/lpddr3_1d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12a/lpddr4_1d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12a/lpddr4_2d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12a/piei.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12a/aml_ddr.fw fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> sh fip/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> sh fip/blx_fix.sh \
|
|
||||||
fip/bl2.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/acs.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl30sig --input fip/bl30_new.bin \
|
|
||||||
--output fip/bl30_new.bin.g12a.enc \
|
|
||||||
--level v3
|
|
||||||
> $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl3sig --input fip/bl30_new.bin.g12a.enc \
|
|
||||||
--output fip/bl30_new.bin.enc \
|
|
||||||
--level v3 --type bl30
|
|
||||||
> $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl3sig --input fip/bl31.img \
|
|
||||||
--output fip/bl31.img.enc \
|
|
||||||
--level v3 --type bl31
|
|
||||||
> $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl3sig --input fip/bl33.bin --compress lz4 \
|
|
||||||
--output fip/bl33.bin.enc \
|
|
||||||
--level v3 --type bl33 --compress lz4
|
|
||||||
> $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl2sig --input fip/bl2_new.bin \
|
|
||||||
--output fip/bl2.n.bin.sig
|
|
||||||
> $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc \
|
|
||||||
--ddrfw1 fip/ddr4_1d.fw \
|
|
||||||
--ddrfw2 fip/ddr4_2d.fw \
|
|
||||||
--ddrfw3 fip/ddr3_1d.fw \
|
|
||||||
--ddrfw4 fip/piei.fw \
|
|
||||||
--ddrfw5 fip/lpddr4_1d.fw \
|
|
||||||
--ddrfw6 fip/lpddr4_2d.fw \
|
|
||||||
--ddrfw7 fip/diag_lpddr4.fw \
|
|
||||||
--ddrfw8 fip/aml_ddr.fw \
|
|
||||||
--ddrfw9 fip/lpddr3_1d.fw \
|
|
||||||
--level v3
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -1,129 +0,0 @@
|
|||||||
U-Boot for ODROID-N2
|
|
||||||
====================
|
|
||||||
|
|
||||||
ODROID-N2 is a single board computer manufactured by Hardkernel
|
|
||||||
Co. Ltd with the following specifications:
|
|
||||||
|
|
||||||
- Amlogic S922X ARM Cortex-A53 dual-core + Cortex-A73 quad-core SoC
|
|
||||||
- 4GB DDR4 SDRAM
|
|
||||||
- Gigabit Ethernet
|
|
||||||
- HDMI 2.1 4K/60Hz display
|
|
||||||
- 40-pin GPIO header
|
|
||||||
- 4 x USB 3.0 Host, 1 x USB OTG
|
|
||||||
- eMMC, microSD
|
|
||||||
- Infrared receiver
|
|
||||||
|
|
||||||
Schematics are available on the manufacturer website.
|
|
||||||
|
|
||||||
Currently the u-boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- eMMC, microSD
|
|
||||||
- Ethernet
|
|
||||||
- I2C
|
|
||||||
- Regulators
|
|
||||||
- Reset controller
|
|
||||||
- Clock controller
|
|
||||||
- ADC
|
|
||||||
|
|
||||||
u-boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make odroid-n2_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
|
|
||||||
> DIR=odroid-n2
|
|
||||||
> git clone --depth 1 \
|
|
||||||
https://github.com/hardkernel/u-boot.git -b odroidn2-v2015.01 \
|
|
||||||
$DIR
|
|
||||||
|
|
||||||
> cd odroid-n2
|
|
||||||
> make odroidn2_defconfig
|
|
||||||
> make
|
|
||||||
> export UBOOTDIR=$PWD
|
|
||||||
|
|
||||||
Go back to mainline U-Boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> wget https://github.com/BayLibre/u-boot/releases/download/v2017.11-libretech-cc/blx_fix_g12a.sh -O fip/blx_fix.sh
|
|
||||||
> cp $UBOOTDIR/build/scp_task/bl301.bin fip/
|
|
||||||
> cp $UBOOTDIR/build/board/hardkernel/odroidn2/firmware/acs.bin fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/bl2.bin fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/bl30.bin fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/bl31.img fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/ddr3_1d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/ddr4_1d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/ddr4_2d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/diag_lpddr4.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/lpddr4_1d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/lpddr4_2d.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/piei.fw fip/
|
|
||||||
> cp $UBOOTDIR/fip/g12b/aml_ddr.fw fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> sh fip/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> sh fip/blx_fix.sh \
|
|
||||||
fip/bl2.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/acs.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl30sig --input fip/bl30_new.bin \
|
|
||||||
--output fip/bl30_new.bin.g12a.enc \
|
|
||||||
--level v3
|
|
||||||
> $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input fip/bl30_new.bin.g12a.enc \
|
|
||||||
--output fip/bl30_new.bin.enc \
|
|
||||||
--level v3 --type bl30
|
|
||||||
> $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input fip/bl31.img \
|
|
||||||
--output fip/bl31.img.enc \
|
|
||||||
--level v3 --type bl31
|
|
||||||
> $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input fip/bl33.bin --compress lz4 \
|
|
||||||
--output fip/bl33.bin.enc \
|
|
||||||
--level v3 --type bl33 --compress lz4
|
|
||||||
> $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl2sig --input fip/bl2_new.bin \
|
|
||||||
--output fip/bl2.n.bin.sig
|
|
||||||
> $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc \
|
|
||||||
--ddrfw1 fip/ddr4_1d.fw \
|
|
||||||
--ddrfw2 fip/ddr4_2d.fw \
|
|
||||||
--ddrfw3 fip/ddr3_1d.fw \
|
|
||||||
--ddrfw4 fip/piei.fw \
|
|
||||||
--ddrfw5 fip/lpddr4_1d.fw \
|
|
||||||
--ddrfw6 fip/lpddr4_2d.fw \
|
|
||||||
--ddrfw7 fip/diag_lpddr4.fw \
|
|
||||||
--ddrfw8 fip/aml_ddr.fw \
|
|
||||||
--level v3
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -1,129 +0,0 @@
|
|||||||
U-Boot for Amlogic W400
|
|
||||||
=======================
|
|
||||||
|
|
||||||
U200 is a reference board manufactured by Amlogic with the following
|
|
||||||
specifications:
|
|
||||||
|
|
||||||
- Amlogic S922X ARM Cortex-A53 dual-core + Cortex-A73 quad-core SoC
|
|
||||||
- 2GB DDR4 SDRAM
|
|
||||||
- 10/100 Ethernet (Internal PHY)
|
|
||||||
- 1 x USB 3.0 Host
|
|
||||||
- eMMC
|
|
||||||
- SDcard
|
|
||||||
- Infrared receiver
|
|
||||||
- SDIO WiFi Module
|
|
||||||
- MIPI DSI Connector
|
|
||||||
- Audio HAT Connector
|
|
||||||
- PCI-E M.2 Connector
|
|
||||||
|
|
||||||
Schematics are available from Amlogic on demand.
|
|
||||||
|
|
||||||
Currently the u-boot port supports the following devices:
|
|
||||||
- serial
|
|
||||||
- Ethernet
|
|
||||||
- Regulators
|
|
||||||
- Clock controller
|
|
||||||
|
|
||||||
u-boot compilation
|
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
> make w400_defconfig
|
|
||||||
> make
|
|
||||||
|
|
||||||
Image creation
|
|
||||||
==============
|
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
the git tree published by the board vendor:
|
|
||||||
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
> tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
|
||||||
> export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
|
||||||
> git clone https://github.com/BayLibre/u-boot.git -b buildroot-openlinux-20180418 amlogic-u-boot
|
|
||||||
> cd amlogic-u-boot
|
|
||||||
> make g12b_w400_v1_defconfig
|
|
||||||
> make
|
|
||||||
> export UBOOTDIR=$PWD
|
|
||||||
|
|
||||||
Download the latest Amlogic Buildroot package, and extract it :
|
|
||||||
> wget http://openlinux2.amlogic.com:8000/ARM/filesystem/Linux_BSP/buildroot_openlinux_kernel_4.9_fbdev_20180706.tar.gz
|
|
||||||
> tar xfz buildroot_openlinux_kernel_4.9_fbdev_20180706.tar.gz buildroot_openlinux_kernel_4.9_fbdev_20180706/bootloader
|
|
||||||
> export BRDIR=$PWD/buildroot_openlinux_kernel_4.9_fbdev_20180706
|
|
||||||
> export FIPDIR=$BRDIR/bootloader/uboot-repo/fip
|
|
||||||
|
|
||||||
Go back to mainline U-Boot source tree then :
|
|
||||||
> mkdir fip
|
|
||||||
|
|
||||||
> wget https://github.com/BayLibre/u-boot/releases/download/v2017.11-libretech-cc/blx_fix_g12a.sh -O fip/blx_fix.sh
|
|
||||||
> cp $UBOOTDIR/build/scp_task/bl301.bin fip/
|
|
||||||
> cp $UBOOTDIR/build/board/amlogic/g12b_w400_v1/firmware/acs.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl2/bin/g12b/bl2.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl30/bin/g12b/bl30.bin fip/
|
|
||||||
> cp $BRDIR/bootloader/uboot-repo/bl31_1.3/bin/g12b/bl31.img fip/
|
|
||||||
> cp $FIPDIR/g12b/ddr3_1d.fw fip/
|
|
||||||
> cp $FIPDIR/g12b/ddr4_1d.fw fip/
|
|
||||||
> cp $FIPDIR/g12b/ddr4_2d.fw fip/
|
|
||||||
> cp $FIPDIR/g12b/diag_lpddr4.fw fip/
|
|
||||||
> cp $FIPDIR/g12b/lpddr4_1d.fw fip/
|
|
||||||
> cp $FIPDIR/g12b/lpddr4_2d.fw fip/
|
|
||||||
> cp $FIPDIR/g12b/piei.fw fip/
|
|
||||||
> cp $FIPDIR/g12b/aml_ddr.fw fip/
|
|
||||||
> cp u-boot.bin fip/bl33.bin
|
|
||||||
|
|
||||||
> sh fip/blx_fix.sh \
|
|
||||||
fip/bl30.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl30_zero.bin \
|
|
||||||
fip/bl301.bin \
|
|
||||||
fip/bl301_zero.bin \
|
|
||||||
fip/bl30_new.bin \
|
|
||||||
bl30
|
|
||||||
|
|
||||||
> sh fip/blx_fix.sh \
|
|
||||||
fip/bl2.bin \
|
|
||||||
fip/zero_tmp \
|
|
||||||
fip/bl2_zero.bin \
|
|
||||||
fip/acs.bin \
|
|
||||||
fip/bl21_zero.bin \
|
|
||||||
fip/bl2_new.bin \
|
|
||||||
bl2
|
|
||||||
|
|
||||||
> $FIPDIR/g12b/aml_encrypt_g12b --bl30sig --input fip/bl30_new.bin \
|
|
||||||
--output fip/bl30_new.bin.g12a.enc \
|
|
||||||
--level v3
|
|
||||||
> $FIPDIR/g12b/aml_encrypt_g12b --bl3sig --input fip/bl30_new.bin.g12a.enc \
|
|
||||||
--output fip/bl30_new.bin.enc \
|
|
||||||
--level v3 --type bl30
|
|
||||||
> $FIPDIR/g12b/aml_encrypt_g12b --bl3sig --input fip/bl31.img \
|
|
||||||
--output fip/bl31.img.enc \
|
|
||||||
--level v3 --type bl31
|
|
||||||
> $FIPDIR/g12b/aml_encrypt_g12b --bl3sig --input fip/bl33.bin --compress lz4 \
|
|
||||||
--output fip/bl33.bin.enc \
|
|
||||||
--level v3 --type bl33
|
|
||||||
> $FIPDIR/g12b/aml_encrypt_g12b --bl2sig --input fip/bl2_new.bin \
|
|
||||||
--output fip/bl2.n.bin.sig
|
|
||||||
> $FIPDIR/g12b/aml_encrypt_g12b --bootmk \
|
|
||||||
--output fip/u-boot.bin \
|
|
||||||
--bl2 fip/bl2.n.bin.sig \
|
|
||||||
--bl30 fip/bl30_new.bin.enc \
|
|
||||||
--bl31 fip/bl31.img.enc \
|
|
||||||
--bl33 fip/bl33.bin.enc \
|
|
||||||
--ddrfw1 fip/ddr4_1d.fw \
|
|
||||||
--ddrfw2 fip/ddr4_2d.fw \
|
|
||||||
--ddrfw3 fip/ddr3_1d.fw \
|
|
||||||
--ddrfw4 fip/piei.fw \
|
|
||||||
--ddrfw5 fip/lpddr4_1d.fw \
|
|
||||||
--ddrfw6 fip/lpddr4_2d.fw \
|
|
||||||
--ddrfw7 fip/diag_lpddr4.fw \
|
|
||||||
--ddrfw8 fip/aml_ddr.fw \
|
|
||||||
--level v3
|
|
||||||
|
|
||||||
and then write the image to SD with:
|
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
> dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
@ -25,7 +25,6 @@
|
|||||||
#include <asm/mach-imx/spi.h>
|
#include <asm/mach-imx/spi.h>
|
||||||
#include <asm/mach-imx/boot_mode.h>
|
#include <asm/mach-imx/boot_mode.h>
|
||||||
#include <asm/mach-imx/video.h>
|
#include <asm/mach-imx/video.h>
|
||||||
#include <mmc.h>
|
|
||||||
#include <fsl_esdhc_imx.h>
|
#include <fsl_esdhc_imx.h>
|
||||||
#include <micrel.h>
|
#include <micrel.h>
|
||||||
#include <miiphy.h>
|
#include <miiphy.h>
|
||||||
@ -161,26 +160,6 @@ static iomux_v3_cfg_t const usdhc2_pads[] = {
|
|||||||
IOMUX_PAD_CTRL(SD2_DAT3__SD2_DATA3, USDHC_PAD_CTRL),
|
IOMUX_PAD_CTRL(SD2_DAT3__SD2_DATA3, USDHC_PAD_CTRL),
|
||||||
};
|
};
|
||||||
|
|
||||||
static iomux_v3_cfg_t const usdhc3_pads[] = {
|
|
||||||
IOMUX_PAD_CTRL(SD3_CLK__SD3_CLK, USDHC_PAD_CTRL),
|
|
||||||
IOMUX_PAD_CTRL(SD3_CMD__SD3_CMD, USDHC_PAD_CTRL),
|
|
||||||
IOMUX_PAD_CTRL(SD3_DAT0__SD3_DATA0, USDHC_PAD_CTRL),
|
|
||||||
IOMUX_PAD_CTRL(SD3_DAT1__SD3_DATA1, USDHC_PAD_CTRL),
|
|
||||||
IOMUX_PAD_CTRL(SD3_DAT2__SD3_DATA2, USDHC_PAD_CTRL),
|
|
||||||
IOMUX_PAD_CTRL(SD3_DAT3__SD3_DATA3, USDHC_PAD_CTRL),
|
|
||||||
IOMUX_PAD_CTRL(SD3_DAT5__GPIO7_IO00, NO_PAD_CTRL), /* CD */
|
|
||||||
};
|
|
||||||
|
|
||||||
static iomux_v3_cfg_t const usdhc4_pads[] = {
|
|
||||||
IOMUX_PAD_CTRL(SD4_CLK__SD4_CLK, USDHC_PAD_CTRL),
|
|
||||||
IOMUX_PAD_CTRL(SD4_CMD__SD4_CMD, USDHC_PAD_CTRL),
|
|
||||||
IOMUX_PAD_CTRL(SD4_DAT0__SD4_DATA0, USDHC_PAD_CTRL),
|
|
||||||
IOMUX_PAD_CTRL(SD4_DAT1__SD4_DATA1, USDHC_PAD_CTRL),
|
|
||||||
IOMUX_PAD_CTRL(SD4_DAT2__SD4_DATA2, USDHC_PAD_CTRL),
|
|
||||||
IOMUX_PAD_CTRL(SD4_DAT3__SD4_DATA3, USDHC_PAD_CTRL),
|
|
||||||
IOMUX_PAD_CTRL(NANDF_D6__GPIO2_IO06, NO_PAD_CTRL), /* CD */
|
|
||||||
};
|
|
||||||
|
|
||||||
static iomux_v3_cfg_t const enet_pads1[] = {
|
static iomux_v3_cfg_t const enet_pads1[] = {
|
||||||
IOMUX_PAD_CTRL(ENET_MDIO__ENET_MDIO, ENET_PAD_CTRL),
|
IOMUX_PAD_CTRL(ENET_MDIO__ENET_MDIO, ENET_PAD_CTRL),
|
||||||
IOMUX_PAD_CTRL(ENET_MDC__ENET_MDC, ENET_PAD_CTRL),
|
IOMUX_PAD_CTRL(ENET_MDC__ENET_MDC, ENET_PAD_CTRL),
|
||||||
@ -305,57 +284,6 @@ int board_ehci_power(int port, int on)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_FSL_ESDHC_IMX
|
|
||||||
static struct fsl_esdhc_cfg usdhc_cfg[2] = {
|
|
||||||
{USDHC3_BASE_ADDR},
|
|
||||||
{USDHC4_BASE_ADDR},
|
|
||||||
};
|
|
||||||
|
|
||||||
int board_mmc_getcd(struct mmc *mmc)
|
|
||||||
{
|
|
||||||
struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
|
|
||||||
int gp_cd = (cfg->esdhc_base == USDHC3_BASE_ADDR) ? IMX_GPIO_NR(7, 0) :
|
|
||||||
IMX_GPIO_NR(2, 6);
|
|
||||||
|
|
||||||
gpio_direction_input(gp_cd);
|
|
||||||
return !gpio_get_value(gp_cd);
|
|
||||||
}
|
|
||||||
|
|
||||||
int board_mmc_init(bd_t *bis)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
u32 index = 0;
|
|
||||||
|
|
||||||
usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
|
|
||||||
usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC4_CLK);
|
|
||||||
|
|
||||||
usdhc_cfg[0].max_bus_width = 4;
|
|
||||||
usdhc_cfg[1].max_bus_width = 4;
|
|
||||||
|
|
||||||
for (index = 0; index < CONFIG_SYS_FSL_USDHC_NUM; ++index) {
|
|
||||||
switch (index) {
|
|
||||||
case 0:
|
|
||||||
SETUP_IOMUX_PADS(usdhc3_pads);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
SETUP_IOMUX_PADS(usdhc4_pads);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
printf("Warning: you configured more USDHC controllers"
|
|
||||||
"(%d) then supported by the board (%d)\n",
|
|
||||||
index + 1, CONFIG_SYS_FSL_USDHC_NUM);
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = fsl_esdhc_initialize(bis, &usdhc_cfg[index]);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_MXC_SPI
|
#ifdef CONFIG_MXC_SPI
|
||||||
int board_spi_cs_gpio(unsigned bus, unsigned cs)
|
int board_spi_cs_gpio(unsigned bus, unsigned cs)
|
||||||
{
|
{
|
||||||
|
@ -142,8 +142,6 @@ int board_init(void)
|
|||||||
/* Enable eim_slow clocks */
|
/* Enable eim_slow clocks */
|
||||||
setbits_le32(&mxc_ccm->CCGR6, 0x1 << MXC_CCM_CCGR6_EMI_SLOW_OFFSET);
|
setbits_le32(&mxc_ccm->CCGR6, 0x1 << MXC_CCM_CCGR6_EMI_SLOW_OFFSET);
|
||||||
|
|
||||||
setup_dhcom_mac_from_fuse();
|
|
||||||
|
|
||||||
setup_fec_clock();
|
setup_fec_clock();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -189,6 +187,8 @@ int board_late_init(void)
|
|||||||
u32 hw_code;
|
u32 hw_code;
|
||||||
char buf[16];
|
char buf[16];
|
||||||
|
|
||||||
|
setup_dhcom_mac_from_fuse();
|
||||||
|
|
||||||
hw_code = board_get_hwcode();
|
hw_code = board_get_hwcode();
|
||||||
|
|
||||||
switch (get_cpu_type()) {
|
switch (get_cpu_type()) {
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
#include <image.h>
|
#include <image.h>
|
||||||
#include <init.h>
|
#include <init.h>
|
||||||
#include <log.h>
|
#include <log.h>
|
||||||
#include <net.h>
|
|
||||||
#include <asm/arch/clock.h>
|
#include <asm/arch/clock.h>
|
||||||
#include <asm/arch/imx-regs.h>
|
#include <asm/arch/imx-regs.h>
|
||||||
#include <asm/arch/iomux.h>
|
#include <asm/arch/iomux.h>
|
||||||
@ -33,8 +32,6 @@
|
|||||||
#include <mmc.h>
|
#include <mmc.h>
|
||||||
#include <fsl_esdhc_imx.h>
|
#include <fsl_esdhc_imx.h>
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#include <miiphy.h>
|
|
||||||
#include <netdev.h>
|
|
||||||
#include <asm/arch/crm_regs.h>
|
#include <asm/arch/crm_regs.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch/sys_proto.h>
|
#include <asm/arch/sys_proto.h>
|
||||||
@ -52,16 +49,6 @@ DECLARE_GLOBAL_DATA_PTR;
|
|||||||
PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \
|
PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \
|
||||||
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||||
|
|
||||||
#define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
|
||||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
|
||||||
|
|
||||||
#define ENET_PAD_CTRL_PD (PAD_CTL_PUS_100K_DOWN | \
|
|
||||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
|
||||||
|
|
||||||
#define ENET_PAD_CTRL_CLK ((PAD_CTL_PUS_100K_UP & ~PAD_CTL_PKE) | \
|
|
||||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST)
|
|
||||||
|
|
||||||
#define ETH_PHY_RESET IMX_GPIO_NR(4, 15)
|
|
||||||
#define USB_H1_VBUS IMX_GPIO_NR(1, 0)
|
#define USB_H1_VBUS IMX_GPIO_NR(1, 0)
|
||||||
|
|
||||||
enum board_type {
|
enum board_type {
|
||||||
@ -167,180 +154,11 @@ static void setup_iomux_uart(void)
|
|||||||
SETUP_IOMUX_PADS(uart1_pads);
|
SETUP_IOMUX_PADS(uart1_pads);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct fsl_esdhc_cfg usdhc_cfg = {
|
|
||||||
.esdhc_base = USDHC2_BASE_ADDR,
|
|
||||||
.max_bus_width = 4,
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct fsl_esdhc_cfg emmc_cfg = {
|
|
||||||
.esdhc_base = USDHC3_BASE_ADDR,
|
|
||||||
.max_bus_width = 8,
|
|
||||||
};
|
|
||||||
|
|
||||||
int board_mmc_get_env_dev(int devno)
|
int board_mmc_get_env_dev(int devno)
|
||||||
{
|
{
|
||||||
return devno;
|
return devno;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define USDHC2_CD_GPIO IMX_GPIO_NR(1, 4)
|
|
||||||
|
|
||||||
int board_mmc_getcd(struct mmc *mmc)
|
|
||||||
{
|
|
||||||
struct fsl_esdhc_cfg *cfg = mmc->priv;
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
switch (cfg->esdhc_base) {
|
|
||||||
case USDHC2_BASE_ADDR:
|
|
||||||
ret = !gpio_get_value(USDHC2_CD_GPIO);
|
|
||||||
break;
|
|
||||||
case USDHC3_BASE_ADDR:
|
|
||||||
ret = (mmc_get_op_cond(mmc) < 0) ? 0 : 1; /* eMMC/uSDHC3 has no CD GPIO */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int mmc_init_spl(bd_t *bis)
|
|
||||||
{
|
|
||||||
struct src *psrc = (struct src *)SRC_BASE_ADDR;
|
|
||||||
unsigned reg = readl(&psrc->sbmr1) >> 11;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Upon reading BOOT_CFG register the following map is done:
|
|
||||||
* Bit 11 and 12 of BOOT_CFG register can determine the current
|
|
||||||
* mmc port
|
|
||||||
* 0x1 SD2
|
|
||||||
* 0x2 SD3
|
|
||||||
*/
|
|
||||||
switch (reg & 0x3) {
|
|
||||||
case 0x1:
|
|
||||||
SETUP_IOMUX_PADS(usdhc2_pads);
|
|
||||||
usdhc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
|
|
||||||
gd->arch.sdhc_clk = usdhc_cfg.sdhc_clk;
|
|
||||||
return fsl_esdhc_initialize(bis, &usdhc_cfg);
|
|
||||||
case 0x2:
|
|
||||||
SETUP_IOMUX_PADS(usdhc3_pads);
|
|
||||||
emmc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
|
|
||||||
gd->arch.sdhc_clk = emmc_cfg.sdhc_clk;
|
|
||||||
return fsl_esdhc_initialize(bis, &emmc_cfg);
|
|
||||||
}
|
|
||||||
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
int board_mmc_init(bd_t *bis)
|
|
||||||
{
|
|
||||||
if (IS_ENABLED(CONFIG_SPL_BUILD))
|
|
||||||
return mmc_init_spl(bis);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static iomux_v3_cfg_t const enet_pads[] = {
|
|
||||||
IOMUX_PADS(PAD_ENET_MDIO__ENET_MDIO | MUX_PAD_CTRL(ENET_PAD_CTRL)),
|
|
||||||
IOMUX_PADS(PAD_ENET_MDC__ENET_MDC | MUX_PAD_CTRL(ENET_PAD_CTRL)),
|
|
||||||
/* AR8035 reset */
|
|
||||||
IOMUX_PADS(PAD_KEY_ROW4__GPIO4_IO15 | MUX_PAD_CTRL(ENET_PAD_CTRL_PD)),
|
|
||||||
/* AR8035 interrupt */
|
|
||||||
IOMUX_PADS(PAD_DI0_PIN2__GPIO4_IO18 | MUX_PAD_CTRL(NO_PAD_CTRL)),
|
|
||||||
/* GPIO16 -> AR8035 25MHz */
|
|
||||||
IOMUX_PADS(PAD_GPIO_16__ENET_REF_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)),
|
|
||||||
IOMUX_PADS(PAD_RGMII_TXC__RGMII_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)),
|
|
||||||
IOMUX_PADS(PAD_RGMII_TD0__RGMII_TD0 | MUX_PAD_CTRL(ENET_PAD_CTRL)),
|
|
||||||
IOMUX_PADS(PAD_RGMII_TD1__RGMII_TD1 | MUX_PAD_CTRL(ENET_PAD_CTRL)),
|
|
||||||
IOMUX_PADS(PAD_RGMII_TD2__RGMII_TD2 | MUX_PAD_CTRL(ENET_PAD_CTRL)),
|
|
||||||
IOMUX_PADS(PAD_RGMII_TD3__RGMII_TD3 | MUX_PAD_CTRL(ENET_PAD_CTRL)),
|
|
||||||
IOMUX_PADS(PAD_RGMII_TX_CTL__RGMII_TX_CTL | MUX_PAD_CTRL(ENET_PAD_CTRL)),
|
|
||||||
/* AR8035 CLK_25M --> ENET_REF_CLK (V22) */
|
|
||||||
IOMUX_PADS(PAD_ENET_REF_CLK__ENET_TX_CLK | MUX_PAD_CTRL(ENET_PAD_CTRL_CLK)),
|
|
||||||
IOMUX_PADS(PAD_RGMII_RXC__RGMII_RXC | MUX_PAD_CTRL(ENET_PAD_CTRL)),
|
|
||||||
IOMUX_PADS(PAD_RGMII_RD0__RGMII_RD0 | MUX_PAD_CTRL(ENET_PAD_CTRL_PD)),
|
|
||||||
IOMUX_PADS(PAD_RGMII_RD1__RGMII_RD1 | MUX_PAD_CTRL(ENET_PAD_CTRL_PD)),
|
|
||||||
IOMUX_PADS(PAD_RGMII_RD2__RGMII_RD2 | MUX_PAD_CTRL(ENET_PAD_CTRL)),
|
|
||||||
IOMUX_PADS(PAD_RGMII_RD3__RGMII_RD3 | MUX_PAD_CTRL(ENET_PAD_CTRL)),
|
|
||||||
IOMUX_PADS(PAD_RGMII_RX_CTL__RGMII_RX_CTL | MUX_PAD_CTRL(ENET_PAD_CTRL_PD)),
|
|
||||||
IOMUX_PADS(PAD_ENET_RXD0__GPIO1_IO27 | MUX_PAD_CTRL(ENET_PAD_CTRL_PD)),
|
|
||||||
IOMUX_PADS(PAD_ENET_RXD1__GPIO1_IO26 | MUX_PAD_CTRL(ENET_PAD_CTRL_PD)),
|
|
||||||
};
|
|
||||||
|
|
||||||
static void setup_iomux_enet(void)
|
|
||||||
{
|
|
||||||
struct gpio_desc desc;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
SETUP_IOMUX_PADS(enet_pads);
|
|
||||||
|
|
||||||
ret = dm_gpio_lookup_name("GPIO4_15", &desc);
|
|
||||||
if (ret) {
|
|
||||||
printf("%s: phy reset lookup failed\n", __func__);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = dm_gpio_request(&desc, "phy-reset");
|
|
||||||
if (ret) {
|
|
||||||
printf("%s: phy reset request failed\n", __func__);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
gpio_direction_output(ETH_PHY_RESET, 0);
|
|
||||||
mdelay(10);
|
|
||||||
gpio_set_value(ETH_PHY_RESET, 1);
|
|
||||||
udelay(100);
|
|
||||||
|
|
||||||
gpio_free_list_nodev(&desc, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
int board_phy_config(struct phy_device *phydev)
|
|
||||||
{
|
|
||||||
if (phydev->drv->config)
|
|
||||||
phydev->drv->config(phydev);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* On Cuboxi Ethernet PHY can be located at addresses 0x0 or 0x4 */
|
|
||||||
#define ETH_PHY_MASK ((1 << 0x0) | (1 << 0x4))
|
|
||||||
|
|
||||||
int board_eth_init(bd_t *bis)
|
|
||||||
{
|
|
||||||
struct iomuxc *const iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
|
|
||||||
struct mii_dev *bus;
|
|
||||||
struct phy_device *phydev;
|
|
||||||
|
|
||||||
int ret = enable_fec_anatop_clock(0, ENET_25MHZ);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
/* set gpr1[ENET_CLK_SEL] */
|
|
||||||
setbits_le32(&iomuxc_regs->gpr[1], IOMUXC_GPR1_ENET_CLK_SEL_MASK);
|
|
||||||
|
|
||||||
setup_iomux_enet();
|
|
||||||
|
|
||||||
bus = fec_get_miibus(IMX_FEC_BASE, -1);
|
|
||||||
if (!bus)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
phydev = phy_find_by_mask(bus, ETH_PHY_MASK, PHY_INTERFACE_MODE_RGMII);
|
|
||||||
if (!phydev) {
|
|
||||||
ret = -EINVAL;
|
|
||||||
goto free_bus;
|
|
||||||
}
|
|
||||||
|
|
||||||
debug("using phy at address %d\n", phydev->addr);
|
|
||||||
ret = fec_probe(bis, -1, IMX_FEC_BASE, bus, phydev);
|
|
||||||
if (ret)
|
|
||||||
goto free_phydev;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
free_phydev:
|
|
||||||
free(phydev);
|
|
||||||
free_bus:
|
|
||||||
free(bus);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_VIDEO_IPUV3
|
#ifdef CONFIG_VIDEO_IPUV3
|
||||||
static void do_enable_hdmi(struct display_info_t const *dev)
|
static void do_enable_hdmi(struct display_info_t const *dev)
|
||||||
{
|
{
|
||||||
@ -433,6 +251,21 @@ static int setup_display(void)
|
|||||||
}
|
}
|
||||||
#endif /* CONFIG_VIDEO_IPUV3 */
|
#endif /* CONFIG_VIDEO_IPUV3 */
|
||||||
|
|
||||||
|
static int setup_fec(void)
|
||||||
|
{
|
||||||
|
struct iomuxc *const iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = enable_fec_anatop_clock(0, ENET_25MHZ);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
/* set gpr1[ENET_CLK_SEL] */
|
||||||
|
setbits_le32(&iomuxc_regs->gpr[1], IOMUXC_GPR1_ENET_CLK_SEL_MASK);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int board_early_init_f(void)
|
int board_early_init_f(void)
|
||||||
{
|
{
|
||||||
setup_iomux_uart();
|
setup_iomux_uart();
|
||||||
@ -440,6 +273,8 @@ int board_early_init_f(void)
|
|||||||
#ifdef CONFIG_CMD_SATA
|
#ifdef CONFIG_CMD_SATA
|
||||||
setup_sata();
|
setup_sata();
|
||||||
#endif
|
#endif
|
||||||
|
setup_fec();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -629,6 +464,54 @@ int board_fit_config_name_match(const char *name)
|
|||||||
return strcmp(name, tmp_name);
|
return strcmp(name, tmp_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void board_boot_order(u32 *spl_boot_list)
|
||||||
|
{
|
||||||
|
struct src *psrc = (struct src *)SRC_BASE_ADDR;
|
||||||
|
unsigned int reg = readl(&psrc->sbmr1) >> 11;
|
||||||
|
u32 boot_mode = imx6_src_get_boot_mode() & IMX6_BMODE_MASK;
|
||||||
|
unsigned int bmode = readl(&src_base->sbmr2);
|
||||||
|
|
||||||
|
/* If bmode is serial or USB phy is active, return serial */
|
||||||
|
if (((bmode >> 24) & 0x03) == 0x01 || is_usbotg_phy_active()) {
|
||||||
|
spl_boot_list[0] = BOOT_DEVICE_BOARD;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (boot_mode >> IMX6_BMODE_SHIFT) {
|
||||||
|
case IMX6_BMODE_SD:
|
||||||
|
case IMX6_BMODE_ESD:
|
||||||
|
case IMX6_BMODE_MMC:
|
||||||
|
case IMX6_BMODE_EMMC:
|
||||||
|
/*
|
||||||
|
* Upon reading BOOT_CFG register the following map is done:
|
||||||
|
* Bit 11 and 12 of BOOT_CFG register can determine the current
|
||||||
|
* mmc port
|
||||||
|
* 0x1 SD2
|
||||||
|
* 0x2 SD3
|
||||||
|
*/
|
||||||
|
|
||||||
|
reg &= 0x3; /* Only care about bottom 2 bits */
|
||||||
|
switch (reg) {
|
||||||
|
case 1:
|
||||||
|
SETUP_IOMUX_PADS(usdhc2_pads);
|
||||||
|
spl_boot_list[0] = BOOT_DEVICE_MMC1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
SETUP_IOMUX_PADS(usdhc3_pads);
|
||||||
|
spl_boot_list[0] = BOOT_DEVICE_MMC2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
/* By default use USB downloader */
|
||||||
|
spl_boot_list[0] = BOOT_DEVICE_BOARD;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* As a last resort, use serial downloader */
|
||||||
|
spl_boot_list[1] = BOOT_DEVICE_BOARD;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SPL_BUILD
|
#ifdef CONFIG_SPL_BUILD
|
||||||
#include <asm/arch/mx6-ddr.h>
|
#include <asm/arch/mx6-ddr.h>
|
||||||
static const struct mx6dq_iomux_ddr_regs mx6q_ddr_ioregs = {
|
static const struct mx6dq_iomux_ddr_regs mx6q_ddr_ioregs = {
|
||||||
|
@ -49,7 +49,7 @@ static unsigned long ps7_clock_init_data_3_0[] = {
|
|||||||
EMIT_MASKWRITE(0XF8000158, 0x00003F33U, 0x00000601U),
|
EMIT_MASKWRITE(0XF8000158, 0x00003F33U, 0x00000601U),
|
||||||
EMIT_MASKWRITE(0XF8000168, 0x00003F31U, 0x00000601U),
|
EMIT_MASKWRITE(0XF8000168, 0x00003F31U, 0x00000601U),
|
||||||
EMIT_MASKWRITE(0XF8000170, 0x03F03F30U, 0x00100C00U),
|
EMIT_MASKWRITE(0XF8000170, 0x03F03F30U, 0x00100C00U),
|
||||||
EMIT_MASKWRITE(0XF8000180, 0x03F03F30U, 0x00100C00U),
|
EMIT_MASKWRITE(0XF8000180, 0x03F03F30U, 0x00100800U),
|
||||||
EMIT_MASKWRITE(0XF8000190, 0x03F03F30U, 0x00100600U),
|
EMIT_MASKWRITE(0XF8000190, 0x03F03F30U, 0x00100600U),
|
||||||
EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U, 0x00101800U),
|
EMIT_MASKWRITE(0XF80001A0, 0x03F03F30U, 0x00101800U),
|
||||||
EMIT_MASKWRITE(0XF80001C4, 0x00000001U, 0x00000001U),
|
EMIT_MASKWRITE(0XF80001C4, 0x00000001U, 0x00000001U),
|
||||||
|
@ -49,7 +49,7 @@ static unsigned long ps7_clock_init_data_3_0[] = {
|
|||||||
EMIT_MASKWRITE(0xF8000158, 0x00003F33U, 0x00000601U),
|
EMIT_MASKWRITE(0xF8000158, 0x00003F33U, 0x00000601U),
|
||||||
EMIT_MASKWRITE(0xF8000168, 0x00003F31U, 0x00000601U),
|
EMIT_MASKWRITE(0xF8000168, 0x00003F31U, 0x00000601U),
|
||||||
EMIT_MASKWRITE(0xF8000170, 0x03F03F30U, 0x00100C00U),
|
EMIT_MASKWRITE(0xF8000170, 0x03F03F30U, 0x00100C00U),
|
||||||
EMIT_MASKWRITE(0xF8000180, 0x03F03F30U, 0x00100C00U),
|
EMIT_MASKWRITE(0xF8000180, 0x03F03F30U, 0x00100800U),
|
||||||
EMIT_MASKWRITE(0xF8000190, 0x03F03F30U, 0x00100600U),
|
EMIT_MASKWRITE(0xF8000190, 0x03F03F30U, 0x00100600U),
|
||||||
EMIT_MASKWRITE(0xF80001A0, 0x03F03F30U, 0x00101800U),
|
EMIT_MASKWRITE(0xF80001A0, 0x03F03F30U, 0x00101800U),
|
||||||
EMIT_MASKWRITE(0xF80001C4, 0x00000001U, 0x00000001U),
|
EMIT_MASKWRITE(0xF80001C4, 0x00000001U, 0x00000001U),
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
COLIBRI_T20
|
COLIBRI_T20
|
||||||
M: Lucas Stach <dev@lynxeye.de>
|
M: Igor Opaniuk <igor.opaniuk@toradex.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: board/toradex/colibri_t20/
|
F: board/toradex/colibri_t20/
|
||||||
F: include/configs/colibri_t20.h
|
F: include/configs/colibri_t20.h
|
||||||
|
@ -37,3 +37,13 @@ as the mx6 processor)
|
|||||||
- Connect the serial cable to the host PC
|
- Connect the serial cable to the host PC
|
||||||
|
|
||||||
- Power up the board and U-Boot messages will appear in the serial console.
|
- Power up the board and U-Boot messages will appear in the serial console.
|
||||||
|
|
||||||
|
Debug UART
|
||||||
|
----------
|
||||||
|
|
||||||
|
The following settings provide a debug UART for the Wandboard:
|
||||||
|
|
||||||
|
CONFIG_DEBUG_UART=y
|
||||||
|
CONFIG_DEBUG_UART_MXC=y
|
||||||
|
CONFIG_DEBUG_UART_BASE=0x02020000
|
||||||
|
CONFIG_DEBUG_UART_CLOCK=80000000
|
||||||
|
@ -399,7 +399,8 @@ static int zynq_verify_image(u32 src_ptr)
|
|||||||
status = zynq_decrypt_load(part_load_addr,
|
status = zynq_decrypt_load(part_load_addr,
|
||||||
part_img_len,
|
part_img_len,
|
||||||
part_dst_addr,
|
part_dst_addr,
|
||||||
part_data_len);
|
part_data_len,
|
||||||
|
BIT_NONE);
|
||||||
if (status != 0) {
|
if (status != 0) {
|
||||||
printf("DECRYPTION_FAIL\n");
|
printf("DECRYPTION_FAIL\n");
|
||||||
return -1;
|
return -1;
|
||||||
@ -438,22 +439,42 @@ static int zynq_decrypt_image(struct cmd_tbl *cmdtp, int flag, int argc,
|
|||||||
char *endp;
|
char *endp;
|
||||||
u32 srcaddr, srclen, dstaddr, dstlen;
|
u32 srcaddr, srclen, dstaddr, dstlen;
|
||||||
int status;
|
int status;
|
||||||
|
u8 imgtype = BIT_NONE;
|
||||||
|
|
||||||
if (argc < 5 && argc > cmdtp->maxargs)
|
if (argc < 5 && argc > cmdtp->maxargs)
|
||||||
return CMD_RET_USAGE;
|
return CMD_RET_USAGE;
|
||||||
|
|
||||||
srcaddr = simple_strtoul(argv[2], &endp, 16);
|
if (argc == 5) {
|
||||||
if (*argv[2] == 0 || *endp != 0)
|
if (!strcmp("load", argv[2]))
|
||||||
return CMD_RET_USAGE;
|
imgtype = BIT_FULL;
|
||||||
srclen = simple_strtoul(argv[3], &endp, 16);
|
else if (!strcmp("loadp", argv[2]))
|
||||||
if (*argv[3] == 0 || *endp != 0)
|
imgtype = BIT_PARTIAL;
|
||||||
return CMD_RET_USAGE;
|
else
|
||||||
dstaddr = simple_strtoul(argv[4], &endp, 16);
|
return CMD_RET_USAGE;
|
||||||
if (*argv[4] == 0 || *endp != 0)
|
|
||||||
return CMD_RET_USAGE;
|
srcaddr = simple_strtoul(argv[3], &endp, 16);
|
||||||
dstlen = simple_strtoul(argv[5], &endp, 16);
|
if (*argv[3] == 0 || *endp != 0)
|
||||||
if (*argv[5] == 0 || *endp != 0)
|
return CMD_RET_USAGE;
|
||||||
return CMD_RET_USAGE;
|
srclen = simple_strtoul(argv[4], &endp, 16);
|
||||||
|
if (*argv[4] == 0 || *endp != 0)
|
||||||
|
return CMD_RET_USAGE;
|
||||||
|
|
||||||
|
dstaddr = 0xFFFFFFFF;
|
||||||
|
dstlen = srclen;
|
||||||
|
} else {
|
||||||
|
srcaddr = simple_strtoul(argv[2], &endp, 16);
|
||||||
|
if (*argv[2] == 0 || *endp != 0)
|
||||||
|
return CMD_RET_USAGE;
|
||||||
|
srclen = simple_strtoul(argv[3], &endp, 16);
|
||||||
|
if (*argv[3] == 0 || *endp != 0)
|
||||||
|
return CMD_RET_USAGE;
|
||||||
|
dstaddr = simple_strtoul(argv[4], &endp, 16);
|
||||||
|
if (*argv[4] == 0 || *endp != 0)
|
||||||
|
return CMD_RET_USAGE;
|
||||||
|
dstlen = simple_strtoul(argv[5], &endp, 16);
|
||||||
|
if (*argv[5] == 0 || *endp != 0)
|
||||||
|
return CMD_RET_USAGE;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Roundup source and destination lengths to
|
* Roundup source and destination lengths to
|
||||||
@ -464,7 +485,8 @@ static int zynq_decrypt_image(struct cmd_tbl *cmdtp, int flag, int argc,
|
|||||||
if (dstlen % 4)
|
if (dstlen % 4)
|
||||||
dstlen = roundup(dstlen, 4);
|
dstlen = roundup(dstlen, 4);
|
||||||
|
|
||||||
status = zynq_decrypt_load(srcaddr, srclen >> 2, dstaddr, dstlen >> 2);
|
status = zynq_decrypt_load(srcaddr, srclen >> 2, dstaddr,
|
||||||
|
dstlen >> 2, imgtype);
|
||||||
if (status != 0)
|
if (status != 0)
|
||||||
return CMD_RET_FAILURE;
|
return CMD_RET_FAILURE;
|
||||||
|
|
||||||
@ -517,6 +539,10 @@ static char zynq_help_text[] =
|
|||||||
" - Decrypts the encrypted image present in source\n"
|
" - Decrypts the encrypted image present in source\n"
|
||||||
" address and places the decrypted image at\n"
|
" address and places the decrypted image at\n"
|
||||||
" destination address\n"
|
" destination address\n"
|
||||||
|
"aes load <srcaddr> <srclen>\n"
|
||||||
|
"aes loadp <srcaddr> <srclen>\n"
|
||||||
|
" if operation type is load or loadp, it loads the encrypted\n"
|
||||||
|
" full or partial bitstream on to PL respectively.\n"
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
#endif
|
#endif
|
||||||
|
@ -130,8 +130,27 @@ static int do_zynqmp_tcm_init(struct cmd_tbl *cmdtp, int flag, int argc,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static int do_zynqmp_pmufw(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||||
|
char * const argv[])
|
||||||
|
{
|
||||||
|
u32 addr, size;
|
||||||
|
|
||||||
|
if (argc != cmdtp->maxargs)
|
||||||
|
return CMD_RET_USAGE;
|
||||||
|
|
||||||
|
addr = simple_strtoul(argv[2], NULL, 16);
|
||||||
|
size = simple_strtoul(argv[3], NULL, 16);
|
||||||
|
flush_dcache_range((ulong)addr, (ulong)(addr + size));
|
||||||
|
|
||||||
|
zynqmp_pmufw_load_config_object((const void *)(uintptr_t)addr,
|
||||||
|
(size_t)size);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static struct cmd_tbl cmd_zynqmp_sub[] = {
|
static struct cmd_tbl cmd_zynqmp_sub[] = {
|
||||||
U_BOOT_CMD_MKENT(secure, 5, 0, do_zynqmp_verify_secure, "", ""),
|
U_BOOT_CMD_MKENT(secure, 5, 0, do_zynqmp_verify_secure, "", ""),
|
||||||
|
U_BOOT_CMD_MKENT(pmufw, 4, 0, do_zynqmp_pmufw, "", ""),
|
||||||
U_BOOT_CMD_MKENT(mmio_read, 3, 0, do_zynqmp_mmio_read, "", ""),
|
U_BOOT_CMD_MKENT(mmio_read, 3, 0, do_zynqmp_mmio_read, "", ""),
|
||||||
U_BOOT_CMD_MKENT(mmio_write, 5, 0, do_zynqmp_mmio_write, "", ""),
|
U_BOOT_CMD_MKENT(mmio_write, 5, 0, do_zynqmp_mmio_write, "", ""),
|
||||||
#ifdef CONFIG_DEFINE_TCM_OCM_MMAP
|
#ifdef CONFIG_DEFINE_TCM_OCM_MMAP
|
||||||
@ -184,6 +203,7 @@ static char zynqmp_help_text[] =
|
|||||||
" to be initialized. Supported modes will be\n"
|
" to be initialized. Supported modes will be\n"
|
||||||
" lock(0)/split(1)\n"
|
" lock(0)/split(1)\n"
|
||||||
#endif
|
#endif
|
||||||
|
"zynqmp pmufw address size - load PMU FW configuration object\n"
|
||||||
;
|
;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -354,11 +354,14 @@ static int multi_boot(void)
|
|||||||
|
|
||||||
multiboot = readl(&csu_base->multi_boot);
|
multiboot = readl(&csu_base->multi_boot);
|
||||||
|
|
||||||
printf("Multiboot:\t%x\n", multiboot);
|
printf("Multiboot:\t%d\n", multiboot);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define PS_SYSMON_ANALOG_BUS_VAL 0x3210
|
||||||
|
#define PS_SYSMON_ANALOG_BUS_REG 0xFFA50914
|
||||||
|
|
||||||
int board_init(void)
|
int board_init(void)
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_ZYNQMP_FIRMWARE)
|
#if defined(CONFIG_ZYNQMP_FIRMWARE)
|
||||||
@ -378,6 +381,9 @@ int board_init(void)
|
|||||||
|
|
||||||
printf("EL Level:\tEL%d\n", current_el());
|
printf("EL Level:\tEL%d\n", current_el());
|
||||||
|
|
||||||
|
/* Bug in ROM sets wrong value in this register */
|
||||||
|
writel(PS_SYSMON_ANALOG_BUS_VAL, PS_SYSMON_ANALOG_BUS_REG);
|
||||||
|
|
||||||
#if defined(CONFIG_FPGA) && defined(CONFIG_FPGA_ZYNQMPPL) && \
|
#if defined(CONFIG_FPGA) && defined(CONFIG_FPGA_ZYNQMPPL) && \
|
||||||
!defined(CONFIG_SPL_BUILD) || (defined(CONFIG_SPL_FPGA_SUPPORT) && \
|
!defined(CONFIG_SPL_BUILD) || (defined(CONFIG_SPL_FPGA_SUPPORT) && \
|
||||||
defined(CONFIG_SPL_BUILD))
|
defined(CONFIG_SPL_BUILD))
|
||||||
|
@ -189,16 +189,19 @@ static void efi_carve_out_dt_rsv(void *fdt)
|
|||||||
if (nodeoffset >= 0) {
|
if (nodeoffset >= 0) {
|
||||||
subnode = fdt_first_subnode(fdt, nodeoffset);
|
subnode = fdt_first_subnode(fdt, nodeoffset);
|
||||||
while (subnode >= 0) {
|
while (subnode >= 0) {
|
||||||
|
fdt_addr_t fdt_addr, fdt_size;
|
||||||
|
|
||||||
/* check if this subnode has a reg property */
|
/* check if this subnode has a reg property */
|
||||||
addr = fdtdec_get_addr_size(fdt, subnode, "reg",
|
fdt_addr = fdtdec_get_addr_size_auto_parent(
|
||||||
(fdt_size_t *)&size);
|
fdt, nodeoffset, subnode,
|
||||||
|
"reg", 0, &fdt_size, false);
|
||||||
/*
|
/*
|
||||||
* The /reserved-memory node may have children with
|
* The /reserved-memory node may have children with
|
||||||
* a size instead of a reg property.
|
* a size instead of a reg property.
|
||||||
*/
|
*/
|
||||||
if (addr != FDT_ADDR_T_NONE &&
|
if (addr != FDT_ADDR_T_NONE &&
|
||||||
fdtdec_get_is_enabled(fdt, subnode))
|
fdtdec_get_is_enabled(fdt, subnode))
|
||||||
efi_reserve_memory(addr, size);
|
efi_reserve_memory(fdt_addr, fdt_size);
|
||||||
subnode = fdt_next_subnode(fdt, subnode);
|
subnode = fdt_next_subnode(fdt, subnode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -537,7 +537,7 @@ static int reserve_fdt(void)
|
|||||||
* will be relocated with other data.
|
* will be relocated with other data.
|
||||||
*/
|
*/
|
||||||
if (gd->fdt_blob) {
|
if (gd->fdt_blob) {
|
||||||
gd->fdt_size = ALIGN(fdt_totalsize(gd->fdt_blob) + 0x1000, 32);
|
gd->fdt_size = ALIGN(fdt_totalsize(gd->fdt_blob), 32);
|
||||||
|
|
||||||
gd->start_addr_sp = reserve_stack_aligned(gd->fdt_size);
|
gd->start_addr_sp = reserve_stack_aligned(gd->fdt_size);
|
||||||
gd->new_fdt = map_sysmem(gd->start_addr_sp, gd->fdt_size);
|
gd->new_fdt = map_sysmem(gd->start_addr_sp, gd->fdt_size);
|
||||||
|
@ -9,6 +9,7 @@ CONFIG_TARGET_APALIS_IMX8=y
|
|||||||
CONFIG_NR_DRAM_BANKS=3
|
CONFIG_NR_DRAM_BANKS=3
|
||||||
CONFIG_DISTRO_DEFAULTS=y
|
CONFIG_DISTRO_DEFAULTS=y
|
||||||
CONFIG_FIT=y
|
CONFIG_FIT=y
|
||||||
|
CONFIG_OF_SYSTEM_SETUP=y
|
||||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/apalis-imx8/apalis-imx8qm-imximage.cfg"
|
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/apalis-imx8/apalis-imx8qm-imximage.cfg"
|
||||||
CONFIG_LOG=y
|
CONFIG_LOG=y
|
||||||
CONFIG_VERSION_VARIABLE=y
|
CONFIG_VERSION_VARIABLE=y
|
||||||
@ -61,4 +62,5 @@ CONFIG_DM_REGULATOR_GPIO=y
|
|||||||
CONFIG_DM_SERIAL=y
|
CONFIG_DM_SERIAL=y
|
||||||
CONFIG_FSL_LPUART=y
|
CONFIG_FSL_LPUART=y
|
||||||
CONFIG_DM_THERMAL=y
|
CONFIG_DM_THERMAL=y
|
||||||
|
CONFIG_IMX_SCU_THERMAL=y
|
||||||
# CONFIG_EFI_LOADER is not set
|
# CONFIG_EFI_LOADER is not set
|
||||||
|
@ -11,7 +11,7 @@ CONFIG_SPL_TEXT_BASE=0x80108000
|
|||||||
CONFIG_FIT=y
|
CONFIG_FIT=y
|
||||||
CONFIG_OF_SYSTEM_SETUP=y
|
CONFIG_OF_SYSTEM_SETUP=y
|
||||||
CONFIG_BOOTDELAY=1
|
CONFIG_BOOTDELAY=1
|
||||||
CONFIG_BOOTCOMMAND="run emmcboot; setenv fdtfile ${soc}-${fdt-module}-${fdt_board}.dtb && run distro_bootcmd"
|
CONFIG_BOOTCOMMAND="setenv fdtfile ${soc}-${fdt_module}-${fdt_board}.dtb && run distro_bootcmd"
|
||||||
CONFIG_CONSOLE_MUX=y
|
CONFIG_CONSOLE_MUX=y
|
||||||
CONFIG_SYS_STDIO_DEREGISTER=y
|
CONFIG_SYS_STDIO_DEREGISTER=y
|
||||||
CONFIG_VERSION_VARIABLE=y
|
CONFIG_VERSION_VARIABLE=y
|
||||||
|
@ -53,6 +53,7 @@ CONFIG_CMD_USB_SDP=y
|
|||||||
CONFIG_CMD_USB_MASS_STORAGE=y
|
CONFIG_CMD_USB_MASS_STORAGE=y
|
||||||
# CONFIG_CMD_NFS is not set
|
# CONFIG_CMD_NFS is not set
|
||||||
CONFIG_CMD_BMP=y
|
CONFIG_CMD_BMP=y
|
||||||
|
CONFIG_CMD_BOOTCOUNT=y
|
||||||
CONFIG_CMD_CACHE=y
|
CONFIG_CMD_CACHE=y
|
||||||
CONFIG_CMD_TIME=y
|
CONFIG_CMD_TIME=y
|
||||||
CONFIG_CMD_PMIC=y
|
CONFIG_CMD_PMIC=y
|
||||||
@ -65,6 +66,8 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
|||||||
CONFIG_IP_DEFRAG=y
|
CONFIG_IP_DEFRAG=y
|
||||||
CONFIG_TFTP_BLOCKSIZE=4096
|
CONFIG_TFTP_BLOCKSIZE=4096
|
||||||
CONFIG_DWC_AHSATA=y
|
CONFIG_DWC_AHSATA=y
|
||||||
|
CONFIG_BOOTCOUNT_LIMIT=y
|
||||||
|
CONFIG_BOOTCOUNT_ENV=y
|
||||||
CONFIG_DM_I2C=y
|
CONFIG_DM_I2C=y
|
||||||
CONFIG_DM_MMC=y
|
CONFIG_DM_MMC=y
|
||||||
CONFIG_SUPPORT_EMMC_BOOT=y
|
CONFIG_SUPPORT_EMMC_BOOT=y
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_MX7=y
|
CONFIG_ARCH_MX7=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x87800000
|
|
||||||
CONFIG_SPL_GPIO_SUPPORT=y
|
CONFIG_SPL_GPIO_SUPPORT=y
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||||
@ -17,7 +16,6 @@ CONFIG_SPL_SPI_SUPPORT=y
|
|||||||
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
|
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
|
||||||
CONFIG_IMX_RDC=y
|
CONFIG_IMX_RDC=y
|
||||||
CONFIG_IMX_BOOTAUX=y
|
CONFIG_IMX_BOOTAUX=y
|
||||||
CONFIG_SPL_TEXT_BASE=0x00911000
|
|
||||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
|
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
|
||||||
CONFIG_SPI_BOOT=y
|
CONFIG_SPI_BOOT=y
|
||||||
CONFIG_BOOTDELAY=3
|
CONFIG_BOOTDELAY=3
|
||||||
|
@ -40,6 +40,7 @@ CONFIG_CMD_USB=y
|
|||||||
CONFIG_CMD_USB_SDP=y
|
CONFIG_CMD_USB_SDP=y
|
||||||
CONFIG_CMD_USB_MASS_STORAGE=y
|
CONFIG_CMD_USB_MASS_STORAGE=y
|
||||||
CONFIG_CMD_BMP=y
|
CONFIG_CMD_BMP=y
|
||||||
|
CONFIG_CMD_BOOTCOUNT=y
|
||||||
CONFIG_CMD_CACHE=y
|
CONFIG_CMD_CACHE=y
|
||||||
CONFIG_CMD_REGULATOR=y
|
CONFIG_CMD_REGULATOR=y
|
||||||
CONFIG_CMD_MTDPARTS=y
|
CONFIG_CMD_MTDPARTS=y
|
||||||
@ -54,6 +55,8 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
|||||||
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||||
CONFIG_IP_DEFRAG=y
|
CONFIG_IP_DEFRAG=y
|
||||||
CONFIG_TFTP_BLOCKSIZE=16352
|
CONFIG_TFTP_BLOCKSIZE=16352
|
||||||
|
CONFIG_BOOTCOUNT_LIMIT=y
|
||||||
|
CONFIG_BOOTCOUNT_ENV=y
|
||||||
CONFIG_DFU_NAND=y
|
CONFIG_DFU_NAND=y
|
||||||
CONFIG_DM_I2C=y
|
CONFIG_DM_I2C=y
|
||||||
CONFIG_SYS_I2C_MXC=y
|
CONFIG_SYS_I2C_MXC=y
|
||||||
|
@ -59,4 +59,5 @@ CONFIG_DM_REGULATOR_GPIO=y
|
|||||||
CONFIG_DM_SERIAL=y
|
CONFIG_DM_SERIAL=y
|
||||||
CONFIG_FSL_LPUART=y
|
CONFIG_FSL_LPUART=y
|
||||||
CONFIG_DM_THERMAL=y
|
CONFIG_DM_THERMAL=y
|
||||||
|
CONFIG_IMX_SCU_THERMAL=y
|
||||||
# CONFIG_EFI_LOADER is not set
|
# CONFIG_EFI_LOADER is not set
|
||||||
|
@ -52,6 +52,7 @@ CONFIG_CMD_USB_SDP=y
|
|||||||
CONFIG_CMD_USB_MASS_STORAGE=y
|
CONFIG_CMD_USB_MASS_STORAGE=y
|
||||||
# CONFIG_CMD_NFS is not set
|
# CONFIG_CMD_NFS is not set
|
||||||
CONFIG_CMD_BMP=y
|
CONFIG_CMD_BMP=y
|
||||||
|
CONFIG_CMD_BOOTCOUNT=y
|
||||||
CONFIG_CMD_CACHE=y
|
CONFIG_CMD_CACHE=y
|
||||||
CONFIG_CMD_TIME=y
|
CONFIG_CMD_TIME=y
|
||||||
CONFIG_CMD_UUID=y
|
CONFIG_CMD_UUID=y
|
||||||
@ -64,6 +65,8 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
|||||||
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||||
CONFIG_IP_DEFRAG=y
|
CONFIG_IP_DEFRAG=y
|
||||||
CONFIG_TFTP_BLOCKSIZE=16352
|
CONFIG_TFTP_BLOCKSIZE=16352
|
||||||
|
CONFIG_BOOTCOUNT_LIMIT=y
|
||||||
|
CONFIG_BOOTCOUNT_ENV=y
|
||||||
CONFIG_DM_I2C=y
|
CONFIG_DM_I2C=y
|
||||||
CONFIG_DM_MMC=y
|
CONFIG_DM_MMC=y
|
||||||
CONFIG_SUPPORT_EMMC_BOOT=y
|
CONFIG_SUPPORT_EMMC_BOOT=y
|
||||||
|
@ -40,6 +40,7 @@ CONFIG_CMD_USB=y
|
|||||||
CONFIG_CMD_USB_MASS_STORAGE=y
|
CONFIG_CMD_USB_MASS_STORAGE=y
|
||||||
# CONFIG_BOOTP_PXE is not set
|
# CONFIG_BOOTP_PXE is not set
|
||||||
CONFIG_CMD_BMP=y
|
CONFIG_CMD_BMP=y
|
||||||
|
CONFIG_CMD_BOOTCOUNT=y
|
||||||
CONFIG_CMD_CACHE=y
|
CONFIG_CMD_CACHE=y
|
||||||
# CONFIG_CMD_HASH is not set
|
# CONFIG_CMD_HASH is not set
|
||||||
CONFIG_CMD_MTDPARTS=y
|
CONFIG_CMD_MTDPARTS=y
|
||||||
@ -54,6 +55,8 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
|||||||
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||||
CONFIG_IP_DEFRAG=y
|
CONFIG_IP_DEFRAG=y
|
||||||
CONFIG_TFTP_BLOCKSIZE=16352
|
CONFIG_TFTP_BLOCKSIZE=16352
|
||||||
|
CONFIG_BOOTCOUNT_LIMIT=y
|
||||||
|
CONFIG_BOOTCOUNT_ENV=y
|
||||||
CONFIG_FSL_CAAM=y
|
CONFIG_FSL_CAAM=y
|
||||||
CONFIG_DFU_NAND=y
|
CONFIG_DFU_NAND=y
|
||||||
CONFIG_DM_I2C=y
|
CONFIG_DM_I2C=y
|
||||||
|
@ -38,6 +38,7 @@ CONFIG_CMD_MMC=y
|
|||||||
CONFIG_CMD_USB=y
|
CONFIG_CMD_USB=y
|
||||||
CONFIG_CMD_USB_MASS_STORAGE=y
|
CONFIG_CMD_USB_MASS_STORAGE=y
|
||||||
CONFIG_CMD_BMP=y
|
CONFIG_CMD_BMP=y
|
||||||
|
CONFIG_CMD_BOOTCOUNT=y
|
||||||
CONFIG_CMD_CACHE=y
|
CONFIG_CMD_CACHE=y
|
||||||
# CONFIG_CMD_HASH is not set
|
# CONFIG_CMD_HASH is not set
|
||||||
# CONFIG_ISO_PARTITION is not set
|
# CONFIG_ISO_PARTITION is not set
|
||||||
@ -48,6 +49,8 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
|||||||
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||||
CONFIG_IP_DEFRAG=y
|
CONFIG_IP_DEFRAG=y
|
||||||
CONFIG_TFTP_BLOCKSIZE=16352
|
CONFIG_TFTP_BLOCKSIZE=16352
|
||||||
|
CONFIG_BOOTCOUNT_LIMIT=y
|
||||||
|
CONFIG_BOOTCOUNT_ENV=y
|
||||||
CONFIG_FSL_CAAM=y
|
CONFIG_FSL_CAAM=y
|
||||||
CONFIG_USB_FUNCTION_FASTBOOT=y
|
CONFIG_USB_FUNCTION_FASTBOOT=y
|
||||||
CONFIG_FASTBOOT_BUF_ADDR=0x82000000
|
CONFIG_FASTBOOT_BUF_ADDR=0x82000000
|
||||||
|
@ -18,8 +18,6 @@ CONFIG_DISPLAY_BOARDINFO_LATE=y
|
|||||||
CONFIG_ARCH_MISC_INIT=y
|
CONFIG_ARCH_MISC_INIT=y
|
||||||
CONFIG_BOARD_EARLY_INIT_F=y
|
CONFIG_BOARD_EARLY_INIT_F=y
|
||||||
CONFIG_HUSH_PARSER=y
|
CONFIG_HUSH_PARSER=y
|
||||||
# CONFIG_CMDLINE_EDITING is not set
|
|
||||||
# CONFIG_AUTO_COMPLETE is not set
|
|
||||||
# CONFIG_SYS_LONGHELP is not set
|
# CONFIG_SYS_LONGHELP is not set
|
||||||
CONFIG_SYS_PROMPT="Colibri VFxx # "
|
CONFIG_SYS_PROMPT="Colibri VFxx # "
|
||||||
# CONFIG_CMD_BOOTD is not set
|
# CONFIG_CMD_BOOTD is not set
|
||||||
@ -39,6 +37,7 @@ CONFIG_CMD_GPIO=y
|
|||||||
# CONFIG_CMD_LOADB is not set
|
# CONFIG_CMD_LOADB is not set
|
||||||
# CONFIG_CMD_LOADS is not set
|
# CONFIG_CMD_LOADS is not set
|
||||||
CONFIG_CMD_MMC=y
|
CONFIG_CMD_MMC=y
|
||||||
|
CONFIG_CMD_PART=y
|
||||||
CONFIG_CMD_USB=y
|
CONFIG_CMD_USB=y
|
||||||
CONFIG_CMD_USB_MASS_STORAGE=y
|
CONFIG_CMD_USB_MASS_STORAGE=y
|
||||||
# CONFIG_CMD_SETEXPR is not set
|
# CONFIG_CMD_SETEXPR is not set
|
||||||
|
@ -5,7 +5,6 @@ CONFIG_SPL_GPIO_SUPPORT=y
|
|||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x8000
|
CONFIG_SYS_MALLOC_F_LEN=0x8000
|
||||||
CONFIG_SPL_SYS_MALLOC_SIMPLE=y
|
|
||||||
CONFIG_ENV_SIZE=0x1000
|
CONFIG_ENV_SIZE=0x1000
|
||||||
CONFIG_ENV_OFFSET=0x400000
|
CONFIG_ENV_OFFSET=0x400000
|
||||||
CONFIG_SYS_I2C_MXC_I2C1=y
|
CONFIG_SYS_I2C_MXC_I2C1=y
|
||||||
@ -31,6 +30,7 @@ CONFIG_BOARD_LATE_INIT=y
|
|||||||
CONFIG_BOARD_EARLY_INIT_F=y
|
CONFIG_BOARD_EARLY_INIT_F=y
|
||||||
CONFIG_SPL_BOARD_INIT=y
|
CONFIG_SPL_BOARD_INIT=y
|
||||||
CONFIG_SPL_BOOTROM_SUPPORT=y
|
CONFIG_SPL_BOOTROM_SUPPORT=y
|
||||||
|
CONFIG_SPL_SYS_MALLOC_SIMPLE=y
|
||||||
CONFIG_SPL_SEPARATE_BSS=y
|
CONFIG_SPL_SEPARATE_BSS=y
|
||||||
CONFIG_SPL_I2C_SUPPORT=y
|
CONFIG_SPL_I2C_SUPPORT=y
|
||||||
CONFIG_SPL_POWER_SUPPORT=y
|
CONFIG_SPL_POWER_SUPPORT=y
|
||||||
|
@ -25,6 +25,7 @@ CONFIG_USE_PREBOOT=y
|
|||||||
CONFIG_PREBOOT="if hdmidet; then usb start; setenv stdin serial,usbkbd; setenv stdout serial,vidconsole; setenv stderr serial,vidconsole; else setenv stdin serial; setenv stdout serial; setenv stderr serial; fi;"
|
CONFIG_PREBOOT="if hdmidet; then usb start; setenv stdin serial,usbkbd; setenv stdout serial,vidconsole; setenv stderr serial,vidconsole; else setenv stdin serial; setenv stdout serial; setenv stderr serial; fi;"
|
||||||
CONFIG_BOUNCE_BUFFER=y
|
CONFIG_BOUNCE_BUFFER=y
|
||||||
CONFIG_BOARD_EARLY_INIT_F=y
|
CONFIG_BOARD_EARLY_INIT_F=y
|
||||||
|
CONFIG_SPL_SEPARATE_BSS=y
|
||||||
CONFIG_SPL_FS_EXT4=y
|
CONFIG_SPL_FS_EXT4=y
|
||||||
CONFIG_SPL_I2C_SUPPORT=y
|
CONFIG_SPL_I2C_SUPPORT=y
|
||||||
CONFIG_SPL_WATCHDOG_SUPPORT=y
|
CONFIG_SPL_WATCHDOG_SUPPORT=y
|
||||||
@ -37,6 +38,7 @@ CONFIG_CMD_CACHE=y
|
|||||||
CONFIG_CMD_EXT4_WRITE=y
|
CONFIG_CMD_EXT4_WRITE=y
|
||||||
# CONFIG_SPL_PARTITION_UUIDS is not set
|
# CONFIG_SPL_PARTITION_UUIDS is not set
|
||||||
CONFIG_OF_CONTROL=y
|
CONFIG_OF_CONTROL=y
|
||||||
|
CONFIG_SPL_OF_CONTROL=y
|
||||||
CONFIG_DEFAULT_DEVICE_TREE="imx6dl-hummingboard2-emmc-som-v15"
|
CONFIG_DEFAULT_DEVICE_TREE="imx6dl-hummingboard2-emmc-som-v15"
|
||||||
CONFIG_OF_LIST="imx6dl-hummingboard2-emmc-som-v15 imx6q-hummingboard2-emmc-som-v15"
|
CONFIG_OF_LIST="imx6dl-hummingboard2-emmc-som-v15 imx6q-hummingboard2-emmc-som-v15"
|
||||||
CONFIG_MULTI_DTB_FIT=y
|
CONFIG_MULTI_DTB_FIT=y
|
||||||
@ -45,11 +47,15 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
|||||||
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||||
CONFIG_NET_RANDOM_ETHADDR=y
|
CONFIG_NET_RANDOM_ETHADDR=y
|
||||||
CONFIG_DM=y
|
CONFIG_DM=y
|
||||||
|
CONFIG_SPL_DM=y
|
||||||
CONFIG_DWC_AHSATA=y
|
CONFIG_DWC_AHSATA=y
|
||||||
CONFIG_DM_MMC=y
|
CONFIG_DM_MMC=y
|
||||||
CONFIG_FSL_USDHC=y
|
CONFIG_FSL_USDHC=y
|
||||||
CONFIG_PHYLIB=y
|
CONFIG_PHYLIB=y
|
||||||
CONFIG_PHY_ATHEROS=y
|
CONFIG_PHY_ATHEROS=y
|
||||||
|
CONFIG_DM_ETH=y
|
||||||
|
CONFIG_FEC_MXC=y
|
||||||
|
CONFIG_RGMII=y
|
||||||
CONFIG_MII=y
|
CONFIG_MII=y
|
||||||
CONFIG_PINCTRL=y
|
CONFIG_PINCTRL=y
|
||||||
CONFIG_PINCTRL_IMX6=y
|
CONFIG_PINCTRL_IMX6=y
|
||||||
|
@ -28,6 +28,7 @@ CONFIG_CMD_GPT=y
|
|||||||
# CONFIG_RANDOM_UUID is not set
|
# CONFIG_RANDOM_UUID is not set
|
||||||
CONFIG_CMD_I2C=y
|
CONFIG_CMD_I2C=y
|
||||||
CONFIG_CMD_MMC=y
|
CONFIG_CMD_MMC=y
|
||||||
|
# CONFIG_CMD_PINMUX is not set
|
||||||
CONFIG_CMD_SATA=y
|
CONFIG_CMD_SATA=y
|
||||||
CONFIG_CMD_USB=y
|
CONFIG_CMD_USB=y
|
||||||
CONFIG_CMD_USB_MASS_STORAGE=y
|
CONFIG_CMD_USB_MASS_STORAGE=y
|
||||||
@ -55,6 +56,8 @@ CONFIG_PHYLIB=y
|
|||||||
CONFIG_PHY_MICREL=y
|
CONFIG_PHY_MICREL=y
|
||||||
CONFIG_PHY_MICREL_KSZ90X1=y
|
CONFIG_PHY_MICREL_KSZ90X1=y
|
||||||
CONFIG_MII=y
|
CONFIG_MII=y
|
||||||
|
CONFIG_PINCTRL=y
|
||||||
|
CONFIG_PINCTRL_IMX6=y
|
||||||
CONFIG_SPI=y
|
CONFIG_SPI=y
|
||||||
CONFIG_DM_SPI=y
|
CONFIG_DM_SPI=y
|
||||||
CONFIG_MXC_SPI=y
|
CONFIG_MXC_SPI=y
|
||||||
|
@ -44,6 +44,9 @@ CONFIG_SF_DEFAULT_MODE=0
|
|||||||
CONFIG_SF_DEFAULT_SPEED=20000000
|
CONFIG_SF_DEFAULT_SPEED=20000000
|
||||||
CONFIG_SPI_FLASH_STMICRO=y
|
CONFIG_SPI_FLASH_STMICRO=y
|
||||||
CONFIG_PHYLIB=y
|
CONFIG_PHYLIB=y
|
||||||
|
CONFIG_PHY_SMSC=y
|
||||||
|
CONFIG_DM_ETH=y
|
||||||
|
CONFIG_FEC_MXC=y
|
||||||
CONFIG_MII=y
|
CONFIG_MII=y
|
||||||
CONFIG_PINCTRL=y
|
CONFIG_PINCTRL=y
|
||||||
CONFIG_PINCTRL_IMX6=y
|
CONFIG_PINCTRL_IMX6=y
|
||||||
|
@ -52,6 +52,9 @@ CONFIG_SF_DEFAULT_MODE=0
|
|||||||
CONFIG_SF_DEFAULT_SPEED=20000000
|
CONFIG_SF_DEFAULT_SPEED=20000000
|
||||||
CONFIG_SPI_FLASH_STMICRO=y
|
CONFIG_SPI_FLASH_STMICRO=y
|
||||||
CONFIG_PHYLIB=y
|
CONFIG_PHYLIB=y
|
||||||
|
CONFIG_PHY_SMSC=y
|
||||||
|
CONFIG_DM_ETH=y
|
||||||
|
CONFIG_FEC_MXC=y
|
||||||
CONFIG_MII=y
|
CONFIG_MII=y
|
||||||
CONFIG_PINCTRL=y
|
CONFIG_PINCTRL=y
|
||||||
CONFIG_PINCTRL_IMX6=y
|
CONFIG_PINCTRL_IMX6=y
|
||||||
|
@ -5,7 +5,7 @@ CONFIG_SPL_GPIO_SUPPORT=y
|
|||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||||
CONFIG_ENV_SIZE=0x2000
|
CONFIG_ENV_SIZE=0x2000
|
||||||
CONFIG_ENV_OFFSET=0x80000
|
CONFIG_ENV_OFFSET=0xC0000
|
||||||
CONFIG_TARGET_MX6UL_14X14_EVK=y
|
CONFIG_TARGET_MX6UL_14X14_EVK=y
|
||||||
CONFIG_DM_GPIO=y
|
CONFIG_DM_GPIO=y
|
||||||
CONFIG_SPL_MMC_SUPPORT=y
|
CONFIG_SPL_MMC_SUPPORT=y
|
||||||
@ -22,6 +22,9 @@ CONFIG_BOUNCE_BUFFER=y
|
|||||||
CONFIG_BOARD_EARLY_INIT_F=y
|
CONFIG_BOARD_EARLY_INIT_F=y
|
||||||
CONFIG_SPL_FS_EXT4=y
|
CONFIG_SPL_FS_EXT4=y
|
||||||
CONFIG_SPL_I2C_SUPPORT=y
|
CONFIG_SPL_I2C_SUPPORT=y
|
||||||
|
CONFIG_SPL_USB_HOST_SUPPORT=y
|
||||||
|
CONFIG_SPL_USB_GADGET=y
|
||||||
|
CONFIG_SPL_USB_SDP_SUPPORT=y
|
||||||
CONFIG_SPL_WATCHDOG_SUPPORT=y
|
CONFIG_SPL_WATCHDOG_SUPPORT=y
|
||||||
CONFIG_HUSH_PARSER=y
|
CONFIG_HUSH_PARSER=y
|
||||||
CONFIG_CMD_BOOTZ=y
|
CONFIG_CMD_BOOTZ=y
|
||||||
@ -32,6 +35,8 @@ CONFIG_CMD_GPIO=y
|
|||||||
CONFIG_CMD_I2C=y
|
CONFIG_CMD_I2C=y
|
||||||
CONFIG_CMD_MMC=y
|
CONFIG_CMD_MMC=y
|
||||||
CONFIG_CMD_USB=y
|
CONFIG_CMD_USB=y
|
||||||
|
CONFIG_CMD_USB_SDP=y
|
||||||
|
CONFIG_CMD_USB_MASS_STORAGE=y
|
||||||
CONFIG_CMD_DHCP=y
|
CONFIG_CMD_DHCP=y
|
||||||
CONFIG_CMD_PING=y
|
CONFIG_CMD_PING=y
|
||||||
CONFIG_CMD_BMP=y
|
CONFIG_CMD_BMP=y
|
||||||
@ -46,6 +51,7 @@ CONFIG_DEFAULT_DEVICE_TREE="imx6ul-14x14-evk"
|
|||||||
CONFIG_ENV_IS_IN_MMC=y
|
CONFIG_ENV_IS_IN_MMC=y
|
||||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||||
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||||
|
CONFIG_USB_FUNCTION_FASTBOOT=y
|
||||||
CONFIG_DM_74X164=y
|
CONFIG_DM_74X164=y
|
||||||
CONFIG_DM_I2C=y
|
CONFIG_DM_I2C=y
|
||||||
CONFIG_DM_MMC=y
|
CONFIG_DM_MMC=y
|
||||||
@ -73,5 +79,10 @@ CONFIG_SOFT_SPI=y
|
|||||||
CONFIG_USB=y
|
CONFIG_USB=y
|
||||||
CONFIG_DM_USB=y
|
CONFIG_DM_USB=y
|
||||||
CONFIG_USB_STORAGE=y
|
CONFIG_USB_STORAGE=y
|
||||||
|
CONFIG_USB_GADGET=y
|
||||||
|
CONFIG_USB_GADGET_MANUFACTURER="FSL"
|
||||||
|
CONFIG_USB_GADGET_VENDOR_NUM=0x0525
|
||||||
|
CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
|
||||||
|
CONFIG_CI_UDC=y
|
||||||
CONFIG_DM_VIDEO=y
|
CONFIG_DM_VIDEO=y
|
||||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||||
|
@ -41,6 +41,12 @@ CONFIG_DM_SPI_FLASH=y
|
|||||||
CONFIG_SF_DEFAULT_MODE=0
|
CONFIG_SF_DEFAULT_MODE=0
|
||||||
CONFIG_SF_DEFAULT_SPEED=40000000
|
CONFIG_SF_DEFAULT_SPEED=40000000
|
||||||
CONFIG_SPI_FLASH_STMICRO=y
|
CONFIG_SPI_FLASH_STMICRO=y
|
||||||
|
CONFIG_PHYLIB=y
|
||||||
|
CONFIG_PHY_MICREL=y
|
||||||
|
CONFIG_PHY_MICREL_KSZ8XXX=y
|
||||||
|
CONFIG_DM_ETH=y
|
||||||
|
CONFIG_FEC_MXC=y
|
||||||
|
CONFIG_MII=y
|
||||||
CONFIG_PINCTRL=y
|
CONFIG_PINCTRL=y
|
||||||
CONFIG_PINCTRL_IMX6=y
|
CONFIG_PINCTRL_IMX6=y
|
||||||
CONFIG_DM_REGULATOR=y
|
CONFIG_DM_REGULATOR=y
|
||||||
|
@ -37,6 +37,7 @@ CONFIG_SF_DEFAULT_MODE=0
|
|||||||
CONFIG_SF_DEFAULT_SPEED=24000000
|
CONFIG_SF_DEFAULT_SPEED=24000000
|
||||||
CONFIG_SPI_FLASH_MACRONIX=y
|
CONFIG_SPI_FLASH_MACRONIX=y
|
||||||
CONFIG_RTL8169=y
|
CONFIG_RTL8169=y
|
||||||
|
CONFIG_NVME=y
|
||||||
CONFIG_PCI=y
|
CONFIG_PCI=y
|
||||||
CONFIG_DM_PCI=y
|
CONFIG_DM_PCI=y
|
||||||
CONFIG_DM_PCI_COMPAT=y
|
CONFIG_DM_PCI_COMPAT=y
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_MX7=y
|
CONFIG_ARCH_MX7=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x87800000
|
|
||||||
CONFIG_SPL_GPIO_SUPPORT=y
|
CONFIG_SPL_GPIO_SUPPORT=y
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||||
@ -15,7 +14,6 @@ CONFIG_SPL=y
|
|||||||
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
|
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
|
||||||
CONFIG_IMX_RDC=y
|
CONFIG_IMX_RDC=y
|
||||||
CONFIG_IMX_BOOTAUX=y
|
CONFIG_IMX_BOOTAUX=y
|
||||||
CONFIG_SPL_TEXT_BASE=0x00911000
|
|
||||||
CONFIG_DISTRO_DEFAULTS=y
|
CONFIG_DISTRO_DEFAULTS=y
|
||||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
|
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
|
||||||
CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
|
CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_MX7=y
|
CONFIG_ARCH_MX7=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x87800000
|
|
||||||
CONFIG_SPL_GPIO_SUPPORT=y
|
CONFIG_SPL_GPIO_SUPPORT=y
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||||
@ -15,7 +14,6 @@ CONFIG_SPL=y
|
|||||||
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
|
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
|
||||||
CONFIG_IMX_RDC=y
|
CONFIG_IMX_RDC=y
|
||||||
CONFIG_IMX_BOOTAUX=y
|
CONFIG_IMX_BOOTAUX=y
|
||||||
CONFIG_SPL_TEXT_BASE=0x00911000
|
|
||||||
CONFIG_DISTRO_DEFAULTS=y
|
CONFIG_DISTRO_DEFAULTS=y
|
||||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
|
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
|
||||||
CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
|
CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_MX7=y
|
CONFIG_ARCH_MX7=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x87800000
|
|
||||||
CONFIG_SPL_GPIO_SUPPORT=y
|
CONFIG_SPL_GPIO_SUPPORT=y
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||||
@ -15,7 +14,6 @@ CONFIG_SPL=y
|
|||||||
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
|
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
|
||||||
CONFIG_IMX_RDC=y
|
CONFIG_IMX_RDC=y
|
||||||
CONFIG_IMX_BOOTAUX=y
|
CONFIG_IMX_BOOTAUX=y
|
||||||
CONFIG_SPL_TEXT_BASE=0x00911000
|
|
||||||
CONFIG_DISTRO_DEFAULTS=y
|
CONFIG_DISTRO_DEFAULTS=y
|
||||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
|
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
|
||||||
CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
|
CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_MX7=y
|
CONFIG_ARCH_MX7=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x87800000
|
|
||||||
CONFIG_SPL_GPIO_SUPPORT=y
|
CONFIG_SPL_GPIO_SUPPORT=y
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||||
@ -15,7 +14,6 @@ CONFIG_SPL=y
|
|||||||
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
|
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
|
||||||
CONFIG_IMX_RDC=y
|
CONFIG_IMX_RDC=y
|
||||||
CONFIG_IMX_BOOTAUX=y
|
CONFIG_IMX_BOOTAUX=y
|
||||||
CONFIG_SPL_TEXT_BASE=0x00911000
|
|
||||||
CONFIG_DISTRO_DEFAULTS=y
|
CONFIG_DISTRO_DEFAULTS=y
|
||||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
|
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
|
||||||
CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
|
CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARCH_MX7=y
|
CONFIG_ARCH_MX7=y
|
||||||
CONFIG_SYS_TEXT_BASE=0x87800000
|
|
||||||
CONFIG_SPL_GPIO_SUPPORT=y
|
CONFIG_SPL_GPIO_SUPPORT=y
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
||||||
@ -15,7 +14,6 @@ CONFIG_SPL=y
|
|||||||
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
|
CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
|
||||||
CONFIG_IMX_RDC=y
|
CONFIG_IMX_RDC=y
|
||||||
CONFIG_IMX_BOOTAUX=y
|
CONFIG_IMX_BOOTAUX=y
|
||||||
CONFIG_SPL_TEXT_BASE=0x00911000
|
|
||||||
CONFIG_DISTRO_DEFAULTS=y
|
CONFIG_DISTRO_DEFAULTS=y
|
||||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
|
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
|
||||||
CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
|
CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
|
||||||
|
@ -67,6 +67,7 @@ CONFIG_PINCTRL_IMX6=y
|
|||||||
CONFIG_DM_PMIC=y
|
CONFIG_DM_PMIC=y
|
||||||
CONFIG_DM_PMIC_PFUZE100=y
|
CONFIG_DM_PMIC_PFUZE100=y
|
||||||
CONFIG_DM_SCSI=y
|
CONFIG_DM_SCSI=y
|
||||||
|
CONFIG_MXC_UART=y
|
||||||
CONFIG_DM_THERMAL=y
|
CONFIG_DM_THERMAL=y
|
||||||
CONFIG_USB=y
|
CONFIG_USB=y
|
||||||
CONFIG_DM_USB=y
|
CONFIG_DM_USB=y
|
||||||
|
@ -3,11 +3,11 @@ CONFIG_ARCH_VERSAL=y
|
|||||||
CONFIG_SYS_TEXT_BASE=0x8000000
|
CONFIG_SYS_TEXT_BASE=0x8000000
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x100000
|
CONFIG_SYS_MALLOC_F_LEN=0x100000
|
||||||
CONFIG_DM_GPIO=y
|
CONFIG_DM_GPIO=y
|
||||||
|
CONFIG_DEFINE_TCM_OCM_MMAP=y
|
||||||
CONFIG_COUNTER_FREQUENCY=62500000
|
CONFIG_COUNTER_FREQUENCY=62500000
|
||||||
CONFIG_DISTRO_DEFAULTS=y
|
CONFIG_DISTRO_DEFAULTS=y
|
||||||
CONFIG_FIT=y
|
CONFIG_FIT=y
|
||||||
CONFIG_FIT_VERBOSE=y
|
CONFIG_FIT_VERBOSE=y
|
||||||
# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
|
|
||||||
CONFIG_BOOTDELAY=5
|
CONFIG_BOOTDELAY=5
|
||||||
# CONFIG_DISPLAY_CPUINFO is not set
|
# CONFIG_DISPLAY_CPUINFO is not set
|
||||||
CONFIG_BOARD_EARLY_INIT_R=y
|
CONFIG_BOARD_EARLY_INIT_R=y
|
||||||
|
@ -24,6 +24,7 @@ CONFIG_SPL_SPI_LOAD=y
|
|||||||
CONFIG_CMD_IMLS=y
|
CONFIG_CMD_IMLS=y
|
||||||
CONFIG_CMD_THOR_DOWNLOAD=y
|
CONFIG_CMD_THOR_DOWNLOAD=y
|
||||||
CONFIG_CMD_MEMTEST=y
|
CONFIG_CMD_MEMTEST=y
|
||||||
|
CONFIG_SYS_ALT_MEMTEST=y
|
||||||
CONFIG_SYS_MEMTEST_START=0x00000000
|
CONFIG_SYS_MEMTEST_START=0x00000000
|
||||||
CONFIG_SYS_MEMTEST_END=0x00001000
|
CONFIG_SYS_MEMTEST_END=0x00001000
|
||||||
CONFIG_CMD_DFU=y
|
CONFIG_CMD_DFU=y
|
||||||
|
@ -54,7 +54,7 @@ CONFIG_CMD_MTDPARTS_SHOW_NET_SIZES=y
|
|||||||
CONFIG_CMD_UBI=y
|
CONFIG_CMD_UBI=y
|
||||||
CONFIG_SPL_OF_CONTROL=y
|
CONFIG_SPL_OF_CONTROL=y
|
||||||
CONFIG_DEFAULT_DEVICE_TREE="zynqmp-zcu100-revC"
|
CONFIG_DEFAULT_DEVICE_TREE="zynqmp-zcu100-revC"
|
||||||
CONFIG_OF_LIST="avnet-ultra96-rev1 zynqmp-a2197-revA zynqmp-e-a2197-00-revA zynqmp-g-a2197-00-revA zynqmp-m-a2197-01-revA zynqmp-m-a2197-02-revA zynqmp-m-a2197-03-revA zynqmp-p-a2197-00-revA zynqmp-zc1232-revA zynqmp-zc1254-revA zynqmp-zc1751-xm015-dc1 zynqmp-zc1751-xm016-dc2 zynqmp-zc1751-xm017-dc3 zynqmp-zc1751-xm018-dc4 zynqmp-zc1751-xm019-dc5 zynqmp-zcu100-revC zynqmp-zcu102-rev1.1 zynqmp-zcu102-rev1.0 zynqmp-zcu102-revA zynqmp-zcu102-revB zynqmp-zcu104-revA zynqmp-zcu104-revC zynqmp-zcu106-revA zynqmp-zcu111-revA zynqmp-zcu1275-revA zynqmp-zcu1275-revB zynqmp-zcu1285-revA zynqmp-zcu208-revA zynqmp-zcu216-revA"
|
CONFIG_OF_LIST="avnet-ultra96-rev1 zynqmp-a2197-revA zynqmp-e-a2197-00-revA zynqmp-g-a2197-00-revA zynqmp-m-a2197-01-revA zynqmp-m-a2197-02-revA zynqmp-m-a2197-03-revA zynqmp-p-a2197-00-revA zynqmp-zc1232-revA zynqmp-zc1254-revA zynqmp-zc1751-xm015-dc1 zynqmp-zc1751-xm016-dc2 zynqmp-zc1751-xm017-dc3 zynqmp-zc1751-xm018-dc4 zynqmp-zc1751-xm019-dc5 zynqmp-zcu100-revC zynqmp-zcu102-rev1.1 zynqmp-zcu102-rev1.0 zynqmp-zcu102-revA zynqmp-zcu102-revB zynqmp-zcu104-revA zynqmp-zcu104-revC zynqmp-zcu106-revA zynqmp-zcu111-revA zynqmp-zcu1275-revA zynqmp-zcu1275-revB zynqmp-zcu1285-revA zynqmp-zcu208-revA zynqmp-zcu216-revA zynqmp-topic-miamimp-xilinx-xdp-v1r1"
|
||||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||||
CONFIG_NET_RANDOM_ETHADDR=y
|
CONFIG_NET_RANDOM_ETHADDR=y
|
||||||
CONFIG_NETCONSOLE=y
|
CONFIG_NETCONSOLE=y
|
||||||
|
95
doc/board/amlogic/index.rst
Normal file
95
doc/board/amlogic/index.rst
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
Amlogic
|
||||||
|
=======
|
||||||
|
|
||||||
|
Hardware Support Matrix
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
An up-do-date matrix is also available on: http://linux-meson.com
|
||||||
|
|
||||||
|
This matrix concerns the actual source code version.
|
||||||
|
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| | S905 | S905X | S912 | A113X | S905X2 | S922X | S905X3 |
|
||||||
|
| | | S805X | S905D | | S905D2 | A311D | S905D3 |
|
||||||
|
| | | | | | S905Y2 | | |
|
||||||
|
+===============================+===========+==============+==============+============+============+=============+==============+
|
||||||
|
| Boards | Odroid-C2 | P212 | Khadas VIM2 | S400 | U200 | Odroid-N2 | SEI610 |
|
||||||
|
| | Nanopi-K2 | Khadas-VIM | Libretech-PC | | SEI510 | Khadas-VIM3 | Khadas-VIM3L |
|
||||||
|
| | P200 | LibreTech-CC | | | | | |
|
||||||
|
| | P201 | LibreTech-AC | | | | | |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| UART | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| Pinctrl/GPIO | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| Clock Control | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| PWM | No | No | No | No | No | No | No |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| Reset Control | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| Infrared Decoder | No | No | No | No | No | No | No |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| Ethernet | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| Multi-core | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| Fuse access | **Yes** | **Yes** |**Yes** |**Yes** |**Yes** |**Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| SPI (FC) | **Yes** | **Yes** | **Yes** | **Yes** |**Yes** | **Yes** | No |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| SPI (CC) | No | No | No | No | No | No | No |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| I2C | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| USB | **Yes** | **Yes** | **Yes** | No | **Yes** | **Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| USB OTG | No | **Yes** | **Yes** | No | **Yes** | **Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| eMMC | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| SDCard | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| NAND | No | No | No | No | No | No | No |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| ADC | **Yes** | **Yes** | **Yes** | No | No | No | No |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| CVBS Output | **Yes** | **Yes** | **Yes** | *N/A* | **Yes** | **Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| HDMI Output | **Yes** | **Yes** | **Yes** | *N/A* | **Yes** | **Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| CEC | No | No | No | *N/A* | No | No | No |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| Thermal Sensor | No | No | No | No | No | No | No |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| LCD/LVDS Output | No | *N/A* | No | No | No | No | No |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
| SoC (version) information | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
|
||||||
|
+-------------------------------+-----------+--------------+--------------+------------+------------+-------------+--------------+
|
||||||
|
|
||||||
|
Board Documentation
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
khadas-vim2
|
||||||
|
khadas-vim3l
|
||||||
|
khadas-vim3
|
||||||
|
khadas-vim
|
||||||
|
libretech-ac
|
||||||
|
libretech-cc
|
||||||
|
nanopi-k2
|
||||||
|
odroid-c2
|
||||||
|
odroid-n2
|
||||||
|
p200
|
||||||
|
p201
|
||||||
|
p212
|
||||||
|
q200
|
||||||
|
s400
|
||||||
|
sei510
|
||||||
|
sei610
|
||||||
|
u200
|
||||||
|
w400
|
101
doc/board/amlogic/khadas-vim.rst
Normal file
101
doc/board/amlogic/khadas-vim.rst
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
U-Boot for Khadas VIM
|
||||||
|
======================
|
||||||
|
|
||||||
|
Khadas VIM is an Open Source DIY Box manufactured by Shenzhen Wesion
|
||||||
|
Technology Co., Ltd with the following specifications:
|
||||||
|
|
||||||
|
- Amlogic S905X ARM Cortex-A53 quad-core SoC @ 1.5GHz
|
||||||
|
- ARM Mali 450 GPU
|
||||||
|
- 2GB DDR3 SDRAM
|
||||||
|
- 10/100 Ethernet
|
||||||
|
- HDMI 2.0 4K/60Hz display
|
||||||
|
- 40-pin GPIO header
|
||||||
|
- 2 x USB 2.0 Host, 1 x USB 2.0 Type-C OTG
|
||||||
|
- 8GB/16GBeMMC
|
||||||
|
- microSD
|
||||||
|
- SDIO Wifi Module, Bluetooth
|
||||||
|
- Two channels IR receiver
|
||||||
|
|
||||||
|
U-Boot compilation
|
||||||
|
------------------
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ export CROSS_COMPILE=aarch64-none-elf-
|
||||||
|
$ make khadas-vim_defconfig
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Image creation
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Amlogic doesn't provide sources for the firmware and for tools needed
|
||||||
|
to create the bootloader image, so it is necessary to obtain them from
|
||||||
|
the git tree published by the board vendor:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
||||||
|
$ git clone https://github.com/khadas/u-boot -b Vim vim-u-boot
|
||||||
|
$ cd vim-u-boot
|
||||||
|
$ make kvim_defconfig
|
||||||
|
$ make CROSS_COMPILE=aarch64-none-elf-
|
||||||
|
$ export FIPDIR=$PWD/fip
|
||||||
|
|
||||||
|
Go back to mainline U-Boot source tree then :
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ mkdir fip
|
||||||
|
|
||||||
|
$ cp $FIPDIR/gxl/bl2.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/acs.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl21.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl30.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl301.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl31.img fip/
|
||||||
|
$ cp u-boot.bin fip/bl33.bin
|
||||||
|
|
||||||
|
$ $FIPDIR/blx_fix.sh \
|
||||||
|
fip/bl30.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl30_zero.bin \
|
||||||
|
fip/bl301.bin \
|
||||||
|
fip/bl301_zero.bin \
|
||||||
|
fip/bl30_new.bin \
|
||||||
|
bl30
|
||||||
|
|
||||||
|
$ python $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
||||||
|
|
||||||
|
$ $FIPDIR/blx_fix.sh \
|
||||||
|
fip/bl2_acs.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl2_zero.bin \
|
||||||
|
fip/bl21.bin \
|
||||||
|
fip/bl21_zero.bin \
|
||||||
|
fip/bl2_new.bin \
|
||||||
|
bl2
|
||||||
|
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bootmk \
|
||||||
|
--output fip/u-boot.bin \
|
||||||
|
--bl2 fip/bl2.n.bin.sig \
|
||||||
|
--bl30 fip/bl30_new.bin.enc \
|
||||||
|
--bl31 fip/bl31.img.enc \
|
||||||
|
--bl33 fip/bl33.bin.enc
|
||||||
|
|
||||||
|
and then write the image to SD with:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ DEV=/dev/your_sd_device
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
102
doc/board/amlogic/khadas-vim2.rst
Normal file
102
doc/board/amlogic/khadas-vim2.rst
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
U-Boot for Khadas VIM2
|
||||||
|
=======================
|
||||||
|
|
||||||
|
Khadas VIM2 is an Open Source DIY Box manufactured by Shenzhen Wesion
|
||||||
|
Technology Co., Ltd with the following specifications:
|
||||||
|
|
||||||
|
- Amlogic S912 ARM Cortex-A53 octo-core SoC @ 1.5GHz
|
||||||
|
- ARM Mali T860 GPU
|
||||||
|
- 2/3GB DDR4 SDRAM
|
||||||
|
- 10/100/1000 Ethernet
|
||||||
|
- HDMI 2.0 4K/60Hz display
|
||||||
|
- 40-pin GPIO header
|
||||||
|
- 2 x USB 2.0 Host, 1 x USB 2.0 Type-C OTG
|
||||||
|
- 16GB/32GB/64GB eMMC
|
||||||
|
- 2MB SPI Flash
|
||||||
|
- microSD
|
||||||
|
- SDIO Wifi Module, Bluetooth
|
||||||
|
- Two channels IR receiver
|
||||||
|
|
||||||
|
U-Boot compilation
|
||||||
|
------------------
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ export CROSS_COMPILE=aarch64-none-elf-
|
||||||
|
$ make khadas-vim2_defconfig
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Image creation
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Amlogic doesn't provide sources for the firmware and for tools needed
|
||||||
|
to create the bootloader image, so it is necessary to obtain them from
|
||||||
|
the git tree published by the board vendor:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
||||||
|
$ git clone https://github.com/khadas/u-boot -b khadas-vim-v2015.01 vim-u-boot
|
||||||
|
$ cd vim-u-boot
|
||||||
|
$ make kvim2_defconfig
|
||||||
|
$ make
|
||||||
|
$ export FIPDIR=$PWD/fip
|
||||||
|
|
||||||
|
Go back to mainline U-Boot source tree then :
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ mkdir fip
|
||||||
|
|
||||||
|
$ cp $FIPDIR/gxl/bl2.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/acs.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl21.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl30.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl301.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl31.img fip/
|
||||||
|
$ cp u-boot.bin fip/bl33.bin
|
||||||
|
|
||||||
|
$ $FIPDIR/blx_fix.sh \
|
||||||
|
fip/bl30.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl30_zero.bin \
|
||||||
|
fip/bl301.bin \
|
||||||
|
fip/bl301_zero.bin \
|
||||||
|
fip/bl30_new.bin \
|
||||||
|
bl30
|
||||||
|
|
||||||
|
$ python $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
||||||
|
|
||||||
|
$ $FIPDIR/blx_fix.sh \
|
||||||
|
fip/bl2_acs.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl2_zero.bin \
|
||||||
|
fip/bl21.bin \
|
||||||
|
fip/bl21_zero.bin \
|
||||||
|
fip/bl2_new.bin \
|
||||||
|
bl2
|
||||||
|
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bootmk \
|
||||||
|
--output fip/u-boot.bin \
|
||||||
|
--bl2 fip/bl2.n.bin.sig \
|
||||||
|
--bl30 fip/bl30_new.bin.enc \
|
||||||
|
--bl31 fip/bl31.img.enc \
|
||||||
|
--bl33 fip/bl33.bin.enc
|
||||||
|
|
||||||
|
and then write the image to SD with:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ DEV=/dev/your_sd_device
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
132
doc/board/amlogic/khadas-vim3.rst
Normal file
132
doc/board/amlogic/khadas-vim3.rst
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
U-Boot for Khadas VIM3
|
||||||
|
======================
|
||||||
|
|
||||||
|
Khadas VIM3 is a single board computer manufactured by Shenzhen Wesion
|
||||||
|
Technology Co., Ltd. with the following specifications:
|
||||||
|
|
||||||
|
- Amlogic A311D Arm Cortex-A53 dual-core + Cortex-A73 quad-core SoC
|
||||||
|
- 4GB LPDDR4 SDRAM
|
||||||
|
- Gigabit Ethernet
|
||||||
|
- HDMI 2.1 display
|
||||||
|
- 40-pin GPIO header
|
||||||
|
- 1 x USB 3.0 Host, 1 x USB 2.0 Host
|
||||||
|
- eMMC, microSD
|
||||||
|
- M.2
|
||||||
|
- Infrared receiver
|
||||||
|
|
||||||
|
Schematics are available on the manufacturer website.
|
||||||
|
|
||||||
|
U-Boot compilation
|
||||||
|
------------------
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ export CROSS_COMPILE=aarch64-none-elf-
|
||||||
|
$ make khadas-vim3_defconfig
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Image creation
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Amlogic doesn't provide sources for the firmware and for tools needed
|
||||||
|
to create the bootloader image, so it is necessary to obtain them from
|
||||||
|
the git tree published by the board vendor:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
||||||
|
|
||||||
|
$ DIR=vim3-u-boot
|
||||||
|
$ git clone --depth 1 \
|
||||||
|
https://github.com/khadas/u-boot.git -b khadas-vims-v2015.01 \
|
||||||
|
$DIR
|
||||||
|
|
||||||
|
$ cd vim3-u-boot
|
||||||
|
$ make kvim3_defconfig
|
||||||
|
$ make
|
||||||
|
$ export UBOOTDIR=$PWD
|
||||||
|
|
||||||
|
Go back to mainline U-Boot source tree then :
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ mkdir fip
|
||||||
|
|
||||||
|
$ cp $UBOOTDIR/build/scp_task/bl301.bin fip/
|
||||||
|
$ cp $UBOOTDIR/build/board/khadas/kvim3/firmware/acs.bin fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/bl2.bin fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/bl30.bin fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/bl31.img fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/ddr3_1d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/ddr4_1d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/ddr4_2d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/diag_lpddr4.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/lpddr3_1d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/lpddr4_1d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/lpddr4_2d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/piei.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/aml_ddr.fw fip/
|
||||||
|
$ cp u-boot.bin fip/bl33.bin
|
||||||
|
|
||||||
|
$ sh fip/blx_fix.sh \
|
||||||
|
fip/bl30.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl30_zero.bin \
|
||||||
|
fip/bl301.bin \
|
||||||
|
fip/bl301_zero.bin \
|
||||||
|
fip/bl30_new.bin \
|
||||||
|
bl30
|
||||||
|
|
||||||
|
$ sh fip/blx_fix.sh \
|
||||||
|
fip/bl2.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl2_zero.bin \
|
||||||
|
fip/acs.bin \
|
||||||
|
fip/bl21_zero.bin \
|
||||||
|
fip/bl2_new.bin \
|
||||||
|
bl2
|
||||||
|
|
||||||
|
$ $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl30sig --input fip/bl30_new.bin \
|
||||||
|
--output fip/bl30_new.bin.g12a.enc \
|
||||||
|
--level v3
|
||||||
|
$ $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input fip/bl30_new.bin.g12a.enc \
|
||||||
|
--output fip/bl30_new.bin.enc \
|
||||||
|
--level v3 --type bl30
|
||||||
|
$ $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input fip/bl31.img \
|
||||||
|
--output fip/bl31.img.enc \
|
||||||
|
--level v3 --type bl31
|
||||||
|
$ $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input fip/bl33.bin --compress lz4 \
|
||||||
|
--output fip/bl33.bin.enc \
|
||||||
|
--level v3 --type bl33 --compress lz4
|
||||||
|
$ $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl2sig --input fip/bl2_new.bin \
|
||||||
|
--output fip/bl2.n.bin.sig
|
||||||
|
$ $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bootmk \
|
||||||
|
--output fip/u-boot.bin \
|
||||||
|
--bl2 fip/bl2.n.bin.sig \
|
||||||
|
--bl30 fip/bl30_new.bin.enc \
|
||||||
|
--bl31 fip/bl31.img.enc \
|
||||||
|
--bl33 fip/bl33.bin.enc \
|
||||||
|
--ddrfw1 fip/ddr4_1d.fw \
|
||||||
|
--ddrfw2 fip/ddr4_2d.fw \
|
||||||
|
--ddrfw3 fip/ddr3_1d.fw \
|
||||||
|
--ddrfw4 fip/piei.fw \
|
||||||
|
--ddrfw5 fip/lpddr4_1d.fw \
|
||||||
|
--ddrfw6 fip/lpddr4_2d.fw \
|
||||||
|
--ddrfw7 fip/diag_lpddr4.fw \
|
||||||
|
--ddrfw8 fip/aml_ddr.fw \
|
||||||
|
--ddrfw9 fip/lpddr3_1d.fw \
|
||||||
|
--level v3
|
||||||
|
|
||||||
|
and then write the image to SD with:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ DEV=/dev/your_sd_device
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
130
doc/board/amlogic/khadas-vim3l.rst
Normal file
130
doc/board/amlogic/khadas-vim3l.rst
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
U-Boot for Khadas VIM3L
|
||||||
|
=======================
|
||||||
|
|
||||||
|
Khadas VIM3L is a single board computer manufactured by Shenzhen Wesion
|
||||||
|
Technology Co., Ltd. with the following specifications:
|
||||||
|
|
||||||
|
- Amlogic S905D3 Arm Cortex-A55 quad-core SoC
|
||||||
|
- 2GB LPDDR4 SDRAM
|
||||||
|
- Gigabit Ethernet
|
||||||
|
- HDMI 2.1 display
|
||||||
|
- 40-pin GPIO header
|
||||||
|
- 1 x USB 3.0 Host, 1 x USB 2.0 Host
|
||||||
|
- eMMC, microSD
|
||||||
|
- M.2
|
||||||
|
- Infrared receiver
|
||||||
|
|
||||||
|
Schematics are available on the manufacturer website.
|
||||||
|
|
||||||
|
U-Boot compilation
|
||||||
|
------------------
|
||||||
|
|
||||||
|
$ export CROSS_COMPILE=aarch64-none-elf-
|
||||||
|
$ make khadas-vim3l_defconfig
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Image creation
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Amlogic doesn't provide sources for the firmware and for tools needed
|
||||||
|
to create the bootloader image, so it is necessary to obtain them from
|
||||||
|
the git tree published by the board vendor:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
||||||
|
|
||||||
|
$ DIR=vim3l-u-boot
|
||||||
|
$ git clone --depth 1 \
|
||||||
|
https://github.com/khadas/u-boot.git -b khadas-vims-v2015.01 \
|
||||||
|
$DIR
|
||||||
|
|
||||||
|
$ cd vim3l-u-boot
|
||||||
|
$ make kvim3l_defconfig
|
||||||
|
$ make
|
||||||
|
$ export UBOOTDIR=$PWD
|
||||||
|
|
||||||
|
Go back to mainline U-Boot source tree then :
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ mkdir fip
|
||||||
|
|
||||||
|
$ cp $UBOOTDIR/build/scp_task/bl301.bin fip/
|
||||||
|
$ cp $UBOOTDIR/build/board/khadas/kvim3l/firmware/acs.bin fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12a/bl2.bin fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12a/bl30.bin fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12a/bl31.img fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12a/ddr3_1d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12a/ddr4_1d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12a/ddr4_2d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12a/diag_lpddr4.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12a/lpddr3_1d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12a/lpddr4_1d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12a/lpddr4_2d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12a/piei.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12a/aml_ddr.fw fip/
|
||||||
|
$ cp u-boot.bin fip/bl33.bin
|
||||||
|
|
||||||
|
$ sh fip/blx_fix.sh \
|
||||||
|
fip/bl30.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl30_zero.bin \
|
||||||
|
fip/bl301.bin \
|
||||||
|
fip/bl301_zero.bin \
|
||||||
|
fip/bl30_new.bin \
|
||||||
|
bl30
|
||||||
|
|
||||||
|
$ sh fip/blx_fix.sh \
|
||||||
|
fip/bl2.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl2_zero.bin \
|
||||||
|
fip/acs.bin \
|
||||||
|
fip/bl21_zero.bin \
|
||||||
|
fip/bl2_new.bin \
|
||||||
|
bl2
|
||||||
|
|
||||||
|
$ $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl30sig --input fip/bl30_new.bin \
|
||||||
|
--output fip/bl30_new.bin.g12a.enc \
|
||||||
|
--level v3
|
||||||
|
$ $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl3sig --input fip/bl30_new.bin.g12a.enc \
|
||||||
|
--output fip/bl30_new.bin.enc \
|
||||||
|
--level v3 --type bl30
|
||||||
|
$ $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl3sig --input fip/bl31.img \
|
||||||
|
--output fip/bl31.img.enc \
|
||||||
|
--level v3 --type bl31
|
||||||
|
$ $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl3sig --input fip/bl33.bin --compress lz4 \
|
||||||
|
--output fip/bl33.bin.enc \
|
||||||
|
--level v3 --type bl33 --compress lz4
|
||||||
|
$ $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl2sig --input fip/bl2_new.bin \
|
||||||
|
--output fip/bl2.n.bin.sig
|
||||||
|
$ $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bootmk \
|
||||||
|
--output fip/u-boot.bin \
|
||||||
|
--bl2 fip/bl2.n.bin.sig \
|
||||||
|
--bl30 fip/bl30_new.bin.enc \
|
||||||
|
--bl31 fip/bl31.img.enc \
|
||||||
|
--bl33 fip/bl33.bin.enc \
|
||||||
|
--ddrfw1 fip/ddr4_1d.fw \
|
||||||
|
--ddrfw2 fip/ddr4_2d.fw \
|
||||||
|
--ddrfw3 fip/ddr3_1d.fw \
|
||||||
|
--ddrfw4 fip/piei.fw \
|
||||||
|
--ddrfw5 fip/lpddr4_1d.fw \
|
||||||
|
--ddrfw6 fip/lpddr4_2d.fw \
|
||||||
|
--ddrfw7 fip/diag_lpddr4.fw \
|
||||||
|
--ddrfw8 fip/aml_ddr.fw \
|
||||||
|
--ddrfw9 fip/lpddr3_1d.fw \
|
||||||
|
--level v3
|
||||||
|
|
||||||
|
and then write the image to SD with:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ DEV=/dev/your_sd_device
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
110
doc/board/amlogic/libretech-ac.rst
Normal file
110
doc/board/amlogic/libretech-ac.rst
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
U-Boot for LibreTech AC
|
||||||
|
=======================
|
||||||
|
|
||||||
|
LibreTech AC is a single board computer manufactured by Libre Technology
|
||||||
|
with the following specifications:
|
||||||
|
|
||||||
|
- Amlogic S805X ARM Cortex-A53 quad-core SoC @ 1.2GHz
|
||||||
|
- ARM Mali 450 GPU
|
||||||
|
- 512MiB DDR4 SDRAM
|
||||||
|
- 10/100 Ethernet
|
||||||
|
- HDMI 2.0 4K/60Hz display
|
||||||
|
- 40-pin GPIO header
|
||||||
|
- 4 x USB 2.0 Host
|
||||||
|
- eMMC, SPI NOR Flash
|
||||||
|
- Infrared receiver
|
||||||
|
|
||||||
|
Schematics are available on the manufacturer website.
|
||||||
|
|
||||||
|
U-Boot compilation
|
||||||
|
------------------
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ export CROSS_COMPILE=aarch64-none-elf-
|
||||||
|
$ make libretech-ac_defconfig
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Image creation
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Amlogic doesn't provide sources for the firmware and for tools needed
|
||||||
|
to create the bootloader image, so it is necessary to obtain them from
|
||||||
|
the git tree published by the board vendor:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
||||||
|
$ git clone https://github.com/BayLibre/u-boot.git -b libretech-ac amlogic-u-boot
|
||||||
|
$ cd amlogic-u-boot
|
||||||
|
$ wget https://raw.githubusercontent.com/BayLibre/u-boot/libretech-cc/fip/blx_fix.sh
|
||||||
|
$ make libretech_ac_defconfig
|
||||||
|
$ make
|
||||||
|
$ export UBOOTDIR=$PWD
|
||||||
|
|
||||||
|
Download the latest Amlogic Buildroot package, and extract it :
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ wget http://openlinux2.amlogic.com:8000/ARM/filesystem/Linux_BSP/buildroot_openlinux_kernel_4.9_fbdev_20180418.tar.gz
|
||||||
|
$ tar xfz buildroot_openlinux_kernel_4.9_fbdev_20180418.tar.gz buildroot_openlinux_kernel_4.9_fbdev_20180418/bootloader
|
||||||
|
$ export BRDIR=$PWD/buildroot_openlinux_kernel_4.9_fbdev_20180418
|
||||||
|
|
||||||
|
Go back to mainline U-Boot source tree then :
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ mkdir fip
|
||||||
|
|
||||||
|
$ cp $UBOOTDIR/build/scp_task/bl301.bin fip/
|
||||||
|
$ cp $UBOOTDIR/build/board/amlogic/libretech_ac/firmware/bl21.bin fip/
|
||||||
|
$ cp $UBOOTDIR/build/board/amlogic/libretech_ac/firmware/acs.bin fip/
|
||||||
|
$ cp $BRDIR/bootloader/uboot-repo/bl2/bin/gxl/bl2.bin fip/
|
||||||
|
$ cp $BRDIR/bootloader/uboot-repo/bl30/bin/gxl/bl30.bin fip/
|
||||||
|
$ cp $BRDIR/bootloader/uboot-repo/bl31/bin/gxl/bl31.img fip/
|
||||||
|
$ cp u-boot.bin fip/bl33.bin
|
||||||
|
|
||||||
|
$ sh $UBOOTDIR/blx_fix.sh \
|
||||||
|
fip/bl30.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl30_zero.bin \
|
||||||
|
fip/bl301.bin \
|
||||||
|
fip/bl301_zero.bin \
|
||||||
|
fip/bl30_new.bin \
|
||||||
|
bl30
|
||||||
|
|
||||||
|
$ $BRDIR/bootloader/uboot-repo/fip/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
||||||
|
|
||||||
|
$ sh $UBOOTDIR/blx_fix.sh \
|
||||||
|
fip/bl2_acs.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl2_zero.bin \
|
||||||
|
fip/bl21.bin \
|
||||||
|
fip/bl21_zero.bin \
|
||||||
|
fip/bl2_new.bin \
|
||||||
|
bl2
|
||||||
|
|
||||||
|
$ $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
|
||||||
|
$ $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
|
||||||
|
$ $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
|
||||||
|
$ $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
|
||||||
|
$ $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bootmk \
|
||||||
|
--output fip/u-boot.bin \
|
||||||
|
--bl2 fip/bl2.n.bin.sig \
|
||||||
|
--bl30 fip/bl30_new.bin.enc \
|
||||||
|
--bl31 fip/bl31.img.enc \
|
||||||
|
--bl33 fip/bl33.bin.enc
|
||||||
|
|
||||||
|
and then write the image to SD with:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ DEV=/dev/your_sd_device
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
135
doc/board/amlogic/libretech-cc.rst
Normal file
135
doc/board/amlogic/libretech-cc.rst
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
U-Boot for LibreTech CC
|
||||||
|
=======================
|
||||||
|
|
||||||
|
LibreTech CC is a single board computer manufactured by Libre Technology
|
||||||
|
with the following specifications:
|
||||||
|
|
||||||
|
- Amlogic S905X ARM Cortex-A53 quad-core SoC @ 1.5GHz
|
||||||
|
- ARM Mali 450 GPU
|
||||||
|
- 2GB DDR3 SDRAM
|
||||||
|
- 10/100 Ethernet
|
||||||
|
- HDMI 2.0 4K/60Hz display
|
||||||
|
- 40-pin GPIO header
|
||||||
|
- 4 x USB 2.0 Host
|
||||||
|
- eMMC, microSD
|
||||||
|
- Infrared receiver
|
||||||
|
|
||||||
|
Schematics are available on the manufacturer website.
|
||||||
|
|
||||||
|
U-Boot compilation
|
||||||
|
------------------
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ export CROSS_COMPILE=aarch64-none-elf-
|
||||||
|
$ make libretech-cc_defconfig
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Image creation
|
||||||
|
--------------
|
||||||
|
|
||||||
|
To boot the system, u-boot must be combined with several earlier stage
|
||||||
|
bootloaders:
|
||||||
|
|
||||||
|
* bl2.bin: vendor-provided binary blob
|
||||||
|
* bl21.bin: built from vendor u-boot source
|
||||||
|
* bl30.bin: vendor-provided binary blob
|
||||||
|
* bl301.bin: built from vendor u-boot source
|
||||||
|
* bl31.bin: vendor-provided binary blob
|
||||||
|
* acs.bin: built from vendor u-boot source
|
||||||
|
|
||||||
|
These binaries and the tools required below have been collected and prebuilt
|
||||||
|
for convenience at <https://github.com/BayLibre/u-boot/releases/>
|
||||||
|
|
||||||
|
Download and extract the libretech-cc release from there, and set FIPDIR to
|
||||||
|
point to the `fip` subdirectory.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ export FIPDIR=/path/to/extracted/fip
|
||||||
|
|
||||||
|
Alternatively, you can obtain the original vendor u-boot tree which
|
||||||
|
contains the required blobs and sources, and build yourself.
|
||||||
|
Note that old compilers are required for this to build. The compilers here
|
||||||
|
are suggested by Amlogic, and they are 32-bit x86 binaries.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
||||||
|
$ git clone https://github.com/BayLibre/u-boot.git -b libretech-cc amlogic-u-boot
|
||||||
|
$ cd amlogic-u-boot
|
||||||
|
$ make libretech_cc_defconfig
|
||||||
|
$ make
|
||||||
|
$ export FIPDIR=$PWD/fip
|
||||||
|
|
||||||
|
Once you have the binaries available (either through the prebuilt download,
|
||||||
|
or having built the vendor u-boot yourself), you can then proceed to glue
|
||||||
|
everything together. Go back to mainline U-Boot source tree then :
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ mkdir fip
|
||||||
|
|
||||||
|
$ cp $FIPDIR/gxl/bl2.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/acs.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl21.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl30.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl301.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl31.img fip/
|
||||||
|
$ cp u-boot.bin fip/bl33.bin
|
||||||
|
|
||||||
|
$ $FIPDIR/blx_fix.sh \
|
||||||
|
fip/bl30.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl30_zero.bin \
|
||||||
|
fip/bl301.bin \
|
||||||
|
fip/bl301_zero.bin \
|
||||||
|
fip/bl30_new.bin \
|
||||||
|
bl30
|
||||||
|
|
||||||
|
$ $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
||||||
|
|
||||||
|
$ $FIPDIR/blx_fix.sh \
|
||||||
|
fip/bl2_acs.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl2_zero.bin \
|
||||||
|
fip/bl21.bin \
|
||||||
|
fip/bl21_zero.bin \
|
||||||
|
fip/bl2_new.bin \
|
||||||
|
bl2
|
||||||
|
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bootmk \
|
||||||
|
--output fip/u-boot.bin \
|
||||||
|
--bl2 fip/bl2.n.bin.sig \
|
||||||
|
--bl30 fip/bl30_new.bin.enc \
|
||||||
|
--bl31 fip/bl31.img.enc \
|
||||||
|
--bl33 fip/bl33.bin.enc
|
||||||
|
|
||||||
|
and then write the image to SD with:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ DEV=/dev/your_sd_device
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
||||||
|
|
||||||
|
Note that Amlogic provides aml_encrypt_gxl as a 32-bit x86 binary with no
|
||||||
|
source code. Should you prefer to avoid that, there are open source reverse
|
||||||
|
engineered versions available:
|
||||||
|
|
||||||
|
1. gxlimg <https://github.com/repk/gxlimg>, which comes with a handy
|
||||||
|
Makefile that automates the whole process.
|
||||||
|
2. meson-tools <https://github.com/afaerber/meson-tools>
|
||||||
|
|
||||||
|
However, these community-developed alternatives are not endorsed by or
|
||||||
|
supported by Amlogic.
|
104
doc/board/amlogic/nanopi-k2.rst
Normal file
104
doc/board/amlogic/nanopi-k2.rst
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
U-Boot for NanoPi-K2
|
||||||
|
====================
|
||||||
|
|
||||||
|
NanoPi-K2 is a single board computer manufactured by FriendlyElec
|
||||||
|
with the following specifications:
|
||||||
|
|
||||||
|
- Amlogic S905 ARM Cortex-A53 quad-core SoC @ 1.5GHz
|
||||||
|
- ARM Mali 450 GPU
|
||||||
|
- 2GB DDR3 SDRAM
|
||||||
|
- Gigabit Ethernet
|
||||||
|
- HDMI 2.0 4K/60Hz display
|
||||||
|
- 40-pin GPIO header
|
||||||
|
- 4 x USB 2.0 Host, 1 x USB OTG
|
||||||
|
- eMMC, microSD
|
||||||
|
- Infrared receiver
|
||||||
|
|
||||||
|
Schematics are available on the manufacturer website.
|
||||||
|
|
||||||
|
U-Boot compilation
|
||||||
|
------------------
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ export CROSS_COMPILE=aarch64-none-elf-
|
||||||
|
$ make nanopi-k2_defconfig
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Image creation
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Amlogic doesn't provide sources for the firmware and for tools needed
|
||||||
|
to create the bootloader image, so it is necessary to obtain them from
|
||||||
|
the git tree published by the board vendor:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
||||||
|
$ git clone https://github.com/BayLibre/u-boot.git -b libretech-cc amlogic-u-boot
|
||||||
|
$ git clone https://github.com/friendlyarm/u-boot.git -b nanopi-k2-v2015.01 amlogic-u-boot
|
||||||
|
$ cd amlogic-u-boot
|
||||||
|
$ sed -i 's/aarch64-linux-gnu-/aarch64-none-elf-/' Makefile
|
||||||
|
$ sed -i 's/arm-linux-/arm-none-eabi-/' arch/arm/cpu/armv8/gxb/firmware/scp_task/Makefile
|
||||||
|
$ make nanopi-k2_defconfig
|
||||||
|
$ make
|
||||||
|
$ export FIPDIR=$PWD/fip
|
||||||
|
|
||||||
|
Go back to mainline U-Boot source tree then :
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ mkdir fip
|
||||||
|
|
||||||
|
$ cp $FIPDIR/gxb/bl2.bin fip/
|
||||||
|
$ cp $FIPDIR/gxb/acs.bin fip/
|
||||||
|
$ cp $FIPDIR/gxb/bl21.bin fip/
|
||||||
|
$ cp $FIPDIR/gxb/bl30.bin fip/
|
||||||
|
$ cp $FIPDIR/gxb/bl301.bin fip/
|
||||||
|
$ cp $FIPDIR/gxb/bl31.img fip/
|
||||||
|
$ cp u-boot.bin fip/bl33.bin
|
||||||
|
|
||||||
|
$ $FIPDIR/blx_fix.sh \
|
||||||
|
fip/bl30.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl30_zero.bin \
|
||||||
|
fip/bl301.bin \
|
||||||
|
fip/bl301_zero.bin \
|
||||||
|
fip/bl30_new.bin \
|
||||||
|
bl30
|
||||||
|
|
||||||
|
$ $FIPDIR/fip_create \
|
||||||
|
--bl30 fip/bl30_new.bin \
|
||||||
|
--bl31 fip/bl31.img \
|
||||||
|
--bl33 fip/bl33.bin \
|
||||||
|
fip/fip.bin
|
||||||
|
|
||||||
|
$ python $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
||||||
|
|
||||||
|
$ $FIPDIR/blx_fix.sh \
|
||||||
|
fip/bl2_acs.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl2_zero.bin \
|
||||||
|
fip/bl21.bin \
|
||||||
|
fip/bl21_zero.bin \
|
||||||
|
fip/bl2_new.bin \
|
||||||
|
bl2
|
||||||
|
|
||||||
|
$ cat fip/bl2_new.bin fip/fip.bin > fip/boot_new.bin
|
||||||
|
|
||||||
|
$ $FIPDIR/gxb/aml_encrypt_gxb --bootsig \
|
||||||
|
--input fip/boot_new.bin
|
||||||
|
--output fip/u-boot.bin
|
||||||
|
|
||||||
|
and then write the image to SD with:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ DEV=/dev/your_sd_device
|
||||||
|
$ dd if=fip/u-boot.bin of=$DEV conv=fsync,notrunc bs=512 seek=1
|
@ -1,3 +1,5 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
U-Boot for ODROID-C2
|
U-Boot for ODROID-C2
|
||||||
====================
|
====================
|
||||||
|
|
||||||
@ -16,50 +18,46 @@ Co. Ltd with the following specifications:
|
|||||||
|
|
||||||
Schematics are available on the manufacturer website.
|
Schematics are available on the manufacturer website.
|
||||||
|
|
||||||
Currently the u-boot port supports the following devices:
|
U-Boot compilation
|
||||||
- serial
|
------------------
|
||||||
- eMMC, microSD
|
|
||||||
- Ethernet
|
|
||||||
- I2C
|
|
||||||
- Regulators
|
|
||||||
- Reset controller
|
|
||||||
- Clock controller
|
|
||||||
- ADC
|
|
||||||
|
|
||||||
u-boot compilation
|
.. code-block:: bash
|
||||||
==================
|
|
||||||
|
|
||||||
> export CROSS_COMPILE=aarch64-none-elf-
|
$ export CROSS_COMPILE=aarch64-none-elf-
|
||||||
> make odroid-c2_defconfig
|
$ make odroid-c2_defconfig
|
||||||
> make
|
$ make
|
||||||
|
|
||||||
Image creation
|
Image creation
|
||||||
==============
|
--------------
|
||||||
|
|
||||||
Amlogic doesn't provide sources for the firmware and for tools needed
|
Amlogic doesn't provide sources for the firmware and for tools needed
|
||||||
to create the bootloader image, so it is necessary to obtain them from
|
to create the bootloader image, so it is necessary to obtain them from
|
||||||
the git tree published by the board vendor:
|
the git tree published by the board vendor:
|
||||||
|
|
||||||
> DIR=odroid-c2
|
.. code-block:: bash
|
||||||
> git clone --depth 1 \
|
|
||||||
|
$ DIR=odroid-c2
|
||||||
|
$ git clone --depth 1 \
|
||||||
https://github.com/hardkernel/u-boot.git -b odroidc2-v2015.01 \
|
https://github.com/hardkernel/u-boot.git -b odroidc2-v2015.01 \
|
||||||
$DIR
|
$DIR
|
||||||
> $DIR/fip/fip_create --bl30 $DIR/fip/gxb/bl30.bin \
|
$ $DIR/fip/fip_create --bl30 $DIR/fip/gxb/bl30.bin \
|
||||||
--bl301 $DIR/fip/gxb/bl301.bin \
|
--bl301 $DIR/fip/gxb/bl301.bin \
|
||||||
--bl31 $DIR/fip/gxb/bl31.bin \
|
--bl31 $DIR/fip/gxb/bl31.bin \
|
||||||
--bl33 u-boot.bin \
|
--bl33 u-boot.bin \
|
||||||
$DIR/fip.bin
|
$DIR/fip.bin
|
||||||
> $DIR/fip/fip_create --dump $DIR/fip.bin
|
$ $DIR/fip/fip_create --dump $DIR/fip.bin
|
||||||
> cat $DIR/fip/gxb/bl2.package $DIR/fip.bin > $DIR/boot_new.bin
|
$ cat $DIR/fip/gxb/bl2.package $DIR/fip.bin > $DIR/boot_new.bin
|
||||||
> $DIR/fip/gxb/aml_encrypt_gxb --bootsig \
|
$ $DIR/fip/gxb/aml_encrypt_gxb --bootsig \
|
||||||
--input $DIR/boot_new.bin \
|
--input $DIR/boot_new.bin \
|
||||||
--output $DIR/u-boot.img
|
--output $DIR/u-boot.img
|
||||||
> dd if=$DIR/u-boot.img of=$DIR/u-boot.gxbb bs=512 skip=96
|
$ dd if=$DIR/u-boot.img of=$DIR/u-boot.gxbb bs=512 skip=96
|
||||||
|
|
||||||
and then write the image to SD with:
|
and then write the image to SD with:
|
||||||
|
|
||||||
> DEV=/dev/your_sd_device
|
.. code-block:: bash
|
||||||
> BL1=$DIR/sd_fuse/bl1.bin.hardkernel
|
|
||||||
> dd if=$BL1 of=$DEV conv=fsync bs=1 count=442
|
$ DEV=/dev/your_sd_device
|
||||||
> dd if=$BL1 of=$DEV conv=fsync bs=512 skip=1 seek=1
|
$ BL1=$DIR/sd_fuse/bl1.bin.hardkernel
|
||||||
> dd if=$DIR/u-boot.gxbb of=$DEV conv=fsync bs=512 seek=97
|
$ dd if=$BL1 of=$DEV conv=fsync bs=1 count=442
|
||||||
|
$ dd if=$BL1 of=$DEV conv=fsync bs=512 skip=1 seek=1
|
||||||
|
$ dd if=$DIR/u-boot.gxbb of=$DEV conv=fsync bs=512 seek=97
|
130
doc/board/amlogic/odroid-n2.rst
Normal file
130
doc/board/amlogic/odroid-n2.rst
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
U-Boot for ODROID-N2
|
||||||
|
====================
|
||||||
|
|
||||||
|
ODROID-N2 is a single board computer manufactured by Hardkernel
|
||||||
|
Co. Ltd with the following specifications:
|
||||||
|
|
||||||
|
- Amlogic S922X ARM Cortex-A53 dual-core + Cortex-A73 quad-core SoC
|
||||||
|
- 4GB DDR4 SDRAM
|
||||||
|
- Gigabit Ethernet
|
||||||
|
- HDMI 2.1 4K/60Hz display
|
||||||
|
- 40-pin GPIO header
|
||||||
|
- 4 x USB 3.0 Host, 1 x USB OTG
|
||||||
|
- eMMC, microSD
|
||||||
|
- Infrared receiver
|
||||||
|
|
||||||
|
Schematics are available on the manufacturer website.
|
||||||
|
|
||||||
|
U-Boot compilation
|
||||||
|
------------------
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ export CROSS_COMPILE=aarch64-none-elf-
|
||||||
|
$ make odroid-n2_defconfig
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Image creation
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Amlogic doesn't provide sources for the firmware and for tools needed
|
||||||
|
to create the bootloader image, so it is necessary to obtain them from
|
||||||
|
the git tree published by the board vendor:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
||||||
|
|
||||||
|
$ DIR=odroid-n2
|
||||||
|
$ git clone --depth 1 \
|
||||||
|
https://github.com/hardkernel/u-boot.git -b odroidn2-v2015.01 \
|
||||||
|
$DIR
|
||||||
|
|
||||||
|
$ cd odroid-n2
|
||||||
|
$ make odroidn2_defconfig
|
||||||
|
$ make
|
||||||
|
$ export UBOOTDIR=$PWD
|
||||||
|
|
||||||
|
Go back to mainline U-Boot source tree then :
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ mkdir fip
|
||||||
|
|
||||||
|
$ wget https://github.com/BayLibre/u-boot/releases/download/v2017.11-libretech-cc/blx_fix_g12a.sh -O fip/blx_fix.sh
|
||||||
|
$ cp $UBOOTDIR/build/scp_task/bl301.bin fip/
|
||||||
|
$ cp $UBOOTDIR/build/board/hardkernel/odroidn2/firmware/acs.bin fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/bl2.bin fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/bl30.bin fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/bl31.img fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/ddr3_1d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/ddr4_1d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/ddr4_2d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/diag_lpddr4.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/lpddr4_1d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/lpddr4_2d.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/piei.fw fip/
|
||||||
|
$ cp $UBOOTDIR/fip/g12b/aml_ddr.fw fip/
|
||||||
|
$ cp u-boot.bin fip/bl33.bin
|
||||||
|
|
||||||
|
$ sh fip/blx_fix.sh \
|
||||||
|
fip/bl30.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl30_zero.bin \
|
||||||
|
fip/bl301.bin \
|
||||||
|
fip/bl301_zero.bin \
|
||||||
|
fip/bl30_new.bin \
|
||||||
|
bl30
|
||||||
|
|
||||||
|
$ sh fip/blx_fix.sh \
|
||||||
|
fip/bl2.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl2_zero.bin \
|
||||||
|
fip/acs.bin \
|
||||||
|
fip/bl21_zero.bin \
|
||||||
|
fip/bl2_new.bin \
|
||||||
|
bl2
|
||||||
|
|
||||||
|
$ $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl30sig --input fip/bl30_new.bin \
|
||||||
|
--output fip/bl30_new.bin.g12a.enc \
|
||||||
|
--level v3
|
||||||
|
$ $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input fip/bl30_new.bin.g12a.enc \
|
||||||
|
--output fip/bl30_new.bin.enc \
|
||||||
|
--level v3 --type bl30
|
||||||
|
$ $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input fip/bl31.img \
|
||||||
|
--output fip/bl31.img.enc \
|
||||||
|
--level v3 --type bl31
|
||||||
|
$ $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input fip/bl33.bin --compress lz4 \
|
||||||
|
--output fip/bl33.bin.enc \
|
||||||
|
--level v3 --type bl33 --compress lz4
|
||||||
|
$ $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl2sig --input fip/bl2_new.bin \
|
||||||
|
--output fip/bl2.n.bin.sig
|
||||||
|
$ $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bootmk \
|
||||||
|
--output fip/u-boot.bin \
|
||||||
|
--bl2 fip/bl2.n.bin.sig \
|
||||||
|
--bl30 fip/bl30_new.bin.enc \
|
||||||
|
--bl31 fip/bl31.img.enc \
|
||||||
|
--bl33 fip/bl33.bin.enc \
|
||||||
|
--ddrfw1 fip/ddr4_1d.fw \
|
||||||
|
--ddrfw2 fip/ddr4_2d.fw \
|
||||||
|
--ddrfw3 fip/ddr3_1d.fw \
|
||||||
|
--ddrfw4 fip/piei.fw \
|
||||||
|
--ddrfw5 fip/lpddr4_1d.fw \
|
||||||
|
--ddrfw6 fip/lpddr4_2d.fw \
|
||||||
|
--ddrfw7 fip/diag_lpddr4.fw \
|
||||||
|
--ddrfw8 fip/aml_ddr.fw \
|
||||||
|
--level v3
|
||||||
|
|
||||||
|
and then write the image to SD with:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ DEV=/dev/your_sd_device
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
102
doc/board/amlogic/p200.rst
Normal file
102
doc/board/amlogic/p200.rst
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
U-Boot for Amlogic P200
|
||||||
|
=======================
|
||||||
|
|
||||||
|
P200 is a reference board manufactured by Amlogic with the following
|
||||||
|
specifications:
|
||||||
|
|
||||||
|
- Amlogic S905 ARM Cortex-A53 quad-core SoC @ 1.5GHz
|
||||||
|
- ARM Mali 450 GPU
|
||||||
|
- 2GB DDR3 SDRAM
|
||||||
|
- Gigabit Ethernet
|
||||||
|
- HDMI 2.0 4K/60Hz display
|
||||||
|
- 2 x USB 2.0 Host
|
||||||
|
- eMMC, microSD
|
||||||
|
- Infrared receiver
|
||||||
|
- SDIO WiFi Module
|
||||||
|
- CVBS+Stereo Audio Jack
|
||||||
|
|
||||||
|
Schematics are available from Amlogic on demand.
|
||||||
|
|
||||||
|
U-Boot compilation
|
||||||
|
------------------
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ export CROSS_COMPILE=aarch64-none-elf-
|
||||||
|
$ make p200_defconfig
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Image creation
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Amlogic doesn't provide sources for the firmware and for tools needed
|
||||||
|
to create the bootloader image, so it is necessary to obtain them from
|
||||||
|
the git tree published by the board vendor:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
||||||
|
$ tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
|
||||||
|
$ export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
|
||||||
|
$ git clone https://github.com/BayLibre/u-boot.git -b n-amlogic-openlinux-20170606 amlogic-u-boot
|
||||||
|
$ cd amlogic-u-boot
|
||||||
|
$ make gxb_p200_v1_defconfig
|
||||||
|
$ make
|
||||||
|
$ export FIPDIR=$PWD/fip
|
||||||
|
|
||||||
|
Go back to mainline U-boot source tree then :
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ mkdir fip
|
||||||
|
|
||||||
|
$ cp $FIPDIR/gxl/bl2.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/acs.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl21.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl30.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl301.bin fip/
|
||||||
|
$ cp $FIPDIR/gxl/bl31.img fip/
|
||||||
|
$ cp u-boot.bin fip/bl33.bin
|
||||||
|
|
||||||
|
$ $FIPDIR/blx_fix.sh \
|
||||||
|
fip/bl30.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl30_zero.bin \
|
||||||
|
fip/bl301.bin \
|
||||||
|
fip/bl301_zero.bin \
|
||||||
|
fip/bl30_new.bin \
|
||||||
|
bl30
|
||||||
|
|
||||||
|
$ $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
|
||||||
|
|
||||||
|
$ $FIPDIR/blx_fix.sh \
|
||||||
|
fip/bl2_acs.bin \
|
||||||
|
fip/zero_tmp \
|
||||||
|
fip/bl2_zero.bin \
|
||||||
|
fip/bl21.bin \
|
||||||
|
fip/bl21_zero.bin \
|
||||||
|
fip/bl2_new.bin \
|
||||||
|
bl2
|
||||||
|
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
|
||||||
|
$ $FIPDIR/gxl/aml_encrypt_gxl --bootmk \
|
||||||
|
--output fip/u-boot.bin \
|
||||||
|
--bl2 fip/bl2.n.bin.sig \
|
||||||
|
--bl30 fip/bl30_new.bin.enc \
|
||||||
|
--bl31 fip/bl31.img.enc \
|
||||||
|
--bl33 fip/bl33.bin.enc
|
||||||
|
|
||||||
|
and then write the image to SD with:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ DEV=/dev/your_sd_device
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
||||||
|
$ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user