183d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */ 2f479cec3SAdam Ford /* 3f479cec3SAdam Ford * Copyright (C) 2017 Logic PD, Inc. 4f479cec3SAdam Ford * 5f479cec3SAdam Ford * Configuration settings for the LogicPD i.MX6 SOM. 6f479cec3SAdam Ford */ 7f479cec3SAdam Ford 8f479cec3SAdam Ford #ifndef __IMX6LOGIC_CONFIG_H 9f479cec3SAdam Ford #define __IMX6LOGIC_CONFIG_H 10f479cec3SAdam Ford 11f479cec3SAdam Ford #define CONFIG_MXC_UART_BASE UART1_BASE 12f479cec3SAdam Ford #define CONSOLE_DEV "ttymxc0" 13f479cec3SAdam Ford 14bbbb50f9SAdam Ford #ifdef CONFIG_SPL 15bbbb50f9SAdam Ford #include "imx6_spl.h" 16bbbb50f9SAdam Ford #endif 17bbbb50f9SAdam Ford 18f479cec3SAdam Ford #include "mx6_common.h" 19f479cec3SAdam Ford 20f479cec3SAdam Ford /* Size of malloc() pool */ 21f479cec3SAdam Ford #define CONFIG_SYS_MALLOC_LEN (10 * SZ_1M) 22f479cec3SAdam Ford 23f479cec3SAdam Ford /* MMC Configs */ 24f479cec3SAdam Ford #define CONFIG_SYS_FSL_ESDHC_ADDR 0 25f479cec3SAdam Ford #define CONFIG_SYS_FSL_USDHC_NUM 2 26*b7de88cdSAdam Ford 27f479cec3SAdam Ford 28f479cec3SAdam Ford /* Ethernet Configs */ 29f479cec3SAdam Ford #define CONFIG_FEC_XCV_TYPE RMII 30f479cec3SAdam Ford #define CONFIG_ETHPRIME "FEC" 31f479cec3SAdam Ford #define CONFIG_FEC_MXC_PHYADDR 0 32f479cec3SAdam Ford 33f479cec3SAdam Ford #define CONFIG_EXTRA_ENV_SETTINGS \ 34f479cec3SAdam Ford "script=boot.scr\0" \ 35f479cec3SAdam Ford "image=zImage\0" \ 36f479cec3SAdam Ford "bootm_size=0x10000000\0" \ 37f97f1671SAdam Ford "fdt_addr_r=0x13000000\0" \ 38f97f1671SAdam Ford "ramdisk_addr_r=0x14000000\0" \ 39f479cec3SAdam Ford "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ 40f479cec3SAdam Ford "ramdisk_file=rootfs.cpio.uboot\0" \ 41f479cec3SAdam Ford "boot_fdt=try\0" \ 42f479cec3SAdam Ford "ip_dyn=yes\0" \ 43f479cec3SAdam Ford "console=" CONSOLE_DEV "\0" \ 44f479cec3SAdam Ford "mmcdev=1\0" \ 45f479cec3SAdam Ford "mmcpart=1\0" \ 46*b7de88cdSAdam Ford "finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \ 47f479cec3SAdam Ford "nandroot=ubi0:rootfs rootfstype=ubifs\0" \ 48f479cec3SAdam Ford "mmcargs=setenv bootargs console=${console},${baudrate}" \ 49*b7de88cdSAdam Ford " root=PARTUUID=${uuid} rootwait rw\0 ${mtdparts}\0" \ 50f479cec3SAdam Ford "nandargs=setenv bootargs console=${console},${baudrate}" \ 51f479cec3SAdam Ford " ubi.mtd=fs root=${nandroot} ${mtdparts}\0" \ 52f479cec3SAdam Ford "ramargs=setenv bootargs console=${console},${baudrate}" \ 53f479cec3SAdam Ford " root=/dev/ram rw ${mtdparts}\0" \ 54f479cec3SAdam Ford "loadbootscript=" \ 55f479cec3SAdam Ford "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ 56f479cec3SAdam Ford "bootscript=echo Running bootscript from mmc ...;" \ 57f479cec3SAdam Ford " source\0" \ 58f479cec3SAdam Ford "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image};" \ 59f479cec3SAdam Ford " setenv kernelsize ${filesize}\0" \ 60f97f1671SAdam Ford "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdt_file}\0" \ 61f97f1671SAdam Ford "loadramdisk=fatload mmc ${mmcdev}:${mmcpart} ${ramdisk_addr_r}" \ 62f479cec3SAdam Ford " ${ramdisk_file}; setenv ramdisksize ${filesize}\0" \ 63*b7de88cdSAdam Ford "mmcboot=echo Booting from mmc...; run finduuid; run mmcargs;" \ 64*b7de88cdSAdam Ford "run loadimage; run loadfdt; bootz ${loadaddr} - ${fdt_addr_r}\0" \ 65f479cec3SAdam Ford "mmcramboot=run ramargs; run loadimage;" \ 66f479cec3SAdam Ford " run loadfdt; run loadramdisk;" \ 67f97f1671SAdam Ford " bootz ${loadaddr} ${ramdisk_addr_r} ${fdt_addr_r}\0" \ 68f479cec3SAdam Ford "nandboot=echo Booting from nand ...; " \ 69f479cec3SAdam Ford " run nandargs;" \ 70f479cec3SAdam Ford " nand read ${loadaddr} kernel ${kernelsize};" \ 7112d64098SAdam Ford " nand read ${fdt_addr_r} dtb;" \ 7212d64098SAdam Ford " bootz ${loadaddr} - ${fdt_addr_r}\0" \ 73f479cec3SAdam Ford "nandramboot=echo Booting RAMdisk from nand ...; " \ 74f97f1671SAdam Ford " nand read ${ramdisk_addr_r} fs ${ramdisksize};" \ 75f479cec3SAdam Ford " nand read ${loadaddr} kernel ${kernelsize};" \ 76f97f1671SAdam Ford " nand read ${fdt_addr_r} dtb;" \ 77f479cec3SAdam Ford " run ramargs;" \ 78f97f1671SAdam Ford " bootz ${loadaddr} ${ramdisk_addr_r} ${fdt_addr_r}\0" \ 79f479cec3SAdam Ford "netargs=setenv bootargs console=${console},${baudrate} " \ 80f479cec3SAdam Ford "root=/dev/nfs" \ 81f479cec3SAdam Ford " ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ 82f479cec3SAdam Ford "netboot=echo Booting from net ...; " \ 83f479cec3SAdam Ford "run netargs; " \ 84f479cec3SAdam Ford "if test ${ip_dyn} = yes; then " \ 85f479cec3SAdam Ford "setenv get_cmd dhcp; " \ 86f479cec3SAdam Ford "else " \ 87f479cec3SAdam Ford "setenv get_cmd tftp; " \ 88f479cec3SAdam Ford "fi; " \ 89f479cec3SAdam Ford "${get_cmd} ${image}; " \ 90f479cec3SAdam Ford "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 9112d64098SAdam Ford "if ${get_cmd} ${fdt_addr_r} ${fdt_file}; then " \ 9212d64098SAdam Ford "bootz ${loadaddr} - ${fdt_addr_r}; " \ 93f479cec3SAdam Ford "else " \ 94f479cec3SAdam Ford "if test ${boot_fdt} = try; then " \ 95f479cec3SAdam Ford "bootz; " \ 96f479cec3SAdam Ford "else " \ 97f479cec3SAdam Ford "echo WARN: Cannot load the DT; " \ 98f479cec3SAdam Ford "fi; " \ 99f479cec3SAdam Ford "fi; " \ 100f479cec3SAdam Ford "else " \ 101f479cec3SAdam Ford "bootz; " \ 102f479cec3SAdam Ford "fi;\0" \ 103f479cec3SAdam Ford "autoboot=mmc dev ${mmcdev};" \ 104f479cec3SAdam Ford "if mmc rescan; then " \ 105f479cec3SAdam Ford "if run loadbootscript; then " \ 106f479cec3SAdam Ford "run bootscript; " \ 107f479cec3SAdam Ford "else " \ 108f479cec3SAdam Ford "if run loadimage; then " \ 109f479cec3SAdam Ford "run mmcboot; " \ 110f479cec3SAdam Ford "else run netboot; " \ 111f479cec3SAdam Ford "fi; " \ 112f479cec3SAdam Ford "fi; " \ 113f479cec3SAdam Ford "else run netboot; fi" 114f479cec3SAdam Ford #define CONFIG_BOOTCOMMAND \ 115f479cec3SAdam Ford "run autoboot" 116f479cec3SAdam Ford 117f479cec3SAdam Ford #define CONFIG_ARP_TIMEOUT 200UL 118f479cec3SAdam Ford 119f479cec3SAdam Ford #define CONFIG_SYS_MEMTEST_START 0x10000000 120f479cec3SAdam Ford #define CONFIG_SYS_MEMTEST_END 0x10010000 121f479cec3SAdam Ford #define CONFIG_SYS_MEMTEST_SCRATCH 0x10800000 122f479cec3SAdam Ford 123f479cec3SAdam Ford /* Physical Memory Map */ 124f479cec3SAdam Ford #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR 125f479cec3SAdam Ford #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM 126f479cec3SAdam Ford #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 127f479cec3SAdam Ford #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE 128f479cec3SAdam Ford 129f479cec3SAdam Ford #define CONFIG_SYS_INIT_SP_OFFSET \ 130f479cec3SAdam Ford (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) 131f479cec3SAdam Ford #define CONFIG_SYS_INIT_SP_ADDR \ 132f479cec3SAdam Ford (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) 133f479cec3SAdam Ford 134f479cec3SAdam Ford /* Environment organization */ 135bbbb50f9SAdam Ford #define CONFIG_ENV_SIZE (1024 * 1024) 136f479cec3SAdam Ford #define CONFIG_ENV_OFFSET 0x400000 137f479cec3SAdam Ford #define CONFIG_ENV_SECT_SIZE CONFIG_ENV_SIZE 138f479cec3SAdam Ford 139f479cec3SAdam Ford /* NAND stuff */ 140f479cec3SAdam Ford #define CONFIG_SYS_MAX_NAND_DEVICE 1 141f479cec3SAdam Ford #define CONFIG_SYS_NAND_BASE 0x40000000 142f479cec3SAdam Ford #define CONFIG_SYS_NAND_5_ADDR_CYCLE 143f479cec3SAdam Ford #define CONFIG_SYS_NAND_ONFI_DETECTION 144f479cec3SAdam Ford #define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE 145f479cec3SAdam Ford #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x200000 146bbbb50f9SAdam Ford #define CONFIG_SYS_NAND_SPL_KERNEL_OFFS 0x00500000 14764f8340dSAdam Ford #define CONFIG_SYS_NAND_USE_FLASH_BBT 14864f8340dSAdam Ford 149f479cec3SAdam Ford /* MTD device */ 150f479cec3SAdam Ford 151f479cec3SAdam Ford /* DMA stuff, needed for GPMI/MXS NAND support */ 152f479cec3SAdam Ford 153f479cec3SAdam Ford /* EEPROM contains serial no, MAC addr and other Logic PD info */ 154f479cec3SAdam Ford #define CONFIG_I2C_EEPROM 155f479cec3SAdam Ford 156bbbb50f9SAdam Ford /* USB Configs */ 157bbbb50f9SAdam Ford #ifdef CONFIG_CMD_USB 158bbbb50f9SAdam Ford #define CONFIG_EHCI_HCD_INIT_AFTER_RESET 159bbbb50f9SAdam Ford #define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW) 160bbbb50f9SAdam Ford #define CONFIG_MXC_USB_FLAGS 0 161bbbb50f9SAdam Ford #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 /* Enabled USB controller number */ 162bbbb50f9SAdam Ford #endif 163bbbb50f9SAdam Ford 164bbbb50f9SAdam Ford /* Falcon Mode */ 165bbbb50f9SAdam Ford #define CONFIG_SPL_FS_LOAD_ARGS_NAME "args" 166bbbb50f9SAdam Ford #define CONFIG_SPL_FS_LOAD_KERNEL_NAME "uImage" 16764f8340dSAdam Ford #define CONFIG_SYS_SPL_ARGS_ADDR 0x18000000 168bbbb50f9SAdam Ford 169bbbb50f9SAdam Ford /* Falcon Mode - MMC support: args@1MB kernel@2MB */ 170bbbb50f9SAdam Ford #define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR 0x800 /* 1MB */ 171bbbb50f9SAdam Ford #define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS (CONFIG_CMD_SPL_WRITE_SIZE / 512) 172bbbb50f9SAdam Ford #define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR 0x1000 /* 2MB */ 173bbbb50f9SAdam Ford 174f479cec3SAdam Ford #endif /* __IMX6LOGIC_CONFIG_H */ 175