Skip to contentSkip to conversation

mx6cuboxi: Add HDMI output support

PATCH Superseded Fabio Estevam 6 participants 23 messages Apr 28, 2015 – Apr 30, 2015

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/4 mx6cuboxi: Add HDMI output support

From: Fabio Estevam <[email protected]>

Add HDMI output using PLL5 as the source for the IPU DI clocks, and accurate VESA timings.

These settings are based on the patch from Soeren Moch <[email protected]> submitted for the tbs2910 mx6 based board.

It allows the display to work properly at 1024x768 at 60.

This should make the hdmi output signal compatible with most if not all modern displays.

---
 board/solidrun/mx6cuboxi/mx6cuboxi.c | 101 ++++++++++++++++++++++++++++++++++-
 include/configs/mx6cuboxi.h          |  18 ++++++-
 2 files changed, 117 insertions(+), 2 deletions(-)
board/solidrun/mx6cuboxi/mx6cuboxi.c +100 -1
index d3a32c1..eab92f1 100644
@@ -18,9 +18,11 @@
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/iomux.h>
 #include <asm/arch/mx6-pins.h>
+#include <asm/arch/mxc_hdmi.h>
 #include <asm/errno.h>
 #include <asm/gpio.h>
 #include <asm/imx-common/iomux-v3.h>
+#include <asm/imx-common/video.h>
 #include <mmc.h>
 #include <fsl_esdhc.h>
 #include <miiphy.h>
@@ -159,10 +161,107 @@ int board_eth_init(bd_t *bis)
 	return cpu_eth_init(bis);
 }
 
+#ifdef CONFIG_VIDEO_IPUV3
+static void do_enable_hdmi(struct display_info_t const *dev)
+{
+	imx_enable_hdmi_phy();
+}
+
+struct display_info_t const displays[] = {
+	{
+		.bus	= -1,
+		.addr	= 0,
+		.pixfmt	= IPU_PIX_FMT_RGB24,
+		.detect	= detect_hdmi,
+		.enable	= do_enable_hdmi,
+		.mode	= {
+			.name           = "HDMI",
+			/* 1024x768 at 60Hz (VESA)*/
+			.refresh        = 60,
+			.xres           = 1024,
+			.yres           = 768,
+			.pixclock       = 15384,
+			.left_margin    = 160,
+			.right_margin   = 24,
+			.upper_margin   = 29,
+			.lower_margin   = 3,
+			.hsync_len      = 136,
+			.vsync_len      = 6,
+			.sync           = FB_SYNC_EXT,
+			.vmode          = FB_VMODE_NONINTERLACED
+		}
+	}
+};
+
+size_t display_count = ARRAY_SIZE(displays);
+
+static int setup_display(void)
+{
+	struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
+	int reg;
+	int timeout = 100000;
+
+	enable_ipu_clock();
+	imx_setup_hdmi();
+
+	/* set video pll to 455MHz (24MHz * (37+11/12) / 2) */
+	setbits_le32(&ccm->analog_pll_video, BM_ANADIG_PLL_VIDEO_POWERDOWN);
+
+	reg = readl(&ccm->analog_pll_video);
+	reg &= ~BM_ANADIG_PLL_VIDEO_DIV_SELECT;
+	reg |= BF_ANADIG_PLL_VIDEO_DIV_SELECT(37);
+	reg &= ~BM_ANADIG_PLL_VIDEO_POST_DIV_SELECT;
+	reg |= BF_ANADIG_PLL_VIDEO_POST_DIV_SELECT(1);
+	writel(reg, &ccm->analog_pll_video);
+
+	writel(BF_ANADIG_PLL_VIDEO_NUM_A(11), &ccm->analog_pll_video_num);
+	writel(BF_ANADIG_PLL_VIDEO_DENOM_B(12), &ccm->analog_pll_video_denom);
+
+	reg &= ~BM_ANADIG_PLL_VIDEO_POWERDOWN;
+	writel(reg, &ccm->analog_pll_video);
+
+	while (timeout--)
+		if (readl(&ccm->analog_pll_video) & BM_ANADIG_PLL_VIDEO_LOCK)
+			break;
+	if (timeout < 0) {
+		printf("Warning: video pll lock timeout!\n");
+		return -ETIMEDOUT;
+	}
+
+	reg = readl(&ccm->analog_pll_video);
+	reg |= BM_ANADIG_PLL_VIDEO_ENABLE;
+	reg &= ~BM_ANADIG_PLL_VIDEO_BYPASS;
+	writel(reg, &ccm->analog_pll_video);
+
+	/* gate ipu1_di0_clk */
+	clrbits_le32(&ccm->CCGR3, MXC_CCM_CCGR3_LDB_DI0_MASK);
+
+	/* select video_pll clock / 7  for ipu1_di0_clk -> 65MHz pixclock */
+	reg = readl(&ccm->chsccdr);
+	reg &= ~(MXC_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL_MASK |
+		 MXC_CCM_CHSCCDR_IPU1_DI0_PODF_MASK |
+		 MXC_CCM_CHSCCDR_IPU1_DI0_CLK_SEL_MASK);
+	reg |= (2 << MXC_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL_OFFSET) |
+	       (6 << MXC_CCM_CHSCCDR_IPU1_DI0_PODF_OFFSET) |
+	       (0 << MXC_CCM_CHSCCDR_IPU1_DI0_CLK_SEL_OFFSET);
+	writel(reg, &ccm->chsccdr);
+
+	/* enable ipu1_di0_clk */
+	setbits_le32(&ccm->CCGR3, MXC_CCM_CCGR3_LDB_DI0_MASK);
+
+	return 0;
+}
+#endif /* CONFIG_VIDEO_IPUV3 */
+
 int board_early_init_f(void)
 {
+	int ret = 0;
 	setup_iomux_uart();
-	return 0;
+
+#ifdef CONFIG_VIDEO_IPUV3
+	ret = setup_display();
+#endif
+	return ret;
 }
 
 int board_init(void)
