windows_vm: windows-2019
ubuntu_vm: ubuntu-22.04
macos_vm: macOS-12
- ci_runner_image: trini/u-boot-gitlab-ci-runner:jammy-20221003-17Oct2022
+ ci_runner_image: trini/u-boot-gitlab-ci-runner:jammy-20221101-22Nov2022
# Add '-u 0' options for Azure pipelines, otherwise we get "permission
# denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer",
# since our $(ci_runner_image) user is not root.
%CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm --needed -Sy make gcc bison flex diffutils openssl-devel libgnutls-devel libutil-linux-devel"
displayName: 'Install Toolchain'
- script: |
- echo make tools-only_defconfig tools-only NO_SDL=1 > build-tools.sh
+ echo make tools-only_defconfig tools-only > build-tools.sh
%CD:~0,2%\msys64\usr\bin\bash -lc "bash build-tools.sh"
displayName: 'Build Host Tools'
env:
- script: brew install make ossp-uuid
displayName: Brew install dependencies
- script: |
- gmake tools-only_config tools-only NO_SDL=1 \
+ gmake tools-only_config tools-only \
HOSTCFLAGS="-I/usr/local/opt/openssl@1.1/include" \
HOSTLDFLAGS="-L/usr/local/opt/openssl@1.1/lib" \
-j$(sysctl -n hw.logicalcpu)
displayName: 'Perform tools-only build'
- - job: check_for_migrated_symbols_in_board_header
- displayName: 'Check for migrated symbols in board header'
+ - job: check_for_new_CONFIG_symbols_outside_Kconfig
+ displayName: 'Check for new CONFIG symbols outside Kconfig'
pool:
vmImage: $(ubuntu_vm)
container:
image: $(ci_runner_image)
options: $(container_option)
steps:
- - script: |
- KSYMLST=`mktemp`
- KUSEDLST=`mktemp`
- RET=0
- cat `find . -name "Kconfig*"` | \
- sed -n -e 's/^\s*config *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p' \
- -e 's/^\s*menuconfig *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p' \
- | sort -u > $KSYMLST
- for CFG in `find include/configs -name "*.h"`; do
- (grep '#define[[:blank:]]CONFIG_' $CFG | \
- sed -n 's/#define.\(CONFIG_[A-Za-z0-9_]*\).*/\1/p' ; \
- grep '#undef[[:blank:]]CONFIG_' $CFG | \
- sed -n 's/#undef.\(CONFIG_[A-Za-z0-9_]*\).*/\1/p') | \
- sort -u > ${KUSEDLST} || true
- NUM=`comm -123 --total --output-delimiter=, ${KSYMLST} ${KUSEDLST} | \
- cut -d , -f 3`
- if [[ $NUM -ne 0 ]]; then
- echo "Unmigrated symbols found in $CFG:"
- comm -12 ${KSYMLST} ${KUSEDLST}
- RET=1
- fi
- done
- exit $RET
+ # If grep succeeds and finds a match the test fails as we should
+ # have no matches.
+ - script: git grep -E '^#[[:blank:]]*(define|undef)[[:blank:]]*CONFIG_'
+ include/configs `find arch -name config.h` && exit 1 || exit 0
- job: cppcheck
displayName: 'Static code analysis with cppcheck'
options: $(container_option)
steps:
- script: |
- export PATH=/opt/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin:$PATH
+ export PATH=/opt/gcc-12.2.0-nolibc/arm-linux-gnueabi/bin:$PATH
test/nokia_rx51_test.sh
- job: pylint
TEST_PY_BD: "sandbox"
sandbox_clang:
TEST_PY_BD: "sandbox"
- OVERRIDE: "-O clang-13"
+ OVERRIDE: "-O clang-14"
sandbox_nolto:
TEST_PY_BD: "sandbox"
BUILD_ENV: "NO_LTO=1"
matrix:
arc_microblaze_xtensa:
BUILDMAN: "arc microblaze xtensa"
+ amlogic:
+ BUILDMAN: "amlogic"
arm11_arm7_arm920t_arm946es:
BUILDMAN: "arm11 arm7 arm920t arm946es"
arm926ejs:
imx6:
BUILDMAN: "mx6 -x boundary,engicam,freescale,technexion,toradex"
imx:
- BUILDMAN: "mx -x mx6,freescale,technexion,toradex"
- imx8:
- BUILDMAN: "imx8"
+ BUILDMAN: "mx -x mx6,imx8,freescale,technexion,toradex"
+ imx8_imx9:
+ BUILDMAN: "imx8 imx9"
keystone2_keystone3:
BUILDMAN: "k2 k3"
sandbox_asan:
OVERRIDE: "-a ASAN"
sandbox_clang_asan:
BUILDMAN: "sandbox"
- OVERRIDE: "-O clang-13 -a ASAN"
+ OVERRIDE: "-O clang-14 -a ASAN"
samsung_socfpga:
BUILDMAN: "samsung socfpga"
sun4i:
uniphier:
BUILDMAN: "uniphier"
aarch64_catch_all:
- BUILDMAN: "aarch64 -x bcm,imx8,k3,tegra,ls1,ls2,lx216,mvebu,uniphier,renesas,sunxi,samsung,socfpga,rk,versal,zynq"
- rockchip:
- BUILDMAN: "rk"
+ BUILDMAN: "aarch64 -x amlogic,bcm,imx8,imx9,k3,tegra,ls1,ls2,lx216,mvebu,uniphier,renesas,sunxi,samsung,socfpga,rk,versal,zynq"
+ rockchip_32bit:
+ BUILDMAN: "rk -x aarch64"
+ rockchip_64bit:
+ BUILDMAN: "rk&aarch64"
renesas:
BUILDMAN: "renesas"
zynq:
VERSION = 2023
PATCHLEVEL = 01
SUBLEVEL =
-EXTRAVERSION = -rc4
+EXTRAVERSION =
NAME =
# *DOCUMENTATION*
# change __FILE__ to the relative path from the srctree
KBUILD_CFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
- KBUILD_CFLAGS += -g
+ KBUILD_CFLAGS += -gdwarf-4
# $(KBUILD_AFLAGS) sets -g, which causes gcc to pass a suitable -g<format>
# option to the assembler.
- KBUILD_AFLAGS += -g
+ KBUILD_AFLAGS += -gdwarf-4
# Report stack usage if supported
# ARC tools based on GCC 7.1 has an issue with stack usage
KBUILD_AFLAGS += $(KAFLAGS)
KBUILD_CFLAGS += $(KCFLAGS)
+ KBUILD_LDFLAGS += $(call ld-option,--no-warn-rwx-segments)
+
KBUILD_HOSTCFLAGS += $(if $(CONFIG_TOOLS_DEBUG),-g)
# Use UBOOTINCLUDE when you must reference the include/ directory.
cfg: u-boot.cfg
- quiet_cmd_cfgcheck = CFGCHK $2
- cmd_cfgcheck = $(srctree)/scripts/check-config.sh $2 \
- $(srctree)/scripts/config_whitelist.txt $(srctree)
-
quiet_cmd_ofcheck = OFCHK $2
cmd_ofcheck = $(srctree)/scripts/check-of.sh $2 \
$(srctree)/scripts/of_allowlist.txt
$(call deprecated,CONFIG_WDT,DM watchdog,v2019.10,\
$(CONFIG_WATCHDOG)$(CONFIG_HW_WATCHDOG))
$(call deprecated,CONFIG_DM_I2C,I2C drivers,v2022.04,$(CONFIG_SYS_I2C_LEGACY))
- @# CONFIG_SYS_TIMER_RATE has brackets in it for some boards which
+ @# CFG_SYS_TIMER_RATE has brackets in it for some boards which
@# confuses this rule. Use if() to send just a single character which
@# is enable to tell 'deprecated' that one of these symbols exists
- $(call deprecated,CONFIG_TIMER,Timer drivers,v2023.01,$(if $(strip $(CONFIG_SYS_TIMER_RATE)$(CONFIG_SYS_TIMER_COUNTER)),x))
+ $(call deprecated,CONFIG_TIMER,Timer drivers,v2023.01,$(if $(strip $(CFG_SYS_TIMER_RATE)$(CFG_SYS_TIMER_COUNTER)),x))
$(call deprecated,CONFIG_DM_SERIAL,Serial drivers,v2023.04,$(CONFIG_SERIAL))
$(call deprecated,CONFIG_DM_SCSI,SCSI drivers,v2023.04,$(CONFIG_SCSI))
- @# Check that this build does not use CONFIG options that we do not
- @# know about unless they are in Kconfig. All the existing CONFIG
- @# options are whitelisted, so new ones should not be added.
- $(call cmd,cfgcheck,u-boot.cfg)
@# Check that this build does not override OF_HAS_PRIOR_STAGE by
@# disabling OF_BOARD.
$(call cmd,ofcheck,$(KCONFIG_CONFIG))
# U-Boot entry point, needed for booting of full-blown U-Boot
# from the SPL U-Boot version.
#
- ifndef CONFIG_SYS_UBOOT_START
- CONFIG_SYS_UBOOT_START := $(CONFIG_TEXT_BASE)
+ ifndef CFG_SYS_UBOOT_START
+ CFG_SYS_UBOOT_START := $(CONFIG_TEXT_BASE)
endif
# Boards with more complex image requirements can provide an .its source file
ifdef CONFIG_SPL_LOAD_FIT
MKIMAGEFLAGS_u-boot.img = -f auto -A $(ARCH) -T firmware -C none -O u-boot \
- -a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
+ -a $(CONFIG_TEXT_BASE) -e $(CFG_SYS_UBOOT_START) \
-p $(CONFIG_FIT_EXTERNAL_OFFSET) \
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -E \
$(patsubst %,-b arch/$(ARCH)/dts/%.dtb,$(subst ",,$(DEVICE_TREE))) \
$(patsubst %,-b arch/$(ARCH)/dts/%.dtbo,$(subst ",,$(CONFIG_OF_OVERLAY_LIST)))
else
MKIMAGEFLAGS_u-boot.img = -A $(ARCH) -T firmware -C none -O u-boot \
- -a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
+ -a $(CONFIG_TEXT_BASE) -e $(CFG_SYS_UBOOT_START) \
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
MKIMAGEFLAGS_u-boot-ivt.img = -A $(ARCH) -T firmware_ivt -C none -O u-boot \
- -a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
+ -a $(CONFIG_TEXT_BASE) -e $(CFG_SYS_UBOOT_START) \
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
u-boot-ivt.img: MKIMAGEOUTPUT = u-boot-ivt.img.log
endif
UBOOT_BIN := u-boot.bin
MKIMAGEFLAGS_u-boot-lzma.img = -A $(ARCH) -T standalone -C lzma -O u-boot \
- -a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
+ -a $(CONFIG_TEXT_BASE) -e $(CFG_SYS_UBOOT_START) \
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
u-boot.bin.lzma: u-boot.bin FORCE
# Documentation targets
# ---------------------------------------------------------------------------
DOC_TARGETS := xmldocs latexdocs pdfdocs htmldocs epubdocs cleandocs \
- linkcheckdocs dochelp refcheckdocs
+ linkcheckdocs dochelp refcheckdocs texinfodocs infodocs
PHONY += $(DOC_TARGETS)
$(DOC_TARGETS): scripts_basic FORCE
$(Q)$(MAKE) $(build)=doc $@
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
quiet_cmd_genenv = GENENV $@
- cmd_genenv = $(OBJCOPY) --dump-section .rodata.default_environment=$@ env/common.o; \
- sed --in-place -e 's/\x00/\x0A/g' $@; sed --in-place -e '/^\s*$$/d' $@; \
- sort --field-separator== -k1,1 --stable $@ -o $@
+ cmd_genenv = \
+ $(objtree)/tools/printinitialenv | \
+ sed -e '/^\s*$$/d' | \
+ sort --field-separator== -k1,1 --stable -o $@
- u-boot-initial-env: u-boot.bin
+ u-boot-initial-env: $(env_h) FORCE
+ $(Q)$(MAKE) $(build)=tools $(objtree)/tools/printinitialenv
$(call if_changed,genenv)
# Consistency checks
menu "mpc85xx CPU"
depends on MPC85xx
+ config PPC_SPINTABLE_COMPATIBLE
+ depends on MP
+ def_bool y
+ help
+ To comply with ePAPR 1.1, the spin table has been moved to
+ cache-enabled memory. Old OS may not work with this change. A patch
+ is waiting to be accepted for Linux kernel. Other OS needs similar
+ fix to spin table. For OSes with old spin table code, we can enable
+ this temporary fix by setting environmental variable
+ "spin_table_compat". For new OSes, set "spin_table_compat=no". After
+ Linux is fixed, we can remove this macro and related code. For now,
+ it is enabled by default.
+
config SYS_CPU
default "mpc85xx"
config TARGET_SOCRATES
bool "Support socrates"
select ARCH_MPC8544
+ select BINMAN
config TARGET_P3041DS
bool "Support P3041DS"
imply CMD_EEPROM
imply PANIC_HANG
- config TARGET_T1042RDB
- bool "Support T1042RDB"
- select ARCH_T1042
- select BOARD_LATE_INIT if CHAIN_OF_TRUST
- select SUPPORT_SPL
- select PHYS_64BIT
- select SYS_L3_SIZE_256KB
-
config TARGET_T1042D4RDB
bool "Support T1042D4RDB"
select ARCH_T1042
select SYS_L3_SIZE_256KB
imply PANIC_HANG
- config TARGET_T1042RDB_PI
- bool "Support T1042RDB_PI"
- select ARCH_T1042
- select BOARD_LATE_INIT if CHAIN_OF_TRUST
- select SUPPORT_SPL
- select PHYS_64BIT
- select SYS_L3_SIZE_256KB
- imply PANIC_HANG
-
config TARGET_T2080QDS
bool "Support T2080QDS"
select ARCH_T2080
bool "Support kmcent2"
select VENDOR_KM
select FSL_CORENET
+ select SYS_DPAA_FMAN
+ select SYS_DPAA_PME
select SYS_L3_SIZE_256KB
endchoice
select E500MC
select FSL_LAW
select SYS_CACHE_SHIFT_6
+ select SYS_DPAA_FMAN
+ select SYS_DPAA_PME
+ select SYS_DPAA_RMAN
select SYS_FSL_ERRATUM_A004510
select SYS_FSL_ERRATUM_A004849
select SYS_FSL_ERRATUM_A005275
select FSL_CORENET
select FSL_LAW
select SYS_CACHE_SHIFT_6
+ select SYS_DPAA_FMAN
select SYS_FSL_DDR_VER_50
select SYS_FSL_ERRATUM_A008378
select SYS_FSL_ERRATUM_A008109
select FSL_CORENET
select FSL_LAW
select SYS_CACHE_SHIFT_6
+ select SYS_DPAA_FMAN
+ select SYS_DPAA_PME
select SYS_FSL_DDR_VER_50
select SYS_FSL_ERRATUM_A008044
select SYS_FSL_ERRATUM_A008378
select FSL_CORENET
select FSL_LAW
select SYS_CACHE_SHIFT_6
+ select SYS_DPAA_FMAN
+ select SYS_DPAA_PME
select SYS_FSL_DDR_VER_50
select SYS_FSL_ERRATUM_A008044
select SYS_FSL_ERRATUM_A008378
select FSL_CORENET
select FSL_LAW
select SYS_CACHE_SHIFT_6
+ select SYS_DPAA_DCE if !NOBQFMAN
+ select SYS_DPAA_FMAN if !NOBQFMAN
+ select SYS_DPAA_PME if !NOBQFMAN
+ select SYS_DPAA_RMAN if !NOBQFMAN
select SYS_FSL_DDR_VER_47
select SYS_FSL_ERRATUM_A006379
select SYS_FSL_ERRATUM_A006593
select SYS_FSL_SRIO_LIODN
select SYS_FSL_QMAN_V3 if SYS_DPAA_QBMAN
select SYS_FSL_USB_DUAL_PHY_ENABLE
+ select SYS_PMAN if !NOBQFMAN
select SYS_PPC64
select FSL_IFC
imply CMD_SATA
select FSL_CORENET
select FSL_LAW
select SYS_CACHE_SHIFT_6
+ select SYS_DPAA_DCE if !NOBQFMAN
+ select SYS_DPAA_FMAN if !NOBQFMAN
+ select SYS_DPAA_PME if !NOBQFMAN
+ select SYS_DPAA_RMAN if !NOBQFMAN
select SYS_FSL_DDR_VER_47
select SYS_FSL_ERRATUM_A004468
select SYS_FSL_ERRATUM_A005871
select SYS_FSL_SRIO_LIODN
select SYS_FSL_QMAN_V3 if SYS_DPAA_QBMAN
select SYS_FSL_USB_DUAL_PHY_ENABLE
+ select SYS_PMAN if !NOBQFMAN
select SYS_PPC64
select FSL_IFC
imply CMD_SATA
imply FSL_SATA
config MPC85XX_HAVE_RESET_VECTOR
- bool "Indicate reset vector at CONFIG_RESET_VECTOR_ADDRESS - 0xffc"
+ bool "Indicate reset vector at CFG_RESET_VECTOR_ADDRESS - 0xffc"
depends on MPC85xx
config BTB
help
Enable PowerPC E6500 core
+ config NOBQFMAN
+ bool
+
config FSL_LAW
bool
help
if changed by pre-boot regime. The value here must match
the current value in SoC. If not sure, do not change.
+ config SYS_DPAA_PME
+ bool
+
+ config SYS_DPAA_DCE
+ bool
+
+ config SYS_DPAA_RMAN
+ bool
+
config A003399_NOR_WORKAROUND
bool
help
config FSL_PCIE_RESET
bool
+ config SYS_PMAN
+ bool
+
config SYS_FSL_RAID_ENGINE
bool
Number of TLB CAM entries for Book-E chips. 64 for E500MC,
16 for other E500 SoCs.
+ config L2_CACHE
+ bool "Enable L2 cache support"
+
if HETROGENOUS_CLUSTERS
config SYS_MAPLE
config SYS_ETVPE_CLK
int
default 1
+
+ config MAX_DSP_CPUS
+ int
+ default 12 if ARCH_B4860
+ default 2 if ARCH_B4420
endif
config SYS_L2_SIZE_256KB
config SYS_MPC85XX_NO_RESETVEC
bool "Discard resetvec section and move bootpg section up"
- depends on MPC85xx
+ depends on MPC85xx && !MPC85XX_HAVE_RESET_VECTOR
help
If this variable is specified, the section .resetvec is not kept and
the section .bootpg is placed in the previous 4k of the .text section.
config SPL_SYS_MPC85XX_NO_RESETVEC
bool "Discard resetvec section and move bootpg section up, in SPL"
- depends on MPC85xx && SPL
+ depends on MPC85xx && SPL && !MPC85XX_HAVE_RESET_VECTOR
help
If this variable is specified, the section .resetvec is not kept and
the section .bootpg is placed in the previous 4k of the .text section,
config TPL_SYS_MPC85XX_NO_RESETVEC
bool "Discard resetvec section and move bootpg section up, in TPL"
- depends on MPC85xx && TPL
+ depends on MPC85xx && TPL && !MPC85XX_HAVE_RESET_VECTOR
help
If this variable is specified, the section .resetvec is not kept and
the section .bootpg is placed in the previous 4k of the .text section,
loaded that does not, the message 'Wrong FIT format: no timestamp'
is shown.
- if FIT
-
config FIT_EXTERNAL_OFFSET
hex "FIT external data offset"
+ depends on FIT
default 0x0
help
This specifies a data offset in fit image.
config FIT_FULL_CHECK
bool "Do a full check of the FIT before using it"
+ depends on FIT
default y
help
Enable this do a full check of the FIT to make sure it is valid. This
config FIT_SIGNATURE
bool "Enable signature verification of FIT uImages"
- depends on DM
+ depends on DM && FIT
select HASH
imply RSA
imply RSA_VERIFY
config FIT_CIPHER
bool "Enable ciphering data in a FIT uImages"
- depends on DM
+ depends on DM && FIT
select AES
help
Enable the feature of data ciphering/unciphering in the tool mkimage
config FIT_VERBOSE
bool "Show verbose messages when FIT images fail"
+ depends on FIT
help
Generally a system will have valid FIT images so debug messages
are a waste of code space. If you are debugging your images then
config FIT_BEST_MATCH
bool "Select the best match for the kernel device tree"
+ depends on FIT
help
When no configuration is explicitly selected, default to the
one whose fdt's compatibility field best matches that of
config FIT_IMAGE_POST_PROCESS
bool "Enable post-processing of FIT artifacts after loading by U-Boot"
+ depends on FIT
depends on TI_SECURE_DEVICE || SOCFPGA_SECURE_VAB_AUTH
default y if TI_SECURE_DEVICE
help
config FIT_PRINT
bool "Support FIT printing"
+ depends on FIT
default y
help
Support printing the content of the fitImage in a verbose manner.
- if SPL
-
config SPL_FIT
bool "Support Flattened Image Tree within SPL"
- depends on SPL
+ depends on SPL && FIT
select SPL_HASH
select SPL_OF_LIBFDT
config SPL_FIT_FULL_CHECK
bool "Do a full check of the FIT before using it"
+ depends on SPL_FIT
help
Enable this do a full check of the FIT to make sure it is valid. This
helps to protect against carefully crafted FITs which take advantage
of bugs or omissions in the code. This includes a bad structure,
multiple root nodes and the like.
-
config SPL_FIT_SIGNATURE
bool "Enable signature verification of FIT firmware within SPL"
depends on SPL_DM
config SPL_LOAD_FIT
bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)"
+ depends on SPL && FIT
select SPL_FIT
help
Normally with the SPL framework a legacy image is generated as part
config SPL_LOAD_FIT_ADDRESS
hex "load address of fit image"
- depends on SPL_LOAD_FIT
+ depends on SPL_LOAD_FIT || SPL_RAM_SUPPORT || TPL_RAM_SUPPORT
default 0x0
help
Specify the load address of the fit image that will be loaded
config SPL_LOAD_FIT_FULL
bool "Enable SPL loading U-Boot as a FIT (full fitImage features)"
+ depends on FIT
select SPL_FIT
help
Normally with the SPL framework a legacy image is generated as part
config USE_SPL_FIT_GENERATOR
bool "Use a script to generate the .its script"
- default y if SPL_FIT && (!ARCH_SUNXI && !RISCV)
+ depends on SPL_FIT
+ default y if !ARCH_SUNXI && !RISCV
config SPL_FIT_GENERATOR
string ".its file generator script for U-Boot FIT image"
passed a list of supported device tree file stub names to
include in the generated image.
- endif # SPL
-
if VPL
config VPL_FIT
endif # VPL
- endif # FIT
-
config PXE_UTILS
bool
select MENU
default TEXT_BASE
help
The physical start address of boot monitor code (which is the same as
- CONFIG_TEXT_BASE when linking) and the same as CONFIG_SYS_FLASH_BASE
+ CONFIG_TEXT_BASE when linking) and the same as CFG_SYS_FLASH_BASE
when booting from flash.
config SPL_SYS_MONITOR_BASE
For more details refer to doc/README.pblimage
choice
- prompt "Freescale PBL load location"
+ prompt "Freescale PBL (or predecessor) load location"
depends on RAMBOOT_PBL || ((TARGET_P1010RDB_PA || TARGET_P1010RDB_PB \
|| TARGET_P1020RDB_PC || TARGET_P1020RDB_PD || TARGET_P2020RDB) \
&& !CMD_NAND)
config SDCARD
- bool "Freescale PBL is found on SD card"
+ bool "Freescale PBL (or similar) is found on SD card"
config SPIFLASH
- bool "Freescale PBL is found on SPI flash"
+ bool "Freescale PBL (or similar) is found on SPI flash"
+
+config NO_PBL
+ bool "Freescale PBL (or similar) is not used in this case"
endchoice
static void label_destroy(struct pxe_label *label)
{
free(label->name);
+ free(label->kernel_label);
free(label->kernel);
free(label->config);
free(label->append);
return 1;
}
- if (label->initrd) {
- ulong size;
+ if (get_relfile_envaddr(ctx, label->kernel, "kernel_addr_r",
+ NULL) < 0) {
+ printf("Skipping %s for failure retrieving kernel\n",
+ label->name);
+ return 1;
+ }
+ kernel_addr = env_get("kernel_addr_r");
+ /* for FIT, append the configuration identifier */
+ if (label->config) {
+ int len = strlen(kernel_addr) + strlen(label->config) + 1;
+
+ fit_addr = malloc(len);
+ if (!fit_addr) {
+ printf("malloc fail (FIT address)\n");
+ return 1;
+ }
+ snprintf(fit_addr, len, "%s%s", kernel_addr, label->config);
+ kernel_addr = fit_addr;
+ }
+
+ /* For FIT, the label can be identical to kernel one */
+ if (label->initrd && !strcmp(label->kernel_label, label->initrd)) {
+ initrd_addr_str = kernel_addr;
+ } else if (label->initrd) {
+ ulong size;
if (get_relfile_envaddr(ctx, label->initrd, "ramdisk_addr_r",
&size) < 0) {
printf("Skipping %s for failure retrieving initrd\n",
label->name);
- return 1;
+ goto cleanup;
}
initrd_addr_str = env_get("ramdisk_addr_r");
size = snprintf(initrd_str, sizeof(initrd_str), "%s:%lx",
initrd_addr_str, size);
if (size >= sizeof(initrd_str))
- return 1;
- }
-
- if (get_relfile_envaddr(ctx, label->kernel, "kernel_addr_r",
- NULL) < 0) {
- printf("Skipping %s for failure retrieving kernel\n",
- label->name);
- return 1;
+ goto cleanup;
}
if (label->ipappend & 0x1) {
strlen(label->append ?: ""),
strlen(ip_str), strlen(mac_str),
sizeof(bootargs));
- return 1;
+ goto cleanup;
}
if (label->append)
printf("append: %s\n", finalbootargs);
}
- kernel_addr = env_get("kernel_addr_r");
-
- /* for FIT, append the configuration identifier */
- if (label->config) {
- int len = strlen(kernel_addr) + strlen(label->config) + 1;
-
- fit_addr = malloc(len);
- if (!fit_addr) {
- printf("malloc fail (FIT address)\n");
- return 1;
- }
- snprintf(fit_addr, len, "%s%s", kernel_addr, label->config);
- kernel_addr = fit_addr;
- }
-
/*
* fdt usage is optional:
* It handles the following scenarios.
* Scenario 2: If there is an fdt_addr specified, pass it along to
* bootm, and adjust argc appropriately.
*
- * Scenario 3: fdt blob is not available.
+ * Scenario 3: If there is an fdtcontroladdr specified, pass it along to
+ * bootm, and adjust argc appropriately, unless the image type is fitImage.
+ *
+ * Scenario 4: fdt blob is not available.
*/
bootm_argv[3] = env_get("fdt_addr_r");
+ /* For FIT, the label can be identical to kernel one */
+ if (label->fdt && !strcmp(label->kernel_label, label->fdt)) {
+ bootm_argv[3] = kernel_addr;
/* if fdt label is defined then get fdt from server */
- if (bootm_argv[3]) {
+ } else if (bootm_argv[3]) {
char *fdtfile = NULL;
char *fdtfilefree = NULL;
if (!bootm_argv[3])
bootm_argv[3] = env_get("fdt_addr");
+ kernel_addr_r = genimg_get_kernel_addr(kernel_addr);
+ buf = map_sysmem(kernel_addr_r, 0);
+
+ if (!bootm_argv[3] && genimg_get_format(buf) != IMAGE_FORMAT_FIT)
+ bootm_argv[3] = env_get("fdtcontroladdr");
+
if (bootm_argv[3]) {
if (!bootm_argv[2])
bootm_argv[2] = "-";
bootm_argc = 4;
}
- kernel_addr_r = genimg_get_kernel_addr(kernel_addr);
- buf = map_sysmem(kernel_addr_r, 0);
/* Try bootm for legacy and FIT format image */
if (genimg_get_format(buf) != IMAGE_FORMAT_INVALID &&
IS_ENABLED(CONFIG_CMD_BOOTM))
if (err < 0)
return err;
+ /* copy the kernel label to compare with FDT / INITRD when FIT is used */
+ label->kernel_label = strdup(label->kernel);
+ if (!label->kernel_label)
+ return -ENOMEM;
+
s = strstr(label->kernel, "#");
if (!s)
return 1;
- label->config = malloc(strlen(s) + 1);
+ label->config = strdup(s);
if (!label->config)
return -ENOMEM;
- strcpy(label->config, s);
*s = 0;
return 1;
break;
case T_PROMPT:
- eol_or_eof(&p);
+ err = parse_integer(&p, &cfg->prompt);
+ // Do not fail if prompt configuration is undefined
+ if (err < 0)
+ eol_or_eof(&p);
break;
case T_EOL:
There is no documentation about this within the U-Boot source code
but you should be able to find something on the interwebs.
+ config THOR_RESET_OFF
+ bool "thor: Disable reset on completion"
+ depends on CMD_THOR_DOWNLOAD
+
config CMD_ZBOOT
bool "zboot - x86 boot command"
help
config CMD_WGET
bool "wget"
- select TCP
+ select PROT_TCP
help
wget is a simple command to download kernel, or other files,
from a http server over TCP.
{
phys_size_t ram_size = gd->ram_size;
+#ifdef CONFIG_MPC85xx
/*
* Check for overflow and limit ram size to some representable value.
* It is required that ram_base + ram_size must be representable by
*/
if (gd->ram_base + ram_size < gd->ram_base)
ram_size = ((phys_size_t)~0xfffULL) - gd->ram_base;
+#endif
- #ifndef CONFIG_MAX_MEM_MAPPED
+ #ifndef CFG_MAX_MEM_MAPPED
return ram_size;
#else
/* limit stack to what we can reasonable map */
- return ((ram_size > CONFIG_MAX_MEM_MAPPED) ?
- CONFIG_MAX_MEM_MAPPED : ram_size);
+ return ((ram_size > CFG_MAX_MEM_MAPPED) ?
+ CFG_MAX_MEM_MAPPED : ram_size);
#endif
}
expense and power consumption. This enables loading from SATA
using a configured device.
+ config SYS_SATA_FAT_BOOT_PARTITION
+ int "Partition on the SATA disk to load U-Boot from"
+ depends on SPL_SATA && SPL_FS_FAT
+ default 1
+
config SPL_SATA_RAW_U_BOOT_USE_SECTOR
bool "SATA raw mode: by sector"
depends on SPL_SATA
config SPL_USB_STORAGE
bool "Support loading from USB"
- depends on SPL_USB_HOST && !(BLK && !DM_USB)
+ depends on SPL_USB_HOST
help
Enable support for USB devices in SPL. This allows use of USB
devices such as hard drives and flash drivers for loading U-Boot.
config SPL_OPTEE_IMAGE
bool "Support OP-TEE Trusted OS image in SPL"
depends on ARM
+ depends on SPL_LOAD_FIT || SPL_LOAD_FIT_FULL
help
OP-TEE is an open source Trusted OS which is loaded by SPL.
More detail at: https://github.com/OP-TEE/optee_os
CONFIG_SYS_INIT_RAM_LOCK=y
CONFIG_TARGET_P1010RDB_PA=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
+ CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
+ CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
CONFIG_PHYS_64BIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr"
CONFIG_BOOTFILE="uImage"
CONFIG_USE_ETHPRIME=y
CONFIG_ETHPRIME="eTSEC1"
+ CONFIG_USE_ROOTPATH=y
CONFIG_FSL_SATA_V2=y
CONFIG_SYS_SATA_MAX_DEVICE=2
CONFIG_FSL_CAAM=y
CONFIG_TSEC_ENET=y
CONFIG_PCIE_FSL=y
CONFIG_DM_RTC=y
- CONFIG_SYS_NS16550=y
+ CONFIG_RTC_PT7C4338=y
+ CONFIG_SYS_NS16550_SERIAL=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_FSL_ESPI=y
CONFIG_SYS_INIT_RAM_LOCK=y
CONFIG_TARGET_P1010RDB_PA=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
+ CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
+ CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
CONFIG_SYS_MONITOR_LEN=786432
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr"
CONFIG_BOOTFILE="uImage"
CONFIG_USE_ETHPRIME=y
CONFIG_ETHPRIME="eTSEC1"
+ CONFIG_USE_ROOTPATH=y
CONFIG_FSL_SATA_V2=y
CONFIG_SYS_SATA_MAX_DEVICE=2
CONFIG_FSL_CAAM=y
CONFIG_TSEC_ENET=y
CONFIG_PCIE_FSL=y
CONFIG_DM_RTC=y
- CONFIG_SYS_NS16550=y
+ CONFIG_RTC_PT7C4338=y
+ CONFIG_SYS_NS16550_SERIAL=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_FSL_ESPI=y
CONFIG_SYS_INIT_RAM_LOCK=y
CONFIG_TARGET_P1010RDB_PB=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
+ CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
+ CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
CONFIG_PHYS_64BIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr"
CONFIG_BOOTFILE="uImage"
CONFIG_USE_ETHPRIME=y
CONFIG_ETHPRIME="eTSEC1"
+ CONFIG_USE_ROOTPATH=y
CONFIG_FSL_SATA_V2=y
CONFIG_SYS_SATA_MAX_DEVICE=2
CONFIG_FSL_CAAM=y
CONFIG_TSEC_ENET=y
CONFIG_PCIE_FSL=y
CONFIG_DM_RTC=y
- CONFIG_SYS_NS16550=y
+ CONFIG_RTC_PT7C4338=y
+ CONFIG_SYS_NS16550_SERIAL=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_FSL_ESPI=y
CONFIG_SYS_INIT_RAM_LOCK=y
CONFIG_TARGET_P1010RDB_PB=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
+ CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
+ CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
CONFIG_SYS_MONITOR_LEN=786432
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr"
CONFIG_BOOTFILE="uImage"
CONFIG_USE_ETHPRIME=y
CONFIG_ETHPRIME="eTSEC1"
+ CONFIG_USE_ROOTPATH=y
CONFIG_FSL_SATA_V2=y
CONFIG_SYS_SATA_MAX_DEVICE=2
CONFIG_FSL_CAAM=y
CONFIG_TSEC_ENET=y
CONFIG_PCIE_FSL=y
CONFIG_DM_RTC=y
- CONFIG_SYS_NS16550=y
+ CONFIG_RTC_PT7C4338=y
+ CONFIG_SYS_NS16550_SERIAL=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_FSL_ESPI=y
# CONFIG_CMD_ERRATA is not set
CONFIG_TARGET_P1020RDB_PC=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
+ CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
+ CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
CONFIG_PHYS_64BIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"
CONFIG_BOOTFILE="uImage"
CONFIG_USE_ETHPRIME=y
CONFIG_ETHPRIME="eTSEC1"
+ CONFIG_USE_HOSTNAME=y
+ CONFIG_USE_ROOTPATH=y
CONFIG_LBA48=y
CONFIG_DDR_CLK_FREQ=66666666
CONFIG_SYS_SPD_BUS_NUM=1
CONFIG_PHY_GIGE=y
CONFIG_E1000=y
CONFIG_MII=y
+ CONFIG_VSC7385_ENET=y
CONFIG_TSEC_ENET=y
CONFIG_PCIE_FSL=y
CONFIG_DM_RTC=y
- CONFIG_SYS_NS16550=y
+ CONFIG_RTC_PT7C4338=y
+ CONFIG_SYS_NS16550_SERIAL=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_FSL_ESPI=y
# CONFIG_CMD_ERRATA is not set
CONFIG_TARGET_P1020RDB_PC=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
+ CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
+ CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
CONFIG_SYS_MONITOR_LEN=786432
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"
CONFIG_BOOTFILE="uImage"
CONFIG_USE_ETHPRIME=y
CONFIG_ETHPRIME="eTSEC1"
+ CONFIG_USE_HOSTNAME=y
+ CONFIG_USE_ROOTPATH=y
CONFIG_LBA48=y
CONFIG_DDR_CLK_FREQ=66666666
CONFIG_SYS_SPD_BUS_NUM=1
CONFIG_PHY_GIGE=y
CONFIG_E1000=y
CONFIG_MII=y
+ CONFIG_VSC7385_ENET=y
CONFIG_TSEC_ENET=y
CONFIG_PCIE_FSL=y
CONFIG_DM_RTC=y
- CONFIG_SYS_NS16550=y
+ CONFIG_RTC_PT7C4338=y
+ CONFIG_SYS_NS16550_SERIAL=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_FSL_ESPI=y
# CONFIG_CMD_ERRATA is not set
CONFIG_TARGET_P1020RDB_PD=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
+ CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
+ CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
CONFIG_SYS_MONITOR_LEN=786432
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"
CONFIG_BOOTFILE="uImage"
CONFIG_USE_ETHPRIME=y
CONFIG_ETHPRIME="eTSEC1"
+ CONFIG_USE_HOSTNAME=y
+ CONFIG_USE_ROOTPATH=y
CONFIG_LBA48=y
CONFIG_DDR_CLK_FREQ=66666666
CONFIG_SYS_SPD_BUS_NUM=1
CONFIG_PHY_GIGE=y
CONFIG_E1000=y
CONFIG_MII=y
+ CONFIG_VSC7385_ENET=y
CONFIG_TSEC_ENET=y
CONFIG_PCIE_FSL=y
CONFIG_DM_RTC=y
- CONFIG_SYS_NS16550=y
+ CONFIG_RTC_PT7C4338=y
+ CONFIG_SYS_NS16550_SERIAL=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_FSL_ESPI=y
# CONFIG_CMD_ERRATA is not set
CONFIG_TARGET_P2020RDB=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
+ CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
+ CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
CONFIG_PHYS_64BIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"
CONFIG_BOOTFILE="uImage"
CONFIG_USE_ETHPRIME=y
CONFIG_ETHPRIME="eTSEC1"
+ CONFIG_USE_HOSTNAME=y
+ CONFIG_USE_ROOTPATH=y
CONFIG_LBA48=y
CONFIG_DDR_CLK_FREQ=66666666
CONFIG_SYS_SPD_BUS_NUM=1
CONFIG_PHY_GIGE=y
CONFIG_E1000=y
CONFIG_MII=y
+ CONFIG_VSC7385_ENET=y
CONFIG_TSEC_ENET=y
CONFIG_PCIE_FSL=y
CONFIG_DM_RTC=y
- CONFIG_SYS_NS16550=y
+ CONFIG_RTC_PT7C4338=y
+ CONFIG_SYS_NS16550_SERIAL=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_FSL_ESPI=y
# CONFIG_CMD_ERRATA is not set
CONFIG_TARGET_P2020RDB=y
CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
+ CONFIG_L2_CACHE=y
CONFIG_ENABLE_36BIT_PHYS=y
-CONFIG_SYS_MPC85XX_NO_RESETVEC=y
+ CONFIG_USE_UBOOTPATH=y
CONFIG_PCIE1=y
CONFIG_PCIE2=y
CONFIG_SYS_MONITOR_LEN=786432
CONFIG_FIT_VERBOSE=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_FSL_FIXED_MMC_LOCATION=y
+CONFIG_NO_PBL=y
CONFIG_BOOTDELAY=10
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr"
CONFIG_BOOTFILE="uImage"
CONFIG_USE_ETHPRIME=y
CONFIG_ETHPRIME="eTSEC1"
+ CONFIG_USE_HOSTNAME=y
+ CONFIG_USE_ROOTPATH=y
CONFIG_LBA48=y
CONFIG_DDR_CLK_FREQ=66666666
CONFIG_SYS_SPD_BUS_NUM=1
CONFIG_PHY_GIGE=y
CONFIG_E1000=y
CONFIG_MII=y
+ CONFIG_VSC7385_ENET=y
CONFIG_TSEC_ENET=y
CONFIG_PCIE_FSL=y
CONFIG_DM_RTC=y
- CONFIG_SYS_NS16550=y
+ CONFIG_RTC_PT7C4338=y
+ CONFIG_SYS_NS16550_SERIAL=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_FSL_ESPI=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
+CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2
+ CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_USB_DWC2=y
CONFIG_DM_RESET=y
CONFIG_BAUDRATE=1500000
CONFIG_DEBUG_UART_SHIFT=2
+ CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
+# CONFIG_BINMAN_FDT is not set
CONFIG_ERRNO_STR=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
+CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2
+ CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_USB_DWC2=y
CONFIG_CMD_BMP=y
CONFIG_CMD_BOOTCOUNT=y
CONFIG_CMD_CACHE=y
-CONFIG_CMD_CLS=y
CONFIG_CMD_TIME=y
CONFIG_CMD_PMIC=y
CONFIG_CMD_REGULATOR=y
CONFIG_USB_GADGET_DOWNLOAD=y
CONFIG_VIDEO=y
CONFIG_VIDEO_IPUV3=y
+ CONFIG_IMX_VIDEO_SKIP=y
CONFIG_WATCHDOG_TIMEOUT_MSECS=30000
CONFIG_IMX_WATCHDOG=y
CONFIG_BCH=y
CONFIG_CMD_BMP=y
CONFIG_CMD_BOOTCOUNT=y
CONFIG_CMD_CACHE=y
-CONFIG_CMD_CLS=y
CONFIG_CMD_EXT2=y
CONFIG_CMD_EXT4=y
CONFIG_CMD_EXT4_WRITE=y
# CONFIG_VIDEO_BPP32 is not set
CONFIG_SYS_WHITE_ON_BLACK=y
CONFIG_VIDEO_IPUV3=y
+ CONFIG_IMX_VIDEO_SKIP=y
+ CONFIG_IMX_HDMI=y
CONFIG_WATCHDOG_TIMEOUT_MSECS=8000
CONFIG_IMX_WATCHDOG=y
CONFIG_BCH=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
+CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2
+ CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_USB_DWC2=y
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
CONFIG_CMD_BOOTCOUNT=y
-CONFIG_CMD_CLS=y
CONFIG_CMD_EXT2=y
CONFIG_CMD_EXT4=y
CONFIG_CMD_EXT4_WRITE=y
CONFIG_I2C_MUX=y
CONFIG_I2C_MUX_PCA954x=y
CONFIG_MISC=y
+ CONFIG_FSL_IIM=y
CONFIG_I2C_EEPROM=y
CONFIG_FSL_ESDHC_IMX=y
CONFIG_MTD=y
CONFIG_VIDEO=y
CONFIG_SYS_WHITE_ON_BLACK=y
CONFIG_VIDEO_IPUV3=y
+ CONFIG_IMX_VIDEO_SKIP=y
CONFIG_WATCHDOG_TIMEOUT_MSECS=8000
CONFIG_IMX_WATCHDOG=y
CONFIG_BCH=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
CONFIG_ENV_IS_IN_SPI_FLASH=y
-CONFIG_ENV_SPI_MAX_HZ=30000000
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SPL_DM_SEQ_ALIAS=y
CONFIG_ROCKCHIP_GPIO=y
CONFIG_RNG_ROCKCHIP=y
CONFIG_BAUDRATE=1500000
CONFIG_DEBUG_UART_SHIFT=2
+ CONFIG_SYS_NS16550_MEM32=y
CONFIG_ROCKCHIP_SPI=y
CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_USB_EHCI_GENERIC=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_GENERIC=y
-CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=2
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GENERIC=y
CONFIG_USB_KEYBOARD=y
CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000
CONFIG_TPL=y
CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_NVEDIT_EFI=y
CONFIG_CMD_DFU=y
CONFIG_CMD_GPT=y
CONFIG_CMD_MMC=y
CONFIG_CMD_ROCKUSB=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_EFIDEBUG=y
CONFIG_CMD_TIME=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
CONFIG_DM_RESET=y
CONFIG_BAUDRATE=1500000
CONFIG_DEBUG_UART_SHIFT=2
+ CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_SPL_TINY_MEMSET=y
CONFIG_ERRNO_STR=y
CONFIG_OF_LIBFDT_OVERLAY=y
-CONFIG_CMD_NVEDIT_EFI=y
-CONFIG_CMD_EFIDEBUG=y
-CONFIG_TOOLS_MKEFICAPSULE=y
-CONFIG_HEXDUMP=y
CONFIG_EFI_CAPSULE_ON_DISK=y
CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000
CONFIG_TPL=y
CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_NVEDIT_EFI=y
CONFIG_CMD_DFU=y
CONFIG_CMD_GPT=y
CONFIG_CMD_MMC=y
CONFIG_CMD_ROCKUSB=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_EFIDEBUG=y
CONFIG_CMD_TIME=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
CONFIG_DM_RESET=y
CONFIG_BAUDRATE=1500000
CONFIG_DEBUG_UART_SHIFT=2
+ CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_SPL_TINY_MEMSET=y
CONFIG_ERRNO_STR=y
CONFIG_OF_LIBFDT_OVERLAY=y
-CONFIG_CMD_NVEDIT_EFI=y
-CONFIG_CMD_EFIDEBUG=y
-CONFIG_TOOLS_MKEFICAPSULE=y
-CONFIG_HEXDUMP=y
CONFIG_EFI_CAPSULE_ON_DISK=y
CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
# CONFIG_RAM_ROCKCHIP_DEBUG is not set
+CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2
+ CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_NETCONSOLE=y
CONFIG_IP_DEFRAG=y
CONFIG_BOOTP_SERVERIP=y
+CONFIG_IPV6=y
CONFIG_DM_DMA=y
CONFIG_DEVRES=y
CONFIG_DEBUG_DEVRES=y
CONFIG_RESET_SCMI=y
CONFIG_DM_RTC=y
CONFIG_RTC_RV8803=y
++CONFIG_RTC_HT1380=y
CONFIG_SCSI=y
CONFIG_DM_SCSI=y
CONFIG_SANDBOX_SERIAL=y
CONFIG_UNIT_TEST=y
CONFIG_UT_TIME=y
CONFIG_UT_DM=y
-CONFIG_IPV6=y
-CONFIG_RTC_HT1380=y
CONFIG_CMD_DFU=y
CONFIG_CMD_FUSE=y
CONFIG_CMD_GPIO=y
-CONFIG_CMD_GPT=y
CONFIG_CMD_I2C=y
CONFIG_CMD_MMC=y
-CONFIG_CMD_MTD=y
CONFIG_CMD_REMOTEPROC=y
CONFIG_CMD_SPI=y
CONFIG_CMD_USB=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_TSIZE=y
+ CONFIG_USE_SERVERIP=y
+ CONFIG_SERVERIP="192.168.1.1"
CONFIG_STM32_ADC=y
CONFIG_SPL_BLOCK_CACHE=y
CONFIG_BOOTCOUNT_LIMIT=y
CONFIG_SYS_BOOTCOUNT_MAGIC=0xB0C40000
-CONFIG_DFU_MMC=y
-CONFIG_DFU_MTD=y
-CONFIG_DFU_RAM=y
CONFIG_GPIO_HOG=y
CONFIG_DM_HWSPINLOCK=y
CONFIG_HWSPINLOCK_STM32=y
CONFIG_CMD_DFU=y
CONFIG_CMD_FUSE=y
CONFIG_CMD_GPIO=y
-CONFIG_CMD_GPT=y
CONFIG_CMD_I2C=y
CONFIG_CMD_MMC=y
-CONFIG_CMD_MTD=y
CONFIG_CMD_REMOTEPROC=y
CONFIG_CMD_SPI=y
CONFIG_CMD_USB=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_IP_DEFRAG=y
CONFIG_TFTP_TSIZE=y
+ CONFIG_USE_SERVERIP=y
+ CONFIG_SERVERIP="192.168.1.1"
CONFIG_STM32_ADC=y
CONFIG_SPL_BLOCK_CACHE=y
CONFIG_BOOTCOUNT_LIMIT=y
CONFIG_SYS_BOOTCOUNT_MAGIC=0xB0C40000
-CONFIG_DFU_MMC=y
-CONFIG_DFU_MTD=y
-CONFIG_DFU_RAM=y
CONFIG_GPIO_HOG=y
CONFIG_DM_HWSPINLOCK=y
CONFIG_HWSPINLOCK_STM32=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
+CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2
+ CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_USB_DWC2=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
+CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2
+ CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_USB_DWC2=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
+CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_SHIFT=2
+ CONFIG_SYS_NS16550_MEM32=y
CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_USB_DWC2=y
.. SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
.. sectionauthor:: Tom Rini <trini@konsulko.com>
+AM335x Generation
+=================
+
Summary
-=======
+-------
This document covers various features of the `am335x_evm` default
configuration, some of the related defconfigs, and how to enable hardware
CONFIG_SYS_NAND_PAGE_SIZE number of main bytes in NAND page
CONFIG_SYS_NAND_OOBSIZE number of OOB bytes in NAND page
CONFIG_SYS_NAND_BLOCK_SIZE number of bytes in NAND erase-block
- CONFIG_SYS_NAND_ECCPOS ECC map for NAND page
+ CFG_SYS_NAND_ECCPOS ECC map for NAND page
CONFIG_NAND_OMAP_ECCSCHEME (refer doc/README.nand)
Step-2: Flashing NAND via MMC/SD
#include <asm/processor.h>
#include <asm/io.h>
- #ifndef CONFIG_DM_ETH
- /* Default initializations for TSEC controllers. */
-
- static struct tsec_info_struct tsec_info[] = {
- #ifdef CONFIG_TSEC1
- STD_TSEC_INFO(1), /* TSEC1 */
- #endif
- #ifdef CONFIG_TSEC2
- STD_TSEC_INFO(2), /* TSEC2 */
- #endif
- #ifdef CONFIG_MPC85XX_FEC
- {
- .regs = TSEC_GET_REGS(2, 0x2000),
- .devname = CONFIG_MPC85XX_FEC_NAME,
- .phyaddr = FEC_PHY_ADDR,
- .flags = FEC_FLAGS,
- .mii_devname = DEFAULT_MII_NAME
- }, /* FEC */
- #endif
- #ifdef CONFIG_TSEC3
- STD_TSEC_INFO(3), /* TSEC3 */
- #endif
- #ifdef CONFIG_TSEC4
- STD_TSEC_INFO(4), /* TSEC4 */
- #endif
- };
- #endif /* CONFIG_DM_ETH */
-
#define TBIANA_SETTINGS ( \
TBIANA_ASYMMETRIC_PAUSE \
| TBIANA_SYMMETRIC_PAUSE \
)
/* By default force the TBI PHY into 1000Mbps full duplex when in SGMII mode */
- #ifndef CONFIG_TSEC_TBICR_SETTINGS
- #define CONFIG_TSEC_TBICR_SETTINGS ( \
+ #ifndef CFG_TSEC_TBICR_SETTINGS
+ #define CFG_TSEC_TBICR_SETTINGS ( \
TBICR_PHY_RESET \
| TBICR_ANEG_ENABLE \
| TBICR_FULL_DUPLEX \
| TBICR_SPEED1_SET \
)
- #endif /* CONFIG_TSEC_TBICR_SETTINGS */
+ #endif /* CFG_TSEC_TBICR_SETTINGS */
/* Configure the TBI for SGMII operation */
static void tsec_configure_serdes(struct tsec_private *priv)
tsec_local_mdio_write(priv->phyregs_sgmii, in_be32(&priv->regs->tbipa),
0, TBI_TBICON, TBICON_CLK_SELECT);
tsec_local_mdio_write(priv->phyregs_sgmii, in_be32(&priv->regs->tbipa),
- 0, TBI_CR, CONFIG_TSEC_TBICR_SETTINGS);
+ 0, TBI_CR, CFG_TSEC_TBICR_SETTINGS);
}
/* the 'way' for ethernet-CRC-32. Spliced in from Linux lib/crc32.c
* for PowerPC (tm) is usually the case) in the register holds
* the entry.
*/
- #ifndef CONFIG_DM_ETH
- static int tsec_mcast_addr(struct eth_device *dev, const u8 *mcast_mac,
- int join)
- #else
static int tsec_mcast_addr(struct udevice *dev, const u8 *mcast_mac, int join)
- #endif
{
struct tsec_private *priv;
struct tsec __iomem *regs;
u32 result, value;
u8 whichbit, whichreg;
- #ifndef CONFIG_DM_ETH
- priv = (struct tsec_private *)dev->priv;
- #else
priv = dev_get_priv(dev);
- #endif
regs = priv->regs;
result = ether_crc(MAC_ADDR_LEN, mcast_mac);
whichbit = (result >> 24) & 0x1f; /* the 5 LSB = which bit to set */
return 0;
}
-static int tsec_set_promisc(struct udevice *dev, bool enable)
+static int __maybe_unused tsec_set_promisc(struct udevice *dev, bool enable)
{
struct tsec_private *priv = dev_get_priv(dev);
struct tsec __iomem *regs = priv->regs;
* do the same. Presumably, this would be zero if there were no
* errors
*/
- #ifndef CONFIG_DM_ETH
- static int tsec_send(struct eth_device *dev, void *packet, int length)
- #else
static int tsec_send(struct udevice *dev, void *packet, int length)
- #endif
{
struct tsec_private *priv;
struct tsec __iomem *regs;
u16 status;
int i;
- #ifndef CONFIG_DM_ETH
- priv = (struct tsec_private *)dev->priv;
- #else
priv = dev_get_priv(dev);
- #endif
regs = priv->regs;
/* Find an empty buffer descriptor */
for (i = 0;
return result;
}
- #ifndef CONFIG_DM_ETH
- static int tsec_recv(struct eth_device *dev)
- {
- struct tsec_private *priv = (struct tsec_private *)dev->priv;
- struct tsec __iomem *regs = priv->regs;
-
- while (!(in_be16(&priv->rxbd[priv->rx_idx].status) & RXBD_EMPTY)) {
- int length = in_be16(&priv->rxbd[priv->rx_idx].length);
- u16 status = in_be16(&priv->rxbd[priv->rx_idx].status);
- uchar *packet = net_rx_packets[priv->rx_idx];
-
- /* Send the packet up if there were no errors */
- if (!(status & RXBD_STATS))
- net_process_received_packet(packet, length - 4);
- else
- printf("Got error %x\n", (status & RXBD_STATS));
-
- out_be16(&priv->rxbd[priv->rx_idx].length, 0);
-
- status = RXBD_EMPTY;
- /* Set the wrap bit if this is the last element in the list */
- if ((priv->rx_idx + 1) == PKTBUFSRX)
- status |= RXBD_WRAP;
- out_be16(&priv->rxbd[priv->rx_idx].status, status);
-
- priv->rx_idx = (priv->rx_idx + 1) % PKTBUFSRX;
- }
-
- if (in_be32(®s->ievent) & IEVENT_BSY) {
- out_be32(®s->ievent, IEVENT_BSY);
- out_be32(®s->rstat, RSTAT_CLEAR_RHALT);
- }
-
- return -1;
- }
- #else
static int tsec_recv(struct udevice *dev, int flags, uchar **packetp)
{
struct tsec_private *priv = (struct tsec_private *)dev_get_priv(dev);
return 0;
}
- #endif
- /* Stop the interface */
- #ifndef CONFIG_DM_ETH
- static void tsec_halt(struct eth_device *dev)
- #else
static void tsec_halt(struct udevice *dev)
- #endif
{
struct tsec_private *priv;
struct tsec __iomem *regs;
- #ifndef CONFIG_DM_ETH
- priv = (struct tsec_private *)dev->priv;
- #else
priv = dev_get_priv(dev);
- #endif
regs = priv->regs;
clrbits_be32(®s->dmactrl, DMACTRL_GRS | DMACTRL_GTS);
* that it returns success if the link is up, failure otherwise.
* This allows U-Boot to find the first active controller.
*/
- #ifndef CONFIG_DM_ETH
- static int tsec_init(struct eth_device *dev, struct bd_info *bd)
- #else
static int tsec_init(struct udevice *dev)
- #endif
{
struct tsec_private *priv;
struct tsec __iomem *regs;
- #ifdef CONFIG_DM_ETH
struct eth_pdata *pdata = dev_get_plat(dev);
- #else
- struct eth_device *pdata = dev;
- #endif
u32 tempval;
int ret;
- #ifndef CONFIG_DM_ETH
- priv = (struct tsec_private *)dev->priv;
- #else
priv = dev_get_priv(dev);
- #endif
regs = priv->regs;
/* Make sure the controller is stopped */
tsec_halt(dev);
if (priv->interface == PHY_INTERFACE_MODE_SGMII)
tsec_configure_serdes(priv);
- #if defined(CONFIG_DM_ETH) && defined(CONFIG_DM_MDIO)
+ #if defined(CONFIG_DM_MDIO)
phydev = dm_eth_phy_connect(priv->dev);
#else
phydev = phy_connect(priv->bus, priv->phyaddr, priv->dev,
return 1;
}
- #ifndef CONFIG_DM_ETH
- /*
- * Initialize device structure. Returns success if PHY
- * initialization succeeded (i.e. if it recognizes the PHY)
- */
- static int tsec_initialize(struct bd_info *bis,
- struct tsec_info_struct *tsec_info)
- {
- struct tsec_private *priv;
- struct eth_device *dev;
- int i;
-
- dev = (struct eth_device *)malloc(sizeof(*dev));
-
- if (!dev)
- return 0;
-
- memset(dev, 0, sizeof(*dev));
-
- priv = (struct tsec_private *)malloc(sizeof(*priv));
-
- if (!priv) {
- free(dev);
- return 0;
- }
-
- priv->regs = tsec_info->regs;
- priv->phyregs_sgmii = tsec_info->miiregs_sgmii;
-
- priv->phyaddr = tsec_info->phyaddr;
- priv->tbiaddr = CONFIG_SYS_TBIPA_VALUE;
- priv->flags = tsec_info->flags;
-
- strcpy(dev->name, tsec_info->devname);
- priv->interface = tsec_info->interface;
- priv->bus = miiphy_get_dev_by_name(tsec_info->mii_devname);
- priv->dev = dev;
- dev->iobase = 0;
- dev->priv = priv;
- dev->init = tsec_init;
- dev->halt = tsec_halt;
- dev->send = tsec_send;
- dev->recv = tsec_recv;
- dev->mcast = tsec_mcast_addr;
-
- /* Tell U-Boot to get the addr from the env */
- for (i = 0; i < 6; i++)
- dev->enetaddr[i] = 0;
-
- eth_register(dev);
-
- /* Reset the MAC */
- setbits_be32(&priv->regs->maccfg1, MACCFG1_SOFT_RESET);
- udelay(2); /* Soft Reset must be asserted for 3 TX clocks */
- clrbits_be32(&priv->regs->maccfg1, MACCFG1_SOFT_RESET);
-
- /* Try to initialize PHY here, and return */
- return init_phy(priv);
- }
-
- /*
- * Initialize all the TSEC devices
- *
- * Returns the number of TSEC devices that were initialized
- */
- int tsec_eth_init(struct bd_info *bis, struct tsec_info_struct *tsecs,
- int num)
- {
- int i;
- int count = 0;
-
- for (i = 0; i < num; i++) {
- int ret = tsec_initialize(bis, &tsecs[i]);
-
- if (ret > 0)
- count += ret;
- }
-
- return count;
- }
-
- int tsec_standard_init(struct bd_info *bis)
- {
- struct fsl_pq_mdio_info info;
-
- info.regs = TSEC_GET_MDIO_REGS_BASE(1);
- info.name = DEFAULT_MII_NAME;
-
- fsl_pq_mdio_init(bis, &info);
-
- return tsec_eth_init(bis, tsec_info, ARRAY_SIZE(tsec_info));
- }
- #else /* CONFIG_DM_ETH */
int tsec_probe(struct udevice *dev)
{
struct eth_pdata *pdata = dev_get_plat(dev);
struct tsec_private *priv = dev_get_priv(dev);
struct ofnode_phandle_args phandle_args;
- u32 tbiaddr = CONFIG_SYS_TBIPA_VALUE;
+ u32 tbiaddr = CFG_SYS_TBIPA_VALUE;
struct tsec_data *data;
ofnode parent, child;
fdt_addr_t reg;
.plat_auto = sizeof(struct eth_pdata),
.flags = DM_FLAG_ALLOC_PRIV_DMA,
};
- #endif /* CONFIG_DM_ETH */
#define MVEBU_TIMER_FIXED_RATE_25MHZ 25000000
-static bool early_init_done __section(".data") = false;
+static bool early_init_done(void *base)
+{
+ if (readl(base + TIMER_CTRL) & TIMER0_EN)
+ return true;
+ return false;
+}
/* Common functions for early (boot) and DM based timer */
static void orion_timer_init(void *base, enum input_clock_type type)
{
/* Only init the timer once */
- if (early_init_done)
+ if (early_init_done(base))
return;
- early_init_done = true;
writel(~0, base + TIMER0_VAL);
writel(~0, base + TIMER0_RELOAD);
if (IS_ENABLED(CONFIG_ARCH_MVEBU))
return MVEBU_TIMER_FIXED_RATE_25MHZ;
else
- return CONFIG_SYS_TCLK;
+ return CFG_SYS_TCLK;
}
/**
if (type == INPUT_CLOCK_25MHZ)
uc_priv->clock_rate = MVEBU_TIMER_FIXED_RATE_25MHZ;
else
- uc_priv->clock_rate = CONFIG_SYS_TCLK;
+ uc_priv->clock_rate = CFG_SYS_TCLK;
orion_timer_init(priv->base, type);
return 0;
#define SCTL_BASE V2M_SYSCTL
#define VEXPRESS_FLASHPROG_FLVPPEN (1 << 0)
- #define CONFIG_SYS_TIMER_RATE 1000000
- #define CONFIG_SYS_TIMER_COUNTER (V2M_TIMER01 + 0x4)
- #define CONFIG_SYS_TIMER_COUNTS_DOWN
+ #define CFG_SYS_TIMER_RATE 1000000
+ #define CFG_SYS_TIMER_COUNTER (V2M_TIMER01 + 0x4)
/* PL011 Serial Configuration */
- #define CONFIG_PL011_CLOCK 24000000
- #define CONFIG_PL01x_PORTS {(void *)CONFIG_SYS_SERIAL0, \
- (void *)CONFIG_SYS_SERIAL1}
+ #define CFG_PL011_CLOCK 24000000
+ #define CFG_PL01x_PORTS {(void *)CFG_SYS_SERIAL0, \
+ (void *)CFG_SYS_SERIAL1}
- #define CONFIG_SYS_SERIAL0 V2M_UART0
- #define CONFIG_SYS_SERIAL1 V2M_UART1
+ #define CFG_SYS_SERIAL0 V2M_UART0
+ #define CFG_SYS_SERIAL1 V2M_UART1
/* Miscellaneous configurable options */
#define LINUX_BOOT_PARAM_ADDR (V2M_BASE + 0x2000)
#define PHYS_SDRAM_2_SIZE 0x20000000 /* 512 MB */
/* additions for new relocation code */
- #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
- #define CONFIG_SYS_INIT_RAM_SIZE 0x1000
+ #define CFG_SYS_SDRAM_BASE PHYS_SDRAM_1
+ #define CFG_SYS_INIT_RAM_SIZE 0x1000
/* Basic environment settings */
#define BOOT_TARGET_DEVICES(func) \
func(DHCP, dhcp, na)
#include <config_distro_bootcmd.h>
- #define CONFIG_EXTRA_ENV_SETTINGS \
+ #define CFG_EXTRA_ENV_SETTINGS \
+ "loadaddr=0x60100000\0" \
"kernel_addr_r=0x60100000\0" \
"fdt_addr_r=0x60000000\0" \
"bootargs=console=tty0 console=ttyAMA0,38400n8\0" \
"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0"
/* FLASH and environment organization */
- #define CONFIG_SYS_FLASH_SIZE 0x04000000
+ #define CFG_SYS_FLASH_SIZE 0x04000000
/* Timeout values in ticks */
*/
/* Store environment at top of flash */
- #define CONFIG_SYS_FLASH_BANKS_LIST { V2M_NOR0, V2M_NOR1 }
+ #define CFG_SYS_FLASH_BANKS_LIST { V2M_NOR0, V2M_NOR1 }
#endif /* VEXPRESS_COMMON_H */