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 /* Keep device tree and initrd in lower memory so the kernel can access them */ 30 #define RELOCATION_LIMITS_ENV_SETTINGS \ 31 "fdt_high=0x10000000\0" \ 32 "initrd_high=0x10000000\0" 33 34 /* 35 * mv-common.h should be defined after CMD configs since it used them 36 * to enable certain macros 37 */ 38 #include "mv-common.h" 39 40 /* Include the common distro boot environment */ 41 #ifdef CONFIG_MMC 42 #define BOOT_TARGET_DEVICES_MMC(func) func(MMC, mmc, 0) 43 #else 44 #define BOOT_TARGET_DEVICES_MMC(func) 45 #endif 46 47 #ifdef CONFIG_USB_STORAGE 48 #define BOOT_TARGET_DEVICES_USB(func) func(USB, usb, 0) 49 #else 50 #define BOOT_TARGET_DEVICES_USB(func) 51 #endif 52 53 #ifndef CONFIG_SCSI 54 #define BOOT_TARGET_DEVICES_SCSI_BUS0(func) 55 #define BOOT_TARGET_DEVICES_SCSI_BUS1(func) 56 #define BOOT_TARGET_DEVICES_SCSI_BUS2(func) 57 #else 58 /* 59 * With SCSI enabled, M.2 SATA is always located on bus 0 60 */ 61 #define BOOT_TARGET_DEVICES_SCSI_BUS0(func) func(SCSI, scsi, 0) 62 63 /* 64 * Either one or both mPCIe slots may be configured as mSATA interfaces. The 65 * SCSI bus ids are assigned based on sequence of hardware present, not always 66 * tied to hardware slot ids. As such, use second SCSI bus if either slot is 67 * set for SATA, and only use third SCSI bus if both slots are SATA enabled. 68 */ 69 #if defined (CONFIG_CLEARFOG_CON2_SATA) || defined (CONFIG_CLEARFOG_CON3_SATA) 70 #define BOOT_TARGET_DEVICES_SCSI_BUS1(func) func(SCSI, scsi, 1) 71 #else 72 #define BOOT_TARGET_DEVICES_SCSI_BUS1(func) 73 #endif 74 75 #if defined (CONFIG_CLEARFOG_CON2_SATA) && defined (CONFIG_CLEARFOG_CON3_SATA) 76 #define BOOT_TARGET_DEVICES_SCSI_BUS2(func) func(SCSI, scsi, 2) 77 #else 78 #define BOOT_TARGET_DEVICES_SCSI_BUS2(func) 79 #endif 80 81 #endif /* CONFIG_SCSI */ 82 83 /* 84 * The SCSI buses are attempted in increasing bus order, there is no current 85 * mechanism to alter the default bus priority order for booting. 86 */ 87 #define BOOT_TARGET_DEVICES(func) \ 88 BOOT_TARGET_DEVICES_MMC(func) \ 89 BOOT_TARGET_DEVICES_USB(func) \ 90 BOOT_TARGET_DEVICES_SCSI_BUS0(func) \ 91 BOOT_TARGET_DEVICES_SCSI_BUS1(func) \ 92 BOOT_TARGET_DEVICES_SCSI_BUS2(func) \ 93 func(PXE, pxe, na) \ 94 func(DHCP, dhcp, na) 95 96 #define KERNEL_ADDR_R __stringify(0x800000) 97 #define FDT_ADDR_R __stringify(0x100000) 98 #define RAMDISK_ADDR_R __stringify(0x1800000) 99 #define SCRIPT_ADDR_R __stringify(0x200000) 100 #define PXEFILE_ADDR_R __stringify(0x300000) 101 102 #define LOAD_ADDRESS_ENV_SETTINGS \ 103 "kernel_addr_r=" KERNEL_ADDR_R "\0" \ 104 "fdt_addr_r=" FDT_ADDR_R "\0" \ 105 "ramdisk_addr_r=" RAMDISK_ADDR_R "\0" \ 106 "scriptaddr=" SCRIPT_ADDR_R "\0" \ 107 "pxefile_addr_r=" PXEFILE_ADDR_R "\0" 108 109 #include <config_distro_bootcmd.h> 110 111 #define CFG_EXTRA_ENV_SETTINGS \ 112 RELOCATION_LIMITS_ENV_SETTINGS \ 113 LOAD_ADDRESS_ENV_SETTINGS \ 114 "console=ttyS0,115200\0" \ 115 BOOTENV 116 117 #endif /* _CONFIG_CLEARFOG_H */ 118