include/configs/mx6cuboxi.h +17 -1
index b569f34..207a2a6 100644
@@ -27,7 +27,7 @@
 #define CONFIG_IMX6_THERMAL
 #define CONFIG_SYS_GENERIC_BOARD
 
-#define CONFIG_SYS_MALLOC_LEN		(2 * SZ_1M)
+#define CONFIG_SYS_MALLOC_LEN		(10 * SZ_1M)
 #define CONFIG_BOARD_EARLY_INIT_F
 #define CONFIG_BOARD_LATE_INIT
 #define CONFIG_MXC_GPIO
@@ -66,6 +66,22 @@
 #define CONFIG_CONS_INDEX		1
 #define CONFIG_BAUDRATE			115200
 
+/* Framebuffer */
+#define CONFIG_VIDEO
+#define CONFIG_VIDEO_IPUV3
+#define CONFIG_IPUV3_CLK		260000000
+#define CONFIG_CFB_CONSOLE
+#define CONFIG_VGA_AS_SINGLE_DEVICE
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV
+#define CONFIG_VIDEO_BMP_RLE8
+#define CONFIG_SPLASH_SCREEN
+#define CONFIG_SPLASH_SCREEN_ALIGN
+#define CONFIG_BMP_16BPP
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_VIDEO_BMP_LOGO
+#define CONFIG_IMX_HDMI
+#define CONFIG_IMX_VIDEO_SKIP
+
 #define CONFIG_SYS_NO_FLASH
 
 /* Command definition */
Signature · 1 line
1.9.1
#1 lore raw

PATCH 2/4 mx6cuboxi: Add USB host support

From: Fabio Estevam <[email protected]>

Enable USB Host1 port.

---
 board/solidrun/mx6cuboxi/mx6cuboxi.c | 26 ++++++++++++++++++++++++++
 include/configs/mx6cuboxi.h          | 12 ++++++++++++
 2 files changed, 38 insertions(+)
board/solidrun/mx6cuboxi/mx6cuboxi.c +26 -0
index eab92f1..9aa0259 100644
@@ -31,6 +31,8 @@
 #include <asm/io.h>
 #include <asm/arch/sys_proto.h>
 #include <spl.h>
+#include <usb.h>
+#include <usb/ehci-fsl.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -52,6 +54,7 @@ DECLARE_GLOBAL_DATA_PTR;
 	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST)
 
 #define ETH_PHY_RESET	IMX_GPIO_NR(4, 15)
