mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 00:32:04 +02:00
Merge branch 'master' of git://git.denx.de/u-boot into master
* 'master' of git://git.denx.de/u-boot: (117 commits) Link failure with CONFIG_SPL and CONFIG_I2C_MUX_PCA954x i2c: octeon_i2c: Misc fixes for ARM Octeon TX2 support cmd: provide command sbi configs: defconfig for Sipeed Maix in S-mode riscv: fix building with CONFIG_SPL_SMP=n clk: kendryte/pll.h: do not redefine nop() ram: sifive: Fix compiler warnings for 32-bit riscv: fu540: Use correct API to get L2 cache controller base address xen: Code style conformity board: xen: Remove unnecessary CONFIG_INITRD_TAG and CONFIG_CMDLINE_TAG board: xen: Remove CONFIG_CMD_RUN define and clean xenguest_arm64_defconfig MAINTAINERS: Add maintainers to XEN section board: xen: Remove unnecessary CONFIG_BOARD_EARLY_INIT_F define and board_early_init_f function arm: dts: mt7623: add USB nodes arm: dts: mt7622: add USB nodes arm: dts: rename mt7622-bpi-r64.dts clk: mt7622: add needed clocks for ssusb-node ahci: mediatek: fix copyright and author-lines reset: drop unnecessary comment for pciesys phy: mtk-tphy: make shared reg optional for v1 ...
This commit is contained in:
16
MAINTAINERS
16
MAINTAINERS
@@ -1097,6 +1097,22 @@ T: git https://gitlab.denx.de/u-boot/custodians/u-boot-x86.git
|
||||
F: arch/x86/
|
||||
F: cmd/x86/
|
||||
|
||||
XEN
|
||||
M: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
|
||||
M: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
|
||||
S: Maintained
|
||||
F: arch/arm/cpu/armv8/xen/
|
||||
F: arch/arm/include/asm/xen.h
|
||||
F: arch/arm/include/asm/xen/
|
||||
F: cmd/pvblock.c
|
||||
F: drivers/serial/serial_xen.c
|
||||
F: drivers/xen/
|
||||
F: include/pvblock.h
|
||||
F: include/xen/
|
||||
F: include/xen.h
|
||||
F: lib/sscanf.c
|
||||
F: test/lib/sscanf.c
|
||||
|
||||
XTENSA
|
||||
M: Max Filippov <jcmvbkbc@gmail.com>
|
||||
S: Maintained
|
||||
|
42
README
42
README
@@ -1250,48 +1250,6 @@ The following options need to be configured:
|
||||
Enables an 'i2c edid' command which can read EDID
|
||||
information over I2C from an attached LCD display.
|
||||
|
||||
- Splash Screen Support: CONFIG_SPLASH_SCREEN
|
||||
|
||||
If this option is set, the environment is checked for
|
||||
a variable "splashimage". If found, the usual display
|
||||
of logo, copyright and system information on the LCD
|
||||
is suppressed and the BMP image at the address
|
||||
specified in "splashimage" is loaded instead. The
|
||||
console is redirected to the "nulldev", too. This
|
||||
allows for a "silent" boot where a splash screen is
|
||||
loaded very quickly after power-on.
|
||||
|
||||
CONFIG_SPLASHIMAGE_GUARD
|
||||
|
||||
If this option is set, then U-Boot will prevent the environment
|
||||
variable "splashimage" from being set to a problematic address
|
||||
(see doc/README.displaying-bmps).
|
||||
This option is useful for targets where, due to alignment
|
||||
restrictions, an improperly aligned BMP image will cause a data
|
||||
abort. If you think you will not have problems with unaligned
|
||||
accesses (for example because your toolchain prevents them)
|
||||
there is no need to set this option.
|
||||
|
||||
CONFIG_SPLASH_SCREEN_ALIGN
|
||||
|
||||
If this option is set the splash image can be freely positioned
|
||||
on the screen. Environment variable "splashpos" specifies the
|
||||
position as "x,y". If a positive number is given it is used as
|
||||
number of pixel from left/top. If a negative number is given it
|
||||
is used as number of pixel from right/bottom. You can also
|
||||
specify 'm' for centering the image.
|
||||
|
||||
Example:
|
||||
setenv splashpos m,m
|
||||
=> image at center of screen
|
||||
|
||||
setenv splashpos 30,20
|
||||
=> image at x = 30 and y = 20
|
||||
|
||||
setenv splashpos -10,m
|
||||
=> vertically centered image
|
||||
at x = dspWidth - bmpWidth - 9
|
||||
|
||||
- Gzip compressed BMP image support: CONFIG_VIDEO_BMP_GZIP
|
||||
|
||||
If this option is set, additionally to standard BMP
|
||||
|
@@ -1085,6 +1085,7 @@ config ARCH_VERSAL
|
||||
select DM_SERIAL
|
||||
select OF_CONTROL
|
||||
imply BOARD_LATE_INIT
|
||||
imply ENV_VARS_UBOOT_RUNTIME_CONFIG
|
||||
|
||||
config ARCH_VF610
|
||||
bool "Freescale Vybrid"
|
||||
@@ -1120,6 +1121,7 @@ config ARCH_ZYNQ
|
||||
imply CMD_CLK
|
||||
imply CMD_DM
|
||||
imply CMD_SPL
|
||||
imply ENV_VARS_UBOOT_RUNTIME_CONFIG
|
||||
imply FAT_WRITE
|
||||
|
||||
config ARCH_ZYNQMP_R5
|
||||
@@ -1159,6 +1161,7 @@ config ARCH_ZYNQMP
|
||||
select ZYNQMP_IPI
|
||||
imply BOARD_LATE_INIT
|
||||
imply CMD_DM
|
||||
imply ENV_VARS_UBOOT_RUNTIME_CONFIG
|
||||
imply FAT_WRITE
|
||||
imply MP
|
||||
imply DM_USB_GADGET
|
||||
@@ -1195,6 +1198,15 @@ config TARGET_VEXPRESS64_JUNO
|
||||
select USB
|
||||
select DM_USB
|
||||
|
||||
config TARGET_TOTAL_COMPUTE
|
||||
bool "Support Total Compute Platform"
|
||||
select ARM64
|
||||
select PL01X_SERIAL
|
||||
select DM
|
||||
select DM_SERIAL
|
||||
select DM_MMC
|
||||
select DM_GPIO
|
||||
|
||||
config TARGET_LS2080A_EMU
|
||||
bool "Support ls2080a_emu"
|
||||
select ARCH_LS2080A
|
||||
@@ -1901,6 +1913,8 @@ source "arch/arm/mach-imx/Kconfig"
|
||||
|
||||
source "arch/arm/mach-nexell/Kconfig"
|
||||
|
||||
source "board/armltd/total_compute/Kconfig"
|
||||
|
||||
source "board/bosch/shc/Kconfig"
|
||||
source "board/bosch/guardian/Kconfig"
|
||||
source "board/CarMediaLab/flea3/Kconfig"
|
||||
@@ -1962,6 +1976,7 @@ source "board/vscom/baltos/Kconfig"
|
||||
source "board/xilinx/Kconfig"
|
||||
source "board/xilinx/zynq/Kconfig"
|
||||
source "board/xilinx/zynqmp/Kconfig"
|
||||
source "board/xilinx/versal/Kconfig"
|
||||
source "board/phytium/durian/Kconfig"
|
||||
source "board/xen/xenguest_arm64/Kconfig"
|
||||
|
||||
|
@@ -962,7 +962,7 @@ dtb-$(CONFIG_SOC_K3_J721E) += k3-j721e-common-proc-board.dtb \
|
||||
dtb-$(CONFIG_ARCH_MEDIATEK) += \
|
||||
mt7622-rfb.dtb \
|
||||
mt7623a-unielec-u7623-02-emmc.dtb \
|
||||
mt7622-bpi-r64.dtb \
|
||||
mt7622-bananapi-bpi-r64.dtb \
|
||||
mt7623n-bananapi-bpi-r2.dtb \
|
||||
mt7629-rfb.dtb \
|
||||
mt8512-bm1-emmc.dtb \
|
||||
@@ -981,6 +981,8 @@ dtb-$(CONFIG_TARGET_VEXPRESS_CA5X2) += vexpress-v2p-ca5s.dtb
|
||||
dtb-$(CONFIG_TARGET_VEXPRESS_CA9X4) += vexpress-v2p-ca9.dtb
|
||||
dtb-$(CONFIG_TARGET_VEXPRESS_CA15_TC2) += vexpress-v2p-ca15_a7.dtb
|
||||
|
||||
dtb-$(CONFIG_TARGET_TOTAL_COMPUTE) += total_compute.dtb
|
||||
|
||||
dtb-$(CONFIG_TARGET_DURIAN) += phytium-durian.dtb
|
||||
|
||||
dtb-$(CONFIG_TARGET_PRESIDIO_ASIC) += ca-presidio-engboard.dtb
|
||||
|
@@ -51,7 +51,7 @@
|
||||
/* microSD card slot */
|
||||
&sdhci1 {
|
||||
status = "okay";
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
clock-frequency = <199998000>;
|
||||
max-frequency = <50000000>;
|
||||
no-1-8-v;
|
||||
|
@@ -51,6 +51,6 @@
|
||||
/* Micron MTFC8GAKAJCN-4M 8 GB eMMC */
|
||||
&sdhci0 {
|
||||
status = "okay";
|
||||
xlnx,mio_bank = <0>;
|
||||
xlnx,mio-bank = <0>;
|
||||
clock-frequency = <199998000>;
|
||||
};
|
||||
|
@@ -24,15 +24,15 @@
|
||||
&eeprom {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
vpd {
|
||||
offset = <0>;
|
||||
size = <1022>;
|
||||
vpd@0 {
|
||||
reg = <0 1022>;
|
||||
};
|
||||
|
||||
bootcount: bootcount {
|
||||
offset = <1022>;
|
||||
size = <2>;
|
||||
bootcount: bootcount@1022 {
|
||||
reg = <1022 2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@@ -23,15 +23,15 @@
|
||||
&eeprom {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
vpd {
|
||||
offset = <0>;
|
||||
size = <1022>;
|
||||
vpd@0 {
|
||||
reg = <0 1022>;
|
||||
};
|
||||
|
||||
bootcount: bootcount {
|
||||
offset = <1022>;
|
||||
size = <2>;
|
||||
reg = <1022 2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@@ -244,3 +244,11 @@
|
||||
output-low;
|
||||
};
|
||||
};
|
||||
|
||||
&ssusb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&u3phy {
|
||||
status = "okay";
|
||||
};
|
@@ -222,3 +222,11 @@
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
|
||||
&ssusb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&u3phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
@@ -192,6 +192,14 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssusbsys: ssusbsys@1a000000 {
|
||||
compatible = "mediatek,mt7622-ssusbsys",
|
||||
"syscon";
|
||||
reg = <0x1a000000 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
pciesys: pciesys@1a100800 {
|
||||
compatible = "mediatek,mt7622-pciesys", "syscon";
|
||||
reg = <0x1a100800 0x1000>;
|
||||
@@ -302,6 +310,54 @@
|
||||
};
|
||||
};
|
||||
|
||||
ssusb: usb@1a0c0000 {
|
||||
compatible = "mediatek,mt7622-xhci",
|
||||
"mediatek,mtk-xhci";
|
||||
reg = <0x1a0c0000 0x01000>,
|
||||
<0x1a0c4700 0x0100>;
|
||||
reg-names = "mac", "ippc";
|
||||
interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_LOW>;
|
||||
power-domains = <&scpsys MT7629_POWER_DOMAIN_HIF1>;
|
||||
clocks = <&ssusbsys CLK_SSUSB_SYS_EN>,
|
||||
<&ssusbsys CLK_SSUSB_REF_EN>,
|
||||
<&ssusbsys CLK_SSUSB_MCU_EN>,
|
||||
<&ssusbsys CLK_SSUSB_DMA_EN>;
|
||||
clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck";
|
||||
phys = <&u2port0 PHY_TYPE_USB2>,
|
||||
<&u3port0 PHY_TYPE_USB3>,
|
||||
<&u2port1 PHY_TYPE_USB2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
u3phy: usb-phy@1a0c4000 {
|
||||
compatible = "mediatek,mt7622-u3phy",
|
||||
"mediatek,generic-tphy-v1";
|
||||
reg = <0x1a0c4000 0x700>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
status = "disabled";
|
||||
|
||||
u2port0: usb-phy@1a0c4800 {
|
||||
reg = <0x1a0c4800 0x0100>;
|
||||
#phy-cells = <1>;
|
||||
clocks = <&ssusbsys CLK_SSUSB_U2_PHY_EN>;
|
||||
clock-names = "ref";
|
||||
};
|
||||
|
||||
u3port0: usb-phy@1a0c4900 {
|
||||
reg = <0x1a0c4900 0x0700>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
u2port1: usb-phy@1a0c5000 {
|
||||
reg = <0x1a0c5000 0x0100>;
|
||||
#phy-cells = <1>;
|
||||
clocks = <&ssusbsys CLK_SSUSB_U2_PHY_1P_EN>;
|
||||
clock-names = "ref";
|
||||
};
|
||||
};
|
||||
|
||||
ethsys: syscon@1b000000 {
|
||||
compatible = "mediatek,mt7622-ethsys", "syscon";
|
||||
reg = <0x1b000000 0x1000>;
|
||||
|
@@ -352,6 +352,52 @@
|
||||
};
|
||||
};
|
||||
|
||||
usb1: usb@1a1c0000 {
|
||||
compatible = "mediatek,mt7623-xhci", "mediatek,mtk-xhci";
|
||||
reg = <0x1a1c0000 0x1000>, <0x1a1c4700 0x0100>;
|
||||
reg-names = "mac", "ippc";
|
||||
power-domains = <&scpsys MT7623_POWER_DOMAIN_HIF>;
|
||||
clocks = <&hifsys CLK_HIFSYS_USB0PHY>, <&topckgen CLK_TOP_ETHIF_SEL>;
|
||||
clock-names = "sys_ck", "ref_ck";
|
||||
phys = <&u2port0 PHY_TYPE_USB2>, <&u3port0 PHY_TYPE_USB3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
u3phy1: usb-phy@1a1c4000 {
|
||||
compatible = "mediatek,mt7623-tphy", "mediatek,generic-tphy-v1";
|
||||
|
||||
reg = <0x1a1c4000 0x0700>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
status = "disabled";
|
||||
|
||||
u2port0: usb-phy@1a1c4800 {
|
||||
reg = <0x1a1c4800 0x0100>;
|
||||
#phy-cells = <1>;
|
||||
clocks = <&topckgen CLK_TOP_USB_PHY48M>;
|
||||
clock-names = "ref";
|
||||
};
|
||||
|
||||
u3port0: usb-phy@1a1c4900 {
|
||||
reg = <0x1a1c4900 0x0700>;
|
||||
#phy-cells = <1>;
|
||||
clocks = <&clk26m>;
|
||||
clock-names = "ref";
|
||||
};
|
||||
};
|
||||
|
||||
usb2: usb@1a240000 {
|
||||
compatible = "mediatek,mt7623-xhci", "mediatek,mtk-xhci";
|
||||
reg = <0x1a240000 0x1000>, <0x1a244700 0x0100>;
|
||||
reg-names = "mac", "ippc";
|
||||
power-domains = <&scpsys MT7623_POWER_DOMAIN_HIF>;
|
||||
clocks = <&hifsys CLK_HIFSYS_USB1PHY>, <&topckgen CLK_TOP_ETHIF_SEL>;
|
||||
clock-names = "sys_ck", "ref_ck";
|
||||
phys = <&u2port1 PHY_TYPE_USB2>, <&u3port1 PHY_TYPE_USB3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
u3phy2: usb-phy@1a244000 {
|
||||
compatible = "mediatek,generic-tphy-v1";
|
||||
reg = <0x1a244000 0x0700>;
|
||||
|
@@ -248,3 +248,19 @@
|
||||
pinctrl-0 = <&uart2_pins_a>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&u3phy1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&u3phy2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
@@ -37,3 +37,16 @@
|
||||
dr_mode = "host";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdmmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
bus-width = <4>;
|
||||
cap-mmc-highspeed;
|
||||
cap-sd-highspeed;
|
||||
cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
|
||||
disable-wp;
|
||||
max-frequency = <150000000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
48
arch/arm/dts/total_compute.dts
Normal file
48
arch/arm/dts/total_compute.dts
Normal file
@@ -0,0 +1,48 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* (C) Copyright 2020 Arm Limited
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
model = "total_compute";
|
||||
compatible = "arm,total_compute";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
sysreg: sysreg@1c010000 {
|
||||
compatible = "arm,vexpress-sysreg";
|
||||
reg = <0x0 0x001c010000 0x0 0x1000>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
fixed_3v3: v2m-3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "3V3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
mmci@1c050000 {
|
||||
compatible = "arm,pl180", "arm,primecell";
|
||||
reg = <0x0 0x001c050000 0x0 0x1000>;
|
||||
cd-gpios = <&sysreg 0 0>;
|
||||
arm,primecell-periphid = <0x00880180>;
|
||||
wp-gpios = <&sysreg 1 0>;
|
||||
bus-width = <8>;
|
||||
max-frequency = <12000000>;
|
||||
vmmc-supply = <&fixed_3v3>;
|
||||
clocks = <&clock24mhz>, <&clock24mhz>;
|
||||
clock-names = "mclk", "apb_pclk";
|
||||
};
|
||||
|
||||
clock24mhz: clock24mhz {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <24000000>;
|
||||
clock-output-names = "bp:clock24mhz";
|
||||
};
|
||||
};
|
@@ -43,7 +43,7 @@
|
||||
clocks = <&clk25 &clk25>;
|
||||
xlnx,device_id = <0>;
|
||||
no-1-8-v;
|
||||
xlnx,mio_bank = <0>;
|
||||
xlnx,mio-bank = <0>;
|
||||
#stream-id-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
@@ -43,7 +43,7 @@
|
||||
clocks = <&clk25 &clk25>;
|
||||
xlnx,device_id = <1>;
|
||||
no-1-8-v;
|
||||
xlnx,mio_bank = <0>;
|
||||
xlnx,mio-bank = <0>;
|
||||
#stream-id-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
@@ -131,7 +131,7 @@
|
||||
status = "okay";
|
||||
no-1-8-v;
|
||||
disable-wp;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
};
|
||||
|
||||
&gem0 {
|
||||
|
@@ -70,7 +70,7 @@
|
||||
non-removable;
|
||||
disable-wp;
|
||||
bus-width = <8>;
|
||||
xlnx,mio_bank = <0>;
|
||||
xlnx,mio-bank = <0>;
|
||||
};
|
||||
|
||||
&uart0 { /* uart0 MIO38-39 */
|
||||
|
@@ -89,7 +89,7 @@
|
||||
non-removable;
|
||||
disable-wp;
|
||||
bus-width = <8>;
|
||||
xlnx,mio_bank = <0>; /* FIXME tap delay */
|
||||
xlnx,mio-bank = <0>; /* FIXME tap delay */
|
||||
};
|
||||
|
||||
&uart0 { /* uart0 MIO38-39 */
|
||||
@@ -106,7 +106,7 @@
|
||||
status = "disable";
|
||||
no-1-8-v;
|
||||
disable-wp;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
};
|
||||
|
||||
&gem0 {
|
||||
|
@@ -85,7 +85,7 @@
|
||||
non-removable;
|
||||
disable-wp;
|
||||
bus-width = <8>;
|
||||
xlnx,mio_bank = <0>; /* FIXME tap delay */
|
||||
xlnx,mio-bank = <0>; /* FIXME tap delay */
|
||||
};
|
||||
|
||||
&uart0 { /* uart0 MIO38-39 */
|
||||
@@ -102,7 +102,7 @@
|
||||
status = "disable";
|
||||
no-1-8-v;
|
||||
disable-wp;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
};
|
||||
|
||||
&gem0 {
|
||||
|
@@ -85,7 +85,7 @@
|
||||
non-removable;
|
||||
disable-wp;
|
||||
bus-width = <8>;
|
||||
xlnx,mio_bank = <0>; /* FIXME tap delay */
|
||||
xlnx,mio-bank = <0>; /* FIXME tap delay */
|
||||
};
|
||||
|
||||
&uart0 { /* uart0 MIO38-39 */
|
||||
@@ -102,7 +102,7 @@
|
||||
status = "disable";
|
||||
no-1-8-v;
|
||||
disable-wp;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
};
|
||||
|
||||
&gem0 {
|
||||
|
@@ -50,7 +50,7 @@
|
||||
non-removable;
|
||||
disable-wp;
|
||||
bus-width = <8>;
|
||||
xlnx,mio_bank = <0>;
|
||||
xlnx,mio-bank = <0>;
|
||||
};
|
||||
|
||||
&uart0 { /* uart0 MIO38-39 */
|
||||
@@ -67,7 +67,7 @@
|
||||
status = "okay";
|
||||
no-1-8-v;
|
||||
disable-wp;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
};
|
||||
|
||||
&gem0 {
|
||||
|
@@ -97,13 +97,13 @@
|
||||
non-removable;
|
||||
disable-wp; /* We don't have a write-protect detection */
|
||||
bus-width = <8>;
|
||||
xlnx,mio_bank = <0>;
|
||||
xlnx,mio-bank = <0>;
|
||||
};
|
||||
|
||||
/* SD1 with level shifter */
|
||||
&sdhci1 {
|
||||
status = "okay";
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
disable-wp; /* We don't have a write-protect detection */
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
@@ -148,7 +148,7 @@
|
||||
&sdhci0 {
|
||||
status = "okay";
|
||||
bus-width = <8>;
|
||||
xlnx,mio_bank = <0>;
|
||||
xlnx,mio-bank = <0>;
|
||||
};
|
||||
|
||||
/* SD1 with level shifter */
|
||||
@@ -158,7 +158,7 @@
|
||||
* This property should be removed for supporting UHS mode
|
||||
*/
|
||||
no-1-8-v;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
|
@@ -259,13 +259,13 @@
|
||||
status = "okay";
|
||||
no-1-8-v;
|
||||
disable-wp;
|
||||
xlnx,mio_bank = <0>;
|
||||
xlnx,mio-bank = <0>;
|
||||
};
|
||||
|
||||
&sdhci1 {
|
||||
status = "okay";
|
||||
bus-width = <0x4>;
|
||||
xlnx,mio_bank = <0>;
|
||||
xlnx,mio-bank = <0>;
|
||||
non-removable;
|
||||
disable-wp;
|
||||
cap-power-off-card;
|
||||
|
@@ -660,7 +660,7 @@
|
||||
* removed for supporting UHS mode
|
||||
*/
|
||||
no-1-8-v;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
};
|
||||
|
||||
&serdes {
|
||||
|
@@ -249,7 +249,7 @@
|
||||
&sdhci1 {
|
||||
status = "okay";
|
||||
no-1-8-v;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
disable-wp;
|
||||
};
|
||||
|
||||
|
@@ -262,7 +262,7 @@
|
||||
&sdhci1 {
|
||||
status = "okay";
|
||||
no-1-8-v;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
disable-wp;
|
||||
};
|
||||
|
||||
|
@@ -657,7 +657,7 @@
|
||||
* This property should be removed for supporting UHS mode
|
||||
*/
|
||||
no-1-8-v;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
};
|
||||
|
||||
&serdes {
|
||||
|
@@ -568,7 +568,7 @@
|
||||
* This property should be removed for supporting UHS mode
|
||||
*/
|
||||
no-1-8-v;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
};
|
||||
|
||||
&serdes {
|
||||
|
@@ -80,5 +80,5 @@
|
||||
* removed for supporting UHS mode
|
||||
*/
|
||||
no-1-8-v;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
};
|
||||
|
@@ -245,5 +245,5 @@
|
||||
* This property should be removed for supporting UHS mode
|
||||
*/
|
||||
no-1-8-v;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
};
|
||||
|
@@ -565,7 +565,7 @@
|
||||
* This property should be removed for supporting UHS mode
|
||||
*/
|
||||
no-1-8-v;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
};
|
||||
|
||||
&serdes {
|
||||
|
@@ -569,7 +569,7 @@
|
||||
* This property should be removed for supporting UHS mode
|
||||
*/
|
||||
no-1-8-v;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
};
|
||||
|
||||
&serdes {
|
||||
|
@@ -3,7 +3,7 @@
|
||||
!defined(CONFIG_ARCH_BCM6858) && !defined(CONFIG_ARCH_BCM63158) && \
|
||||
!defined(CONFIG_ARCH_ROCKCHIP) && !defined(CONFIG_ARCH_ASPEED) && \
|
||||
!defined(CONFIG_ARCH_U8500) && !defined(CONFIG_CORTINA_PLATFORM) && \
|
||||
!defined(CONFIG_TARGET_BCMNS3)
|
||||
!defined(CONFIG_TARGET_BCMNS3) && !defined(CONFIG_TARGET_TOTAL_COMPUTE)
|
||||
#include <asm/arch/gpio.h>
|
||||
#endif
|
||||
#include <asm-generic/gpio.h>
|
||||
|
@@ -58,7 +58,6 @@
|
||||
* Ethernet Driver configuration
|
||||
*/
|
||||
#ifdef CONFIG_CMD_NET
|
||||
#define CONFIG_NETCONSOLE /* include NetConsole support */
|
||||
#define CONFIG_SYS_FAULT_ECHO_LINK_DOWN /* detect link using phy */
|
||||
#define CONFIG_RESET_PHY_R /* use reset_phy() to init mv8831116 PHY */
|
||||
#endif /* CONFIG_CMD_NET */
|
||||
|
@@ -6,6 +6,7 @@
|
||||
#include <dm.h>
|
||||
#include <hang.h>
|
||||
#include <init.h>
|
||||
#include <led.h>
|
||||
#include <log.h>
|
||||
#include <syscon.h>
|
||||
#include <asm/io.h>
|
||||
@@ -105,6 +106,7 @@ int rk_board_late_init(void)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SPL_BUILD
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
static int setup_led(void)
|
||||
{
|
||||
#ifdef CONFIG_SPL_LED
|
||||
@@ -120,7 +122,7 @@ static int setup_led(void)
|
||||
debug("%s: get=%d\n", __func__, ret);
|
||||
return ret;
|
||||
}
|
||||
ret = led_set_on(dev, 1);
|
||||
ret = led_set_state(dev, LEDST_ON);
|
||||
if (ret)
|
||||
return ret;
|
||||
#endif
|
||||
|
@@ -8,7 +8,5 @@ enum {
|
||||
TCM_SPLIT,
|
||||
};
|
||||
|
||||
#define PAYLOAD_ARG_CNT 4U
|
||||
|
||||
void tcm_init(u8 mode);
|
||||
void mem_map_fill(void);
|
||||
|
@@ -7,8 +7,6 @@
|
||||
#ifndef _ASM_ARCH_SYS_PROTO_H
|
||||
#define _ASM_ARCH_SYS_PROTO_H
|
||||
|
||||
#define PAYLOAD_ARG_CNT 5
|
||||
|
||||
#define ZYNQMP_CSU_SILICON_VER_MASK 0xF
|
||||
#define KEY_PTR_LEN 32
|
||||
|
||||
@@ -51,7 +49,6 @@ int zynqmp_mmio_read(const u32 address, u32 *value);
|
||||
|
||||
void initialize_tcm(bool mode);
|
||||
void mem_map_fill(void);
|
||||
int chip_id(unsigned char id);
|
||||
#if defined(CONFIG_SYS_MEM_RSVD_FOR_MMU) || defined(CONFIG_DEFINE_TCM_OCM_MMAP)
|
||||
void tcm_init(u8 mode);
|
||||
#endif
|
||||
|
@@ -35,7 +35,8 @@ int cache_enable_ways(void)
|
||||
if (node < 0)
|
||||
return node;
|
||||
|
||||
base = fdtdec_get_addr(blob, node, "reg");
|
||||
base = fdtdec_get_addr_size_auto_parent(blob, 0, node, "reg", 0,
|
||||
NULL, false);
|
||||
if (base == FDT_ADDR_T_NONE)
|
||||
return FDT_ADDR_T_NONE;
|
||||
|
||||
|
@@ -115,6 +115,8 @@ void sbi_remote_sfence_vma_asid(const unsigned long *hart_mask,
|
||||
unsigned long asid);
|
||||
#endif
|
||||
void sbi_set_timer(uint64_t stime_value);
|
||||
long sbi_get_spec_version(void);
|
||||
int sbi_get_impl_id(void);
|
||||
int sbi_probe_extension(int ext);
|
||||
|
||||
#endif
|
||||
|
@@ -53,6 +53,42 @@ void sbi_set_timer(uint64_t stime_value)
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* sbi_get_spec_version() - get current SBI specification version
|
||||
*
|
||||
* Return: version id
|
||||
*/
|
||||
long sbi_get_spec_version(void)
|
||||
{
|
||||
struct sbiret ret;
|
||||
|
||||
ret = sbi_ecall(SBI_EXT_BASE, SBI_EXT_BASE_GET_SPEC_VERSION,
|
||||
0, 0, 0, 0, 0, 0);
|
||||
if (!ret.error)
|
||||
if (ret.value)
|
||||
return ret.value;
|
||||
|
||||
return -ENOTSUPP;
|
||||
}
|
||||
|
||||
/**
|
||||
* sbi_get_impl_id() - get SBI implementation ID
|
||||
*
|
||||
* Return: implementation ID
|
||||
*/
|
||||
int sbi_get_impl_id(void)
|
||||
{
|
||||
struct sbiret ret;
|
||||
|
||||
ret = sbi_ecall(SBI_EXT_BASE, SBI_EXT_BASE_GET_IMP_ID,
|
||||
0, 0, 0, 0, 0, 0);
|
||||
if (!ret.error)
|
||||
if (ret.value)
|
||||
return ret.value;
|
||||
|
||||
return -ENOTSUPP;
|
||||
}
|
||||
|
||||
/**
|
||||
* sbi_probe_extension() - Check if an SBI extension ID is supported or not.
|
||||
* @extid: The extension ID to be probed.
|
||||
|
@@ -39,7 +39,7 @@ void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
|
||||
{
|
||||
typedef void __noreturn (*image_entry_riscv_t)(ulong hart, void *dtb);
|
||||
void *fdt_blob;
|
||||
int ret;
|
||||
__maybe_unused int ret;
|
||||
|
||||
#if CONFIG_IS_ENABLED(LOAD_FIT) || CONFIG_IS_ENABLED(LOAD_FIT_FULL)
|
||||
fdt_blob = spl_image->fdt_addr;
|
||||
|
@@ -16,8 +16,6 @@ SECTIONS
|
||||
__u_boot_sandbox_option_start = .;
|
||||
_u_boot_sandbox_getopt : { KEEP(*(.u_boot_sandbox_getopt)) }
|
||||
__u_boot_sandbox_option_end = .;
|
||||
|
||||
__bss_start = .;
|
||||
}
|
||||
|
||||
INSERT AFTER .data;
|
||||
|
@@ -44,8 +44,6 @@ SECTIONS
|
||||
{
|
||||
*(.__efi_runtime_rel_stop)
|
||||
}
|
||||
|
||||
__bss_start = .;
|
||||
}
|
||||
|
||||
INSERT BEFORE .data;
|
||||
|
@@ -149,6 +149,7 @@
|
||||
};
|
||||
|
||||
bind-test {
|
||||
compatible = "simple-bus";
|
||||
bind-test-child1 {
|
||||
compatible = "sandbox,phy";
|
||||
#phy-cells = <1>;
|
||||
@@ -415,6 +416,14 @@
|
||||
reg = <0x2c>;
|
||||
compatible = "i2c-eeprom";
|
||||
sandbox,emul = <&emul_eeprom>;
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
bootcount_i2c: bootcount@10 {
|
||||
reg = <10 2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
rtc_0: rtc@43 {
|
||||
@@ -462,6 +471,11 @@
|
||||
offset = <0x13>;
|
||||
};
|
||||
|
||||
bootcount {
|
||||
compatible = "u-boot,bootcount-i2c-eeprom";
|
||||
i2c-eeprom = <&bootcount_i2c>;
|
||||
};
|
||||
|
||||
adc@0 {
|
||||
compatible = "sandbox,adc";
|
||||
vdd-supply = <&buck2>;
|
||||
|
12
board/armltd/total_compute/Kconfig
Normal file
12
board/armltd/total_compute/Kconfig
Normal file
@@ -0,0 +1,12 @@
|
||||
if TARGET_TOTAL_COMPUTE
|
||||
|
||||
config SYS_BOARD
|
||||
default "total_compute"
|
||||
|
||||
config SYS_VENDOR
|
||||
default "armltd"
|
||||
|
||||
config SYS_CONFIG_NAME
|
||||
default "total_compute"
|
||||
|
||||
endif
|
7
board/armltd/total_compute/MAINTAINERS
Normal file
7
board/armltd/total_compute/MAINTAINERS
Normal file
@@ -0,0 +1,7 @@
|
||||
TOTAL_COMPUTE BOARD
|
||||
M: Usama Arif <usama.arif@arm.com>
|
||||
S: Maintained
|
||||
F: board/armltd/total_compute/
|
||||
F: include/configs/total_compute.h
|
||||
F: configs/total_compute_defconfig
|
||||
F: arch/arm/dts/total_compute.dts
|
6
board/armltd/total_compute/Makefile
Normal file
6
board/armltd/total_compute/Makefile
Normal file
@@ -0,0 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
# (C) Copyright 2020 Arm Limited
|
||||
# Usama Arif <usama.arif@arm.com>
|
||||
|
||||
obj-y := total_compute.o
|
67
board/armltd/total_compute/total_compute.c
Normal file
67
board/armltd/total_compute/total_compute.c
Normal file
@@ -0,0 +1,67 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* (C) Copyright 2020 Arm Limited
|
||||
* Usama Arif <usama.arif@arm.com>
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <dm.h>
|
||||
#include <dm/platform_data/serial_pl01x.h>
|
||||
#include <asm/armv8/mmu.h>
|
||||
|
||||
static const struct pl01x_serial_platdata serial_platdata = {
|
||||
.base = UART0_BASE,
|
||||
.type = TYPE_PL011,
|
||||
.clock = CONFIG_PL011_CLOCK,
|
||||
};
|
||||
|
||||
U_BOOT_DEVICE(total_compute_serials) = {
|
||||
.name = "serial_pl01x",
|
||||
.platdata = &serial_platdata,
|
||||
};
|
||||
|
||||
static struct mm_region total_compute_mem_map[] = {
|
||||
{
|
||||
.virt = 0x0UL,
|
||||
.phys = 0x0UL,
|
||||
.size = 0x80000000UL,
|
||||
.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
|
||||
PTE_BLOCK_NON_SHARE |
|
||||
PTE_BLOCK_PXN | PTE_BLOCK_UXN
|
||||
}, {
|
||||
.virt = 0x80000000UL,
|
||||
.phys = 0x80000000UL,
|
||||
.size = 0xff80000000UL,
|
||||
.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
|
||||
PTE_BLOCK_INNER_SHARE
|
||||
}, {
|
||||
/* List terminator */
|
||||
0,
|
||||
}
|
||||
};
|
||||
|
||||
struct mm_region *mem_map = total_compute_mem_map;
|
||||
|
||||
int board_init(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int dram_init(void)
|
||||
{
|
||||
gd->ram_size = PHYS_SDRAM_1_SIZE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int dram_init_banksize(void)
|
||||
{
|
||||
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
||||
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Nothing to be done here as handled by PSCI interface */
|
||||
void reset_cpu(ulong addr)
|
||||
{
|
||||
}
|
@@ -5,9 +5,11 @@
|
||||
|
||||
#include <common.h>
|
||||
#include <hang.h>
|
||||
#include <led.h>
|
||||
#include <log.h>
|
||||
|
||||
#ifdef CONFIG_SPL_BUILD
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
static int setup_led(void)
|
||||
{
|
||||
#ifdef CONFIG_SPL_LED
|
||||
@@ -23,7 +25,7 @@ static int setup_led(void)
|
||||
debug("%s: get=%d\n", __func__, ret);
|
||||
return ret;
|
||||
}
|
||||
ret = led_set_on(dev, 1);
|
||||
ret = led_set_state(dev, LEDST_ON);
|
||||
if (ret)
|
||||
return ret;
|
||||
#endif
|
||||
|
@@ -4,7 +4,7 @@ S: Maintained
|
||||
F: arch/riscv/dts/k210.dtsi
|
||||
F: arch/riscv/dts/k210-maix-bit.dts
|
||||
F: board/sipeed/maix/
|
||||
F: configs/sipeed_maix_bitm_defconfig
|
||||
F: configs/sipeed_maix*_defconfig
|
||||
F: doc/board/sipeed/
|
||||
F: include/configs/sipeed-maix.h
|
||||
F: include/dt-bindings/*/k210-sysctl.h
|
||||
|
@@ -1,5 +1,6 @@
|
||||
XEN GUEST FOR ARM64
|
||||
M: Andrii Anisov <andrii_anisov@epam.com>
|
||||
M: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
|
||||
M: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
|
||||
S: Maintained
|
||||
F: board/xen/xenguest_arm64/
|
||||
F: doc/board/xen/
|
||||
|
@@ -184,11 +184,6 @@ int ft_board_setup(void *blob, struct bd_info *bd)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int board_early_init_f(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int print_cpuinfo(void)
|
||||
{
|
||||
printf("Xen virtual CPU\n");
|
||||
|
@@ -13,11 +13,10 @@
|
||||
#include <linux/sizes.h>
|
||||
#include "board.h"
|
||||
|
||||
#if defined(CONFIG_ZYNQ_GEM_I2C_MAC_OFFSET)
|
||||
int zynq_board_read_rom_ethaddr(unsigned char *ethaddr)
|
||||
{
|
||||
int ret = -EINVAL;
|
||||
|
||||
#if defined(CONFIG_ZYNQ_GEM_I2C_MAC_OFFSET)
|
||||
struct udevice *dev;
|
||||
ofnode eeprom;
|
||||
|
||||
@@ -37,10 +36,10 @@ int zynq_board_read_rom_ethaddr(unsigned char *ethaddr)
|
||||
debug("%s: I2C EEPROM MAC address read failed\n", __func__);
|
||||
else
|
||||
debug("%s: I2C EEPROM MAC %pM\n", __func__, ethaddr);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_OF_BOARD) || defined(CONFIG_OF_SEPARATE)
|
||||
void *board_fdt_blob_setup(void)
|
||||
@@ -78,13 +77,19 @@ void *board_fdt_blob_setup(void)
|
||||
|
||||
int board_late_init_xilinx(void)
|
||||
{
|
||||
ulong initrd_hi;
|
||||
u32 ret = 0;
|
||||
phys_size_t bootm_size = gd->ram_size;
|
||||
|
||||
env_set_hex("script_offset_f", CONFIG_BOOT_SCRIPT_OFFSET);
|
||||
if (CONFIG_IS_ENABLED(ARCH_ZYNQ))
|
||||
bootm_size = min(bootm_size, (phys_size_t)(SZ_512M + SZ_256M));
|
||||
|
||||
initrd_hi = gd->start_addr_sp - CONFIG_STACK_SIZE;
|
||||
initrd_hi = round_down(initrd_hi, SZ_16M);
|
||||
env_set_addr("initrd_high", (void *)initrd_hi);
|
||||
ret |= env_set_hex("script_offset_f", CONFIG_BOOT_SCRIPT_OFFSET);
|
||||
|
||||
ret |= env_set_addr("bootm_low", (void *)gd->ram_base);
|
||||
ret |= env_set_addr("bootm_size", (void *)bootm_size);
|
||||
|
||||
if (ret)
|
||||
printf("%s: Saving run time variables FAILED\n", __func__);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
14
board/xilinx/versal/Kconfig
Normal file
14
board/xilinx/versal/Kconfig
Normal file
@@ -0,0 +1,14 @@
|
||||
# Copyright (c) 2020, Xilinx, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
if ARCH_VERSAL
|
||||
|
||||
config CMD_VERSAL
|
||||
bool "Enable Versal specific commands"
|
||||
default y
|
||||
depends on ZYNQMP_FIRMWARE
|
||||
help
|
||||
Enable Versal specific commands.
|
||||
|
||||
endif
|
@@ -5,4 +5,5 @@
|
||||
#
|
||||
|
||||
obj-y := board.o
|
||||
obj-$(CONFIG_CMD_VERSAL) += cmds.o
|
||||
obj-y += ../common/board.o
|
||||
|
@@ -116,6 +116,9 @@ int board_late_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!CONFIG_IS_ENABLED(ENV_VARS_UBOOT_RUNTIME_CONFIG))
|
||||
return 0;
|
||||
|
||||
bootmode = versal_get_bootmode();
|
||||
|
||||
puts("Bootmode: ");
|
||||
@@ -229,7 +232,7 @@ int dram_init_banksize(void)
|
||||
|
||||
int dram_init(void)
|
||||
{
|
||||
if (fdtdec_setup_mem_size_base() != 0)
|
||||
if (fdtdec_setup_mem_size_base_lowest() != 0)
|
||||
return -EINVAL;
|
||||
|
||||
return 0;
|
||||
|
105
board/xilinx/versal/cmds.c
Normal file
105
board/xilinx/versal/cmds.c
Normal file
@@ -0,0 +1,105 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* (C) Copyright 2020 Xilinx, Inc.
|
||||
* Michal Simek <michal.simek@xilinx.com>
|
||||
*/
|
||||
|
||||
#include <cpu_func.h>
|
||||
#include <command.h>
|
||||
#include <common.h>
|
||||
#include <log.h>
|
||||
#include <memalign.h>
|
||||
#include <versalpl.h>
|
||||
#include <zynqmp_firmware.h>
|
||||
|
||||
static int do_versal_load_pdi(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||
char * const argv[])
|
||||
{
|
||||
u32 buf_lo, buf_hi;
|
||||
u32 ret_payload[PAYLOAD_ARG_CNT];
|
||||
ulong addr, *pdi_buf;
|
||||
size_t len;
|
||||
int ret;
|
||||
|
||||
if (argc != cmdtp->maxargs) {
|
||||
debug("pdi_load: incorrect parameters passed\n");
|
||||
return CMD_RET_USAGE;
|
||||
}
|
||||
|
||||
addr = simple_strtol(argv[2], NULL, 16);
|
||||
if (!addr) {
|
||||
debug("pdi_load: zero pdi_data address\n");
|
||||
return CMD_RET_USAGE;
|
||||
}
|
||||
|
||||
len = simple_strtoul(argv[3], NULL, 16);
|
||||
if (!len) {
|
||||
debug("pdi_load: zero size\n");
|
||||
return CMD_RET_USAGE;
|
||||
}
|
||||
|
||||
pdi_buf = (ulong *)ALIGN((ulong)addr, ARCH_DMA_MINALIGN);
|
||||
if ((ulong)addr != (ulong)pdi_buf) {
|
||||
memcpy((void *)pdi_buf, (void *)addr, len);
|
||||
debug("Pdi addr:0x%lx aligned to 0x%lx\n",
|
||||
addr, (ulong)pdi_buf);
|
||||
}
|
||||
|
||||
flush_dcache_range((ulong)pdi_buf, (ulong)pdi_buf + len);
|
||||
|
||||
buf_lo = lower_32_bits((ulong)pdi_buf);
|
||||
buf_hi = upper_32_bits((ulong)pdi_buf);
|
||||
|
||||
ret = xilinx_pm_request(VERSAL_PM_LOAD_PDI, VERSAL_PM_PDI_TYPE, buf_lo,
|
||||
buf_hi, 0, ret_payload);
|
||||
if (ret)
|
||||
printf("PDI load failed with err: 0x%08x\n", ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static struct cmd_tbl cmd_versal_sub[] = {
|
||||
U_BOOT_CMD_MKENT(loadpdi, 4, 1, do_versal_load_pdi, "", ""),
|
||||
};
|
||||
|
||||
/**
|
||||
* do_versal - Handle the "versal" command-line command
|
||||
* @cmdtp: Command data struct pointer
|
||||
* @flag: Command flag
|
||||
* @argc: Command-line argument count
|
||||
* @argv: Array of command-line arguments
|
||||
*
|
||||
* Processes the versal specific commands
|
||||
*
|
||||
* Return: return 0 on success, Error value if command fails.
|
||||
* CMD_RET_USAGE incase of incorrect/missing parameters.
|
||||
*/
|
||||
static int do_versal(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||
char *const argv[])
|
||||
{
|
||||
struct cmd_tbl *c;
|
||||
int ret = CMD_RET_USAGE;
|
||||
|
||||
if (argc < 2)
|
||||
return CMD_RET_USAGE;
|
||||
|
||||
c = find_cmd_tbl(argv[1], &cmd_versal_sub[0],
|
||||
ARRAY_SIZE(cmd_versal_sub));
|
||||
if (c)
|
||||
ret = c->cmd(c, flag, argc, argv);
|
||||
|
||||
return cmd_process_error(c, ret);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SYS_LONGHELP
|
||||
static char versal_help_text[] =
|
||||
"loadpdi addr len - Load pdi image\n"
|
||||
"load pdi image at ddr address 'addr' with pdi image size 'len'\n"
|
||||
;
|
||||
#endif
|
||||
|
||||
U_BOOT_CMD(versal, 4, 1, do_versal,
|
||||
"versal sub-system",
|
||||
versal_help_text
|
||||
)
|
||||
|
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <common.h>
|
||||
#include <init.h>
|
||||
#include <log.h>
|
||||
#include <dm/uclass.h>
|
||||
#include <env.h>
|
||||
#include <fdtdec.h>
|
||||
@@ -33,6 +34,14 @@ int board_late_init(void)
|
||||
char *new_targets;
|
||||
char *env_targets;
|
||||
|
||||
if (!(gd->flags & GD_FLG_ENV_DEFAULT)) {
|
||||
debug("Saved variables - Skipping\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!CONFIG_IS_ENABLED(ENV_VARS_UBOOT_RUNTIME_CONFIG))
|
||||
return 0;
|
||||
|
||||
switch ((zynq_slcr_get_boot_mode()) & ZYNQ_BM_MASK) {
|
||||
case ZYNQ_BM_QSPI:
|
||||
mode = "qspi";
|
||||
|
@@ -197,67 +197,6 @@ static const struct {
|
||||
};
|
||||
#endif
|
||||
|
||||
int chip_id(unsigned char id)
|
||||
{
|
||||
struct pt_regs regs;
|
||||
int val = -EINVAL;
|
||||
|
||||
if (current_el() != 3) {
|
||||
regs.regs[0] = ZYNQMP_SIP_SVC_CSU_DMA_CHIPID;
|
||||
regs.regs[1] = 0;
|
||||
regs.regs[2] = 0;
|
||||
regs.regs[3] = 0;
|
||||
|
||||
smc_call(®s);
|
||||
|
||||
/*
|
||||
* SMC returns:
|
||||
* regs[0][31:0] = status of the operation
|
||||
* regs[0][63:32] = CSU.IDCODE register
|
||||
* regs[1][31:0] = CSU.version register
|
||||
* regs[1][63:32] = CSU.IDCODE2 register
|
||||
*/
|
||||
switch (id) {
|
||||
case IDCODE:
|
||||
regs.regs[0] = upper_32_bits(regs.regs[0]);
|
||||
regs.regs[0] &= ZYNQMP_CSU_IDCODE_DEVICE_CODE_MASK |
|
||||
ZYNQMP_CSU_IDCODE_SVD_MASK;
|
||||
regs.regs[0] >>= ZYNQMP_CSU_IDCODE_SVD_SHIFT;
|
||||
val = regs.regs[0];
|
||||
break;
|
||||
case VERSION:
|
||||
regs.regs[1] = lower_32_bits(regs.regs[1]);
|
||||
regs.regs[1] &= ZYNQMP_CSU_SILICON_VER_MASK;
|
||||
val = regs.regs[1];
|
||||
break;
|
||||
case IDCODE2:
|
||||
regs.regs[1] = lower_32_bits(regs.regs[1]);
|
||||
regs.regs[1] >>= ZYNQMP_CSU_VERSION_EMPTY_SHIFT;
|
||||
val = regs.regs[1];
|
||||
break;
|
||||
default:
|
||||
printf("%s, Invalid Req:0x%x\n", __func__, id);
|
||||
}
|
||||
} else {
|
||||
switch (id) {
|
||||
case IDCODE:
|
||||
val = readl(ZYNQMP_CSU_IDCODE_ADDR);
|
||||
val &= ZYNQMP_CSU_IDCODE_DEVICE_CODE_MASK |
|
||||
ZYNQMP_CSU_IDCODE_SVD_MASK;
|
||||
val >>= ZYNQMP_CSU_IDCODE_SVD_SHIFT;
|
||||
break;
|
||||
case VERSION:
|
||||
val = readl(ZYNQMP_CSU_VER_ADDR);
|
||||
val &= ZYNQMP_CSU_SILICON_VER_MASK;
|
||||
break;
|
||||
default:
|
||||
printf("%s, Invalid Req:0x%x\n", __func__, id);
|
||||
}
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
#define ZYNQMP_VERSION_SIZE 9
|
||||
#define ZYNQMP_PL_STATUS_BIT 9
|
||||
#define ZYNQMP_IPDIS_VCU_BIT 8
|
||||
@@ -274,9 +213,28 @@ static char *zynqmp_get_silicon_idcode_name(void)
|
||||
u32 i, id, ver, j;
|
||||
char *buf;
|
||||
static char name[ZYNQMP_VERSION_SIZE];
|
||||
u32 ret_payload[PAYLOAD_ARG_CNT];
|
||||
|
||||
id = chip_id(IDCODE);
|
||||
ver = chip_id(IDCODE2);
|
||||
xilinx_pm_request(PM_GET_CHIPID, 0, 0, 0, 0, ret_payload);
|
||||
|
||||
/*
|
||||
* Firmware returns:
|
||||
* payload[0][31:0] = status of the operation
|
||||
* payload[1]] = IDCODE
|
||||
* payload[2][19:0] = Version
|
||||
* payload[2][28:20] = EXTENDED_IDCODE
|
||||
* payload[2][29] = PL_INIT
|
||||
*/
|
||||
|
||||
/* Get IDCODE field */
|
||||
id = ret_payload[1];
|
||||
id &= ZYNQMP_CSU_IDCODE_DEVICE_CODE_MASK | ZYNQMP_CSU_IDCODE_SVD_MASK;
|
||||
id >>= ZYNQMP_CSU_IDCODE_SVD_SHIFT;
|
||||
|
||||
/* Shift silicon version info */
|
||||
ver = ret_payload[2] >> ZYNQMP_CSU_VERSION_EMPTY_SHIFT;
|
||||
|
||||
debug("%s, ID: 0x%0X, Ver: 0x%0X\r\n", __func__, id, ver);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(zynqmp_devices); i++) {
|
||||
if (zynqmp_devices[i].id == id) {
|
||||
@@ -387,12 +345,10 @@ int board_init(void)
|
||||
#if defined(CONFIG_FPGA) && defined(CONFIG_FPGA_ZYNQMPPL) && \
|
||||
!defined(CONFIG_SPL_BUILD) || (defined(CONFIG_SPL_FPGA_SUPPORT) && \
|
||||
defined(CONFIG_SPL_BUILD))
|
||||
if (current_el() != 3) {
|
||||
zynqmppl.name = zynqmp_get_silicon_idcode_name();
|
||||
printf("Chip ID:\t%s\n", zynqmppl.name);
|
||||
fpga_init();
|
||||
fpga_add(fpga_xilinx, &zynqmppl);
|
||||
}
|
||||
zynqmppl.name = zynqmp_get_silicon_idcode_name();
|
||||
printf("Chip ID:\t%s\n", zynqmppl.name);
|
||||
fpga_init();
|
||||
fpga_add(fpga_xilinx, &zynqmppl);
|
||||
#endif
|
||||
|
||||
if (current_el() == 3)
|
||||
@@ -541,23 +497,30 @@ static int set_fdtfile(void)
|
||||
char *compatible, *fdtfile;
|
||||
const char *suffix = ".dtb";
|
||||
const char *vendor = "xilinx/";
|
||||
int fdt_compat_len;
|
||||
|
||||
if (env_get("fdtfile"))
|
||||
return 0;
|
||||
|
||||
compatible = (char *)fdt_getprop(gd->fdt_blob, 0, "compatible", NULL);
|
||||
if (compatible) {
|
||||
compatible = (char *)fdt_getprop(gd->fdt_blob, 0, "compatible",
|
||||
&fdt_compat_len);
|
||||
if (compatible && fdt_compat_len) {
|
||||
char *name;
|
||||
|
||||
debug("Compatible: %s\n", compatible);
|
||||
|
||||
/* Discard vendor prefix */
|
||||
strsep(&compatible, ",");
|
||||
name = strchr(compatible, ',');
|
||||
if (!name)
|
||||
return -EINVAL;
|
||||
|
||||
fdtfile = calloc(1, strlen(vendor) + strlen(compatible) +
|
||||
name++;
|
||||
|
||||
fdtfile = calloc(1, strlen(vendor) + strlen(name) +
|
||||
strlen(suffix) + 1);
|
||||
if (!fdtfile)
|
||||
return -ENOMEM;
|
||||
|
||||
sprintf(fdtfile, "%s%s%s", vendor, compatible, suffix);
|
||||
sprintf(fdtfile, "%s%s%s", vendor, name, suffix);
|
||||
|
||||
env_set("fdtfile", fdtfile);
|
||||
free(fdtfile);
|
||||
@@ -605,6 +568,9 @@ int board_late_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!CONFIG_IS_ENABLED(ENV_VARS_UBOOT_RUNTIME_CONFIG))
|
||||
return 0;
|
||||
|
||||
ret = set_fdtfile();
|
||||
if (ret)
|
||||
return ret;
|
||||
|
@@ -270,6 +270,12 @@ config SPL_CMD_TLV_EEPROM
|
||||
help
|
||||
Read system EEPROM data block in ONIE Tlvinfo format from SPL.
|
||||
|
||||
config CMD_SBI
|
||||
bool "sbi"
|
||||
depends on RISCV_SMODE && SBI_V02
|
||||
help
|
||||
Display information about the SBI implementation.
|
||||
|
||||
endmenu
|
||||
|
||||
menu "Boot commands"
|
||||
|
@@ -8,6 +8,7 @@
|
||||
#include <dm.h>
|
||||
#include <dm/device-internal.h>
|
||||
#include <dm/lists.h>
|
||||
#include <dm/root.h>
|
||||
#include <dm/uclass-internal.h>
|
||||
|
||||
static int bind_by_class_index(const char *uclass, int index,
|
||||
@@ -151,8 +152,8 @@ static int bind_by_node_path(const char *path, const char *drv_name)
|
||||
}
|
||||
|
||||
ofnode = ofnode_path(path);
|
||||
ret = device_bind_with_driver_data(parent, drv, ofnode_get_name(ofnode),
|
||||
0, ofnode, &dev);
|
||||
ret = lists_bind_fdt(parent, ofnode, &dev, false);
|
||||
|
||||
if (!dev || ret) {
|
||||
printf("Unable to bind. err:%d\n", ret);
|
||||
return ret;
|
||||
|
@@ -304,7 +304,11 @@ efi_status_t efi_install_fdt(void *fdt)
|
||||
/**
|
||||
* do_bootefi_exec() - execute EFI binary
|
||||
*
|
||||
* The image indicated by @handle is started. When it returns the allocated
|
||||
* memory for the @load_options is freed.
|
||||
*
|
||||
* @handle: handle of loaded image
|
||||
* @load_options: load options
|
||||
* Return: status code
|
||||
*
|
||||
* Load the EFI binary into a newly assigned memory unwinding the relocation
|
||||
|
33
cmd/clk.c
33
cmd/clk.c
@@ -23,31 +23,32 @@ static void show_clks(struct udevice *dev, int depth, int last_flag)
|
||||
|
||||
clkp = dev_get_clk_ptr(dev);
|
||||
if (device_get_uclass_id(dev) == UCLASS_CLK && clkp) {
|
||||
depth++;
|
||||
rate = clk_get_rate(clkp);
|
||||
|
||||
printf(" %-12u %8d ", rate, clkp->enable_count);
|
||||
printf(" %-12u %8d ", rate, clkp->enable_count);
|
||||
|
||||
for (i = depth; i >= 0; i--) {
|
||||
is_last = (last_flag >> i) & 1;
|
||||
if (i) {
|
||||
if (is_last)
|
||||
printf(" ");
|
||||
else
|
||||
printf("| ");
|
||||
} else {
|
||||
if (is_last)
|
||||
printf("`-- ");
|
||||
else
|
||||
printf("|-- ");
|
||||
for (i = depth; i >= 0; i--) {
|
||||
is_last = (last_flag >> i) & 1;
|
||||
if (i) {
|
||||
if (is_last)
|
||||
printf(" ");
|
||||
else
|
||||
printf("| ");
|
||||
} else {
|
||||
if (is_last)
|
||||
printf("`-- ");
|
||||
else
|
||||
printf("|-- ");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
printf("%s\n", dev->name);
|
||||
printf("%s\n", dev->name);
|
||||
}
|
||||
|
||||
list_for_each_entry(child, &dev->child_head, sibling_node) {
|
||||
is_last = list_is_last(&child->sibling_node, &dev->child_head);
|
||||
show_clks(child, depth + 1, (last_flag << 1) | is_last);
|
||||
show_clks(child, depth, (last_flag << 1) | is_last);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -38,7 +38,7 @@ static int do_clone(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv
|
||||
srcbz = srcdesc->blksz;
|
||||
destbz = destdesc->blksz;
|
||||
|
||||
if ((srcbz * (buffersize / srcbz) != buffersize) &&
|
||||
if ((srcbz * (buffersize / srcbz) != buffersize) ||
|
||||
(destbz * (buffersize / destbz) != buffersize)) {
|
||||
printf("failed: cannot match device block sizes\n");
|
||||
return 1;
|
||||
@@ -55,10 +55,12 @@ static int do_clone(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv
|
||||
switch (unit[0]) {
|
||||
case 'g':
|
||||
case 'G':
|
||||
requested *= 1024;
|
||||
requested *= 1024 * 1024 * 1024;
|
||||
break;
|
||||
case 'm':
|
||||
case 'M':
|
||||
requested *= 1024;
|
||||
requested *= 1024 * 1024;
|
||||
break;
|
||||
case 'k':
|
||||
case 'K':
|
||||
requested *= 1024;
|
||||
|
@@ -473,7 +473,7 @@ int do_env_set_efi(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||
argc--;
|
||||
argv++;
|
||||
addr = simple_strtoul(argv[0], &ep, 16);
|
||||
if (*ep != ',')
|
||||
if (*ep != ':')
|
||||
return CMD_RET_USAGE;
|
||||
|
||||
/* 0 should be allowed for delete */
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
obj-$(CONFIG_CMD_EXCEPTION) += exception.o
|
||||
obj-$(CONFIG_CMD_SBI) += sbi.o
|
||||
|
82
cmd/riscv/sbi.c
Normal file
82
cmd/riscv/sbi.c
Normal file
@@ -0,0 +1,82 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* The 'sbi' command displays information about the SBI implementation.
|
||||
*
|
||||
* Copyright (c) 2020, Heinrich Schuchardt <xypron.glpk@gmx.de>
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <command.h>
|
||||
#include <asm/sbi.h>
|
||||
|
||||
struct sbi_ext {
|
||||
const u32 id;
|
||||
const char *name;
|
||||
};
|
||||
|
||||
static struct sbi_ext extensions[] = {
|
||||
{ 0x00000000, "sbi_set_timer" },
|
||||
{ 0x00000001, "sbi_console_putchar" },
|
||||
{ 0x00000002, "sbi_console_getchar" },
|
||||
{ 0x00000003, "sbi_clear_ipi" },
|
||||
{ 0x00000004, "sbi_send_ipi" },
|
||||
{ 0x00000005, "sbi_remote_fence_i" },
|
||||
{ 0x00000006, "sbi_remote_sfence_vma" },
|
||||
{ 0x00000007, "sbi_remote_sfence_vma_asid" },
|
||||
{ 0x00000008, "sbi_shutdown" },
|
||||
{ 0x00000010, "SBI Base Functionality" },
|
||||
{ 0x54494D45, "Timer Extension" },
|
||||
{ 0x00735049, "IPI Extension" },
|
||||
{ 0x52464E43, "RFENCE Extension" },
|
||||
{ 0x0048534D, "Hart State Management Extension" },
|
||||
};
|
||||
|
||||
static int do_sbi(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||
char *const argv[])
|
||||
{
|
||||
int i;
|
||||
long ret;
|
||||
|
||||
ret = sbi_get_spec_version();
|
||||
if (ret >= 0)
|
||||
printf("SBI %ld.%ld\n", ret >> 24, ret & 0xffffff);
|
||||
ret = sbi_get_impl_id();
|
||||
if (ret >= 0) {
|
||||
switch (ret) {
|
||||
case 0:
|
||||
printf("Berkeley Boot Loader (BBL)\n");
|
||||
break;
|
||||
case 1:
|
||||
printf("OpenSBI\n");
|
||||
break;
|
||||
case 2:
|
||||
printf("Xvisor\n");
|
||||
break;
|
||||
case 3:
|
||||
printf("KVM\n");
|
||||
break;
|
||||
default:
|
||||
printf("Unknown implementation\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
printf("Extensions:\n");
|
||||
for (i = 0; i < ARRAY_SIZE(extensions); ++i) {
|
||||
ret = sbi_probe_extension(extensions[i].id);
|
||||
if (ret > 0)
|
||||
printf(" %s\n", extensions[i].name);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SYS_LONGHELP
|
||||
static char sbi_help_text[] =
|
||||
"- display SBI spec version, implementation, and available extensions";
|
||||
|
||||
#endif
|
||||
|
||||
U_BOOT_CMD_COMPLETE(
|
||||
sbi, 1, 0, do_sbi,
|
||||
"display SBI information",
|
||||
sbi_help_text, NULL
|
||||
);
|
@@ -635,6 +635,23 @@ config SYS_STDIO_DEREGISTER
|
||||
removed (for example a USB keyboard) then this option can be
|
||||
enabled to ensure this is handled correctly.
|
||||
|
||||
config SPL_SYS_STDIO_DEREGISTER
|
||||
bool "Allow deregistering stdio devices in SPL"
|
||||
help
|
||||
Generally there is no need to deregister stdio devices since they
|
||||
are never deactivated. But if a stdio device is used which can be
|
||||
removed (for example a USB keyboard) then this option can be
|
||||
enabled to ensure this is handled correctly. This is very rarely
|
||||
needed in SPL.
|
||||
|
||||
config SYS_DEVICE_NULLDEV
|
||||
bool "Enable a null device for stdio"
|
||||
default y if SPLASH_SCREEN || SYS_STDIO_DEREGISTER
|
||||
help
|
||||
Enable creation of a "nulldev" stdio device. This allows silent
|
||||
operation of the console by setting stdout to "nulldev". Enable
|
||||
this to use a serial console under board control.
|
||||
|
||||
endmenu
|
||||
|
||||
menu "Logging"
|
||||
@@ -986,7 +1003,7 @@ config HASH
|
||||
|
||||
config AVB_VERIFY
|
||||
bool "Build Android Verified Boot operations"
|
||||
depends on LIBAVB && FASTBOOT
|
||||
depends on LIBAVB
|
||||
depends on PARTITION_UUIDS
|
||||
help
|
||||
This option enables compilation of bootloader-dependent operations,
|
||||
@@ -995,6 +1012,24 @@ config AVB_VERIFY
|
||||
* Helpers to access MMC, similar to drivers/fastboot/fb_mmc.c.
|
||||
* Helpers to alloc/init/free avb ops.
|
||||
|
||||
if AVB_VERIFY
|
||||
|
||||
config AVB_BUF_ADDR
|
||||
hex "Define AVB buffer address"
|
||||
default FASTBOOT_BUF_ADDR
|
||||
help
|
||||
AVB requires a buffer for memory transactions. This variable defines the
|
||||
buffer address.
|
||||
|
||||
config AVB_BUF_SIZE
|
||||
hex "Define AVB buffer SIZE"
|
||||
default FASTBOOT_BUF_SIZE
|
||||
help
|
||||
AVB requires a buffer for memory transactions. This variable defines the
|
||||
buffer size.
|
||||
|
||||
endif # AVB_VERIFY
|
||||
|
||||
config SPL_HASH
|
||||
bool # "Support hashing API (SHA1, SHA256, etc.)"
|
||||
help
|
||||
|
@@ -7,7 +7,6 @@
|
||||
#include <avb_verify.h>
|
||||
#include <blk.h>
|
||||
#include <cpu_func.h>
|
||||
#include <fastboot.h>
|
||||
#include <image.h>
|
||||
#include <malloc.h>
|
||||
#include <part.h>
|
||||
|
@@ -254,11 +254,7 @@ __weak int dram_init_banksize(void)
|
||||
static int init_func_i2c(void)
|
||||
{
|
||||
puts("I2C: ");
|
||||
#ifdef CONFIG_SYS_I2C
|
||||
i2c_init_all();
|
||||
#else
|
||||
i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
|
||||
#endif
|
||||
puts("ready\n");
|
||||
return 0;
|
||||
}
|
||||
|
249
common/stdio.c
249
common/stdio.c
@@ -18,10 +18,7 @@
|
||||
#include <stdio_dev.h>
|
||||
#include <serial.h>
|
||||
#include <splash.h>
|
||||
|
||||
#if defined(CONFIG_SYS_I2C)
|
||||
#include <i2c.h>
|
||||
#endif
|
||||
|
||||
#include <dm/device-internal.h>
|
||||
|
||||
@@ -31,15 +28,6 @@ static struct stdio_dev devs;
|
||||
struct stdio_dev *stdio_devices[] = { NULL, NULL, NULL };
|
||||
char *stdio_names[MAX_FILES] = { "stdin", "stdout", "stderr" };
|
||||
|
||||
#if defined(CONFIG_SPLASH_SCREEN) && !defined(CONFIG_SYS_DEVICE_NULLDEV)
|
||||
#define CONFIG_SYS_DEVICE_NULLDEV 1
|
||||
#endif
|
||||
|
||||
#if CONFIG_IS_ENABLED(SYS_STDIO_DEREGISTER)
|
||||
#define CONFIG_SYS_DEVICE_NULLDEV 1
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SYS_DEVICE_NULLDEV
|
||||
static void nulldev_putc(struct stdio_dev *dev, const char c)
|
||||
{
|
||||
/* nulldev is empty! */
|
||||
@@ -55,7 +43,6 @@ static int nulldev_input(struct stdio_dev *dev)
|
||||
/* nulldev is empty! */
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void stdio_serial_putc(struct stdio_dev *dev, const char c)
|
||||
{
|
||||
@@ -96,18 +83,18 @@ static void drv_system_init (void)
|
||||
dev.tstc = stdio_serial_tstc;
|
||||
stdio_register (&dev);
|
||||
|
||||
#ifdef CONFIG_SYS_DEVICE_NULLDEV
|
||||
memset (&dev, 0, sizeof (dev));
|
||||
if (CONFIG_IS_ENABLED(SYS_DEVICE_NULLDEV)) {
|
||||
memset(&dev, '\0', sizeof(dev));
|
||||
|
||||
strcpy (dev.name, "nulldev");
|
||||
dev.flags = DEV_FLAGS_OUTPUT | DEV_FLAGS_INPUT;
|
||||
dev.putc = nulldev_putc;
|
||||
dev.puts = nulldev_puts;
|
||||
dev.getc = nulldev_input;
|
||||
dev.tstc = nulldev_input;
|
||||
strcpy(dev.name, "nulldev");
|
||||
dev.flags = DEV_FLAGS_OUTPUT | DEV_FLAGS_INPUT;
|
||||
dev.putc = nulldev_putc;
|
||||
dev.puts = nulldev_puts;
|
||||
dev.getc = nulldev_input;
|
||||
dev.tstc = nulldev_input;
|
||||
|
||||
stdio_register (&dev);
|
||||
#endif
|
||||
stdio_register(&dev);
|
||||
}
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
@@ -116,10 +103,9 @@ static void drv_system_init (void)
|
||||
*/
|
||||
struct list_head* stdio_get_list(void)
|
||||
{
|
||||
return &(devs.list);
|
||||
return &devs.list;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DM_VIDEO
|
||||
/**
|
||||
* stdio_probe_device() - Find a device which provides the given stdio device
|
||||
*
|
||||
@@ -170,7 +156,6 @@ static int stdio_probe_device(const char *name, enum uclass_id id,
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
struct stdio_dev *stdio_get_by_name(const char *name)
|
||||
{
|
||||
@@ -180,41 +165,41 @@ struct stdio_dev *stdio_get_by_name(const char *name)
|
||||
if (!name)
|
||||
return NULL;
|
||||
|
||||
list_for_each(pos, &(devs.list)) {
|
||||
list_for_each(pos, &devs.list) {
|
||||
sdev = list_entry(pos, struct stdio_dev, list);
|
||||
if (strcmp(sdev->name, name) == 0)
|
||||
return sdev;
|
||||
}
|
||||
#ifdef CONFIG_DM_VIDEO
|
||||
/*
|
||||
* We did not find a suitable stdio device. If there is a video
|
||||
* driver with a name starting with 'vidconsole', we can try probing
|
||||
* that in the hope that it will produce the required stdio device.
|
||||
*
|
||||
* This function is sometimes called with the entire value of
|
||||
* 'stdout', which may include a list of devices separate by commas.
|
||||
* Obviously this is not going to work, so we ignore that case. The
|
||||
* call path in that case is console_init_r() -> search_device() ->
|
||||
* stdio_get_by_name().
|
||||
*/
|
||||
if (!strncmp(name, "vidconsole", 10) && !strchr(name, ',') &&
|
||||
!stdio_probe_device(name, UCLASS_VIDEO, &sdev))
|
||||
return sdev;
|
||||
#endif
|
||||
if (IS_ENABLED(CONFIG_DM_VIDEO)) {
|
||||
/*
|
||||
* We did not find a suitable stdio device. If there is a video
|
||||
* driver with a name starting with 'vidconsole', we can try
|
||||
* probing that in the hope that it will produce the required
|
||||
* stdio device.
|
||||
*
|
||||
* This function is sometimes called with the entire value of
|
||||
* 'stdout', which may include a list of devices separate by
|
||||
* commas. Obviously this is not going to work, so we ignore
|
||||
* that case. The call path in that case is
|
||||
* console_init_r() -> search_device() -> stdio_get_by_name()
|
||||
*/
|
||||
if (!strncmp(name, "vidconsole", 10) && !strchr(name, ',') &&
|
||||
!stdio_probe_device(name, UCLASS_VIDEO, &sdev))
|
||||
return sdev;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct stdio_dev* stdio_clone(struct stdio_dev *dev)
|
||||
struct stdio_dev *stdio_clone(struct stdio_dev *dev)
|
||||
{
|
||||
struct stdio_dev *_dev;
|
||||
|
||||
if(!dev)
|
||||
if (!dev)
|
||||
return NULL;
|
||||
|
||||
_dev = calloc(1, sizeof(struct stdio_dev));
|
||||
|
||||
if(!_dev)
|
||||
if (!_dev)
|
||||
return NULL;
|
||||
|
||||
memcpy(_dev, dev, sizeof(struct stdio_dev));
|
||||
@@ -227,9 +212,9 @@ int stdio_register_dev(struct stdio_dev *dev, struct stdio_dev **devp)
|
||||
struct stdio_dev *_dev;
|
||||
|
||||
_dev = stdio_clone(dev);
|
||||
if(!_dev)
|
||||
if (!_dev)
|
||||
return -ENODEV;
|
||||
list_add_tail(&(_dev->list), &(devs.list));
|
||||
list_add_tail(&_dev->list, &devs.list);
|
||||
if (devp)
|
||||
*devp = _dev;
|
||||
|
||||
@@ -241,42 +226,38 @@ int stdio_register(struct stdio_dev *dev)
|
||||
return stdio_register_dev(dev, NULL);
|
||||
}
|
||||
|
||||
/* deregister the device "devname".
|
||||
* returns 0 if success, -1 if device is assigned and 1 if devname not found
|
||||
*/
|
||||
#if CONFIG_IS_ENABLED(SYS_STDIO_DEREGISTER)
|
||||
int stdio_deregister_dev(struct stdio_dev *dev, int force)
|
||||
{
|
||||
int l;
|
||||
struct list_head *pos;
|
||||
char temp_names[3][16];
|
||||
int i;
|
||||
|
||||
/* get stdio devices (ListRemoveItem changes the dev list) */
|
||||
for (l=0 ; l< MAX_FILES; l++) {
|
||||
if (stdio_devices[l] == dev) {
|
||||
for (i = 0 ; i < MAX_FILES; i++) {
|
||||
if (stdio_devices[i] == dev) {
|
||||
if (force) {
|
||||
strcpy(temp_names[l], "nulldev");
|
||||
strcpy(temp_names[i], "nulldev");
|
||||
continue;
|
||||
}
|
||||
/* Device is assigned -> report error */
|
||||
return -1;
|
||||
return -EBUSY;
|
||||
}
|
||||
memcpy (&temp_names[l][0],
|
||||
stdio_devices[l]->name,
|
||||
sizeof(temp_names[l]));
|
||||
memcpy(&temp_names[i][0], stdio_devices[i]->name,
|
||||
sizeof(temp_names[i]));
|
||||
}
|
||||
|
||||
list_del(&(dev->list));
|
||||
list_del(&dev->list);
|
||||
free(dev);
|
||||
|
||||
/* reassign Device list */
|
||||
list_for_each(pos, &(devs.list)) {
|
||||
/* reassign device list */
|
||||
list_for_each(pos, &devs.list) {
|
||||
dev = list_entry(pos, struct stdio_dev, list);
|
||||
for (l=0 ; l< MAX_FILES; l++) {
|
||||
if(strcmp(dev->name, temp_names[l]) == 0)
|
||||
stdio_devices[l] = dev;
|
||||
for (i = 0 ; i < MAX_FILES; i++) {
|
||||
if (strcmp(dev->name, temp_names[i]) == 0)
|
||||
stdio_devices[i] = dev;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -285,13 +266,11 @@ int stdio_deregister(const char *devname, int force)
|
||||
struct stdio_dev *dev;
|
||||
|
||||
dev = stdio_get_by_name(devname);
|
||||
|
||||
if (!dev) /* device not found */
|
||||
return -ENODEV;
|
||||
|
||||
return stdio_deregister_dev(dev, force);
|
||||
}
|
||||
#endif /* CONFIG_IS_ENABLED(SYS_STDIO_DEREGISTER) */
|
||||
|
||||
int stdio_init_tables(void)
|
||||
{
|
||||
@@ -308,94 +287,94 @@ int stdio_init_tables(void)
|
||||
#endif /* CONFIG_NEEDS_MANUAL_RELOC */
|
||||
|
||||
/* Initialize the list */
|
||||
INIT_LIST_HEAD(&(devs.list));
|
||||
INIT_LIST_HEAD(&devs.list);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int stdio_add_devices(void)
|
||||
{
|
||||
#ifdef CONFIG_DM_KEYBOARD
|
||||
struct udevice *dev;
|
||||
struct uclass *uc;
|
||||
int ret;
|
||||
|
||||
/*
|
||||
* For now we probe all the devices here. At some point this should be
|
||||
* done only when the devices are required - e.g. we have a list of
|
||||
* input devices to start up in the stdin environment variable. That
|
||||
* work probably makes more sense when stdio itself is converted to
|
||||
* driver model.
|
||||
*
|
||||
* TODO(sjg@chromium.org): Convert changing uclass_first_device() etc.
|
||||
* to return the device even on error. Then we could use that here.
|
||||
*/
|
||||
ret = uclass_get(UCLASS_KEYBOARD, &uc);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* Don't report errors to the caller - assume that they are non-fatal */
|
||||
uclass_foreach_dev(dev, uc) {
|
||||
ret = device_probe(dev);
|
||||
if (IS_ENABLED(CONFIG_DM_KEYBOARD)) {
|
||||
/*
|
||||
* For now we probe all the devices here. At some point this
|
||||
* should be done only when the devices are required - e.g. we
|
||||
* have a list of input devices to start up in the stdin
|
||||
* environment variable. That work probably makes more sense
|
||||
* when stdio itself is converted to driver model.
|
||||
*
|
||||
* TODO(sjg@chromium.org): Convert changing
|
||||
* uclass_first_device() etc. to return the device even on
|
||||
* error. Then we could use that here.
|
||||
*/
|
||||
ret = uclass_get(UCLASS_KEYBOARD, &uc);
|
||||
if (ret)
|
||||
printf("Failed to probe keyboard '%s'\n", dev->name);
|
||||
return ret;
|
||||
|
||||
/*
|
||||
* Don't report errors to the caller - assume that they are
|
||||
* non-fatal
|
||||
*/
|
||||
uclass_foreach_dev(dev, uc) {
|
||||
ret = device_probe(dev);
|
||||
if (ret)
|
||||
printf("Failed to probe keyboard '%s'\n",
|
||||
dev->name);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_I2C
|
||||
i2c_init_all();
|
||||
#else
|
||||
#endif
|
||||
#ifdef CONFIG_DM_VIDEO
|
||||
/*
|
||||
* If the console setting is not in environment variables then
|
||||
* console_init_r() will not be calling iomux_doenv() (which calls
|
||||
* search_device()). So we will not dynamically add devices by
|
||||
* calling stdio_probe_device().
|
||||
*
|
||||
* So just probe all video devices now so that whichever one is
|
||||
* required will be available.
|
||||
*/
|
||||
#ifndef CONFIG_SYS_CONSOLE_IS_IN_ENV
|
||||
struct udevice *vdev;
|
||||
# ifndef CONFIG_DM_KEYBOARD
|
||||
int ret;
|
||||
# endif
|
||||
if (IS_ENABLED(CONFIG_DM_VIDEO)) {
|
||||
/*
|
||||
* If the console setting is not in environment variables then
|
||||
* console_init_r() will not be calling iomux_doenv() (which
|
||||
* calls search_device()). So we will not dynamically add
|
||||
* devices by calling stdio_probe_device().
|
||||
*
|
||||
* So just probe all video devices now so that whichever one is
|
||||
* required will be available.
|
||||
*/
|
||||
struct udevice *vdev;
|
||||
int ret;
|
||||
|
||||
if (!IS_ENABLED(CONFIG_SYS_CONSOLE_IS_IN_ENV)) {
|
||||
for (ret = uclass_first_device(UCLASS_VIDEO, &vdev);
|
||||
vdev;
|
||||
ret = uclass_next_device(&vdev))
|
||||
;
|
||||
if (ret)
|
||||
printf("%s: Video device failed (ret=%d)\n",
|
||||
__func__, ret);
|
||||
}
|
||||
if (IS_ENABLED(CONFIG_SPLASH_SCREEN) &&
|
||||
IS_ENABLED(CONFIG_CMD_BMP))
|
||||
splash_display();
|
||||
} else {
|
||||
if (IS_ENABLED(CONFIG_LCD))
|
||||
drv_lcd_init();
|
||||
if (IS_ENABLED(CONFIG_VIDEO) || IS_ENABLED(CONFIG_CFB_CONSOLE))
|
||||
drv_video_init();
|
||||
}
|
||||
|
||||
for (ret = uclass_first_device(UCLASS_VIDEO, &vdev);
|
||||
vdev;
|
||||
ret = uclass_next_device(&vdev))
|
||||
;
|
||||
if (ret)
|
||||
printf("%s: Video device failed (ret=%d)\n", __func__, ret);
|
||||
#endif /* !CONFIG_SYS_CONSOLE_IS_IN_ENV */
|
||||
#if defined(CONFIG_SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
|
||||
splash_display();
|
||||
#endif /* CONFIG_SPLASH_SCREEN && CONFIG_CMD_BMP */
|
||||
#else
|
||||
# if defined(CONFIG_LCD)
|
||||
drv_lcd_init ();
|
||||
# endif
|
||||
# if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE)
|
||||
drv_video_init ();
|
||||
# endif
|
||||
#endif /* CONFIG_DM_VIDEO */
|
||||
#if defined(CONFIG_KEYBOARD) && !defined(CONFIG_DM_KEYBOARD)
|
||||
drv_keyboard_init ();
|
||||
drv_keyboard_init();
|
||||
#endif
|
||||
drv_system_init ();
|
||||
serial_stdio_init ();
|
||||
drv_system_init();
|
||||
serial_stdio_init();
|
||||
#ifdef CONFIG_USB_TTY
|
||||
drv_usbtty_init ();
|
||||
#endif
|
||||
#ifdef CONFIG_NETCONSOLE
|
||||
drv_nc_init ();
|
||||
drv_usbtty_init();
|
||||
#endif
|
||||
if (IS_ENABLED(CONFIG_NETCONSOLE))
|
||||
drv_nc_init();
|
||||
#ifdef CONFIG_JTAG_CONSOLE
|
||||
drv_jtag_console_init ();
|
||||
#endif
|
||||
#ifdef CONFIG_CBMEM_CONSOLE
|
||||
cbmemc_init();
|
||||
drv_jtag_console_init();
|
||||
#endif
|
||||
if (IS_ENABLED(CONFIG_CBMEM_CONSOLE))
|
||||
cbmemc_init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -5,6 +5,7 @@ CONFIG_ENV_SECT_SIZE=0x2000
|
||||
CONFIG_TARGET_M5249EVB=y
|
||||
CONFIG_DEFAULT_DEVICE_TREE="M5249EVB"
|
||||
CONFIG_SYS_CONSOLE_INFO_QUIET=y
|
||||
CONFIG_SYS_DEVICE_NULLDEV=y
|
||||
# CONFIG_DISPLAY_BOARDINFO is not set
|
||||
# CONFIG_CMDLINE_EDITING is not set
|
||||
# CONFIG_AUTOBOOT is not set
|
||||
|
@@ -30,6 +30,7 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_USE_ENV_SPI_MAX_HZ=y
|
||||
CONFIG_ENV_SPI_MAX_HZ=20000000
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_NETCONSOLE=y
|
||||
CONFIG_DM=y
|
||||
CONFIG_DM_PCA953X=y
|
||||
CONFIG_DM_I2C=y
|
||||
|
@@ -32,6 +32,7 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_USE_ENV_SPI_MAX_HZ=y
|
||||
CONFIG_ENV_SPI_MAX_HZ=20000000
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_NETCONSOLE=y
|
||||
CONFIG_DM=y
|
||||
CONFIG_DM_PCA953X=y
|
||||
CONFIG_DM_I2C=y
|
||||
|
@@ -103,4 +103,6 @@ CONFIG_DM_VIDEO=y
|
||||
# CONFIG_VIDEO_BPP32 is not set
|
||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_VIDEO_IPUV3=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
|
@@ -111,5 +111,7 @@ CONFIG_DM_VIDEO=y
|
||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_DISPLAY=y
|
||||
CONFIG_VIDEO_IPUV3=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_IMX_WATCHDOG=y
|
||||
# CONFIG_EFI_LOADER is not set
|
||||
|
@@ -105,5 +105,7 @@ CONFIG_DM_VIDEO=y
|
||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_DISPLAY=y
|
||||
CONFIG_VIDEO_IPUV3=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_IMX_WATCHDOG=y
|
||||
# CONFIG_EFI_LOADER is not set
|
||||
|
@@ -105,5 +105,7 @@ CONFIG_DM_VIDEO=y
|
||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_DISPLAY=y
|
||||
CONFIG_VIDEO_IPUV3=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_IMX_WATCHDOG=y
|
||||
# CONFIG_EFI_LOADER is not set
|
||||
|
@@ -111,5 +111,7 @@ CONFIG_DM_VIDEO=y
|
||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_DISPLAY=y
|
||||
CONFIG_VIDEO_IPUV3=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_IMX_WATCHDOG=y
|
||||
# CONFIG_EFI_LOADER is not set
|
||||
|
@@ -74,6 +74,7 @@ CONFIG_SYS_MMC_ENV_DEV=1
|
||||
CONFIG_SYS_MMC_ENV_PART=2
|
||||
CONFIG_BOOTP_SEND_HOSTNAME=y
|
||||
CONFIG_NET_RANDOM_ETHADDR=y
|
||||
CONFIG_NETCONSOLE=y
|
||||
CONFIG_DM=y
|
||||
CONFIG_SPL_DM=y
|
||||
CONFIG_SPL_DM_SEQ_ALIAS=y
|
||||
|
@@ -75,6 +75,7 @@ CONFIG_ENV_IS_IN_NAND=y
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_BOOTP_SEND_HOSTNAME=y
|
||||
CONFIG_NET_RANDOM_ETHADDR=y
|
||||
CONFIG_NETCONSOLE=y
|
||||
CONFIG_DM=y
|
||||
CONFIG_SPL_DM=y
|
||||
CONFIG_SPL_DM_SEQ_ALIAS=y
|
||||
|
@@ -81,6 +81,7 @@ CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_BOOTP_SEND_HOSTNAME=y
|
||||
CONFIG_NET_RANDOM_ETHADDR=y
|
||||
CONFIG_NETCONSOLE=y
|
||||
CONFIG_DM=y
|
||||
CONFIG_SPL_DM=y
|
||||
CONFIG_SPL_DM_SEQ_ALIAS=y
|
||||
|
@@ -65,6 +65,7 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_BOOTP_SEND_HOSTNAME=y
|
||||
CONFIG_NET_RANDOM_ETHADDR=y
|
||||
CONFIG_NETCONSOLE=y
|
||||
# CONFIG_DM_DEVICE_REMOVE is not set
|
||||
CONFIG_SPL_DM_SEQ_ALIAS=y
|
||||
# CONFIG_OF_TRANSLATE is not set
|
||||
|
@@ -90,4 +90,6 @@ CONFIG_DM_VIDEO=y
|
||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
# CONFIG_PANEL is not set
|
||||
CONFIG_VIDEO_IPUV3=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_OF_LIBFDT=y
|
||||
|
@@ -94,4 +94,6 @@ CONFIG_USB_KEYBOARD=y
|
||||
CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
|
||||
CONFIG_DM_VIDEO=y
|
||||
CONFIG_VIDEO_IPUV3=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SOURCE=y
|
||||
CONFIG_FDT_FIXUP_PARTITIONS=y
|
||||
|
@@ -91,5 +91,7 @@ CONFIG_CI_UDC=y
|
||||
CONFIG_USB_GADGET_DOWNLOAD=y
|
||||
CONFIG_DM_VIDEO=y
|
||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
CONFIG_FDT_FIXUP_PARTITIONS=y
|
||||
|
@@ -101,4 +101,6 @@ CONFIG_DM_VIDEO=y
|
||||
# CONFIG_VIDEO_BPP32 is not set
|
||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_VIDEO_IPUV3=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
|
@@ -91,5 +91,7 @@ CONFIG_CI_UDC=y
|
||||
CONFIG_USB_GADGET_DOWNLOAD=y
|
||||
CONFIG_DM_VIDEO=y
|
||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
CONFIG_FDT_FIXUP_PARTITIONS=y
|
||||
|
@@ -87,4 +87,6 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
|
||||
CONFIG_CI_UDC=y
|
||||
CONFIG_DM_VIDEO=y
|
||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
|
@@ -10,6 +10,7 @@ CONFIG_ENV_SECT_SIZE=0x40000
|
||||
CONFIG_ENV_VARS_UBOOT_CONFIG=y
|
||||
CONFIG_USE_BOOTARGS=y
|
||||
CONFIG_BOOTARGS="console=tty0 console=ttyS0,115200"
|
||||
CONFIG_SYS_DEVICE_NULLDEV=y
|
||||
# CONFIG_DISPLAY_BOARDINFO is not set
|
||||
CONFIG_DISPLAY_BOARDINFO_LATE=y
|
||||
# CONFIG_CMDLINE_EDITING is not set
|
||||
|
@@ -96,6 +96,7 @@ CONFIG_DM_VIDEO=y
|
||||
# CONFIG_VIDEO_BPP8 is not set
|
||||
# CONFIG_VIDEO_BPP16 is not set
|
||||
CONFIG_VIDEO_FSL_DCU_FB=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
CONFIG_FDT_FIXUP_PARTITIONS=y
|
||||
# CONFIG_EFI_UNICODE_CAPITALIZATION is not set
|
||||
|
@@ -40,6 +40,7 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_USE_ENV_SPI_MAX_HZ=y
|
||||
CONFIG_ENV_SPI_MAX_HZ=20000000
|
||||
CONFIG_ENV_ADDR=0x70000
|
||||
CONFIG_NETCONSOLE=y
|
||||
CONFIG_DM=y
|
||||
CONFIG_SATA_MV=y
|
||||
CONFIG_BLK=y
|
||||
|
@@ -39,6 +39,7 @@ CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_NET_RANDOM_ETHADDR=y
|
||||
CONFIG_NETCONSOLE=y
|
||||
CONFIG_DM=y
|
||||
CONFIG_MVSATA_IDE=y
|
||||
CONFIG_MTD=y
|
||||
|
@@ -39,6 +39,7 @@ CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_NET_RANDOM_ETHADDR=y
|
||||
CONFIG_NETCONSOLE=y
|
||||
CONFIG_DM=y
|
||||
CONFIG_MVSATA_IDE=y
|
||||
CONFIG_MTD=y
|
||||
|
@@ -60,4 +60,6 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
|
||||
CONFIG_CI_UDC=y
|
||||
CONFIG_USB_GADGET_DOWNLOAD=y
|
||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_OF_LIBFDT=y
|
||||
|
@@ -59,4 +59,6 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
|
||||
CONFIG_CI_UDC=y
|
||||
CONFIG_USB_GADGET_DOWNLOAD=y
|
||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
CONFIG_SPLASH_SCREEN=y
|
||||
CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
CONFIG_OF_LIBFDT=y
|
||||
|
@@ -34,6 +34,7 @@ CONFIG_ISO_PARTITION=y
|
||||
CONFIG_OF_CONTROL=y
|
||||
CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_NAND=y
|
||||
CONFIG_NETCONSOLE=y
|
||||
CONFIG_DM=y
|
||||
CONFIG_MVSATA_IDE=y
|
||||
CONFIG_BLK=y
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user