mirror of
https://xff.cz/git/u-boot/
synced 2025-08-30 07:42:22 +02:00
Merge branch 'master' of git://git.denx.de/u-boot into master
* 'master' of git://git.denx.de/u-boot: (40 commits) configs: powerpc: Don't set CONFIG_ENV_ADDR for QorIQ SPIFLASH disk: typo Terra Bytes doc/build/gcc.rst: add missing apt-get *install* gpio/mpc83xx_spisel_boot.c: include log.h spi: mpc8xxx_spi.c: fix cs activate/deactivate Prepare v2020.10-rc5 configs: Resync with savedefconfig x86: acpi: Add memset to initialize SPCR table x86: acpi: Fix calculation of DSDT length x86: fsp: Replace e-mmc with emmc in devicetree bindings cmd: acpi: Print revisions in hex format x86: edison: Move config SYS_MALLOC_LEN to Kconfig efi: change 'env -e -i' usage syntax efi_selftest: check for RISC-V boot-hartid in FDT efi_selftest: rework device tree test efi_memory: refine overlap_only_ram description rng: stm32mp1: use log() instead of printf() cmd: mem: fix range of bitflip test configs: bcmstb: Disable networking support fs/squashfs: Fix Coverity Scan defects ...
This commit is contained in:
2
Makefile
2
Makefile
@@ -3,7 +3,7 @@
|
||||
VERSION = 2020
|
||||
PATCHLEVEL = 10
|
||||
SUBLEVEL =
|
||||
EXTRAVERSION = -rc4
|
||||
EXTRAVERSION = -rc5
|
||||
NAME =
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
@@ -12,8 +12,8 @@
|
||||
#include "fsl-imx8qm-apalis-u-boot.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Toradex Apalis iMX8QM";
|
||||
compatible = "toradex,apalis-imx8qm", "fsl,imx8qm";
|
||||
model = "Toradex Apalis iMX8";
|
||||
compatible = "toradex,apalis-imx8", "fsl,imx8qm";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyLP1,115200 earlycon=lpuart32,0x5a070000,115200";
|
||||
@@ -38,7 +38,7 @@
|
||||
<&pinctrl_qspi1a_gpios>, <&pinctrl_sata1_act>,
|
||||
<&pinctrl_sim0_gpios>, <&pinctrl_usdhc1_gpios>;
|
||||
|
||||
apalis-imx8qm {
|
||||
apalis-imx8 {
|
||||
pinctrl_gpio12: gpio12grp {
|
||||
fsl,pins = <
|
||||
/* Apalis GPIO1 */
|
||||
|
@@ -9,8 +9,8 @@
|
||||
#include "fsl-imx8qxp-colibri-u-boot.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Toradex Colibri iMX8QXP";
|
||||
compatible = "toradex,colibri-imx8qxp", "fsl,imx8qxp";
|
||||
model = "Toradex Colibri iMX8X";
|
||||
compatible = "toradex,colibri-imx8x", "fsl,imx8qxp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyLP3,115200 earlycon=lpuart32,0x5a090000,115200";
|
||||
@@ -32,7 +32,7 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_hog0>, <&pinctrl_hog1>, <&pinctrl_hog2>;
|
||||
|
||||
colibri-imx8qxp {
|
||||
colibri-imx8x {
|
||||
pinctrl_lpuart0: lpuart0grp {
|
||||
fsl,pins = <
|
||||
SC_P_UART0_RX_ADMA_UART0_RX 0x06000020
|
||||
|
@@ -41,9 +41,7 @@
|
||||
#define MXC_CPU_IMX8MNDL 0x8f /* dummy ID */
|
||||
#define MXC_CPU_IMX8MNSL 0x181 /* dummy ID */
|
||||
#define MXC_CPU_IMX8MP 0x182/* dummy ID */
|
||||
#define MXC_CPU_IMX8MP7 0x183 /* dummy ID */
|
||||
#define MXC_CPU_IMX8MP6 0x184 /* dummy ID */
|
||||
#define MXC_CPU_IMX8MP5 0x185 /* dummy ID */
|
||||
#define MXC_CPU_IMX8MPL 0x186 /* dummy ID */
|
||||
#define MXC_CPU_IMX8MPD 0x187 /* dummy ID */
|
||||
#define MXC_CPU_IMX8QXP_A0 0x90 /* dummy ID */
|
||||
|
@@ -316,7 +316,7 @@ enum clk_src_index {
|
||||
#define FRAC_PLL_LOCK_MASK BIT(31)
|
||||
#define FRAC_PLL_CLKE_MASK BIT(21)
|
||||
#define FRAC_PLL_PD_MASK BIT(19)
|
||||
#define FRAC_PLL_REFCLK_SEL_MASK BIT(16)
|
||||
#define FRAC_PLL_REFCLK_SEL_MASK (0x3 << 16)
|
||||
#define FRAC_PLL_LOCK_SEL_MASK BIT(15)
|
||||
#define FRAC_PLL_BYPASS_MASK BIT(14)
|
||||
#define FRAC_PLL_COUNTCLK_SEL_MASK BIT(13)
|
||||
@@ -358,10 +358,10 @@ enum clk_src_index {
|
||||
#define SSCG_PLL_LOCK_SEL_MASK BIT(3)
|
||||
#define SSCG_PLL_COUNTCLK_SEL_MASK BIT(2)
|
||||
#define SSCG_PLL_REFCLK_SEL_MASK 0x3
|
||||
#define SSCG_PLL_REFCLK_SEL_OSC_25M (0 << 16)
|
||||
#define SSCG_PLL_REFCLK_SEL_OSC_27M BIT(16)
|
||||
#define SSCG_PLL_REFCLK_SEL_HDMI_PHY_27M (2 << 16)
|
||||
#define SSCG_PLL_REFCLK_SEL_CLK_PN (3 << 16)
|
||||
#define SSCG_PLL_REFCLK_SEL_OSC_25M (0)
|
||||
#define SSCG_PLL_REFCLK_SEL_OSC_27M (1)
|
||||
#define SSCG_PLL_REFCLK_SEL_HDMI_PHY_27M (2)
|
||||
#define SSCG_PLL_REFCLK_SEL_CLK_PN (3)
|
||||
|
||||
#define SSCG_PLL_SSDS_MASK BIT(8)
|
||||
#define SSCG_PLL_SSMD_MASK (0x7 << 5)
|
||||
|
@@ -57,7 +57,7 @@ struct mxc_ccm_reg {
|
||||
uint32_t reserved_0[4092];
|
||||
struct mxc_ccm_ccgr ccgr_array[191]; /* offset 0x4000 */
|
||||
uint32_t reserved_1[3332];
|
||||
struct mxc_ccm_root_slice root[121]; /* offset 0x8000 */
|
||||
struct mxc_ccm_root_slice root[125]; /* offset 0x8000 */
|
||||
|
||||
};
|
||||
|
||||
|
@@ -67,13 +67,10 @@ struct bd_info;
|
||||
#define is_imx8mndl() (is_cpu_type(MXC_CPU_IMX8MNDL))
|
||||
#define is_imx8mnsl() (is_cpu_type(MXC_CPU_IMX8MNSL))
|
||||
#define is_imx8mp() (is_cpu_type(MXC_CPU_IMX8MP) || is_cpu_type(MXC_CPU_IMX8MPD) || \
|
||||
is_cpu_type(MXC_CPU_IMX8MPL) || is_cpu_type(MXC_CPU_IMX8MP7) || \
|
||||
is_cpu_type(MXC_CPU_IMX8MP6) || is_cpu_type(MXC_CPU_IMX8MP5))
|
||||
is_cpu_type(MXC_CPU_IMX8MPL) || is_cpu_type(MXC_CPU_IMX8MP6))
|
||||
#define is_imx8mpd() (is_cpu_type(MXC_CPU_IMX8MPD))
|
||||
#define is_imx8mpl() (is_cpu_type(MXC_CPU_IMX8MPL))
|
||||
#define is_imx8mp7() (is_cpu_type(MXC_CPU_IMX8MP7))
|
||||
#define is_imx8mp6() (is_cpu_type(MXC_CPU_IMX8MP6))
|
||||
#define is_imx8mp5() (is_cpu_type(MXC_CPU_IMX8MP5))
|
||||
|
||||
#define is_imx8qxp() (is_cpu_type(MXC_CPU_IMX8QXP))
|
||||
|
||||
|
@@ -102,12 +102,8 @@ const char *get_imx_type(u32 imxtype)
|
||||
return "8MP Dual[3]"; /* Dual-core version of the imx8mp */
|
||||
case MXC_CPU_IMX8MPL:
|
||||
return "8MP Lite[4]"; /* Quad-core Lite version of the imx8mp */
|
||||
case MXC_CPU_IMX8MP7:
|
||||
return "8MP[7]"; /* Quad-core version of the imx8mp, VPU fused */
|
||||
case MXC_CPU_IMX8MP6:
|
||||
return "8MP[6]"; /* Quad-core version of the imx8mp, NPU fused */
|
||||
case MXC_CPU_IMX8MP5:
|
||||
return "8MP[5]"; /* Quad-core version of the imx8mp, ISP fused */
|
||||
case MXC_CPU_IMX8MN:
|
||||
return "8MNano Quad"; /* Quad-core version */
|
||||
case MXC_CPU_IMX8MND:
|
||||
|
@@ -360,6 +360,7 @@ void init_clk_ecspi(u32 index)
|
||||
clock_enable(CCGR_ECSPI2, 0);
|
||||
clock_set_target_val(ECSPI2_CLK_ROOT, CLK_ROOT_ON | CLK_ROOT_SOURCE_SEL(0));
|
||||
clock_enable(CCGR_ECSPI2, 1);
|
||||
return;
|
||||
case 2:
|
||||
clock_enable(CCGR_ECSPI3, 0);
|
||||
clock_set_target_val(ECSPI3_CLK_ROOT, CLK_ROOT_ON | CLK_ROOT_SOURCE_SEL(0));
|
||||
|
@@ -343,12 +343,8 @@ static u32 get_cpu_variant_type(u32 type)
|
||||
switch (flag) {
|
||||
case 7:
|
||||
return MXC_CPU_IMX8MPL;
|
||||
case 6:
|
||||
return MXC_CPU_IMX8MP5;
|
||||
case 2:
|
||||
return MXC_CPU_IMX8MP6;
|
||||
case 1:
|
||||
return MXC_CPU_IMX8MP7;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -889,16 +885,16 @@ usb_modify_speed:
|
||||
disable_cpu_nodes(blob, 3);
|
||||
|
||||
#elif defined(CONFIG_IMX8MP)
|
||||
if (is_imx8mpl() || is_imx8mp7())
|
||||
if (is_imx8mpl())
|
||||
disable_vpu_nodes(blob);
|
||||
|
||||
if (is_imx8mpl() || is_imx8mp6() || is_imx8mp5())
|
||||
if (is_imx8mpl() || is_imx8mp6())
|
||||
disable_npu_nodes(blob);
|
||||
|
||||
if (is_imx8mpl() || is_imx8mp5())
|
||||
if (is_imx8mpl())
|
||||
disable_isp_nodes(blob);
|
||||
|
||||
if (is_imx8mpl() || is_imx8mp7() || is_imx8mp6() || is_imx8mp5())
|
||||
if (is_imx8mpl() || is_imx8mp6())
|
||||
disable_dsp_nodes(blob);
|
||||
|
||||
if (is_imx8mpd())
|
||||
|
@@ -250,16 +250,31 @@ int mmdc_do_write_level_calibration(struct mx6_ddr_sysinfo const *sysinfo)
|
||||
|
||||
static void mmdc_set_sdqs(bool set)
|
||||
{
|
||||
struct mx6sdl_iomux_ddr_regs *mx6sdl_ddr_iomux =
|
||||
(struct mx6sdl_iomux_ddr_regs *)MX6SDL_IOM_DDR_BASE;
|
||||
struct mx6dq_iomux_ddr_regs *mx6dq_ddr_iomux =
|
||||
(struct mx6dq_iomux_ddr_regs *)MX6DQ_IOM_DDR_BASE;
|
||||
struct mx6sx_iomux_ddr_regs *mx6sx_ddr_iomux =
|
||||
(struct mx6sx_iomux_ddr_regs *)MX6SX_IOM_DDR_BASE;
|
||||
struct mx6sl_iomux_ddr_regs *mx6sl_ddr_iomux =
|
||||
(struct mx6sl_iomux_ddr_regs *)MX6SL_IOM_DDR_BASE;
|
||||
struct mx6ul_iomux_ddr_regs *mx6ul_ddr_iomux =
|
||||
(struct mx6ul_iomux_ddr_regs *)MX6UL_IOM_DDR_BASE;
|
||||
int i, sdqs_cnt;
|
||||
u32 sdqs;
|
||||
|
||||
if (is_mx6sx()) {
|
||||
sdqs = (u32)(&mx6sx_ddr_iomux->dram_sdqs0);
|
||||
sdqs_cnt = 2;
|
||||
} else if (is_mx6sl()) {
|
||||
sdqs = (u32)(&mx6sl_ddr_iomux->dram_sdqs0);
|
||||
sdqs_cnt = 2;
|
||||
} else if (is_mx6ul() || is_mx6ull()) {
|
||||
sdqs = (u32)(&mx6ul_ddr_iomux->dram_sdqs0);
|
||||
sdqs_cnt = 2;
|
||||
} else if (is_mx6sdl()) {
|
||||
sdqs = (u32)(&mx6sdl_ddr_iomux->dram_sdqs0);
|
||||
sdqs_cnt = 8;
|
||||
} else { /* MX6DQ */
|
||||
sdqs = (u32)(&mx6dq_ddr_iomux->dram_sdqs0);
|
||||
sdqs_cnt = 8;
|
||||
|
@@ -555,7 +555,7 @@ const struct fsp_binding fsp_m_bindings[] = {
|
||||
}, {
|
||||
.type = FSP_UINT8,
|
||||
.offset = offsetof(struct fsp_m_config, e_mmc_trace_len),
|
||||
.propname = "fspm,e-mmc-trace-len",
|
||||
.propname = "fspm,emmc-trace-len",
|
||||
}, {
|
||||
.type = FSP_UINT8,
|
||||
.offset = offsetof(struct fsp_m_config, skip_cse_rbp),
|
||||
@@ -1465,11 +1465,11 @@ const struct fsp_binding fsp_s_bindings[] = {
|
||||
}, {
|
||||
.type = FSP_UINT8,
|
||||
.offset = offsetof(struct fsp_s_config, e_mmc_enabled),
|
||||
.propname = "fsps,e-mmc-enabled",
|
||||
.propname = "fsps,emmc-enabled",
|
||||
}, {
|
||||
.type = FSP_UINT8,
|
||||
.offset = offsetof(struct fsp_s_config, e_mmc_host_max_speed),
|
||||
.propname = "fsps,e-mmc-host-max-speed",
|
||||
.propname = "fsps,emmc-host-max-speed",
|
||||
}, {
|
||||
.type = FSP_UINT8,
|
||||
.offset = offsetof(struct fsp_s_config, ufs_enabled),
|
||||
|
@@ -252,6 +252,8 @@ static void acpi_create_spcr(struct acpi_spcr *spcr)
|
||||
int space_id;
|
||||
int ret = -ENODEV;
|
||||
|
||||
memset((void *)spcr, 0, sizeof(struct acpi_spcr));
|
||||
|
||||
/* Fill out header fields */
|
||||
acpi_fill_header(header, "SPCR");
|
||||
header->length = sizeof(struct acpi_spcr);
|
||||
@@ -427,7 +429,7 @@ ulong write_acpi_tables(ulong start_addr)
|
||||
(char *)&AmlCode + sizeof(struct acpi_table_header),
|
||||
dsdt->length - sizeof(struct acpi_table_header));
|
||||
|
||||
acpi_inc_align(ctx, dsdt->length - sizeof(struct acpi_table_header));
|
||||
acpi_inc(ctx, dsdt->length - sizeof(struct acpi_table_header));
|
||||
|
||||
/* Pack GNVS into the ACPI table area */
|
||||
for (i = 0; i < dsdt->length; i++) {
|
||||
@@ -450,6 +452,8 @@ ulong write_acpi_tables(ulong start_addr)
|
||||
dsdt->checksum = 0;
|
||||
dsdt->checksum = table_compute_checksum((void *)dsdt, dsdt->length);
|
||||
|
||||
acpi_align(ctx);
|
||||
|
||||
/*
|
||||
* Fill in platform-specific global NVS variables. If this fails we
|
||||
* cannot return the error but this should only happen while debugging.
|
||||
|
@@ -12,6 +12,9 @@ config SYS_SOC
|
||||
config SYS_CONFIG_NAME
|
||||
default "edison"
|
||||
|
||||
config SYS_MALLOC_LEN
|
||||
default 0x08000000
|
||||
|
||||
config SYS_TEXT_BASE
|
||||
default 0x01101000
|
||||
|
||||
|
@@ -5,6 +5,6 @@ S: Maintained
|
||||
F: arch/arm/dts/fsl-imx8-apalis.dts
|
||||
F: arch/arm/dts/fsl-imx8-apalis-u-boot.dtsi
|
||||
F: board/toradex/apalis-imx8/
|
||||
F: configs/apalis-imx8qm_defconfig
|
||||
F: configs/apalis-imx8_defconfig
|
||||
F: doc/board/toradex/apalix-imx8.rst
|
||||
F: include/configs/apalis-imx8.h
|
||||
|
@@ -173,8 +173,6 @@ int board_late_init(void)
|
||||
|
||||
#if defined(CONFIG_DM_VIDEO)
|
||||
setup_lcd();
|
||||
|
||||
show_boot_logo();
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
@@ -5,6 +5,6 @@ S: Maintained
|
||||
F: arch/arm/dts/fsl-imx8x-colibri.dts
|
||||
F: arch/arm/dts/fsl-imx8x-colibri-u-boot.dtsi
|
||||
F: board/toradex/colibri-imx8x/
|
||||
F: configs/colibri-imx8qxp_defconfig
|
||||
F: configs/colibri-imx8x_defconfig
|
||||
F: doc/board/toradex/colibri-imx8x.rst
|
||||
F: include/configs/colibri-imx8x.h
|
||||
|
@@ -133,8 +133,10 @@ static int setup_lcd(void)
|
||||
*/
|
||||
void board_preboot_os(void)
|
||||
{
|
||||
#ifdef CONFIG_DM_VIDEO
|
||||
gpio_direction_output(GPIO_PWM_A, 1);
|
||||
gpio_direction_output(GPIO_BL_ON, 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void setup_iomux_uart(void)
|
||||
@@ -356,8 +358,6 @@ int board_late_init(void)
|
||||
{
|
||||
#if defined(CONFIG_DM_VIDEO)
|
||||
setup_lcd();
|
||||
|
||||
show_boot_logo();
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
@@ -203,22 +203,3 @@ int ft_common_board_setup(void *blob, struct bd_info *bd)
|
||||
}
|
||||
|
||||
#endif /* CONFIG_TDX_CFG_BLOCK */
|
||||
|
||||
#if defined(CONFIG_DM_VIDEO)
|
||||
int show_boot_logo(void)
|
||||
{
|
||||
struct udevice *dev;
|
||||
int ret;
|
||||
int xpos, ypos;
|
||||
|
||||
splash_get_pos(&xpos, &ypos);
|
||||
|
||||
ret = uclass_get_device(UCLASS_VIDEO, 0, &dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = video_bmp_display(dev, (ulong)bmp_logo_bitmap, xpos, ypos, true);
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif /* CONFIG_DM_VIDEO */
|
||||
|
12
cmd/Kconfig
12
cmd/Kconfig
@@ -777,6 +777,18 @@ config SYS_ALT_MEMTEST
|
||||
help
|
||||
Use a more complete alternative memory test.
|
||||
|
||||
if SYS_ALT_MEMTEST
|
||||
|
||||
config SYS_ALT_MEMTEST_BITFLIP
|
||||
bool "Bitflip test"
|
||||
default y
|
||||
help
|
||||
The alternative memory test includes bitflip test since 2020.07.
|
||||
The bitflip test significantly increases the overall test time.
|
||||
Bitflip test can optionally be disabled here.
|
||||
|
||||
endif
|
||||
|
||||
config SYS_MEMTEST_START
|
||||
hex "default start address for mtest"
|
||||
default 0
|
||||
|
@@ -26,7 +26,7 @@ static void dump_hdr(struct acpi_table_header *hdr)
|
||||
printf("%.*s %08lx %06x", ACPI_NAME_LEN, hdr->signature,
|
||||
(ulong)map_to_sysmem(hdr), hdr->length);
|
||||
if (has_hdr) {
|
||||
printf(" (v%02d %.6s %.8s %u %.4s %d)\n", hdr->revision,
|
||||
printf(" (v%02d %.6s %.8s %x %.4s %x)\n", hdr->revision,
|
||||
hdr->oem_id, hdr->oem_table_id, hdr->oem_revision,
|
||||
hdr->aslc_id, hdr->aslc_revision);
|
||||
} else {
|
||||
|
21
cmd/mem.c
21
cmd/mem.c
@@ -985,6 +985,18 @@ static ulong test_bitflip_comparison(volatile unsigned long *bufa,
|
||||
return errs;
|
||||
}
|
||||
|
||||
static ulong mem_test_bitflip(vu_long *buf, ulong start, ulong end)
|
||||
{
|
||||
/*
|
||||
* Split the specified range into two halves.
|
||||
* Note that mtest range is inclusive of start,end.
|
||||
* Bitflip test instead uses a count (of 32-bit words).
|
||||
*/
|
||||
ulong half_size = (end - start + 1) / 2 / sizeof(unsigned long);
|
||||
|
||||
return test_bitflip_comparison(buf, buf + half_size, half_size);
|
||||
}
|
||||
|
||||
static ulong mem_test_quick(vu_long *buf, ulong start_addr, ulong end_addr,
|
||||
vu_long pattern, int iteration)
|
||||
{
|
||||
@@ -1104,11 +1116,10 @@ static int do_mem_mtest(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||
errs = mem_test_alt(buf, start, end, dummy);
|
||||
if (errs == -1UL)
|
||||
break;
|
||||
count += errs;
|
||||
errs = test_bitflip_comparison(buf,
|
||||
buf + (end - start) / 2,
|
||||
(end - start) /
|
||||
sizeof(unsigned long));
|
||||
if (IS_ENABLED(CONFIG_SYS_ALT_MEMTEST_BITFLIP)) {
|
||||
count += errs;
|
||||
errs = mem_test_bitflip(buf, start, end);
|
||||
}
|
||||
} else {
|
||||
errs = mem_test_quick(buf, start, end, pattern,
|
||||
iteration);
|
||||
|
@@ -1477,7 +1477,7 @@ static char env_help_text[] =
|
||||
"env select [target] - select environment target\n"
|
||||
#endif
|
||||
#if defined(CONFIG_CMD_NVEDIT_EFI)
|
||||
"env set -e [-nv][-bs][-rt][-at][-a][-i addr,size][-v] name [arg ...]\n"
|
||||
"env set -e [-nv][-bs][-rt][-at][-a][-i addr:size][-v] name [arg ...]\n"
|
||||
" - set UEFI variable; unset if '-i' or 'arg' not specified\n"
|
||||
#endif
|
||||
"env set [-f] name [arg ...]\n";
|
||||
@@ -1541,7 +1541,7 @@ U_BOOT_CMD_COMPLETE(
|
||||
"set environment variables",
|
||||
#if defined(CONFIG_CMD_NVEDIT_EFI)
|
||||
"-e [-guid guid][-nv][-bs][-rt][-at][-a][-v]\n"
|
||||
" [-i addr,size name], or [name [value ...]]\n"
|
||||
" [-i addr:size name], or [name [value ...]]\n"
|
||||
" - set UEFI variable 'name' to 'value' ...'\n"
|
||||
" \"-guid\": GUID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n"
|
||||
" \"-nv\": set non-volatile attribute\n"
|
||||
|
@@ -50,7 +50,6 @@ CONFIG_MTDIDS_DEFAULT="nor0=fe8000000.nor,nand0=fff800000.flash,spi0=spife110000
|
||||
CONFIG_MTDPARTS_DEFAULT="mtdparts=fe8000000.nor:1m(uboot),5m(kernel),128k(dtb),96m(fs),-(user);fff800000.flash:1m(uboot),5m(kernel),128k(dtb),96m(fs),-(user);spife110000.0:1m(uboot),5m(kernel),128k(dtb),-(user)"
|
||||
CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_ENV_ADDR=0xFFFC9000
|
||||
CONFIG_FSL_CAAM=y
|
||||
CONFIG_FSL_ESDHC=y
|
||||
CONFIG_MTD=y
|
||||
|
@@ -53,7 +53,6 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=fe8000000.nor:1m(uboot),5m(kernel),128k(dtb),9
|
||||
CONFIG_OF_CONTROL=y
|
||||
CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_ENV_ADDR=0xFFFC9000
|
||||
CONFIG_DM=y
|
||||
CONFIG_FSL_CAAM=y
|
||||
CONFIG_SYS_FSL_DDR3=y
|
||||
|
@@ -47,7 +47,6 @@ CONFIG_MTDIDS_DEFAULT="nor0=fe8000000.nor,nand0=fff800000.flash,spi0=spife110000
|
||||
CONFIG_MTDPARTS_DEFAULT="mtdparts=fe8000000.nor:1m(uboot),5m(kernel),128k(dtb),96m(fs),-(user);fff800000.flash:2m(uboot),9m(kernel),128k(dtb),96m(fs),-(user);spife110000.0:2m(uboot),9m(kernel),128k(dtb),-(user)"
|
||||
CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_ENV_ADDR=0xFFFC9000
|
||||
CONFIG_FSL_CAAM=y
|
||||
CONFIG_FSL_ESDHC=y
|
||||
CONFIG_MTD=y
|
||||
|
@@ -47,7 +47,6 @@ CONFIG_MTDIDS_DEFAULT="nor0=fe8000000.nor,nand0=fff800000.flash,spi0=spife110000
|
||||
CONFIG_MTDPARTS_DEFAULT="mtdparts=fe8000000.nor:1m(uboot),5m(kernel),128k(dtb),96m(fs),-(user);fff800000.flash:2m(uboot),9m(kernel),128k(dtb),96m(fs),-(user);spife110000.0:2m(uboot),9m(kernel),128k(dtb),-(user)"
|
||||
CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_ENV_ADDR=0xFFFC9000
|
||||
CONFIG_FSL_CAAM=y
|
||||
CONFIG_SYS_FSL_DDR3=y
|
||||
CONFIG_FSL_ESDHC=y
|
||||
|
@@ -50,7 +50,6 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=fe8000000.nor:1m(uboot),5m(kernel),128k(dtb),9
|
||||
CONFIG_OF_CONTROL=y
|
||||
CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_ENV_ADDR=0xFFFC9000
|
||||
CONFIG_DM=y
|
||||
CONFIG_FSL_CAAM=y
|
||||
CONFIG_DM_I2C=y
|
||||
|
@@ -49,7 +49,6 @@ CONFIG_MTDIDS_DEFAULT="nor0=fe8000000.nor,nand0=fff800000.flash,spi0=spife110000
|
||||
CONFIG_MTDPARTS_DEFAULT="mtdparts=fe8000000.nor:1m(uboot),5m(kernel),128k(dtb),96m(fs),-(user);fff800000.flash:2m(uboot),9m(kernel),128k(dtb),96m(fs),-(user);spife110000.0:2m(uboot),9m(kernel),128k(dtb),-(user)"
|
||||
CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_ENV_ADDR=0xFFFC9000
|
||||
CONFIG_FSL_CAAM=y
|
||||
CONFIG_SYS_FSL_DDR3=y
|
||||
CONFIG_FSL_ESDHC=y
|
||||
|
@@ -46,7 +46,6 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=fe8000000.nor:1m(uboot),5m(kernel),128k(dtb),9
|
||||
CONFIG_OF_CONTROL=y
|
||||
CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_ENV_ADDR=0xFFFC9000
|
||||
CONFIG_DM=y
|
||||
CONFIG_FSL_CAAM=y
|
||||
CONFIG_DM_I2C=y
|
||||
|
@@ -50,7 +50,6 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=fe8000000.nor:1m(uboot),5m(kernel),128k(dtb),9
|
||||
CONFIG_OF_CONTROL=y
|
||||
CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_ENV_ADDR=0xFFFC9000
|
||||
CONFIG_DM=y
|
||||
CONFIG_FSL_CAAM=y
|
||||
CONFIG_DM_I2C=y
|
||||
|
@@ -44,7 +44,6 @@ CONFIG_MTDIDS_DEFAULT="nor0=fe8000000.nor,nand0=fff800000.flash,spi0=spife110000
|
||||
CONFIG_MTDPARTS_DEFAULT="mtdparts=fe8000000.nor:1m(uboot),5m(kernel),128k(dtb),96m(fs),-(user);fff800000.flash:1m(uboot),5m(kernel),128k(dtb),96m(fs),-(user);spife110000.0:1m(uboot),5m(kernel),128k(dtb),-(user)"
|
||||
CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_ENV_ADDR=0xFFFC9000
|
||||
CONFIG_FSL_CAAM=y
|
||||
CONFIG_FSL_ESDHC=y
|
||||
CONFIG_MTD=y
|
||||
|
@@ -11,7 +11,7 @@ CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qm-apalis"
|
||||
CONFIG_DISTRO_DEFAULTS=y
|
||||
CONFIG_FIT=y
|
||||
CONFIG_OF_SYSTEM_SETUP=y
|
||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/apalis-imx8/apalis-imx8qm-imximage.cfg"
|
||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/apalis-imx8/apalis-imx8-imximage.cfg"
|
||||
CONFIG_LOG=y
|
||||
CONFIG_VERSION_VARIABLE=y
|
||||
# CONFIG_DISPLAY_BOARDINFO is not set
|
@@ -27,6 +27,7 @@ CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_MMC=y
|
||||
CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
# CONFIG_NET is not set
|
||||
CONFIG_DM_MMC=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_BCMSTB=y
|
||||
|
@@ -28,6 +28,7 @@ CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
# CONFIG_NET is not set
|
||||
CONFIG_DM_MMC=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_BCMSTB=y
|
||||
|
@@ -13,6 +13,8 @@ CONFIG_FIT=y
|
||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri-imx6ull/imximage.cfg,IMX_NAND"
|
||||
CONFIG_BOOTDELAY=1
|
||||
# CONFIG_USE_BOOTCOMMAND is not set
|
||||
CONFIG_USE_PREBOOT=y
|
||||
CONFIG_PREBOOT="setenv fdtfile imx6ull-colibri${variant}-${fdt_board}.dtb"
|
||||
# CONFIG_CONSOLE_MUX is not set
|
||||
CONFIG_SYS_CONSOLE_IS_IN_ENV=y
|
||||
CONFIG_VERSION_VARIABLE=y
|
||||
|
@@ -10,7 +10,7 @@ CONFIG_TARGET_COLIBRI_IMX8X=y
|
||||
CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qxp-colibri"
|
||||
CONFIG_DISTRO_DEFAULTS=y
|
||||
CONFIG_FIT=y
|
||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri-imx8x/colibri-imx8qxp-imximage.cfg"
|
||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri-imx8x/colibri-imx8x-imximage.cfg"
|
||||
CONFIG_LOG=y
|
||||
CONFIG_VERSION_VARIABLE=y
|
||||
# CONFIG_DISPLAY_BOARDINFO is not set
|
@@ -14,6 +14,8 @@ CONFIG_DISTRO_DEFAULTS=y
|
||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri_imx7/imximage.cfg,MX7D"
|
||||
CONFIG_BOOTDELAY=1
|
||||
# CONFIG_USE_BOOTCOMMAND is not set
|
||||
CONFIG_USE_PREBOOT=y
|
||||
CONFIG_PREBOOT="setenv fdtfile ${soc}-colibri-${fdt_board}.dtb "
|
||||
# CONFIG_CONSOLE_MUX is not set
|
||||
CONFIG_SYS_CONSOLE_IS_IN_ENV=y
|
||||
CONFIG_BOARD_LATE_INIT=y
|
||||
|
@@ -16,6 +16,8 @@ CONFIG_FIT=y
|
||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri_imx7/imximage.cfg,MX7D"
|
||||
CONFIG_BOOTDELAY=1
|
||||
# CONFIG_USE_BOOTCOMMAND is not set
|
||||
CONFIG_USE_PREBOOT=y
|
||||
CONFIG_PREBOOT="setenv fdtfile ${soc}-colibri-emmc-${fdt_board}.dtb"
|
||||
# CONFIG_CONSOLE_MUX is not set
|
||||
CONFIG_SYS_CONSOLE_IS_IN_ENV=y
|
||||
CONFIG_BOARD_LATE_INIT=y
|
||||
|
@@ -12,6 +12,8 @@ CONFIG_DEFAULT_DEVICE_TREE="vf610-colibri"
|
||||
CONFIG_ENV_VARS_UBOOT_CONFIG=y
|
||||
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri_vf/imximage.cfg,IMX_NAND"
|
||||
CONFIG_BOOTDELAY=1
|
||||
CONFIG_USE_PREBOOT=y
|
||||
CONFIG_PREBOOT="setenv fdtfile ${soc}-colibri-${fdt_board}.dtb"
|
||||
CONFIG_LOGLEVEL=3
|
||||
CONFIG_VERSION_VARIABLE=y
|
||||
# CONFIG_DISPLAY_BOARDINFO is not set
|
||||
|
@@ -4,7 +4,7 @@ CONFIG_SYS_TEXT_BASE=0x17800000
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||
CONFIG_NR_DRAM_BANKS=1
|
||||
CONFIG_ENV_SIZE=0x2000
|
||||
CONFIG_ENV_OFFSET=0x60000
|
||||
CONFIG_ENV_OFFSET=0xC0000
|
||||
CONFIG_MX6Q=y
|
||||
CONFIG_TARGET_NITROGEN6X=y
|
||||
CONFIG_DM_GPIO=y
|
||||
|
@@ -11,7 +11,6 @@ CONFIG_PRE_CON_BUF_ADDR=0x7c000000
|
||||
CONFIG_CMD_HDMIDETECT=y
|
||||
CONFIG_DEFAULT_DEVICE_TREE="imx6q-tbs2910"
|
||||
CONFIG_AHCI=y
|
||||
CONFIG_ENV_VARS_UBOOT_CONFIG=y
|
||||
CONFIG_BOOTDELAY=3
|
||||
CONFIG_USE_BOOTCOMMAND=y
|
||||
CONFIG_BOOTCOMMAND="mmc rescan; if run bootcmd_up1; then run bootcmd_up2; else run bootcmd_mmc || run distro_bootcmd; fi"
|
||||
|
@@ -7,7 +7,7 @@
|
||||
/*
|
||||
* NOTE:
|
||||
* when CONFIG_SYS_64BIT_LBA is not defined, lbaint_t is 32 bits; this
|
||||
* limits the maximum size of addressable storage to < 2 Terra Bytes
|
||||
* limits the maximum size of addressable storage to < 2 tebibytes
|
||||
*/
|
||||
#include <common.h>
|
||||
#include <blk.h>
|
||||
|
@@ -51,7 +51,7 @@ Build U-Boot
|
||||
------------
|
||||
.. code-block:: bash
|
||||
|
||||
$ make apalis-imx8qm_defconfig
|
||||
$ make apalis-imx8_defconfig
|
||||
$ make u-boot-dtb.imx
|
||||
|
||||
Load the U-Boot Binary Using UUU
|
||||
|
@@ -52,7 +52,7 @@ Build U-Boot
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ make colibri-imx8qxp_defconfig
|
||||
$ make colibri-imx8x_defconfig
|
||||
$ make u-boot-dtb.imx
|
||||
|
||||
Load the U-Boot Binary Using UUU
|
||||
|
2
doc/build/gcc.rst
vendored
2
doc/build/gcc.rst
vendored
@@ -17,7 +17,7 @@ You could install GCC and the GCC cross compiler for the ARMv8 architecture with
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo apt-get gcc gcc-aarch64-linux-gnu
|
||||
sudo apt-get install gcc gcc-aarch64-linux-gnu
|
||||
|
||||
Depending on the build targets further packages maybe needed
|
||||
|
||||
|
@@ -174,7 +174,7 @@ Optional properties:
|
||||
- fspm,oem-loading-base: OEM File Loading Address
|
||||
- fspm,oem-file-name: OEM File Name to Load
|
||||
- fspm,mrc-boot-data-ptr:
|
||||
- fspm,e-mmc-trace-len: eMMC Trace Length
|
||||
- fspm,emmc-trace-len: eMMC Trace Length
|
||||
0x0: Long
|
||||
0x1: Short
|
||||
- fspm,skip-cse-rbp: Skip CSE RBP to support zero sized IBB
|
||||
|
@@ -318,7 +318,7 @@ Optional properties:
|
||||
0x6: warm reset (default)
|
||||
0xE: cold reset
|
||||
- fsps,sdcard-enabled: SD Card Support (D27:F0)
|
||||
- fsps,e-mmc-enabled: SeMMC Support (D28:F0)
|
||||
- fsps,emmc-enabled: SeMMC Support (D28:F0)
|
||||
- fsps,emmc-host-max-speed: eMMC Max Speed
|
||||
0: HS400(default)
|
||||
1: HS200
|
||||
|
@@ -6,6 +6,7 @@
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <log.h>
|
||||
#include <dm.h>
|
||||
#include <mapmem.h>
|
||||
#include <asm/gpio.h>
|
||||
|
@@ -36,6 +36,7 @@
|
||||
#include <dt-structs.h>
|
||||
#include <mapmem.h>
|
||||
#include <dm/ofnode.h>
|
||||
#include <linux/iopoll.h>
|
||||
|
||||
#if !CONFIG_IS_ENABLED(BLK)
|
||||
#include "mmc_private.h"
|
||||
@@ -631,6 +632,8 @@ static void set_sysctl(struct fsl_esdhc_priv *priv, struct mmc *mmc, uint clock)
|
||||
{
|
||||
struct fsl_esdhc *regs = priv->esdhc_regs;
|
||||
int div = 1;
|
||||
u32 tmp;
|
||||
int ret;
|
||||
#ifdef ARCH_MXC
|
||||
#ifdef CONFIG_MX53
|
||||
/* For i.MX53 eSDHCv3, SYSCTL.SDCLKFS may not be set to 0. */
|
||||
@@ -664,7 +667,9 @@ static void set_sysctl(struct fsl_esdhc_priv *priv, struct mmc *mmc, uint clock)
|
||||
|
||||
esdhc_clrsetbits32(®s->sysctl, SYSCTL_CLOCK_MASK, clk);
|
||||
|
||||
udelay(10000);
|
||||
ret = readx_poll_timeout(esdhc_read32, ®s->prsstat, tmp, tmp & PRSSTAT_SDSTB, 100);
|
||||
if (ret)
|
||||
pr_warn("fsl_esdhc_imx: Internal clock never stabilised.\n");
|
||||
|
||||
#ifdef CONFIG_FSL_USDHC
|
||||
esdhc_setbits32(®s->vendorspec, VENDORSPEC_PEREN | VENDORSPEC_CKEN);
|
||||
|
@@ -3,6 +3,8 @@
|
||||
* Copyright (c) 2019, Linaro Limited
|
||||
*/
|
||||
|
||||
#define LOG_CATEGORY UCLASS_RNG
|
||||
|
||||
#include <common.h>
|
||||
#include <clk.h>
|
||||
#include <dm.h>
|
||||
@@ -53,7 +55,7 @@ static int stm32_rng_read(struct udevice *dev, void *data, size_t len)
|
||||
for (i = 0; i < 12; i++)
|
||||
readl(pdata->base + RNG_DR);
|
||||
if (readl(pdata->base + RNG_SR) & RNG_SR_SEIS) {
|
||||
printf("RNG Noise");
|
||||
log_err("RNG Noise");
|
||||
return -EIO;
|
||||
}
|
||||
/* start again */
|
||||
|
@@ -109,8 +109,7 @@ static void mpc8xxx_spi_cs_activate(struct udevice *dev)
|
||||
struct mpc8xxx_priv *priv = dev_get_priv(dev->parent);
|
||||
struct dm_spi_slave_platdata *platdata = dev_get_parent_platdata(dev);
|
||||
|
||||
dm_gpio_set_dir_flags(&priv->gpios[platdata->cs], GPIOD_IS_OUT);
|
||||
dm_gpio_set_value(&priv->gpios[platdata->cs], 0);
|
||||
dm_gpio_set_value(&priv->gpios[platdata->cs], 1);
|
||||
}
|
||||
|
||||
static void mpc8xxx_spi_cs_deactivate(struct udevice *dev)
|
||||
@@ -118,8 +117,7 @@ static void mpc8xxx_spi_cs_deactivate(struct udevice *dev)
|
||||
struct mpc8xxx_priv *priv = dev_get_priv(dev->parent);
|
||||
struct dm_spi_slave_platdata *platdata = dev_get_parent_platdata(dev);
|
||||
|
||||
dm_gpio_set_dir_flags(&priv->gpios[platdata->cs], GPIOD_IS_OUT);
|
||||
dm_gpio_set_value(&priv->gpios[platdata->cs], 1);
|
||||
dm_gpio_set_value(&priv->gpios[platdata->cs], 0);
|
||||
}
|
||||
|
||||
static int mpc8xxx_spi_xfer(struct udevice *dev, uint bitlen,
|
||||
|
@@ -154,7 +154,7 @@ static int sqfs_frag_lookup(u32 inode_fragment_index,
|
||||
header = get_unaligned_le16(metadata_buffer + table_offset);
|
||||
metadata = metadata_buffer + table_offset + SQFS_HEADER_SIZE;
|
||||
|
||||
if (!metadata) {
|
||||
if (!metadata || !header) {
|
||||
ret = -ENOMEM;
|
||||
goto free_buffer;
|
||||
}
|
||||
@@ -434,9 +434,9 @@ static int sqfs_search_dir(struct squashfs_dir_stream *dirs, char **token_list,
|
||||
{
|
||||
struct squashfs_super_block *sblk = ctxt.sblk;
|
||||
char *path, *target, **sym_tokens, *res, *rem;
|
||||
struct squashfs_ldir_inode *ldir = NULL;
|
||||
int j, ret, new_inode_number, offset;
|
||||
struct squashfs_symlink_inode *sym;
|
||||
struct squashfs_ldir_inode *ldir;
|
||||
struct squashfs_dir_inode *dir;
|
||||
struct fs_dir_stream *dirsp;
|
||||
struct fs_dirent *dent;
|
||||
@@ -448,8 +448,8 @@ static int sqfs_search_dir(struct squashfs_dir_stream *dirs, char **token_list,
|
||||
table = sqfs_find_inode(dirs->inode_table, le32_to_cpu(sblk->inodes),
|
||||
sblk->inodes, sblk->block_size);
|
||||
|
||||
/* root is a regular directory, not an extended one */
|
||||
dir = (struct squashfs_dir_inode *)table;
|
||||
ldir = (struct squashfs_ldir_inode *)table;
|
||||
|
||||
/* get directory offset in directory table */
|
||||
offset = sqfs_dir_offset(table, m_list, m_count);
|
||||
@@ -1146,7 +1146,10 @@ static int sqfs_get_regfile_info(struct squashfs_reg_inode *reg,
|
||||
finfo->start = get_unaligned_le32(®->start_block);
|
||||
finfo->frag = SQFS_IS_FRAGMENTED(get_unaligned_le32(®->fragment));
|
||||
|
||||
if (finfo->size < 1 || finfo->offset < 0 || finfo->start < 0)
|
||||
if (finfo->frag && finfo->offset == 0xFFFFFFFF)
|
||||
return -EINVAL;
|
||||
|
||||
if (finfo->size < 1 || finfo->start == 0xFFFFFFFF)
|
||||
return -EINVAL;
|
||||
|
||||
if (finfo->frag) {
|
||||
@@ -1156,7 +1159,7 @@ static int sqfs_get_regfile_info(struct squashfs_reg_inode *reg,
|
||||
if (ret < 0)
|
||||
return -EINVAL;
|
||||
finfo->comp = true;
|
||||
if (fentry->size < 1 || fentry->start < 0)
|
||||
if (fentry->size < 1 || fentry->start == 0x7FFFFFFF)
|
||||
return -EINVAL;
|
||||
} else {
|
||||
datablk_count = DIV_ROUND_UP(finfo->size, le32_to_cpu(blksz));
|
||||
@@ -1181,7 +1184,10 @@ static int sqfs_get_lregfile_info(struct squashfs_lreg_inode *lreg,
|
||||
finfo->start = get_unaligned_le64(&lreg->start_block);
|
||||
finfo->frag = SQFS_IS_FRAGMENTED(get_unaligned_le32(&lreg->fragment));
|
||||
|
||||
if (finfo->size < 1 || finfo->offset < 0 || finfo->start < 0)
|
||||
if (finfo->frag && finfo->offset == 0xFFFFFFFF)
|
||||
return -EINVAL;
|
||||
|
||||
if (finfo->size < 1 || finfo->start == 0x7FFFFFFF)
|
||||
return -EINVAL;
|
||||
|
||||
if (finfo->frag) {
|
||||
@@ -1191,7 +1197,7 @@ static int sqfs_get_lregfile_info(struct squashfs_lreg_inode *lreg,
|
||||
if (ret < 0)
|
||||
return -EINVAL;
|
||||
finfo->comp = true;
|
||||
if (fentry->size < 1 || fentry->start < 0)
|
||||
if (fentry->size < 1 || fentry->start == 0x7FFFFFFF)
|
||||
return -EINVAL;
|
||||
} else {
|
||||
datablk_count = DIV_ROUND_UP(finfo->size, le32_to_cpu(blksz));
|
||||
|
@@ -34,8 +34,7 @@ int sqfs_dir_offset(void *dir_i, u32 *m_list, int m_count)
|
||||
struct squashfs_ldir_inode *ldir;
|
||||
struct squashfs_dir_inode *dir;
|
||||
u32 start_block;
|
||||
u16 offset;
|
||||
int j;
|
||||
int j, offset;
|
||||
|
||||
switch (get_unaligned_le16(&base->inode_type)) {
|
||||
case SQFS_DIR_TYPE:
|
||||
|
@@ -142,8 +142,11 @@ int sqfs_read_metablock(unsigned char *file_mapping, int offset,
|
||||
u16 header;
|
||||
|
||||
data = file_mapping + offset;
|
||||
if (!data)
|
||||
return -EFAULT;
|
||||
|
||||
header = get_unaligned((u16 *)data);
|
||||
if (!header || !data)
|
||||
if (!header)
|
||||
return -EINVAL;
|
||||
|
||||
*compressed = SQFS_COMPRESSED_METADATA(header);
|
||||
|
@@ -135,7 +135,7 @@
|
||||
#endif
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
BOOTENV \
|
||||
"bootcmd=setenv fdtfile ${fdt_file}; run distro_bootcmd ; " \
|
||||
"bootcmd=run distro_bootcmd ; " \
|
||||
"usb start ; " \
|
||||
"setenv stdout serial,vidconsole; " \
|
||||
"setenv stdin serial,usbkbd\0" \
|
||||
@@ -143,6 +143,7 @@
|
||||
"console=ttymxc0\0" \
|
||||
"defargs=enable_wait_mode=off vmalloc=400M\0" \
|
||||
"fdt_file=" FDT_FILE "\0" \
|
||||
"fdtfile=" FDT_FILE "\0" \
|
||||
"fdt_fixup=;\0" \
|
||||
MEM_LAYOUT_ENV_SETTINGS \
|
||||
NFS_BOOTCMD \
|
||||
|
@@ -35,8 +35,6 @@
|
||||
#define CONFIG_NETMASK 255.255.255.0
|
||||
#define CONFIG_SERVERIP 192.168.10.1
|
||||
|
||||
#define FDT_FILE "imx6ull-colibri${variant}-${fdt_board}.dtb"
|
||||
|
||||
#define MEM_LAYOUT_ENV_SETTINGS \
|
||||
"bootm_size=0x10000000\0" \
|
||||
"fdt_addr_r=0x82100000\0" \
|
||||
@@ -57,7 +55,7 @@
|
||||
"setenv bootargs ${defargs} ${nfsargs} " \
|
||||
"${setupargs} ${vidargs}; echo Booting from NFS...;" \
|
||||
"dhcp ${kernel_addr_r} && " \
|
||||
"tftp ${fdt_addr_r} " FDT_FILE " && " \
|
||||
"tftp ${fdt_addr_r} ${fdtfile} && " \
|
||||
"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
|
||||
|
||||
#define UBI_BOOTCMD \
|
||||
@@ -71,8 +69,8 @@
|
||||
"ubi read ${fdt_addr_r} dtb && " \
|
||||
"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
|
||||
|
||||
#define CONFIG_BOOTCOMMAND "run ubiboot; " \
|
||||
"setenv fdtfile " FDT_FILE " && run distro_bootcmd;"
|
||||
/* Run Distro Boot script if ubiboot fails */
|
||||
#define CONFIG_BOOTCOMMAND "run ubiboot || run distro_bootcmd;"
|
||||
|
||||
#define BOOT_TARGET_DEVICES(func) \
|
||||
func(MMC, mmc, 0) \
|
||||
@@ -111,6 +109,7 @@
|
||||
"fatload ${interface} 0:1 ${loadaddr} " \
|
||||
"${board}/flash_blk.img && source ${loadaddr}\0" \
|
||||
"splashpos=m,m\0" \
|
||||
"splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
|
||||
"videomode=video=ctfb:x:640,y:480,depth:18,pclk:39722,le:48,ri:16,up:33,lo:10,hs:96,vs:2,sync:0,vmode:0\0" \
|
||||
"vidargs=video=mxsfb:640x480M-16@60"
|
||||
|
||||
|
@@ -118,7 +118,7 @@
|
||||
#define FDT_FILE "imx6dl-colibri-eval-v3.dtb"
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
BOOTENV \
|
||||
"bootcmd=setenv fdtfile ${fdt_file}; run distro_bootcmd; " \
|
||||
"bootcmd=run distro_bootcmd; " \
|
||||
"usb start ; " \
|
||||
"setenv stdout serial,vidconsole; " \
|
||||
"setenv stdin serial,usbkbd\0" \
|
||||
@@ -126,6 +126,7 @@
|
||||
"console=ttymxc0\0" \
|
||||
"defargs=enable_wait_mode=off galcore.contiguousSize=50331648\0" \
|
||||
"fdt_file=" FDT_FILE "\0" \
|
||||
"fdtfile=" FDT_FILE "\0" \
|
||||
"fdt_fixup=;\0" \
|
||||
MEM_LAYOUT_ENV_SETTINGS \
|
||||
NFS_BOOTCMD \
|
||||
|
@@ -118,13 +118,11 @@
|
||||
|
||||
#if defined(CONFIG_TARGET_COLIBRI_IMX7_NAND)
|
||||
#define CONFIG_BOOTCOMMAND "run ubiboot ; echo ; echo ubiboot failed ; " \
|
||||
"setenv fdtfile ${soc}-colibri-${fdt_board}.dtb && run distro_bootcmd;"
|
||||
"run distro_bootcmd;"
|
||||
#define MODULE_EXTRA_ENV_SETTINGS \
|
||||
"mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
|
||||
UBI_BOOTCMD
|
||||
#elif defined(CONFIG_TARGET_COLIBRI_IMX7_EMMC)
|
||||
#define CONFIG_BOOTCOMMAND \
|
||||
"setenv fdtfile ${soc}-colibri-emmc-${fdt_board}.dtb && run distro_bootcmd;"
|
||||
#define MODULE_EXTRA_ENV_SETTINGS \
|
||||
"variant=-emmc\0" \
|
||||
EMMC_ANDROID_BOOTCMD
|
||||
@@ -173,6 +171,7 @@
|
||||
"fatload ${interface} 0:1 ${loadaddr} " \
|
||||
"${board}/flash_blk.img && source ${loadaddr}\0" \
|
||||
"splashpos=m,m\0" \
|
||||
"splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
|
||||
"videomode=video=ctfb:x:640,y:480,depth:18,pclk:39722,le:48,ri:16,up:33,lo:10,hs:96,vs:2,sync:0,vmode:0\0" \
|
||||
"updlevel=2\0"
|
||||
|
||||
|
@@ -76,8 +76,7 @@
|
||||
"ubi read ${fdt_addr_r} dtb && " \
|
||||
"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
|
||||
|
||||
#define CONFIG_BOOTCOMMAND "run ubiboot; " \
|
||||
"setenv fdtfile ${soc}-colibri-${fdt_board}.dtb && run distro_bootcmd;"
|
||||
#define CONFIG_BOOTCOMMAND "run ubiboot || run distro_bootcmd;"
|
||||
|
||||
#define BOOT_TARGET_DEVICES(func) \
|
||||
func(MMC, mmc, 0) \
|
||||
|
@@ -23,10 +23,6 @@
|
||||
#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
|
||||
#define CONFIG_SYS_MONITOR_LEN (256 * 1024)
|
||||
|
||||
#define CONFIG_SYS_MALLOC_LEN (128 * 1024 * 1024)
|
||||
|
||||
/* Environment */
|
||||
|
||||
/* RTC */
|
||||
#define CONFIG_SYS_ISA_IO_BASE_ADDRESS 0
|
||||
|
||||
|
@@ -235,7 +235,7 @@ static s64 efi_mem_carve_out(struct efi_mem_list *map,
|
||||
* @start: start address, must be a multiple of EFI_PAGE_SIZE
|
||||
* @pages: number of pages to add
|
||||
* @memory_type: type of memory added
|
||||
* @overlap_only_ram: the memory area must overlap existing
|
||||
* @overlap_only_ram: region may only overlap RAM
|
||||
* Return: status code
|
||||
*/
|
||||
static efi_status_t efi_add_memory_map_pg(u64 start, u64 pages,
|
||||
|
@@ -42,35 +42,48 @@ static uint32_t f2h(fdt32_t val)
|
||||
return *(uint32_t *)buf;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return the value of a property of the FDT root node.
|
||||
/**
|
||||
* get_property() - return value of a property of an FDT node
|
||||
*
|
||||
* @name name of the property
|
||||
* A property of the root node or one of its direct children can be
|
||||
* retrieved.
|
||||
*
|
||||
* @property name of the property
|
||||
* @node name of the node or NULL for root node
|
||||
* @return value of the property
|
||||
*/
|
||||
static char *get_property(const u16 *property)
|
||||
static char *get_property(const u16 *property, const u16 *node)
|
||||
{
|
||||
struct fdt_header *header = (struct fdt_header *)fdt;
|
||||
const fdt32_t *end;
|
||||
const fdt32_t *pos;
|
||||
const char *strings;
|
||||
size_t level = 0;
|
||||
const char *nodelabel = NULL;
|
||||
|
||||
if (!header)
|
||||
if (!header) {
|
||||
efi_st_error("Missing device tree\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (f2h(header->magic) != FDT_MAGIC) {
|
||||
printf("Wrong magic\n");
|
||||
efi_st_error("Wrong device tree magic\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
pos = (fdt32_t *)(fdt + f2h(header->off_dt_struct));
|
||||
end = &pos[f2h(header->totalsize) >> 2];
|
||||
strings = fdt + f2h(header->off_dt_strings);
|
||||
|
||||
for (;;) {
|
||||
for (; pos < end;) {
|
||||
switch (f2h(pos[0])) {
|
||||
case FDT_BEGIN_NODE: {
|
||||
char *c = (char *)&pos[1];
|
||||
const char *c = (char *)&pos[1];
|
||||
size_t i;
|
||||
|
||||
if (level == 1)
|
||||
nodelabel = c;
|
||||
++level;
|
||||
for (i = 0; c[i]; ++i)
|
||||
;
|
||||
pos = &pos[2 + (i >> 2)];
|
||||
@@ -82,7 +95,10 @@ static char *get_property(const u16 *property)
|
||||
efi_status_t ret;
|
||||
|
||||
/* Check if this is the property to be returned */
|
||||
if (!efi_st_strcmp_16_8(property, label)) {
|
||||
if (!efi_st_strcmp_16_8(property, label) &&
|
||||
((level == 1 && !node) ||
|
||||
(level == 2 && node &&
|
||||
!efi_st_strcmp_16_8(node, nodelabel)))) {
|
||||
char *str;
|
||||
efi_uintn_t len = f2h(prop->len);
|
||||
|
||||
@@ -96,7 +112,7 @@ static char *get_property(const u16 *property)
|
||||
EFI_LOADER_DATA, len + 1,
|
||||
(void **)&str);
|
||||
if (ret != EFI_SUCCESS) {
|
||||
efi_st_printf("AllocatePool failed\n");
|
||||
efi_st_error("AllocatePool failed\n");
|
||||
return NULL;
|
||||
}
|
||||
boottime->copy_mem(str, &pos[3], len);
|
||||
@@ -109,12 +125,21 @@ static char *get_property(const u16 *property)
|
||||
break;
|
||||
}
|
||||
case FDT_NOP:
|
||||
pos = &pos[1];
|
||||
++pos;
|
||||
break;
|
||||
case FDT_END_NODE:
|
||||
--level;
|
||||
++pos;
|
||||
break;
|
||||
case FDT_END:
|
||||
return NULL;
|
||||
default:
|
||||
efi_st_error("Invalid device tree token\n");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
efi_st_error("Missing FDT_END token\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -173,7 +198,7 @@ static int execute(void)
|
||||
char *str;
|
||||
efi_status_t ret;
|
||||
|
||||
str = get_property(L"compatible");
|
||||
str = get_property(L"compatible", NULL);
|
||||
if (str) {
|
||||
efi_st_printf("compatible: %s\n", str);
|
||||
ret = boottime->free_pool(str);
|
||||
@@ -182,10 +207,10 @@ static int execute(void)
|
||||
return EFI_ST_FAILURE;
|
||||
}
|
||||
} else {
|
||||
efi_st_printf("Missing property 'compatible'\n");
|
||||
efi_st_error("Missing property 'compatible'\n");
|
||||
return EFI_ST_FAILURE;
|
||||
}
|
||||
str = get_property(L"serial-number");
|
||||
str = get_property(L"serial-number", NULL);
|
||||
if (str) {
|
||||
efi_st_printf("serial-number: %s\n", str);
|
||||
ret = boottime->free_pool(str);
|
||||
@@ -194,6 +219,21 @@ static int execute(void)
|
||||
return EFI_ST_FAILURE;
|
||||
}
|
||||
}
|
||||
str = get_property(L"boot-hartid", L"chosen");
|
||||
if (IS_ENABLED(CONFIG_RISCV)) {
|
||||
if (str) {
|
||||
efi_st_printf("boot-hartid: %u\n",
|
||||
f2h(*(fdt32_t *)str));
|
||||
ret = boottime->free_pool(str);
|
||||
if (ret != EFI_SUCCESS) {
|
||||
efi_st_error("FreePool failed\n");
|
||||
return EFI_ST_FAILURE;
|
||||
}
|
||||
} else {
|
||||
efi_st_error("boot-hartid not found\n");
|
||||
return EFI_ST_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
return EFI_ST_SUCCESS;
|
||||
}
|
||||
|
@@ -366,21 +366,21 @@ static int dm_test_acpi_cmd_list(struct unit_test_state *uts)
|
||||
ut_assert_nextline("RSDP %08lx %06lx (v02 U-BOOT)", addr,
|
||||
sizeof(struct acpi_rsdp));
|
||||
addr = ALIGN(addr + sizeof(struct acpi_rsdp), 16);
|
||||
ut_assert_nextline("RSDT %08lx %06lx (v01 U-BOOT U-BOOTBL %u INTL 0)",
|
||||
ut_assert_nextline("RSDT %08lx %06lx (v01 U-BOOT U-BOOTBL %x INTL 0)",
|
||||
addr, sizeof(struct acpi_table_header) +
|
||||
3 * sizeof(u32), U_BOOT_BUILD_DATE);
|
||||
addr = ALIGN(addr + sizeof(struct acpi_rsdt), 16);
|
||||
ut_assert_nextline("XSDT %08lx %06lx (v01 U-BOOT U-BOOTBL %u INTL 0)",
|
||||
ut_assert_nextline("XSDT %08lx %06lx (v01 U-BOOT U-BOOTBL %x INTL 0)",
|
||||
addr, sizeof(struct acpi_table_header) +
|
||||
3 * sizeof(u64), U_BOOT_BUILD_DATE);
|
||||
addr = ALIGN(addr + sizeof(struct acpi_xsdt), 64);
|
||||
ut_assert_nextline("DMAR %08lx %06lx (v01 U-BOOT U-BOOTBL %u INTL 0)",
|
||||
ut_assert_nextline("DMAR %08lx %06lx (v01 U-BOOT U-BOOTBL %x INTL 0)",
|
||||
addr, sizeof(struct acpi_dmar), U_BOOT_BUILD_DATE);
|
||||
addr = ALIGN(addr + sizeof(struct acpi_dmar), 16);
|
||||
ut_assert_nextline("DMAR %08lx %06lx (v01 U-BOOT U-BOOTBL %u INTL 0)",
|
||||
ut_assert_nextline("DMAR %08lx %06lx (v01 U-BOOT U-BOOTBL %x INTL 0)",
|
||||
addr, sizeof(struct acpi_dmar), U_BOOT_BUILD_DATE);
|
||||
addr = ALIGN(addr + sizeof(struct acpi_dmar), 16);
|
||||
ut_assert_nextline("DMAR %08lx %06lx (v01 U-BOOT U-BOOTBL %u INTL 0)",
|
||||
ut_assert_nextline("DMAR %08lx %06lx (v01 U-BOOT U-BOOTBL %x INTL 0)",
|
||||
addr, sizeof(struct acpi_dmar), U_BOOT_BUILD_DATE);
|
||||
ut_assert_console_end();
|
||||
|
||||
|
Reference in New Issue
Block a user