+#define USB_H1_VBUS	IMX_GPIO_NR(1, 0)
 
 int dram_init(void)
 {
@@ -79,6 +82,10 @@ static iomux_v3_cfg_t const hb_cbi_sense[] = {
 	IOMUX_PADS(PAD_EIM_DA4__GPIO3_IO04   | MUX_PAD_CTRL(UART_PAD_CTRL)),
 };
 
+static iomux_v3_cfg_t const usb_pads[] = {
+	IOMUX_PADS(PAD_GPIO_0__GPIO1_IO00 | MUX_PAD_CTRL(NO_PAD_CTRL)),
+};
+
 static void setup_iomux_uart(void)
 {
 	SETUP_IOMUX_PADS(uart1_pads);
@@ -253,6 +260,21 @@ static int setup_display(void)
 }
 #endif /* CONFIG_VIDEO_IPUV3 */
 
+#ifdef CONFIG_USB_EHCI_MX6
+static void setup_usb(void)
+{
+	SETUP_IOMUX_PADS(usb_pads);
+}
+
+int board_ehci_hcd_init(int port)
+{
+	if (port == 1)
+		gpio_direction_output(USB_H1_VBUS, 1);
+
+	return 0;
+}
+#endif
+
 int board_early_init_f(void)
 {
 	int ret = 0;
@@ -261,6 +283,10 @@ int board_early_init_f(void)
 #ifdef CONFIG_VIDEO_IPUV3
 	ret = setup_display();
 #endif
+
+#ifdef CONFIG_USB_EHCI_MX6
+	setup_usb();
+#endif
 	return ret;
 }
 
include/configs/mx6cuboxi.h +12 -0
index 207a2a6..e7a18c6 100644
@@ -82,6 +82,18 @@
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
 
+/* USB */
+#define CONFIG_CMD_USB
+#define CONFIG_USB_EHCI
+#define CONFIG_USB_EHCI_MX6
+#define CONFIG_USB_STORAGE
+#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
+#define CONFIG_USB_HOST_ETHER
+#define CONFIG_USB_ETHER_ASIX
+#define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI | PORT_PTS_PTW)
+#define CONFIG_MXC_USB_FLAGS		0
+#define CONFIG_USB_MAX_CONTROLLER_COUNT	2
+
 #define CONFIG_SYS_NO_FLASH
 
 /* Command definition */
Signature · 1 line
1.9.1
#2 lore raw

PATCH 2/4 mx6cuboxi: Add USB host support

Quoted 6 lines · Fabio Estevam

From: Fabio Estevam <[email protected]>

Enable USB Host1 port.

[snip]

Quoted 9 lines
include/configs/mx6cuboxi.h +1 -0
index 207a2a6..e7a18c6 100644
@@ -82,6 +82,18 @@
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
 
+/* USB */

include/configs/mx6cuboxi.h line 95

Quoted 10 lines
include/configs/mx6cuboxi.h +10 -0
+#define CONFIG_CMD_USB
+#define CONFIG_USB_EHCI
+#define CONFIG_USB_EHCI_MX6
+#define CONFIG_USB_STORAGE
+#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
+#define CONFIG_USB_HOST_ETHER
+#define CONFIG_USB_ETHER_ASIX
+#define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI | PORT_PTS_PTW)
+#define CONFIG_MXC_USB_FLAGS		0
+#define CONFIG_USB_MAX_CONTROLLER_COUNT	2

Since we have FEC do we really need to add ASIX as well? Also, what devices did you test this with for USB? I grabbed a Sandisk USB drive and on the i2eX I have, the bottom USB port doesn't see it and on the top I get:
scanning bus 1 for devices... failed to set default configuration len 0, status 80000000

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150428/e355abe5/attachment.sig>
#3 lore raw

PATCH 2/4 mx6cuboxi: Add USB host support

Hi Tom,

Quoted 1 line · Tom Rini

Since we have FEC do we really need to add ASIX as well? Also, what

I can remove it if needed. Just kept the same as done in the Solidrun's U-boot.

Quoted 5 lines

devices did you test this with for USB? I grabbed a Sandisk USB drive and on the i2eX I have, the bottom USB port doesn't see it and on the top I get:
scanning bus 1 for devices... failed to set default configuration len 0, status 80000000

I tested with USB pen drive and USB keyboard and it could recognize them.

Only the bottom top works for me and the same is seen on Solidrun's U-boot.

Regards,

Fabio Estevam

#4 lore raw

PATCH 2/4 mx6cuboxi: Add USB host support

Quoted 14 lines · Fabio Estevam

Hi Tom,

Quoted 1 line · Tom Rini

Since we have FEC do we really need to add ASIX as well? Also, what

I can remove it if needed. Just kept the same as done in the Solidrun's U-boot.

Quoted 5 lines

devices did you test this with for USB? I grabbed a Sandisk USB drive and on the i2eX I have, the bottom USB port doesn't see it and on the top I get:
scanning bus 1 for devices... failed to set default configuration len 0, status 80000000

Quoted 3 lines

I tested with USB pen drive and USB keyboard and it could recognize them.

Only the bottom top works for me and the same is seen on Solidrun's U-boot.

Ops, I mean "Only the bottom USB port works for me".

#5 lore raw

PATCH 2/4 mx6cuboxi: Add USB host support

Quoted 15 lines · Fabio Estevam
Quoted 14 lines · Fabio Estevam

Hi Tom,

Quoted 1 line · Tom Rini

Since we have FEC do we really need to add ASIX as well? Also, what

I can remove it if needed. Just kept the same as done in the Solidrun's U-boot.

Quoted 5 lines

devices did you test this with for USB? I grabbed a Sandisk USB drive and on the i2eX I have, the bottom USB port doesn't see it and on the top I get:
scanning bus 1 for devices... failed to set default configuration len 0, status 80000000

Quoted 5 lines
Quoted 3 lines

I tested with USB pen drive and USB keyboard and it could recognize them.

Only the bottom top works for me and the same is seen on Solidrun's U-boot.

Ops, I mean "Only the bottom USB port works for me".

How many USB pen drives do you have handy? I confirmed that my keyboards don't work on my Allwinner board (A20 OLinuXino Lime2) but the pen drive does (scanned, loaded and crc32'd a file). I'll try and do the same test on my Sabrelite shortly.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150428/1cfdf2c4/attachment.sig>
#6 lore raw

