1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-09-01 08:42:12 +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:
Ondrej Jirman
2020-08-25 19:47:05 +02:00
371 changed files with 2585 additions and 971 deletions

View File

@@ -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
View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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;

View File

@@ -51,6 +51,6 @@
/* Micron MTFC8GAKAJCN-4M 8 GB eMMC */
&sdhci0 {
status = "okay";
xlnx,mio_bank = <0>;
xlnx,mio-bank = <0>;
clock-frequency = <199998000>;
};

View File

@@ -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>;
};
};
};

View File

@@ -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>;
};
};
};

View File

@@ -244,3 +244,11 @@
output-low;
};
};
&ssusb {
status = "okay";
};
&u3phy {
status = "okay";
};

View File

@@ -222,3 +222,11 @@
full-duplex;
};
};
&ssusb {
status = "okay";
};
&u3phy {
status = "okay";
};

View File

@@ -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>;

View File

@@ -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>;

View File

@@ -248,3 +248,19 @@
pinctrl-0 = <&uart2_pins_a>;
status = "okay";
};
&usb1 {
status = "okay";
};
&u3phy1 {
status = "okay";
};
&usb2 {
status = "okay";
};
&u3phy2 {
status = "okay";
};

View File

@@ -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";
};

View 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";
};
};

View File

@@ -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>;
};
};

View File

@@ -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>;
};
};

View File

@@ -131,7 +131,7 @@
status = "okay";
no-1-8-v;
disable-wp;
xlnx,mio_bank = <1>;
xlnx,mio-bank = <1>;
};
&gem0 {

View File

@@ -70,7 +70,7 @@
non-removable;
disable-wp;
bus-width = <8>;
xlnx,mio_bank = <0>;
xlnx,mio-bank = <0>;
};
&uart0 { /* uart0 MIO38-39 */

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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>;
};

View File

@@ -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 {

View File

@@ -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;

View File

@@ -660,7 +660,7 @@
* removed for supporting UHS mode
*/
no-1-8-v;
xlnx,mio_bank = <1>;
xlnx,mio-bank = <1>;
};
&serdes {

View File

@@ -249,7 +249,7 @@
&sdhci1 {
status = "okay";
no-1-8-v;
xlnx,mio_bank = <1>;
xlnx,mio-bank = <1>;
disable-wp;
};

View File

@@ -262,7 +262,7 @@
&sdhci1 {
status = "okay";
no-1-8-v;
xlnx,mio_bank = <1>;
xlnx,mio-bank = <1>;
disable-wp;
};

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -80,5 +80,5 @@
* removed for supporting UHS mode
*/
no-1-8-v;
xlnx,mio_bank = <1>;
xlnx,mio-bank = <1>;
};

View File

@@ -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>;
};

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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>

View File

@@ -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 */

View File

@@ -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

View File

@@ -8,7 +8,5 @@ enum {
TCM_SPLIT,
};
#define PAYLOAD_ARG_CNT 4U
void tcm_init(u8 mode);
void mem_map_fill(void);

View File

@@ -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

View File

@@ -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;

View File

@@ -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

View File

@@ -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.

View File

@@ -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;

View File

@@ -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;

View File

@@ -44,8 +44,6 @@ SECTIONS
{
*(.__efi_runtime_rel_stop)
}
__bss_start = .;
}
INSERT BEFORE .data;

View File

@@ -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>;

View 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

View 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

View 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

View 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)
{
}

View File

@@ -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

View File

@@ -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

View File

@@ -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/

View File

@@ -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");

View File

@@ -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;
}

View 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

View File

@@ -5,4 +5,5 @@
#
obj-y := board.o
obj-$(CONFIG_CMD_VERSAL) += cmds.o
obj-y += ../common/board.o

View File

@@ -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
View 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
)

View File

@@ -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";

View File

@@ -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(&regs);
/*
* 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;

View File

@@ -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"

View File

@@ -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;

View File

@@ -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

View File

@@ -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);
}
}

View File

@@ -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;

View File

@@ -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 */

View File

@@ -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
View 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
);

View File

@@ -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

View File

@@ -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>

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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