uboot/include/configs/tqma6.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/*
   3 * Copyright (C) 2013, 2014, 2017 Markus Niebel <Markus.Niebel@tq-group.com>
   4 *
   5 * Configuration settings for the TQ Systems TQMa6<Q,D,DL,S> module.
   6 */
   7
   8#ifndef __CONFIG_H
   9#define __CONFIG_H
  10
  11#include <linux/kconfig.h>
  12/* SPL */
  13/* #if defined(CONFIG_SPL_BUILD) */
  14/* common IMX6 SPL configuration */
  15#include "imx6_spl.h"
  16
  17/* #endif */
  18
  19/* place code in last 4 MiB of RAM */
  20
  21#include "mx6_common.h"
  22
  23#if defined(CONFIG_TQMA6S)
  24#define PHYS_SDRAM_SIZE                 (512u * SZ_1M)
  25#elif defined(CONFIG_TQMA6DL)
  26#define PHYS_SDRAM_SIZE                 (SZ_1G)
  27#elif defined(CONFIG_TQMA6Q)
  28#define PHYS_SDRAM_SIZE                 (SZ_1G)
  29#endif
  30
  31#define CONFIG_MXC_UART
  32
  33/* SPI Flash */
  34
  35#define TQMA6_SPI_FLASH_SECTOR_SIZE     SZ_64K
  36
  37/* I2C Configs */
  38#define CONFIG_SYS_I2C
  39#define CONFIG_SYS_I2C_MXC
  40#define CONFIG_SYS_I2C_MXC_I2C1         /* enable I2C bus 1 */
  41#define CONFIG_SYS_I2C_MXC_I2C2         /* enable I2C bus 2 */
  42#define CONFIG_SYS_I2C_MXC_I2C3         /* enable I2C bus 3 */
  43#define CONFIG_I2C_MULTI_BUS
  44#define CONFIG_SYS_I2C_SPEED            100000
  45
  46/* I2C EEPROM (M24C64) */
  47#define CONFIG_SYS_I2C_EEPROM_ADDR                      0x50
  48#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN                  2
  49#define CONFIG_SYS_I2C_EEPROM_PAGE_WRITE_BITS           5 /* 32 Bytes */
  50#define CONFIG_SYS_I2C_EEPROM_PAGE_WRITE_DELAY_MS       20
  51
  52#define CONFIG_POWER
  53#define CONFIG_POWER_I2C
  54#define CONFIG_POWER_PFUZE100
  55#define CONFIG_POWER_PFUZE100_I2C_ADDR  0x08
  56#define TQMA6_PFUZE100_I2C_BUS          2
  57
  58/* MMC Configs */
  59#define CONFIG_SYS_FSL_ESDHC_ADDR       0
  60
  61/* USB Configs */
  62#define CONFIG_MXC_USB_PORTSC   (PORT_PTS_UTMI | PORT_PTS_PTW)
  63#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
  64#define CONFIG_EHCI_HCD_INIT_AFTER_RESET        /* For OTG port */
  65
  66#define CONFIG_FEC_MXC
  67#define IMX_FEC_BASE                    ENET_BASE_ADDR
  68
  69#define CONFIG_ARP_TIMEOUT              200UL
  70
  71/* Size of malloc() pool */
  72#define CONFIG_SYS_MALLOC_LEN           (CONFIG_ENV_SIZE + 2 * SZ_1M)
  73
  74#if defined(CONFIG_TQMA6X_MMC_BOOT)
  75
  76#define TQMA6_UBOOT_OFFSET              SZ_1K
  77#define TQMA6_UBOOT_SECTOR_START        0x2
  78#define TQMA6_UBOOT_SECTOR_COUNT        0x7fe
  79
  80#define CONFIG_SYS_MMC_ENV_DEV          0
  81
  82#define TQMA6_FDT_OFFSET                (2 * SZ_1M)
  83#define TQMA6_FDT_SECTOR_START          0x1000
  84#define TQMA6_FDT_SECTOR_COUNT          0x800
  85
  86#define TQMA6_KERNEL_SECTOR_START       0x2000
  87#define TQMA6_KERNEL_SECTOR_COUNT       0x2000
  88
  89#define TQMA6_EXTRA_BOOTDEV_ENV_SETTINGS                                       \
  90        "uboot_start="__stringify(TQMA6_UBOOT_SECTOR_START)"\0"                \
  91        "uboot_size="__stringify(TQMA6_UBOOT_SECTOR_COUNT)"\0"                 \
  92        "fdt_start="__stringify(TQMA6_FDT_SECTOR_START)"\0"                    \
  93        "fdt_size="__stringify(TQMA6_FDT_SECTOR_COUNT)"\0"                     \
  94        "kernel_start="__stringify(TQMA6_KERNEL_SECTOR_START)"\0"              \
  95        "kernel_size="__stringify(TQMA6_KERNEL_SECTOR_COUNT)"\0"               \
  96        "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0"                       \
  97        "loadimage=mmc dev ${mmcdev}; "                                        \
  98                "mmc read ${loadaddr} ${kernel_start} ${kernel_size};\0"       \
  99        "loadfdt=mmc dev ${mmcdev}; "                                          \
 100                "mmc read ${fdt_addr} ${fdt_start} ${fdt_size};\0"             \
 101        "update_uboot=if tftp ${uboot}; then "                                 \
 102                "if itest ${filesize} > 0; then "                              \
 103                        "mmc dev ${mmcdev}; mmc rescan; "                      \
 104                        "setexpr blkc ${filesize} + 0x1ff; "                   \
 105                        "setexpr blkc ${blkc} / 0x200; "                       \
 106                        "if itest ${blkc} <= ${uboot_size}; then "             \
 107                                "mmc write ${loadaddr} ${uboot_start} "        \
 108                                        "${blkc}; "                            \
 109                        "fi; "                                                 \
 110                "fi; fi; "                                                     \
 111                "setenv filesize; setenv blkc \0"                              \
 112        "update_kernel=run kernel_name; "                                      \
 113                "if tftp ${kernel}; then "                                     \
 114                        "if itest ${filesize} > 0; then "                      \
 115                                "mmc dev ${mmcdev}; mmc rescan; "              \
 116                                "setexpr blkc ${filesize} + 0x1ff; "           \
 117                                "setexpr blkc ${blkc} / 0x200; "               \
 118                                "if itest ${blkc} <= ${kernel_size}; then "    \
 119                                        "mmc write ${loadaddr} "               \
 120                                                "${kernel_start} ${blkc}; "    \
 121                                "fi; "                                         \
 122                        "fi; "                                                 \
 123                "fi; "                                                         \
 124                "setenv filesize; setenv blkc \0"                              \
 125        "update_fdt=if tftp ${fdt_file}; then "                                \
 126                "if itest ${filesize} > 0; then "                              \
 127                        "mmc dev ${mmcdev}; mmc rescan; "                      \
 128                        "setexpr blkc ${filesize} + 0x1ff; "                   \
 129                        "setexpr blkc ${blkc} / 0x200; "                       \
 130                        "if itest ${blkc} <= ${fdt_size}; then "               \
 131                                "mmc write ${loadaddr} ${fdt_start} ${blkc}; " \
 132                        "fi; "                                                 \
 133                "fi; fi; "                                                     \
 134                "setenv filesize; setenv blkc \0"                              \
 135
 136#define CONFIG_BOOTCOMMAND \
 137        "run mmcboot; run netboot; run panicboot"
 138
 139#elif defined(CONFIG_TQMA6X_SPI_BOOT)
 140
 141#define TQMA6_UBOOT_OFFSET              0x400
 142#define TQMA6_UBOOT_SECTOR_START        0x0
 143/* max u-boot size: 512k */
 144#define TQMA6_UBOOT_SECTOR_SIZE         TQMA6_SPI_FLASH_SECTOR_SIZE
 145#define TQMA6_UBOOT_SECTOR_COUNT        0x8
 146#define TQMA6_UBOOT_SIZE                (TQMA6_UBOOT_SECTOR_SIZE * \
 147                                         TQMA6_UBOOT_SECTOR_COUNT)
 148
 149#define TQMA6_FDT_OFFSET                (CONFIG_ENV_OFFSET_REDUND + \
 150                                         CONFIG_ENV_SECT_SIZE)
 151#define TQMA6_FDT_SECT_SIZE             (TQMA6_SPI_FLASH_SECTOR_SIZE)
 152
 153#define TQMA6_FDT_SECTOR_START          0x0a /* 8 Sector u-boot, 2 Sector env */
 154#define TQMA6_FDT_SECTOR_COUNT          0x01
 155
 156#define TQMA6_KERNEL_SECTOR_START       0x10
 157#define TQMA6_KERNEL_SECTOR_COUNT       0x60
 158
 159#define TQMA6_EXTRA_BOOTDEV_ENV_SETTINGS                                       \
 160        "mmcblkdev=0\0"                                                        \
 161        "uboot_offset="__stringify(TQMA6_UBOOT_OFFSET)"\0"                     \
 162        "uboot_sectors="__stringify(TQMA6_UBOOT_SECTOR_COUNT)"\0"              \
 163        "fdt_start="__stringify(TQMA6_FDT_SECTOR_START)"\0"                    \
 164        "fdt_sectors="__stringify(TQMA6_FDT_SECTOR_COUNT)"\0"                  \
 165        "kernel_start="__stringify(TQMA6_KERNEL_SECTOR_START)"\0"              \
 166        "kernel_sectors="__stringify(TQMA6_KERNEL_SECTOR_COUNT)"\0"            \
 167        "update_uboot=if tftp ${uboot}; then "                                 \
 168                "if itest ${filesize} > 0; then "                              \
 169                        "setexpr blkc ${filesize} + "                          \
 170                                __stringify(TQMA6_UBOOT_OFFSET) "; "           \
 171                        "setexpr size ${uboot_sectors} * "                     \
 172                                __stringify(TQMA6_SPI_FLASH_SECTOR_SIZE)"; "   \
 173                        "if itest ${blkc} <= ${size}; then "                   \
 174                                "sf probe; "                                   \
 175                                "sf erase 0 ${size}; "                         \
 176                                "sf write ${loadaddr} ${uboot_offset} "        \
 177                                        "${filesize}; "                        \
 178                        "fi; "                                                 \
 179                "fi; fi; "                                                     \
 180                "setenv filesize 0; setenv blkc; setenv size \0"               \
 181        "update_kernel=run kernel_name; if tftp ${kernel}; then "              \
 182                "if itest ${filesize} > 0; then "                              \
 183                        "setexpr size ${kernel_sectors} * "                    \
 184                                __stringify(TQMA6_SPI_FLASH_SECTOR_SIZE)"; "   \
 185                        "setexpr offset ${kernel_start} * "                    \
 186                                __stringify(TQMA6_SPI_FLASH_SECTOR_SIZE)"; "   \
 187                        "if itest ${filesize} <= ${size}; then "               \
 188                                "sf probe; "                                   \
 189                                "sf erase ${offset} ${size}; "                 \
 190                                "sf write ${loadaddr} ${offset} "              \
 191                                        "${filesize}; "                        \
 192                        "fi; "                                                 \
 193                "fi; fi; "                                                     \
 194                "setenv filesize 0; setenv size ; setenv offset\0"             \
 195        "update_fdt=if tftp ${fdt_file}; then "                                \
 196                "if itest ${filesize} > 0; then "                              \
 197                        "setexpr size ${fdt_sectors} * "                       \
 198                                __stringify(TQMA6_SPI_FLASH_SECTOR_SIZE)"; "   \
 199                        "setexpr offset ${fdt_start} * "                       \
 200                                __stringify(TQMA6_SPI_FLASH_SECTOR_SIZE)"; "   \
 201                        "if itest ${filesize} <= ${size}; then "               \
 202                                "sf probe; "                                   \
 203                                "sf erase ${offset} ${size}; "                 \
 204                                "sf write ${loadaddr} ${offset} "              \
 205                                        "${filesize}; "                        \
 206                        "fi; "                                                 \
 207                "fi; fi; "                                                     \
 208                "setenv filesize 0; setenv size ; setenv offset\0"             \
 209        "loadimage=sf probe; "                                                 \
 210                "setexpr size ${kernel_sectors} * "                            \
 211                        __stringify(TQMA6_SPI_FLASH_SECTOR_SIZE)"; "           \
 212                "setexpr offset ${kernel_start} * "                            \
 213                        __stringify(TQMA6_SPI_FLASH_SECTOR_SIZE)"; "           \
 214                "sf read ${loadaddr} ${offset} ${size}; "                      \
 215                "setenv size ; setenv offset\0"                                \
 216        "loadfdt=sf probe; "                                                   \
 217                "setexpr size ${fdt_sectors} * "                               \
 218                        __stringify(TQMA6_SPI_FLASH_SECTOR_SIZE)"; "           \
 219                "setexpr offset ${fdt_start} * "                               \
 220                        __stringify(TQMA6_SPI_FLASH_SECTOR_SIZE)"; "           \
 221                "sf read ${fdt_addr} ${offset} ${size}; "                      \
 222                "setenv size ; setenv offset\0"                                \
 223
 224#define CONFIG_BOOTCOMMAND                                                     \
 225        "sf probe; run mmcboot; run netboot; run panicboot"                    \
 226
 227#else
 228
 229#error "need to define boot source"
 230
 231#endif
 232
 233/* 128 MiB offset as in ARM related docu for linux suggested */
 234#define TQMA6_FDT_ADDRESS               0x18000000
 235
 236/* set to a resonable value, changeable by user */
 237#define TQMA6_CMA_SIZE                 160M
 238
 239#define CONFIG_EXTRA_ENV_SETTINGS                                              \
 240        "board=tqma6\0"                                                        \
 241        "uimage=uImage\0"                                                      \
 242        "zimage=zImage\0"                                                      \
 243        "boot_type=bootz\0"                                                    \
 244        "kernel_name=if test \"${boot_type}\" != bootz; then "                 \
 245                "setenv kernel ${uimage}; "                                    \
 246                "else setenv kernel ${zimage}; fi\0"                           \
 247        "uboot=u-boot.imx\0"                                                   \
 248        "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0"                               \
 249        "fdt_addr="__stringify(TQMA6_FDT_ADDRESS)"\0"                          \
 250        "console=" CONSOLE_DEV "\0"                                            \
 251        "cma_size="__stringify(TQMA6_CMA_SIZE)"\0"                             \
 252        "fdt_high=0xffffffff\0"                                                \
 253        "initrd_high=0xffffffff\0"                                             \
 254        "rootfsmode=ro\0"                                                      \
 255        "addcma=setenv bootargs ${bootargs} cma=${cma_size}\0"                 \
 256        "addtty=setenv bootargs ${bootargs} console=${console},${baudrate}\0"  \
 257        "addfb=setenv bootargs ${bootargs} "                                   \
 258                "imx-fbdev.legacyfb_depth=32 consoleblank=0\0"                 \
 259        "mmcpart=2\0"                                                          \
 260        "mmcblkdev=0\0"                                                        \
 261        "mmcargs=run addmmc addtty addfb addcma\0"                             \
 262        "addmmc=setenv bootargs ${bootargs} "                                  \
 263                "root=/dev/mmcblk${mmcblkdev}p${mmcpart} ${rootfsmode} "       \
 264                "rootwait\0"                                                   \
 265        "mmcboot=echo Booting from mmc ...; "                                  \
 266                "setenv bootargs; "                                            \
 267                "run mmcargs; "                                                \
 268                "run loadimage; "                                              \
 269                "if run loadfdt; then "                                        \
 270                        "echo boot device tree kernel ...; "                   \
 271                        "${boot_type} ${loadaddr} - ${fdt_addr}; "             \
 272                "else "                                                        \
 273                        "${boot_type}; "                                       \
 274                "fi;\0"                                                        \
 275                "setenv bootargs \0"                                           \
 276        "netdev=eth0\0"                                                        \
 277        "rootpath=/srv/nfs/tqma6\0"                                            \
 278        "ipmode=static\0"                                                      \
 279        "netargs=run addnfs addip addtty addfb addcma\0"                       \
 280        "addnfs=setenv bootargs ${bootargs} "                                  \
 281                "root=/dev/nfs rw "                                            \
 282                "nfsroot=${serverip}:${rootpath},v3,tcp;\0"                    \
 283        "addip_static=setenv bootargs ${bootargs} "                            \
 284                "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:"            \
 285                "${hostname}:${netdev}:off\0"                                  \
 286        "addip_dynamic=setenv bootargs ${bootargs} ip=dhcp\0"                  \
 287        "addip=if test \"${ipmode}\" != static; then "                         \
 288                "run addip_dynamic; else run addip_static; fi\0"               \
 289        "set_getcmd=if test \"${ipmode}\" != static; then "                    \
 290                "setenv getcmd dhcp; setenv autoload yes; "                    \
 291                "else setenv getcmd tftp; setenv autoload no; fi\0"            \
 292        "netboot=echo Booting from net ...; "                                  \
 293                "run kernel_name; "                                            \
 294                "run set_getcmd; "                                             \
 295                "setenv bootargs; "                                            \
 296                "run netargs; "                                                \
 297                "if ${getcmd} ${kernel}; then "                                \
 298                        "if ${getcmd} ${fdt_addr} ${fdt_file}; then "          \
 299                                "${boot_type} ${loadaddr} - ${fdt_addr}; "     \
 300                        "fi; "                                                 \
 301                "fi; "                                                         \
 302                "echo ... failed\0"                                            \
 303        "panicboot=echo No boot device !!! reset\0"                            \
 304        TQMA6_EXTRA_BOOTDEV_ENV_SETTINGS                                      \
 305
 306/* Physical Memory Map */
 307#define PHYS_SDRAM                      MMDC0_ARB_BASE_ADDR
 308
 309#define CONFIG_SYS_SDRAM_BASE           PHYS_SDRAM
 310#define CONFIG_SYS_INIT_RAM_ADDR        IRAM_BASE_ADDR
 311#define CONFIG_SYS_INIT_RAM_SIZE        IRAM_SIZE
 312
 313#define CONFIG_SYS_INIT_SP_OFFSET \
 314        (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
 315#define CONFIG_SYS_INIT_SP_ADDR \
 316        (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
 317
 318/*
 319 * All the defines above are for the TQMa6 SoM
 320 *
 321 * Now include the baseboard specific configuration
 322 */
 323#ifdef CONFIG_MBA6
 324#include "tqma6_mba6.h"
 325#elif CONFIG_WRU4
 326#include "tqma6_wru4.h"
 327#else
 328#error "No baseboard for the TQMa6 defined!"
 329#endif
 330
 331/* Support at least the sensor on TQMa6 SOM */
 332
 333#endif /* __CONFIG_H */
 334