PATCH 2/4 mx6cuboxi: Add USB host support

Quoted 23 lines · Tom Rini
Quoted 1 line · Fabio Estevam

On Tue, Apr 28, 2015 at 12:11 PM, Fabio Estevam <[email protected]>

Quoted 7 lines · wrote:
Quoted 7 lines

Hi Tom,

Quoted 1 line · Tom Rini

Since we have FEC do we really need to add ASIX as well? Also, what

I can remove it if needed. Just kept the same as done in the

Solidrun's U-boot.

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

devices did you test this with for USB? I grabbed a Sandisk USB drive and on the i2eX I have, the bottom USB port doesn't see it and on the top I get:
scanning bus 1 for devices... failed to set default configuration len

0,

Quoted 3 lines
Quoted 3 lines
Quoted 1 line

status 80000000

I tested with USB pen drive and USB keyboard and it could recognize

them.

Quoted 2 lines
Quoted 2 lines

Only the bottom top works for me and the same is seen on Solidrun's

Quoted 9 lines

U-boot.

Quoted 2 lines

Ops, I mean "Only the bottom USB port works for me".

How many USB pen drives do you have handy? I confirmed that my keyboards don't work on my Allwinner board (A20 OLinuXino Lime2) but the pen drive does (scanned, loaded and crc32'd a file). I'll try and do the same test on my Sabrelite shortly.

Is CONFIG_SYS_USB_EVENT_POLL defined in the config? I found that without that usb input was not reliable. Even with it enabled some wireless keyboards behaved poorly.

-Jon

Quoted 4 lines

--
Tom

#7 lore raw

PATCH 2/4 mx6cuboxi: Add USB host support

On Tue, Apr 28, 2015 at 1:45 PM, Jon Nettleton <[email protected]> wrote:
...

Quoted 3 lines

Is CONFIG_SYS_USB_EVENT_POLL defined in the config? I found that without that usb input was not reliable. Even with it enabled some wireless keyboards behaved poorly.

For the keyboard it may indeed help but what about the USB pendrive?

Signature · 3 lines
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750
#8 lore raw

PATCH 2/4 mx6cuboxi: Add USB host support

In reply to Jon Nettleton
Quoted 29 lines · Jon Nettleton
Quoted 27 lines · Tom Rini
Quoted 1 line · Fabio Estevam

On Tue, Apr 28, 2015 at 12:11 PM, Fabio Estevam <[email protected]>

Quoted 7 lines · wrote:
Quoted 7 lines

Hi Tom,

Quoted 1 line · Tom Rini

Since we have FEC do we really need to add ASIX as well? Also, what

I can remove it if needed. Just kept the same as done in the

Solidrun's U-boot.

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

devices did you test this with for USB? I grabbed a Sandisk USB drive and on the i2eX I have, the bottom USB port doesn't see it and on the top I get:
scanning bus 1 for devices... failed to set default configuration len

0,

Quoted 3 lines
Quoted 3 lines
Quoted 1 line

status 80000000

I tested with USB pen drive and USB keyboard and it could recognize

them.

Quoted 2 lines
Quoted 2 lines

Only the bottom top works for me and the same is seen on Solidrun's

U-boot.

Quoted 2 lines

Ops, I mean "Only the bottom USB port works for me".

Quoted 8 lines
Quoted 4 lines

How many USB pen drives do you have handy? I confirmed that my keyboards don't work on my Allwinner board (A20 OLinuXino Lime2) but the pen drive does (scanned, loaded and crc32'd a file). I'll try and do the same test on my Sabrelite shortly.

Is CONFIG_SYS_USB_EVENT_POLL defined in the config? I found that without that usb input was not reliable. Even with it enabled some wireless keyboards behaved poorly.

Just checked and yes it's set. I think I also had these not working with the Solid Run tree either so I'll just call 'em both weird.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150428/8c4b6fef/attachment.sig>
#9 lore raw

PATCH 2/4 mx6cuboxi: Add USB host support

Quoted 35 lines · Tom Rini
Quoted 34 lines · Jon Nettleton
Quoted 31 lines · Tom Rini
Quoted 1 line · Fabio Estevam

On Tue, Apr 28, 2015 at 12:11 PM, Fabio Estevam <[email protected]>

Quoted 7 lines · wrote:
Quoted 7 lines

Hi Tom,

Quoted 1 line · Tom Rini

Since we have FEC do we really need to add ASIX as well? Also, what

I can remove it if needed. Just kept the same as done in the

Solidrun's U-boot.

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

