1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * Copyright (C) 2015 Stefan Roese <sr@denx.de> 4 */ 5 6#ifndef _CONFIG_CLEARFOG_H 7#define _CONFIG_CLEARFOG_H 8 9#include <linux/stringify.h> 10 11/* 12 * High Level Configuration Options (easy to change) 13 */ 14 15/* 16 * TEXT_BASE needs to be below 16MiB, since this area is scrubbed 17 * for DDR ECC byte filling in the SPL before loading the main 18 * U-Boot into it. 19 */ 20 21/* Environment in MMC */ 22/* 23 * For SD - reserve 1 LBA for MBR + 1M for u-boot image. The MMC/eMMC 24 * boot image starts @ LBA-0. 25 * As result in MMC/eMMC case it will be a 1 sector gap between u-boot 26 * image and environment 27 */ 28 29#define PHY_ANEG_TIMEOUT 8000 /* PHY needs a longer aneg time */ 30 31/* Keep device tree and initrd in lower memory so the kernel can access them */ 32#define RELOCATION_LIMITS_ENV_SETTINGS \ 33 "fdt_high=0x10000000\0" \ 34 "initrd_high=0x10000000\0" 35 36/* 37 * mv-common.h should be defined after CMD configs since it used them 38 * to enable certain macros 39 */ 40#include "mv-common.h" 41 42/* Include the common distro boot environment */ 43#ifdef CONFIG_MMC 44#define BOOT_TARGET_DEVICES_MMC(func) func(MMC, mmc, 0) 45#else 46#define BOOT_TARGET_DEVICES_MMC(func) 47#endif 48 49#ifdef CONFIG_USB_STORAGE 50#define BOOT_TARGET_DEVICES_USB(func) func(USB, usb, 0) 51#else 52#define BOOT_TARGET_DEVICES_USB(func) 53#endif 54 55#ifndef CONFIG_SCSI 56#define BOOT_TARGET_DEVICES_SCSI_BUS0(func) 57#define BOOT_TARGET_DEVICES_SCSI_BUS1(func) 58#define BOOT_TARGET_DEVICES_SCSI_BUS2(func) 59#else 60/* 61 * With SCSI enabled, M.2 SATA is always located on bus 0 62 */ 63#define BOOT_TARGET_DEVICES_SCSI_BUS0(func) func(SCSI, scsi, 0) 64 65/* 66 * Either one or both mPCIe slots may be configured as mSATA interfaces. The 67 * SCSI bus ids are assigned based on sequence of hardware present, not always 68 * tied to hardware slot ids. As such, use second SCSI bus if either slot is 69 * set for SATA, and only use third SCSI bus if both slots are SATA enabled. 70 */ 71#if defined (CONFIG_CLEARFOG_CON2_SATA) || defined (CONFIG_CLEARFOG_CON3_SATA) 72#define BOOT_TARGET_DEVICES_SCSI_BUS1(func) func(SCSI, scsi, 1) 73#else 74#define BOOT_TARGET_DEVICES_SCSI_BUS1(func) 75#endif 76 77#if defined (CONFIG_CLEARFOG_CON2_SATA) && defined (CONFIG_CLEARFOG_CON3_SATA) 78#define BOOT_TARGET_DEVICES_SCSI_BUS2(func) func(SCSI, scsi, 2) 79#else 80#define BOOT_TARGET_DEVICES_SCSI_BUS2(func) 81#endif 82 83#endif /* CONFIG_SCSI */ 84 85/* 86 * The SCSI buses are attempted in increasing bus order, there is no current 87 * mechanism to alter the default bus priority order for booting. 88 */ 89#define BOOT_TARGET_DEVICES(func) \ 90 BOOT_TARGET_DEVICES_MMC(func) \ 91 BOOT_TARGET_DEVICES_USB(func) \ 92 BOOT_TARGET_DEVICES_SCSI_BUS0(func) \ 93 BOOT_TARGET_DEVICES_SCSI_BUS1(func) \ 94 BOOT_TARGET_DEVICES_SCSI_BUS2(func) \ 95 func(PXE, pxe, na) \ 96 func(DHCP, dhcp, na) 97 98#define KERNEL_ADDR_R __stringify(0x800000) 99#define FDT_ADDR_R __stringify(0x100000) 100#define RAMDISK_ADDR_R __stringify(0x1800000) 101#define SCRIPT_ADDR_R __stringify(0x200000) 102#define PXEFILE_ADDR_R __stringify(0x300000) 103 104#define LOAD_ADDRESS_ENV_SETTINGS \ 105 "kernel_addr_r=" KERNEL_ADDR_R "\0" \ 106 "fdt_addr_r=" FDT_ADDR_R "\0" \ 107 "ramdisk_addr_r=" RAMDISK_ADDR_R "\0" \ 108 "scriptaddr=" SCRIPT_ADDR_R "\0" \ 109 "pxefile_addr_r=" PXEFILE_ADDR_R "\0" 110 111#include <config_distro_bootcmd.h> 112 113#define CFG_EXTRA_ENV_SETTINGS \ 114 RELOCATION_LIMITS_ENV_SETTINGS \ 115 LOAD_ADDRESS_ENV_SETTINGS \ 116 "console=ttyS0,115200\0" \ 117 BOOTENV 118 119#endif /* _CONFIG_CLEARFOG_H */ 120