[U-Boot] [PATCH 12/18] arm: mx6: add support for Compulab cm-fx6 CoM

Tim Harvey tharvey at gateworks.com
Mon Aug 4 08:02:42 CEST 2014


On Sun, Aug 3, 2014 at 12:34 AM, Nikita Kiryanov <nikita at compulab.co.il> wrote:
> Add initial support for Compulab CM-FX6 CoM.
> Support includes MMC, SPI flash, and SPL with dynamic DRAM detection.
>
<snip>
> diff --git a/include/configs/cm_fx6.h b/include/configs/cm_fx6.h
> new file mode 100644
> index 0000000..285af33
> --- /dev/null
> +++ b/include/configs/cm_fx6.h
> @@ -0,0 +1,227 @@
> +/*
> + * Config file for Compulab CM-FX6 board
> + *
> + * Copyright (C) 2014, Compulab Ltd - http://compulab.co.il/
> + *
> + * Author: Nikita Kiryanov <nikita at compulab.co.il>
> + *
> + * SPDX-License-Identifier:    GPL-2.0+
> + */
> +
> +#ifndef __CONFIG_CM_FX6_H
> +#define __CONFIG_CM_FX6_H
> +
> +#include <asm/arch/imx-regs.h>
> +#include <config_distro_defaults.h>
> +
> +#define CONFIG_SYS_L2CACHE_OFF
> +#include "mx6_common.h"
> +
> +/* Machine config */
> +#define CONFIG_MX6
> +#define CONFIG_MX6QDL
> +#define CONFIG_CM_FX6
> +#define CONFIG_SYS_LITTLE_ENDIAN
> +#define CONFIG_MACH_TYPE               4273
> +#define CONFIG_SYS_HZ                  1000
> +
> +/* Display information on boot */
> +#define CONFIG_DISPLAY_CPUINFO
> +#define CONFIG_DISPLAY_BOARDINFO
> +#define CONFIG_TIMESTAMP
> +
> +/* CMD */
> +#include <config_cmd_default.h>
> +#define CONFIG_CMD_GREPENV
> +#undef CONFIG_CMD_FLASH
> +#undef CONFIG_CMD_LOADB
> +#undef CONFIG_CMD_LOADS
> +#undef CONFIG_CMD_XIMG
> +#undef CONFIG_CMD_FPGA
> +#undef CONFIG_CMD_IMLS
> +#undef CONFIG_CMD_NET
> +#undef CONFIG_CMD_NFS
> +
> +/* MMC */
> +#define CONFIG_MMC
> +#define CONFIG_CMD_MMC
> +#define CONFIG_GENERIC_MMC
> +#define CONFIG_FSL_ESDHC
> +#define CONFIG_FSL_USDHC
> +#define CONFIG_SYS_FSL_USDHC_NUM       3
> +#define CONFIG_SYS_FSL_ESDHC_ADDR      USDHC2_BASE_ADDR
> +
> +/* RAM */
> +#define PHYS_SDRAM_1                   MMDC0_ARB_BASE_ADDR
> +#define PHYS_SDRAM_2                   MMDC1_ARB_BASE_ADDR
> +#define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM_1
> +#define CONFIG_NR_DRAM_BANKS           2
> +#define CONFIG_SYS_MEMTEST_START       0x10000000
> +#define CONFIG_SYS_MEMTEST_END         0x10010000
> +#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)
> +
> +/* Serial console */
> +#define CONFIG_MXC_UART
> +#define CONFIG_MXC_UART_BASE           UART4_BASE
> +#define CONFIG_BAUDRATE                        115200
> +#define CONFIG_SYS_BAUDRATE_TABLE      {9600, 19200, 38400, 57600, 115200}
> +
> +/* Shell */
> +#define CONFIG_SYS_PROMPT      "CM-FX6 # "
> +#define CONFIG_SYS_CBSIZE      1024
> +#define CONFIG_SYS_MAXARGS     16
> +#define CONFIG_SYS_BARGSIZE    CONFIG_SYS_CBSIZE
> +#define CONFIG_SYS_PBSIZE      (CONFIG_SYS_CBSIZE + \
> +                                       sizeof(CONFIG_SYS_PROMPT) + 16)
> +#define CONFIG_SYS_MONITOR_LEN (CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS / 2 * 1024)
> +
> +/* SPI flash */
> +#define CONFIG_SYS_NO_FLASH
> +#define CONFIG_CMD_SF
> +#define CONFIG_SF_DEFAULT_BUS          0
> +#define CONFIG_SF_DEFAULT_CS           0
> +#define CONFIG_SF_DEFAULT_SPEED                25000000
> +#define CONFIG_SF_DEFAULT_MODE         (SPI_MODE_0)
> +
> +/* Environment */
> +#define CONFIG_ENV_OVERWRITE
> +#define CONFIG_ENV_IS_IN_SPI_FLASH
> +#define CONFIG_ENV_SPI_MAX_HZ          CONFIG_SF_DEFAULT_SPEED
> +#define CONFIG_ENV_SPI_MODE            CONFIG_SF_DEFAULT_MODE
> +#define CONFIG_ENV_SPI_BUS             CONFIG_SF_DEFAULT_BUS
> +#define CONFIG_ENV_SPI_CS              CONFIG_SF_DEFAULT_CS
> +#define CONFIG_ENV_SECT_SIZE           (64 * 1024)
> +#define CONFIG_ENV_SIZE                        (8 * 1024)
> +#define CONFIG_ENV_OFFSET              (768 * 1024)
> +
> +#define CONFIG_EXTRA_ENV_SETTINGS \
> +       "kernel=uImage-cm-fx6\0" \
> +       "autoload=no\0" \
> +       "loadaddr=0x10800000\0" \
> +       "fdtaddr=0x11000000\0" \
> +       "console=ttymxc3,115200\0" \
> +       "ethprime=FEC0\0" \
> +       "bootscr=boot.scr\0" \
> +       "bootm_low=18000000\0" \
> +       "video_hdmi=mxcfb0:dev=hdmi,1920x1080M-32 at 50,if=RGB32\0" \
> +       "video_dvi=mxcfb0:dev=dvi,1280x800M-32 at 50,if=RGB32\0" \
> +       "fdtfile=cm-fx6.dtb\0" \
> +       "doboot=bootm ${loadaddr}\0" \
> +       "loadfdt=false\0" \
> +       "setboottypez=setenv kernel zImage-cm-fx6;" \
> +               "setenv doboot bootz ${loadaddr} - ${fdtaddr};" \
> +               "setenv loadfdt true;\0" \
> +       "setboottypem=setenv kernel uImage-cm-fx6;" \
> +               "setenv doboot bootm ${loadaddr};" \
> +               "setenv loadfdt false;\0"\
> +       "run_eboot=echo Starting EBOOT ...; "\
> +               "mmc dev ${mmcdev} && " \
> +               "mmc rescan && mmc read 10042000 a 400 && go 10042000\0" \
> +       "mmcdev=2\0" \
> +       "mmcroot=/dev/mmcblk0p2 rw rootwait\0" \
> +       "loadmmcbootscript=fatload mmc ${mmcdev} ${loadaddr} ${bootscr}\0" \
> +       "mmcbootscript=echo Running bootscript from mmc ...; "\
> +               "source ${loadaddr}\0" \
> +       "mmcargs=setenv bootargs console=${console} " \
> +               "root=${mmcroot} " \
> +               "${video}\0" \
> +       "mmcloadkernel=fatload mmc ${mmcdev} ${loadaddr} ${kernel}\0" \
> +       "mmcloadfdt=fatload mmc ${mmcdev} ${fdtaddr} ${fdtfile}\0" \
> +       "mmcboot=echo Booting from mmc ...; " \
> +               "run mmcargs; " \
> +               "run doboot\0" \
> +       "nandroot=/dev/mtdblock4 rw\0" \
> +       "nandrootfstype=ubifs\0" \
> +       "nandargs=setenv bootargs console=${console} " \
> +               "root=${nandroot} " \
> +               "rootfstype=${nandrootfstype} " \
> +               "${video}\0" \
> +       "nandloadfdt=nand read ${fdtaddr} 780000 80000;\0" \
> +       "nandboot=echo Booting from nand ...; " \
> +               "run nandargs; " \
> +               "nand read ${loadaddr} 0 780000; " \
> +               "if ${loadfdt}; then " \
> +                       "run nandloadfdt;" \
> +               "fi; " \
> +               "run doboot\0" \
> +       "boot=mmc dev ${mmcdev}; " \
> +               "if mmc rescan; then " \
> +                       "if run loadmmcbootscript; then " \
> +                               "run mmcbootscript;" \
> +                       "else " \
> +                               "if run mmcloadkernel; then " \
> +                                       "if ${loadfdt}; then " \
> +                                               "run mmcloadfdt;" \
> +                                       "fi;" \
> +                                       "run mmcboot;" \
> +                               "fi;" \
> +                       "fi;" \
> +               "fi;"
> +
> +#define CONFIG_BOOTCOMMAND \
> +       "run setboottypem; run boot"
> +
> +/* SPI */
> +#define CONFIG_SPI
> +#define CONFIG_MXC_SPI
> +#define CONFIG_SPI_FLASH
> +#define CONFIG_SPI_FLASH_ATMEL
> +#define CONFIG_SPI_FLASH_EON
> +#define CONFIG_SPI_FLASH_GIGADEVICE
> +#define CONFIG_SPI_FLASH_MACRONIX
> +#define CONFIG_SPI_FLASH_SPANSION
> +#define CONFIG_SPI_FLASH_STMICRO
> +#define CONFIG_SPI_FLASH_SST
> +#define CONFIG_SPI_FLASH_WINBOND
> +
> +/* GPIO */
> +#define CONFIG_MXC_GPIO
> +
> +/* Boot */
> +#define CONFIG_ZERO_BOOTDELAY_CHECK
> +#define CONFIG_LOADADDR                        0x10800000
> +#define CONFIG_SYS_LOAD_ADDR           CONFIG_LOADADDR
> +#define CONFIG_SYS_TEXT_BASE           0x10800000
> +#define CONFIG_CMDLINE_TAG             /* enable passing of ATAGs */
> +#define CONFIG_SYS_BOOTMAPSZ           (8 << 20)
> +#define CONFIG_SETUP_MEMORY_TAGS
> +#define CONFIG_INITRD_TAG
> +
> +/* misc */
> +#define CONFIG_SYS_GENERIC_BOARD
> +#define CONFIG_STACKSIZE                       (128 * 1024)
> +#define CONFIG_SYS_MALLOC_LEN                  (2 * 1024 * 1024)
> +#define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS     800 /* 400 KB */
> +
> +/* SPL */
> +#define CONFIG_SPL
> +#define CONFIG_SPL_FRAMEWORK
> +#define CONFIG_SPL_BOARD_INIT
> +#define CONFIG_SPL_STACK               0x0091FFB8
> +#define CONFIG_SPL_TEXT_BASE           0x00908000
> +#define CONFIG_SPL_BSS_START_ADDR      0x18200000
> +#define CONFIG_SPL_BSS_MAX_SIZE                0x00100000
> +#define CONFIG_SYS_SPL_MALLOC_START    0x18300000
> +#define CONFIG_SYS_SPL_MALLOC_SIZE     0x03200000
> +#define CONFIG_SPL_MAX_SIZE            (62 * 1024)
> +#define CONFIG_SPL_LIBDISK_SUPPORT
> +#define CONFIG_SPL_LIBGENERIC_SUPPORT
> +#define CONFIG_SPL_LIBCOMMON_SUPPORT
> +#define CONFIG_SPL_GPIO_SUPPORT
> +#define CONFIG_SPL_SERIAL_SUPPORT
> +#define CONFIG_SPL_MMC_SUPPORT
> +#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR        0x80 /* offset 64 kb */
> +#define CONFIG_SPL_SPI_SUPPORT
> +#define CONFIG_SPL_SPI_FLASH_SUPPORT
> +#define CONFIG_SPL_SPI_BUS             CONFIG_SF_DEFAULT_BUS
> +#define CONFIG_SPL_SPI_CS              CONFIG_SF_DEFAULT_CS
> +#define CONFIG_SPL_SPI_MODE            CONFIG_SF_DEFAULT_MODE
> +#define CONFIG_SYS_SPI_U_BOOT_OFFS     (64 * 1024)
> +#define CONFIG_SPL_SPI_LOAD

Nikita,

Are the values in include/configs/imx6_spl.h too inflexible to use? If
so, I can submit a patch in the future to remove that file and pull
them all in my board config files as I'm the only user of it.

Regards,

Tim


More information about the U-Boot mailing list