devices did you test this with for USB? I grabbed a Sandisk USB drive and on the i2eX I have, the bottom USB port doesn't see it and on the top I get:
scanning bus 1 for devices... failed to set default configuration len

0,

Quoted 3 lines
Quoted 3 lines
Quoted 1 line

status 80000000

I tested with USB pen drive and USB keyboard and it could recognize

them.

Quoted 2 lines
Quoted 2 lines

Only the bottom top works for me and the same is seen on Solidrun's

U-boot.

Quoted 2 lines

Ops, I mean "Only the bottom USB port works for me".

How many USB pen drives do you have handy? I confirmed that my keyboards don't work on my Allwinner board (A20 OLinuXino Lime2) but the pen drive does (scanned, loaded and crc32'd a file). I'll try and do the same test on my Sabrelite shortly.

Quoted 6 lines
Quoted 3 lines

Is CONFIG_SYS_USB_EVENT_POLL defined in the config? I found that without that usb input was not reliable. Even with it enabled some wireless keyboards behaved poorly.

Just checked and yes it's set. I think I also had these not working with the Solid Run tree either so I'll just call 'em both weird.

In this case I think there is no reason to not merge this as is and fix/improve it later.

Signature · 3 lines
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750
#10 lore raw

PATCH 2/4 mx6cuboxi: Add USB host support

In reply to Tom Rini
Quoted 6 lines · Tom Rini
Quoted 3 lines

Is CONFIG_SYS_USB_EVENT_POLL defined in the config? I found that without that usb input was not reliable. Even with it enabled some wireless keyboards behaved poorly.

Just checked and yes it's set. I think I also had these not working with the Solid Run tree either so I'll just call 'em both weird.

Does it improve if you remove CONFIG_SYS_USB_EVENT_POLL and use

#define CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP , instead?

While at it, please also try to add:

#define CONFIG_EHCI_HCD_INIT_AFTER_RESET

#11 lore raw

PATCH 2/4 mx6cuboxi: Add USB host support

In reply to Tom Rini
Quoted 18 lines · Tom Rini
Quoted 17 lines · Fabio Estevam
Quoted 16 lines · Fabio Estevam

Hi Tom,

Quoted 1 line · Tom Rini

Since we have FEC do we really need to add ASIX as well? Also, what

I can remove it if needed. Just kept the same as done in the Solidrun's U-boot.

Quoted 5 lines

devices did you test this with for USB? I grabbed a Sandisk USB drive and on the i2eX I have, the bottom USB port doesn't see it and on the top I get:
scanning bus 1 for devices... failed to set default configuration len 0, status 80000000

I tested with USB pen drive and USB keyboard and it could recognize them.

Quoted 8 lines
Quoted 3 lines
Quoted 1 line

Only the bottom top works for me and the same is seen on Solidrun's U-boot.

Ops, I mean "Only the bottom USB port works for me".

How many USB pen drives do you have handy? I confirmed that my keyboards don't work on my Allwinner board (A20 OLinuXino Lime2) but the pen drive does (scanned, loaded and crc32'd a file). I'll try and do the same test on my Sabrelite shortly.

Same drive is good in my Sabrelite btw.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150428/03ecbb7b/attachment.sig>
#12 lore raw

PATCH 3/4 mx6cuboxi: Allow HDMI and USB keyboard to be stdout/stdin

In reply to Fabio Estevam

From: Fabio Estevam <[email protected]>

There are users of Cuboxi and Hummingboard that use these boards without connecting them to a USB/serial adapter.

Allow such usage by allowing the HDMI port to act as stdout and USB keyboard as stdin.

The serial console still also works as stdin/stdout.

---
 include/configs/mx6cuboxi.h | 7 +++++++
 1 file changed, 7 insertions(+)
include/configs/mx6cuboxi.h +7 -0
index e7a18c6..38c358e 100644
@@ -81,6 +81,7 @@
 #define CONFIG_VIDEO_BMP_LOGO
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
+#define CONFIG_CONSOLE_MUX
 
 /* USB */
 #define CONFIG_CMD_USB
@@ -93,6 +94,9 @@
 #define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI | PORT_PTS_PTW)
 #define CONFIG_MXC_USB_FLAGS		0
 #define CONFIG_USB_MAX_CONTROLLER_COUNT	2
+#define CONFIG_USB_KEYBOARD
+#define CONFIG_SYS_USB_EVENT_POLL
+#define CONFIG_PREBOOT			"usb start"
 
 #define CONFIG_SYS_NO_FLASH
 
@@ -115,6 +119,9 @@
 
 #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 #define CONFIG_EXTRA_ENV_SETTINGS \
+	"stdin=serial,usbkbd\0" \
+	"stdout=serial,vga\0" \
+	"stderr=serial,vga\0" \
 	"script=boot.scr\0" \
 	"image=zImage\0" \
 	"fdtfile=undefined\0" \
Signature · 1 line
1.9.1
#13 lore raw

