blob: 6d362557ac61f22883e184d8ea95433b15b967a0 [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0+
*
* Copyright (c) 2017 DENX Software Engineering GmbH, Heiko Schocher <hs@denx.de>
* Copyright (c) 2019 Bosch Thermotechnik GmbH
* Copyright (c) 2022 DENX Software Engineering GmbH, Philip Oberfichtner <pro@denx.de>
*/
#ifndef __IMX6Q_ACC_H
#define __IMX6Q_ACC_H
#include <linux/sizes.h>
#include "mx6_common.h"
#ifdef CONFIG_SYS_BOOT_EMMC
#define MMC_ROOTFS_DEV 0
#define MMC_ROOTFS_PART 2
#endif
#ifdef CONFIG_SYS_BOOT_EMMC
/* eMMC Boot */
#define ENV_EXTRA \
"mmcdev=" __stringify(MMC_ROOTFS_DEV) "\0" \
"mmcpart=" __stringify(MMC_ROOTFS_PART) "\0" \
"fitpart=1\0" \
"optargs=ro quiet systemd.gpt_auto=false\0" \
"production=1\0" \
"mmcautodetect=yes\0" \
"mmcrootfstype=ext4\0" \
"finduuid=part uuid mmc ${mmcdev}:${mmcpart} uuid\0" \
"mmcargs=run finduuid; setenv bootargs " \
"root=PARTUUID=${uuid} ${optargs} rootfstype=${mmcrootfstype}\0" \
"mmc_mmc_fit=run env_persist; run setbm; run mmcloadfit; " \
"run auth_fit_or_reset; run mmcargs addcon; " \
"bootm ${fit_addr}#${bootconf}\0" \
"bootset=0\0" \
"setbm=if test ${bootset} -eq 1; " \
"then setenv mmcpart 4; setenv fitpart 3; " \
"else; setenv mmcpart 2; setenv fitpart 1; fi\0" \
"handle_ustate=if test ${ustate} -eq 2; then setenv ustate 3; fi\0" \
"switch_bootset=if test ${bootset} -eq 1; then setenv bootset 0; " \
"else; setenv bootset 1;fi\0" \
"env_persisted=0\0" \
"env_persist=if test ${env_persisted} != 1; " \
"then env set env_persisted 1; run save_env; fi;\0" \
"save_env=env save; env save\0" \
"altbootcmd=run handle_ustate; run switch_bootset; run save_env; run bootcmd\0"
#define CONFIG_ENV_FLAGS_LIST_STATIC \
"bootset:bw," \
"clone_pending:bw," \
"endurance_test:bw," \
"env_persisted:bw," \
"factory_reset:bw," \
"fdtcontroladdr:xw," \
"fitpart:dw," \
"mmcpart:dw," \
"production:bw," \
"ustate:dw"
#else
/* SD Card boot */
#define ENV_EXTRA \
"mmcdev=1\0" \
"fitpart=1\0" \
"rootpart=2\0" \
"optargs=ro systemd.gpt_auto=false\0" \
"finduuid=part uuid mmc ${mmcdev}:${rootpart} uuid\0" \
"mmcargs=run finduuid;setenv bootargs root=PARTUUID=${uuid} ${optargs}\0" \
"mmc_mmc_fit=run mmcloadfit; run auth_fit_or_reset; run mmcargs addcon; " \
"bootm ${fit_addr}#${bootconf}\0"
#endif
/* Default environment */
#define CONFIG_EXTRA_ENV_SETTINGS \
"bootconf=conf-imx6q-bosch-acc.dtb\0"\
"mmcfit_name=fitImage\0" \
"mmcloadfit=ext4load mmc ${mmcdev}:${fitpart} ${fit_addr} ${mmcfit_name}\0" \
"auth_fit_or_reset=hab_auth_img ${fit_addr} ${filesize} || reset\0" \
"console=ttymxc0\0" \
"addcon=setenv bootargs ${bootargs} console=${console},${baudrate}\0" \
"fit_addr=19000000\0" \
ENV_EXTRA
/* Physical Memory Map */
#define PHYS_SDRAM MMDC0_ARB_BASE_ADDR
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM
#define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR
#define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE
#define CONFIG_SYS_INIT_SP_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
/* SPL */
#ifdef CONFIG_SPL
#include "imx6_spl.h"
#ifdef CONFIG_SPL_BUILD
#define CONFIG_SYS_FSL_USDHC_NUM 2
#ifdef CONFIG_SYS_BOOT_EMMC
/* Boot from eMMC */
#define CONFIG_SYS_FSL_ESDHC_ADDR 1
#else
/* Boot from SD-card */
# define CONFIG_SYS_FSL_ESDHC_ADDR 0
#endif
#endif
#endif
#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
#define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW)
#define CONFIG_MXC_USB_FLAGS 0
#define CONFIG_USB_MAX_CONTROLLER_COUNT 1 /* Enabled USB controller number */
#endif /* __IMX6Q_ACC_H */