[U-Boot] [PATCH 11/14] imx: ventana: add GW5904 support

Stefano Babic sbabic at denx.de
Fri Mar 17 11:09:08 UTC 2017


On 13/03/2017 16:51, Tim Harvey wrote:
> Signed-off-by: Tim Harvey <tharvey at gateworks.com>
> ---
>  board/gateworks/gw_ventana/common.c         | 222 ++++++++++++++++++++++++++--
>  board/gateworks/gw_ventana/common.h         |   2 +-
>  board/gateworks/gw_ventana/eeprom.c         |   9 +-
>  board/gateworks/gw_ventana/gw_ventana.c     |  35 ++++-
>  board/gateworks/gw_ventana/gw_ventana_spl.c |  14 ++
>  board/gateworks/gw_ventana/ventana_eeprom.h |   1 +
>  configs/gwventana_gw5904_defconfig          |  68 +++++++++
>  7 files changed, 336 insertions(+), 15 deletions(-)
>  create mode 100644 configs/gwventana_gw5904_defconfig
> 
> diff --git a/board/gateworks/gw_ventana/common.c b/board/gateworks/gw_ventana/common.c
> index 3dc5f88..f7e93e2 100644
> --- a/board/gateworks/gw_ventana/common.c
> +++ b/board/gateworks/gw_ventana/common.c
> @@ -38,6 +38,19 @@ void setup_iomux_uart(void)
>  }
>  
>  /* MMC */
> +static iomux_v3_cfg_t const gw5904_emmc_pads[] = {
> +	IOMUX_PADS(PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
> +	IOMUX_PADS(PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
> +	IOMUX_PADS(PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
> +	IOMUX_PADS(PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
> +	IOMUX_PADS(PAD_SD3_DAT4__SD3_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
> +	IOMUX_PADS(PAD_SD3_DAT5__SD3_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
> +	IOMUX_PADS(PAD_SD3_DAT6__SD3_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
> +	IOMUX_PADS(PAD_SD3_DAT7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
> +	IOMUX_PADS(PAD_SD3_CLK__SD3_CLK    | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
> +	IOMUX_PADS(PAD_SD3_CMD__SD3_CMD    | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
> +	IOMUX_PADS(PAD_SD3_RST__SD3_RESET  | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
> +};
>  static iomux_v3_cfg_t const usdhc3_pads[] = {
>  	IOMUX_PADS(PAD_SD3_CLK__SD3_CLK    | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
>  	IOMUX_PADS(PAD_SD3_CMD__SD3_CMD    | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
> @@ -352,6 +365,41 @@ static iomux_v3_cfg_t const gw553x_gpio_pads[] = {
>  	IOMUX_PADS(PAD_GPIO_17__GPIO7_IO12 | DIO_PAD_CFG),
>  };
>  
> +static iomux_v3_cfg_t const gw5904_gpio_pads[] = {
> +	/* USB_HUBRST# */
> +	IOMUX_PADS(PAD_GPIO_9__GPIO1_IO09 | DIO_PAD_CFG),
> +	/* PANLEDG# */
> +	IOMUX_PADS(PAD_KEY_COL0__GPIO4_IO06 | DIO_PAD_CFG),
> +	/* PANLEDR# */
> +	IOMUX_PADS(PAD_KEY_ROW0__GPIO4_IO07 | DIO_PAD_CFG),
> +	/* MX6_LOCLED# */
> +	IOMUX_PADS(PAD_KEY_ROW4__GPIO4_IO15 | DIO_PAD_CFG),
> +	/* IOEXP_PWREN# */
> +	IOMUX_PADS(PAD_EIM_A19__GPIO2_IO19 | DIO_PAD_CFG),
> +	/* IOEXP_IRQ# */
> +	IOMUX_PADS(PAD_EIM_A20__GPIO2_IO18 | MUX_PAD_CTRL(IRQ_PAD_CTRL)),
> +	/* DIOI2C_DIS# */
> +	IOMUX_PADS(PAD_GPIO_19__GPIO4_IO05 | DIO_PAD_CFG),
> +	/* UART_RS485 */
> +	IOMUX_PADS(PAD_DISP0_DAT2__GPIO4_IO23 | DIO_PAD_CFG),
> +	/* UART_HALF */
> +	IOMUX_PADS(PAD_DISP0_DAT3__GPIO4_IO24 | DIO_PAD_CFG),
> +	/* SKT1_WDIS# */
> +	IOMUX_PADS(PAD_DISP0_DAT17__GPIO5_IO11 | DIO_PAD_CFG),
> +	/* SKT1_RST# */
> +	IOMUX_PADS(PAD_DISP0_DAT18__GPIO5_IO12 | DIO_PAD_CFG),
> +	/* SKT2_WDIS# */
> +	IOMUX_PADS(PAD_DISP0_DAT19__GPIO5_IO13 | DIO_PAD_CFG),
> +	/* SKT2_RST# */
> +	IOMUX_PADS(PAD_GPIO_0__GPIO1_IO00 | DIO_PAD_CFG),
> +	/* M2_OFF# */
> +	IOMUX_PADS(PAD_SD2_DAT0__GPIO1_IO15 | DIO_PAD_CFG),
> +	/* M2_WDIS# */
> +	IOMUX_PADS(PAD_SD2_DAT1__GPIO1_IO14 | DIO_PAD_CFG),
> +	/* M2_RST# */
> +	IOMUX_PADS(PAD_SD2_DAT2__GPIO1_IO13 | DIO_PAD_CFG),
> +};
> +
>  /* Digital I/O */
>  struct dio_cfg gw51xx_dio[] = {
>  	{
> @@ -566,6 +614,81 @@ struct dio_cfg gw553x_dio[] = {
>  	},
>  };
>  
> +struct dio_cfg gw5904_dio[] = {
> +	{
> +		{ IOMUX_PADS(PAD_SD1_DAT0__GPIO1_IO16) },
> +		IMX_GPIO_NR(1, 16),
> +		{ 0, 0 },
> +		0
> +	},
> +	{
> +		{ IOMUX_PADS(PAD_SD1_DAT2__GPIO1_IO19) },
> +		IMX_GPIO_NR(1, 19),
> +		{ IOMUX_PADS(PAD_SD1_DAT2__PWM2_OUT) },
> +		2
> +	},
> +	{
> +		{ IOMUX_PADS(PAD_SD1_DAT1__GPIO1_IO17) },
> +		IMX_GPIO_NR(1, 17),
> +		{ IOMUX_PADS(PAD_SD1_DAT1__PWM3_OUT) },
> +		3
> +	},
> +	{
> +		{IOMUX_PADS(PAD_SD1_CLK__GPIO1_IO20) },
> +		IMX_GPIO_NR(1, 20),
> +		{ 0, 0 },
> +		0
> +	},
> +	{
> +		{IOMUX_PADS(PAD_NANDF_D0__GPIO2_IO00) },
> +		IMX_GPIO_NR(2, 0),
> +		{ 0, 0 },
> +		0
> +	},
> +	{
> +		{IOMUX_PADS(PAD_NANDF_D1__GPIO2_IO01) },
> +		IMX_GPIO_NR(2, 1),
> +		{ 0, 0 },
> +		0
> +	},
> +	{
> +		{IOMUX_PADS(PAD_NANDF_D2__GPIO2_IO02) },
> +		IMX_GPIO_NR(2, 2),
> +		{ 0, 0 },
> +		0
> +	},
> +	{
> +		{IOMUX_PADS(PAD_NANDF_D3__GPIO2_IO03) },
> +		IMX_GPIO_NR(2, 3),
> +		{ 0, 0 },
> +		0
> +	},
> +	{
> +		{IOMUX_PADS(PAD_NANDF_D4__GPIO2_IO04) },
> +		IMX_GPIO_NR(2, 4),
> +		{ 0, 0 },
> +		0
> +	},
> +	{
> +		{IOMUX_PADS(PAD_NANDF_D5__GPIO2_IO05) },
> +		IMX_GPIO_NR(2, 5),
> +		{ 0, 0 },
> +		0
> +	},
> +	{
> +		{IOMUX_PADS(PAD_NANDF_D6__GPIO2_IO06) },
> +		IMX_GPIO_NR(2, 6),
> +		{ 0, 0 },
> +		0
> +	},
> +	{
> +		{IOMUX_PADS(PAD_NANDF_D7__GPIO2_IO07) },
> +		IMX_GPIO_NR(2, 7),
> +		{ 0, 0 },
> +		0
> +	},
> +};
> +
>  /*
>   * Board Specific GPIO
>   */
> @@ -588,6 +711,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
>  		.dioi2c_en = IMX_GPIO_NR(4,  5),
>  		.pcie_sson = IMX_GPIO_NR(1, 20),
>  		.otgpwr_en = IMX_GPIO_NR(3, 22),
> +		.mmc_cd = IMX_GPIO_NR(7, 0),
>  	},
>  
>  	/* GW51xx */
> @@ -631,6 +755,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
>  		.rs232_en = GP_RS232_EN,
>  		.otgpwr_en = IMX_GPIO_NR(3, 22),
>  		.vsel_pin = IMX_GPIO_NR(6, 14),
> +		.mmc_cd = IMX_GPIO_NR(7, 0),
>  	},
>  
>  	/* GW53xx */
> @@ -654,6 +779,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
>  		.rs232_en = GP_RS232_EN,
>  		.otgpwr_en = IMX_GPIO_NR(3, 22),
>  		.vsel_pin = IMX_GPIO_NR(6, 14),
> +		.mmc_cd = IMX_GPIO_NR(7, 0),
>  	},
>  
>  	/* GW54xx */
> @@ -679,6 +805,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
>  		.rs232_en = GP_RS232_EN,
>  		.otgpwr_en = IMX_GPIO_NR(3, 22),
>  		.vsel_pin = IMX_GPIO_NR(6, 14),
> +		.mmc_cd = IMX_GPIO_NR(7, 0),
>  	},
>  
>  	/* GW551x */
> @@ -726,6 +853,24 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
>  		.wdis = IMX_GPIO_NR(7, 12),
>  		.otgpwr_en = IMX_GPIO_NR(3, 22),
>  		.vsel_pin = IMX_GPIO_NR(6, 14),
> +		.mmc_cd = IMX_GPIO_NR(7, 0),
> +	},
> +
> +	/* GW5904 */
> +	{
> +		.gpio_pads = gw5904_gpio_pads,
> +		.num_pads = ARRAY_SIZE(gw5904_gpio_pads)/2,
> +		.dio_cfg = gw5904_dio,
> +		.dio_num = ARRAY_SIZE(gw5904_dio),
> +		.leds = {
> +			IMX_GPIO_NR(4, 6),
> +			IMX_GPIO_NR(4, 7),
> +			IMX_GPIO_NR(4, 15),
> +		},
> +		.pcie_rst = IMX_GPIO_NR(1, 0),
> +		.mezz_pwren = IMX_GPIO_NR(2, 19),
> +		.mezz_irq = IMX_GPIO_NR(2, 18),
> +		.otgpwr_en = IMX_GPIO_NR(3, 22),
>  	},
>  };
>  
> @@ -834,6 +979,24 @@ void setup_iomux_gpio(int board, struct ventana_board_info *info)
>  		gpio_direction_input(gpio_cfg[board].vsel_pin);
>  		gpio_cfg[board].usd_vsel = !gpio_get_value(gpio_cfg[board].vsel_pin);
>  	}
> +
> +	/* Anything else board specific */
> +	switch(board) {
> +	case GW5904:
> +		gpio_request(IMX_GPIO_NR(5, 11), "skt1_wdis#");
> +		gpio_direction_output(IMX_GPIO_NR(5, 11), 1);
> +		gpio_request(IMX_GPIO_NR(5, 12), "skt1_rst#");
> +		gpio_direction_output(IMX_GPIO_NR(5, 12), 1);
> +		gpio_request(IMX_GPIO_NR(5, 13), "skt2_wdis#");
> +		gpio_direction_output(IMX_GPIO_NR(5, 13), 1);
> +		gpio_request(IMX_GPIO_NR(1, 15), "m2_off#");
> +		gpio_direction_output(IMX_GPIO_NR(1, 15), 1);
> +		gpio_request(IMX_GPIO_NR(1, 14), "m2_wdis#");
> +		gpio_direction_output(IMX_GPIO_NR(1, 14), 1);
> +		gpio_request(IMX_GPIO_NR(1, 13), "m2_rst#");
> +		gpio_direction_output(IMX_GPIO_NR(1, 13), 1);
> +		break;
> +	}
>  }
>  
>  /* setup GPIO pinmux and default configuration per baseboard and env */
> @@ -995,19 +1158,60 @@ static struct fsl_esdhc_cfg usdhc_cfg = { USDHC3_BASE_ADDR };
>  
>  int board_mmc_init(bd_t *bis)
>  {
> -	/* Only one USDHC controller on Ventana */
> -	SETUP_IOMUX_PADS(usdhc3_pads);
> -	usdhc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
> -	usdhc_cfg.max_bus_width = 4;
> -
> -	return fsl_esdhc_initialize(bis, &usdhc_cfg);
> +	struct ventana_board_info ventana_info;
> +	int board_type = read_eeprom(CONFIG_I2C_GSC, &ventana_info);
> +	int ret;
> +
> +	switch (board_type) {
> +	case GW52xx:
> +	case GW53xx:
> +	case GW54xx:
> +	case GW553x:
> +		SETUP_IOMUX_PADS(usdhc3_pads);
> +		usdhc_cfg.esdhc_base = USDHC3_BASE_ADDR;
> +		usdhc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
> +		usdhc_cfg.max_bus_width = 4;
> +		return fsl_esdhc_initialize(bis, &usdhc_cfg);
> +	case GW5904:
> +		/* usdhc3: 8bit eMMC */
> +		SETUP_IOMUX_PADS(gw5904_emmc_pads);
> +		usdhc_cfg.esdhc_base = USDHC3_BASE_ADDR;
> +		usdhc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
> +		usdhc_cfg.max_bus_width = 8;
> +		ret = fsl_esdhc_initialize(bis, &usdhc_cfg);
> +		if (ret)
> +			printf("failed registering emmc usdhc3\n");

Why do you add here a printf and in the previous case not ? The printf()
does not help a lot, the error is already forwarded to the caller.

> +		return 0;
> +	default:
> +		/* doesn't have MMC */
> +		return -1;
> +	}
>  }
>  
>  int board_mmc_getcd(struct mmc *mmc)
>  {
> +	struct ventana_board_info ventana_info;
> +	struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
> +	int board = read_eeprom(CONFIG_I2C_GSC, &ventana_info);
> +	int gpio = gpio_cfg[board].mmc_cd;
> +
>  	/* Card Detect */
> -	gpio_request(GP_SD3_CD, "sd_cd");
> -	gpio_direction_input(GP_SD3_CD);
> -	return !gpio_get_value(GP_SD3_CD);
> +	switch (board) {
> +	case GW5904:
> +		/* emmc is always present */
> +		if (cfg->esdhc_base == USDHC3_BASE_ADDR)
> +			return 1;
> +		break;
> +	}
> +
> +	if (gpio) {
> +		gpio_request(gpio, "sd_cd");
> +		gpio_direction_input(gpio);
> +		debug("%s: gpio%d=%d\n", __func__, gpio, gpio_get_value(gpio));
> +		return !gpio_get_value(gpio);

Even if in u-boot is harmless (and the issue is already present in
gw_ventana), a second gpio_request() could be in future raise an error
if gpio_free() was not called. Currently, I agree, there is no error.

> +	}
> +
> +	return -1;
>  }
> +
>  #endif /* CONFIG_FSL_ESDHC */
> diff --git a/board/gateworks/gw_ventana/common.h b/board/gateworks/gw_ventana/common.h
> index 18909a0..3eb4c59 100644
> --- a/board/gateworks/gw_ventana/common.h
> +++ b/board/gateworks/gw_ventana/common.h
> @@ -13,7 +13,6 @@
>  
>  /* GPIO's common to all baseboards */
>  #define GP_PHY_RST	IMX_GPIO_NR(1, 30)
> -#define GP_SD3_CD	IMX_GPIO_NR(7, 0)
>  #define GP_RS232_EN	IMX_GPIO_NR(2, 11)
>  #define GP_MSATA_SEL	IMX_GPIO_NR(2, 8)
>  
> @@ -79,6 +78,7 @@ struct ventana {
>  	int rs232_en;
>  	int otgpwr_en;
>  	int vsel_pin;
> +	int mmc_cd;
>  	/* various features */
>  	bool usd_vsel;
>  };
> diff --git a/board/gateworks/gw_ventana/eeprom.c b/board/gateworks/gw_ventana/eeprom.c
> index 1382e5d..9a1033a 100644
> --- a/board/gateworks/gw_ventana/eeprom.c
> +++ b/board/gateworks/gw_ventana/eeprom.c
> @@ -64,6 +64,7 @@ read_eeprom(int bus, struct ventana_board_info *info)
>  	if (strncasecmp((const char *)info->model, "GW5400-A", 8) == 0)
>  		baseboard = '0';
>  
> +	type = GW_UNKNOWN;
>  	switch (baseboard) {
>  	case '0': /* original GW5400-A prototype */
>  		type = GW54proto;
> @@ -91,10 +92,10 @@ read_eeprom(int bus, struct ventana_board_info *info)
>  			type = GW553x;
>  			break;
>  		}
> -		/* fall through */
> -	default:
> -		printf("EEPROM: Unknown model in EEPROM: %s\n", info->model);
> -		type = GW_UNKNOWN;
> +		break;
> +	case '9':
> +		if (info->model[4] == '0' && info->model[5] == '4')
> +			type = GW5904;
>  		break;
>  	}
>  	return type;
> diff --git a/board/gateworks/gw_ventana/gw_ventana.c b/board/gateworks/gw_ventana/gw_ventana.c
> index 3f9d2f7..0768799 100644
> --- a/board/gateworks/gw_ventana/gw_ventana.c
> +++ b/board/gateworks/gw_ventana/gw_ventana.c
> @@ -132,8 +132,9 @@ static void setup_iomux_enet(int gpio)
>  	/* toggle PHY_RST# */
>  	gpio_request(gpio, "phy_rst#");
>  	gpio_direction_output(gpio, 0);
> -	mdelay(2);
> +	mdelay(10);
>  	gpio_set_value(gpio, 1);
> +	mdelay(100);
>  }
>  
>  #ifdef CONFIG_USB_EHCI_MX6
> @@ -232,6 +233,38 @@ int board_phy_config(struct phy_device *phydev)
>  	return 0;
>  }
>  
> +#ifdef CONFIG_MV88E61XX_SWITCH
> +int mv88e61xx_hw_reset(struct phy_device *phydev)
> +{
> +	struct mii_dev *bus = phydev->bus;
> +
> +	/* GPIO[0] output, CLK125 */
> +	debug("enabling RGMII_REFCLK\n");
> +	bus->write(bus, 0x1c /*MV_GLOBAL2*/, 0,
> +		   0x1a /*MV_SCRATCH_MISC*/,
> +		   (1 << 15) | (0x62 /*MV_GPIO_DIR*/ << 8) | 0xfe);
> +	bus->write(bus, 0x1c /*MV_GLOBAL2*/, 0,
> +		   0x1a /*MV_SCRATCH_MISC*/,
> +		   (1 << 15) | (0x68 /*MV_GPIO01_CNTL*/ << 8) | 7);
> +
> +	/* RGMII delay - Physical Control register bit[15:14] */
> +	debug("setting port%d RGMII rx/tx delay\n", CONFIG_MV88E61XX_CPU_PORT);
> +	/* forced 1000mbps full-duplex link */
> +	bus->write(bus, 0x10 + CONFIG_MV88E61XX_CPU_PORT, 0, 1, 0xc0fe);
> +	phydev->autoneg = AUTONEG_DISABLE;
> +	phydev->speed = SPEED_1000;
> +	phydev->duplex = DUPLEX_FULL;
> +
> +	/* LED configuration: 7:4-green (8=Activity)  3:0 amber (9=10Link) */
> +	bus->write(bus, 0x10, 0, 0x16, 0x8089);
> +	bus->write(bus, 0x11, 0, 0x16, 0x8089);
> +	bus->write(bus, 0x12, 0, 0x16, 0x8089);
> +	bus->write(bus, 0x13, 0, 0x16, 0x8089);
> +
> +	return 0;
> +}
> +#endif // CONFIG_MV88E61XX_SWITCH
> +
>  int board_eth_init(bd_t *bis)
>  {
>  #ifdef CONFIG_FEC_MXC
> diff --git a/board/gateworks/gw_ventana/gw_ventana_spl.c b/board/gateworks/gw_ventana/gw_ventana_spl.c
> index 8cc2a57..136b5fc 100644
> --- a/board/gateworks/gw_ventana/gw_ventana_spl.c
> +++ b/board/gateworks/gw_ventana/gw_ventana_spl.c
> @@ -608,6 +608,20 @@ void board_init_f(ulong dummy)
>  	memset(__bss_start, 0, __bss_end - __bss_start);
>  }
>  
> +void board_boot_order(u32 *spl_boot_list)
> +{
> +	spl_boot_list[0] = spl_boot_device();
> +	switch (spl_boot_list[0]) {
> +	case BOOT_DEVICE_NAND:
> +		spl_boot_list[1] = BOOT_DEVICE_MMC1;
> +		spl_boot_list[2] = BOOT_DEVICE_UART;
> +		break;
> +	case BOOT_DEVICE_MMC1:
> +		spl_boot_list[1] = BOOT_DEVICE_UART;
> +		break;
> +	}
> +}
> +
>  /* called from board_init_r after gd setup if CONFIG_SPL_BOARD_INIT defined */
>  /* its our chance to print info about boot device */
>  void spl_board_init(void)
> diff --git a/board/gateworks/gw_ventana/ventana_eeprom.h b/board/gateworks/gw_ventana/ventana_eeprom.h
> index 9ffad58..bacaf5a 100644
> --- a/board/gateworks/gw_ventana/ventana_eeprom.h
> +++ b/board/gateworks/gw_ventana/ventana_eeprom.h
> @@ -112,6 +112,7 @@ enum {
>  	GW551x,
>  	GW552x,
>  	GW553x,
> +	GW5904,
>  	GW_UNKNOWN,
>  	GW_BADCRC,
>  };
> diff --git a/configs/gwventana_gw5904_defconfig b/configs/gwventana_gw5904_defconfig
> new file mode 100644
> index 0000000..2a95763
> --- /dev/null
> +++ b/configs/gwventana_gw5904_defconfig
> @@ -0,0 +1,68 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_MX6=y
> +CONFIG_SPL_GPIO_SUPPORT=y
> +CONFIG_SPL_LIBCOMMON_SUPPORT=y
> +CONFIG_SPL_LIBGENERIC_SUPPORT=y
> +CONFIG_TARGET_GW_VENTANA=y
> +CONFIG_SPL_I2C_SUPPORT=y
> +CONFIG_SPL_MMC_SUPPORT=y
> +CONFIG_SPL_POWER_SUPPORT=y
> +CONFIG_SPL_SERIAL_SUPPORT=y
> +CONFIG_SPL_WATCHDOG_SUPPORT=y
> +CONFIG_VIDEO=y
> +CONFIG_SPL_STACK_R_ADDR=0x18000000
> +CONFIG_FIT=y
> +CONFIG_FIT_VERBOSE=y
> +CONFIG_OF_BOARD_SETUP=y
> +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/imx-common/spl_sd.cfg,MX6QDL"
> +CONFIG_BOOTDELAY=3
> +# CONFIG_SYS_STDIO_DEREGISTER is not set
> +# CONFIG_DISPLAY_BOARDINFO is not set
> +CONFIG_BOARD_EARLY_INIT_F=y
> +CONFIG_SPL=y
> +CONFIG_SPL_STACK_R=y
> +CONFIG_SPL_DMA_SUPPORT=y
> +CONFIG_SPL_OS_BOOT=y
> +CONFIG_HUSH_PARSER=y
> +CONFIG_SYS_PROMPT="Ventana > "
> +CONFIG_CMD_BOOTZ=y
> +# CONFIG_CMD_IMLS is not set
> +# CONFIG_CMD_FLASH is not set
> +CONFIG_CMD_MMC=y
> +CONFIG_CMD_I2C=y
> +CONFIG_CMD_USB=y
> +CONFIG_CMD_USB_MASS_STORAGE=y
> +CONFIG_CMD_GPIO=y
> +CONFIG_CMD_DHCP=y
> +CONFIG_CMD_MII=y
> +CONFIG_CMD_PING=y
> +CONFIG_CMD_CACHE=y
> +CONFIG_CMD_TIME=y
> +CONFIG_CMD_EXT2=y
> +CONFIG_CMD_EXT4=y
> +CONFIG_CMD_EXT4_WRITE=y
> +CONFIG_CMD_FAT=y
> +CONFIG_CMD_FS_GENERIC=y
> +CONFIG_CMD_UBI=y
> +CONFIG_DM=y
> +CONFIG_NETDEVICES=y
> +CONFIG_E1000=y
> +CONFIG_PCI=y
> +CONFIG_DM_SERIAL=y
> +CONFIG_USB=y
> +CONFIG_USB_STORAGE=y
> +CONFIG_USB_KEYBOARD=y
> +CONFIG_USB_GADGET=y
> +CONFIG_CI_UDC=y
> +CONFIG_USB_GADGET_DOWNLOAD=y
> +CONFIG_G_DNL_MANUFACTURER="Gateworks"
> +CONFIG_G_DNL_VENDOR_NUM=0x0525
> +CONFIG_G_DNL_PRODUCT_NUM=0xa4a5
> +# CONFIG_VIDEO_SW_CURSOR is not set
> +CONFIG_OF_LIBFDT=y
> +CONFIG_FDT_FIXUP_PARTITIONS=y
> +CONFIG_MV88E61XX_SWITCH=y
> +CONFIG_MV88E61XX_CPU_PORT=5
> +CONFIG_MV88E61XX_PHY_PORTS=0xf
> +CONFIG_MV88E61XX_FIXED_PORTS=0x0
> +
> 

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list