PATCH 3/4 mx6cuboxi: Allow HDMI and USB keyboard to be stdout/stdin

Quoted 5 lines · Fabio Estevam

From: Fabio Estevam <[email protected]>

There are users of Cuboxi and Hummingboard that use these boards without connecting them to a USB/serial adapter.

Quoted 7 lines

Allow such usage by allowing the HDMI port to act as stdout and USB keyboard as stdin.

The serial console still also works as stdin/stdout.

This all looks right so:

But my keyboards (which iirc also caused problems on Allwinner) don't work but I don't think that's a Hummingboard/mx6 problem.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150428/1debcfb3/attachment.sig>
#14 lore raw

PATCH 4/4 logos: Add Solidrun's logo

In reply to Fabio Estevam

From: Fabio Estevam <[email protected]>

Let Solidrun's logo appear on Cuboxi and Hummingboard by default.

---
 tools/logos/solidrun.bmp | Bin 0 -> 5558 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 tools/logos/solidrun.bmp
tools/logos/solidrun.bmp new file binary +0 -0
new file mode 100644
index 0000000000000000000000000000000000000000..93db1f8f1649b1c2d81751b4403a9534b68d4167
GIT binary patch

zcmeHK=~ool6~F8vXhV~NDFuaA0yaS!gMg at j*ai>~n*o(35h9{-n#IS^(25ISgES%# zR#_BKmasI<PB#N6lXEmPMl<7_OeQ&VP9S#KXR+8mts@DF!Lq%oPJgB-R<}8z3<lR zn50<>SPHcT at W;1W{CVTg3bx?5F(oCvg(pwuAR*xgC at JZO@bKrbdvhbE@<L=OxN z%|m?rEXZW7Fh9QphYr1l+1YuRp4P*uQ=fxQw+QFXorPVyGLiQZrlyv_$tf6)AAbW! zj{Fs6{)2YDfyBhOaR0sz9zULg6DLMd_Dr&4$I5W!Ol(z+qNBpxw!@O{~9{Gv|(y z1pfY&5F9)NuCAq!mi7WSk&XP95ELW_Yik)yPA<X8lh0vdVhX~-Mv-5H*@4bEJ#j% zgE*hU;ls=5=OQdDd=66SBJAB;5B>dmTz><psb3<FuMp#RaO-9p>i!cRJ{(8=c&Mpq zg^|{jEsB+w{H)@($X?SMSTN<gL4>%MR0KMcr3mVGp0mvFC>xUX*^GV<>z_Z8xv zfZ<^++ESpb3T9 at WVjTYl$BqqyNb~^X at h{Z5i#YG2ofl{aaLoXVi^~uiI)JhG4EOdu zczGp3OpFfo4RGK<9gK}FKwH}+xVhcHxLn6PJO#PD9ejPWQSNJqj{Xb!{1kkA9w7dI zgI at m(4jycQ+S)Pn^)<%t1(2()=yMp{-S5DeGcTdEbP(kh5#RTySBOif;Qqnt6c!0 z@CN4o70Uk^^Y}-MsUCUGxaURGzlnSJ7UTC{IC}IIVt$5lU%<V4V{j>_9(^sr)~y5_ z><@y6M<oOXsxjC5P^K5?Y(ioKj8aw)PIe+>4wqK1&rA|I6AsROUonla}f-N1@!wG zJU#2Mwq{{d=YaufieCE>dzp?arFHisMT!{7dL_Up26wUU!w0Xpu2k(_K1Sf&j0B{ zA~5i<yL;e61UFwMcRU~<Anwtg&G+;^4-wPl!54aKn&mW-Y2@*{D^?yUOT(q-d?+= z=-kbA_D=iV at CiaeBrKTOh<6HaHZwQ+!p#dtx*0rOx7q&QW&h(FbGuD6*Am_RF4;}y zxnC@5G1J^!&6V~1X;>1QSYokQBi1l8eBvrI<z_h5;Ex?RX+{#c>?$y9Mw-=SmN*&X zSobha8Td0Z1=f7Jg3V4u$=>))@NP)vRErzf8EY}i-a8p at HQo(qy}hB*9))lsF6k^Q zVEqA%l$Bl8fV{J_tW0xtgjr?>G>jZR7Pm*^TZ4xK at 0lnt5aTi+TLs5EKPhFVxzE~9 z#M*b#$2T|U>9a&=soyoe7@)e^2{~Q*ycsI8ur;qjRFo+#G5S$Un?f~EtF~&CD&=aM zvlebtzvmnn+Fyw?pvb6JkAWC_T6S8-{F96FvJQCd^EX{grZU;goO9qsziPlA%qZ z$l*eacRZ0G7FXgV2B$tk>Luiwgq#!=(W(+IE=`T9s!mWg(pH%&TCJwfib18SVtF>S z1&jN~H=4HjuB4b<bs%)UJj4TY7k%jSk?INYl*360kuWog5c^~c77av_W^SG0VX4|l ztJ?vjw1?aSfTmUJVsVGxghd@&MTsuhUj{EL6r=mik at 1p*xBh{hX{n54@S=#*-MavN zR7Pot1xs?Fgt84nF;~LJqEyi(sBEQjVAHVy7PvB-7{#L<J9b2Ql;dsM;3H5d6!*=M z(NfhR-Ygb9b<MxSk$8qQFjH4T8tTkBD)u7UEOuSX&rv2_gkb^N>O7kks||8=DGc44 z>7&HN)EF211jwegBNoABA?uzQr<>__fT7M%^&hegAyQ6XM at t#**Gos<}#x=V3{u z8}~6FOjvq0z%mx|k%@jC_SnTGAnuYIstKK$uqYI<D^HUs-Mb=#ax4ZdVqy1qf{-pt zj?()A9Jt(962l_?MODX2a~roSXe<?T-EK_Z;bBj$C(VG>~L%mlYhAb9^kC<Vrt0 zOvF!&sqy5Fwj<qf~B~h<W=&qcqo<1R9e-^_Omr{VI-yWAyxrj$9g7NN1VAL6R+# z$p(ajIYuZ79+n_cg<cX)5lLwWfPw!l8ZH>ENupsv^htjYC>1q$x<R2xnTW=TcU zwM-OOVX1A$ZX8523FGLOF_UR&X_LBg=AK{>w#7~jCLj_nDhkD*B&s-42n=%uUm|w zD at 9RHD!a1cNxePq9BBYsi<5s>p_bxuq_$$vs8o$gYZ)x8tgBP%8+gCc2U9d1y4Z zMwh13>0+2aqQZ$g+qZAWk~JaW*KRAe63V*Ok3oV|Eg at 7N4&klX{mpUFU?CBzI*;JU z^_O3;(pGHOTZx5kq%);GDq8s~R)iTop%IF%d=Cr=6HJ+5%N7TLrP~#z5Gvn^QRpZx zU|vX77oJkWR^HATCFW6LMy>_SA8V!9HGQcx=IeJO!hdz&dgdSF13KkvtpW{iH?@{ z=yaLWGBAv;f+7$k2+b+7mdxD3K95vkTVPCZyq@shQwjv-U0F*5g9eBST7<@q#8 zu6bTRQht!W4%vfuOsQeQAl3+&giWBQ;|y!fQZsXiQ#*J&)4I4tQQa#IyrurOBx zO?wG#{Q6jQHh8=3QvLGIXoxWOO1{n9Wn5sF}jt++3&pj0{0v+{Tx7EjyUHCU?7 zJ2*I;-)BQ-8o!b}t@U3c+^)d>Q+zBrwfNxJ}LVVoj;9$61Uy4s4dUI=q%Fp at Dx zDvt0A#CAIq_dU=3LwqbgD{!!?)e^ig5K^tT)V;~1mQeWVlMq=T(l%VUCp%@+NwwW zz$E%X&lPb|_?U~9uiUTCFW}EN>z(^B8&C7z<7?xxS&rASo84wEUV-40L3{z<d3jq s__?{iI3NG1|KS@3ow2JR<;4EPVZq27VhMLc2-RATHKG252K6!0YcJV@&Et;

literal 0
HcmV?d00001

Signature · 1 line
1.9.1
#15 lore raw

PATCH 4/4 logos: Add Solidrun's logo

Quoted 6 lines · Fabio Estevam

From: Fabio Estevam <[email protected]>

Let Solidrun's logo appear on Cuboxi and Hummingboard by default.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150428/211fca33/attachment.sig>
#16 lore raw

PATCH 1/4 mx6cuboxi: Add HDMI output support

In reply to Fabio Estevam
Quoted 8 lines · Fabio Estevam

From: Fabio Estevam <[email protected]>

Add HDMI output using PLL5 as the source for the IPU DI clocks, and accurate VESA timings.

These settings are based on the patch from Soeren Moch <[email protected]> submitted for the tbs2910 mx6 based board.

Quoted 7 lines

It allows the display to work properly at 1024x768 at 60.

This should make the hdmi output signal compatible with most if not all modern displays.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150428/b106dbd9/attachment.sig>
#17 lore raw

PATCH 1/4 mx6cuboxi: Add HDMI output support

In reply to Fabio Estevam
Quoted 10 lines · Fabio Estevam

Add HDMI output using PLL5 as the source for the IPU DI clocks, and accurate VESA timings.

These settings are based on the patch from Soeren Moch <[email protected]> submitted for the tbs2910 mx6 based board.

It allows the display to work properly at 1024x768 at 60.

This should make the hdmi output signal compatible with most if not all modern displays.

I wasn't able to test this as the HDMI TV I'm using doesn't support this resolution (it is admittedly ~9 years old, the closest resolution it does support is 1280x720 at 60). How complicated would it be to support multiple resolutions?

live well,
vagrant
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150429/e727538e/attachment.sig>

#18 lore raw

PATCH 1/4 mx6cuboxi: Add HDMI output support

Quoted 9 lines · Vagrant Cascadian
Quoted 8 lines · Fabio Estevam

Add HDMI output using PLL5 as the source for the IPU DI clocks, and accurate VESA timings.

These settings are based on the patch from Soeren Moch <[email protected]> submitted for the tbs2910 mx6 based board.

It allows the display to work properly at 1024x768 at 60.

Quoted 7 lines
Quoted 2 lines

This should make the hdmi output signal compatible with most if not all modern displays.

I wasn't able to test this as the HDMI TV I'm using doesn't support this resolution (it is admittedly ~9 years old, the closest resolution it does support is 1280x720 at 60). How complicated would it be to support multiple resolutions?

There's edid support in the sunxi display driver..

Quoted 9 lines

live well,
vagrant

_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Signature · 2 lines
Robert Nelson
https://rcn-ee.com/
#19 lore raw

PATCH 1/4 mx6cuboxi: Add HDMI output support

In reply to Vagrant Cascadian
Quoted 9 lines · Vagrant Cascadian
Quoted 8 lines · Fabio Estevam

Add HDMI output using PLL5 as the source for the IPU DI clocks, and accurate VESA timings.

These settings are based on the patch from Soeren Moch <[email protected]> submitted for the tbs2910 mx6 based board.

It allows the display to work properly at 1024x768 at 60.

Quoted 7 lines
Quoted 2 lines

This should make the hdmi output signal compatible with most if not all modern displays.

I wasn't able to test this as the HDMI TV I'm using doesn't support this resolution (it is admittedly ~9 years old, the closest resolution it does support is 1280x720 at 60). How complicated would it be to support multiple resolutions?

(Sorry about the double post.. gmail..)

There's edid support in the sunxi_display driver:

http://git.denx.de/?p=u-boot.git;a=blob;f=drivers/video/sunxi_display.c;hb=HEAD#l188

Could pull it out as a share it.

Regards,

Signature · 2 lines
Robert Nelson
https://rcn-ee.com/
#20 lore raw

PATCH 1/4 mx6cuboxi: Add HDMI output support

In reply to Vagrant Cascadian

Hi Vagrant,

Quoted 4 lines · Vagrant Cascadian

I wasn't able to test this as the HDMI TV I'm using doesn't support this resolution (it is admittedly ~9 years old, the closest resolution it does support is 1280x720 at 60). How complicated would it be to support multiple resolutions?

Could you try to use these VGA timings to see if your TV can handle it?

        .name           = "HDMI",
        .refresh        = 60,
        .xres           = 640,
        .yres           = 480,
        .pixclock       = 39721,
        .left_margin    = 48,
        .right_margin   = 16,
        .upper_margin   = 33,
        .lower_margin   = 10,
        .hsync_len      = 96,
        .vsync_len      = 2,
        .sync           = 0,
        .vmode          = FB_VMODE_NONINTERLACED

If it works, then you could try 1280x720 manually as well. The IPU clocks will need to be probably changed to reach this resolution.

Currently we are not flexible with the IPU DI timings in U-boot, but we could try to improve it in the future.

Regards,

Fabio Estevam

#21 lore raw

PATCH 1/4 mx6cuboxi: Add HDMI output support

Quoted 9 lines · Fabio Estevam
Quoted 4 lines · Vagrant Cascadian

I wasn't able to test this as the HDMI TV I'm using doesn't support this resolution (it is admittedly ~9 years old, the closest resolution it does support is 1280x720 at 60). How complicated would it be to support multiple resolutions?

Could you try to use these VGA timings to see if your TV can handle it?

Quoted 13 lines
        .name           = "HDMI",
        .refresh        = 60,
        .xres           = 640,
        .yres           = 480,
        .pixclock       = 39721,
        .left_margin    = 48,
        .right_margin   = 16,
        .upper_margin   = 33,
        .lower_margin   = 10,
        .hsync_len      = 96,
        .vsync_len      = 2,
        .sync           = 0,
        .vmode          = FB_VMODE_NONINTERLACED

No luck. The TV does support 640x480 when plugged into my laptop,

I did manage to verify with a display that supported 1024x768 and that worked fine.

live well,
vagrant
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150430/a5376041/attachment.sig>

#22 lore raw

PATCH 1/4 mx6cuboxi: Add HDMI output support

Quoted 4 lines · Vagrant Cascadian

No luck. The TV does support 640x480 when plugged into my laptop,

I did manage to verify with a display that supported 1024x768 and that worked fine.

Thanks for testing.

Could you send us your Tested-by tag?

Regards,

Fabio Estevam