[U-Boot] [PATCH 1/4] mx6cuboxi: Add HDMI output support

From: Fabio Estevam fabio.estevam@freescale.com
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 smoch@web.de submitted for the tbs2910 mx6 based board.
It allows the display to work properly at 1024x768@60.
This should make the hdmi output signal compatible with most if not all modern displays.
Signed-off-by: Jon Nettleton jon.nettleton@gmail.com Signed-off-by: Fabio Estevam fabio.estevam@freescale.com --- board/solidrun/mx6cuboxi/mx6cuboxi.c | 101 ++++++++++++++++++++++++++++++++++- include/configs/mx6cuboxi.h | 18 ++++++- 2 files changed, 117 insertions(+), 2 deletions(-)
diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c index d3a32c1..eab92f1 100644 --- a/board/solidrun/mx6cuboxi/mx6cuboxi.c +++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c @@ -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@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) diff --git a/include/configs/mx6cuboxi.h b/include/configs/mx6cuboxi.h index b569f34..207a2a6 100644 --- a/include/configs/mx6cuboxi.h +++ b/include/configs/mx6cuboxi.h @@ -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 */

From: Fabio Estevam fabio.estevam@freescale.com
Enable USB Host1 port.
Signed-off-by: Rabeeh Khoury rabeeh@solid-run.com Signed-off-by: Fabio Estevam fabio.estevam@freescale.com --- board/solidrun/mx6cuboxi/mx6cuboxi.c | 26 ++++++++++++++++++++++++++ include/configs/mx6cuboxi.h | 12 ++++++++++++ 2 files changed, 38 insertions(+)
diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c index eab92f1..9aa0259 100644 --- a/board/solidrun/mx6cuboxi/mx6cuboxi.c +++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c @@ -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; }
diff --git a/include/configs/mx6cuboxi.h b/include/configs/mx6cuboxi.h index 207a2a6..e7a18c6 100644 --- a/include/configs/mx6cuboxi.h +++ b/include/configs/mx6cuboxi.h @@ -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 */

On Mon, Apr 27, 2015 at 11:30:42PM -0300, Fabio Estevam wrote:
From: Fabio Estevam fabio.estevam@freescale.com
Enable USB Host1 port.
Signed-off-by: Rabeeh Khoury rabeeh@solid-run.com Signed-off-by: Fabio Estevam fabio.estevam@freescale.com
[snip]
diff --git a/include/configs/mx6cuboxi.h b/include/configs/mx6cuboxi.h index 207a2a6..e7a18c6 100644 --- a/include/configs/mx6cuboxi.h +++ b/include/configs/mx6cuboxi.h @@ -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
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

Hi Tom,
On Tue, Apr 28, 2015 at 11:48 AM, Tom Rini trini@konsulko.com wrote:
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.
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

On Tue, Apr 28, 2015 at 12:11 PM, Fabio Estevam festevam@gmail.com wrote:
Hi Tom,
On Tue, Apr 28, 2015 at 11:48 AM, Tom Rini trini@konsulko.com wrote:
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.
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.
Ops, I mean "Only the bottom USB port works for me".

On Tue, Apr 28, 2015 at 12:20:46PM -0300, Fabio Estevam wrote:
On Tue, Apr 28, 2015 at 12:11 PM, Fabio Estevam festevam@gmail.com wrote:
Hi Tom,
On Tue, Apr 28, 2015 at 11:48 AM, Tom Rini trini@konsulko.com wrote:
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.
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.
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.

On Tue, Apr 28, 2015 at 6:39 PM, Tom Rini trini@konsulko.com wrote:
On Tue, Apr 28, 2015 at 12:20:46PM -0300, Fabio Estevam wrote:
On Tue, Apr 28, 2015 at 12:11 PM, Fabio Estevam festevam@gmail.com
wrote:
Hi Tom,
On Tue, Apr 28, 2015 at 11:48 AM, Tom Rini trini@konsulko.com wrote:
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.
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.
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
-- Tom

On Tue, Apr 28, 2015 at 1:45 PM, Jon Nettleton jon.nettleton@gmail.com wrote: ...
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?

On Tue, Apr 28, 2015 at 06:45:43PM +0200, Jon Nettleton wrote:
On Tue, Apr 28, 2015 at 6:39 PM, Tom Rini trini@konsulko.com wrote:
On Tue, Apr 28, 2015 at 12:20:46PM -0300, Fabio Estevam wrote:
On Tue, Apr 28, 2015 at 12:11 PM, Fabio Estevam festevam@gmail.com
wrote:
Hi Tom,
On Tue, Apr 28, 2015 at 11:48 AM, Tom Rini trini@konsulko.com wrote:
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.
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.
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.
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.

On Tue, Apr 28, 2015 at 1:52 PM, Tom Rini trini@konsulko.com wrote:
On Tue, Apr 28, 2015 at 06:45:43PM +0200, Jon Nettleton wrote:
On Tue, Apr 28, 2015 at 6:39 PM, Tom Rini trini@konsulko.com wrote:
On Tue, Apr 28, 2015 at 12:20:46PM -0300, Fabio Estevam wrote:
On Tue, Apr 28, 2015 at 12:11 PM, Fabio Estevam festevam@gmail.com
wrote:
Hi Tom,
On Tue, Apr 28, 2015 at 11:48 AM, Tom Rini trini@konsulko.com wrote:
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.
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.
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.
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.

On Tue, Apr 28, 2015 at 1:52 PM, Tom Rini trini@konsulko.com wrote:
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

On Tue, Apr 28, 2015 at 12:39:41PM -0400, Tom Rini wrote:
On Tue, Apr 28, 2015 at 12:20:46PM -0300, Fabio Estevam wrote:
On Tue, Apr 28, 2015 at 12:11 PM, Fabio Estevam festevam@gmail.com wrote:
Hi Tom,
On Tue, Apr 28, 2015 at 11:48 AM, Tom Rini trini@konsulko.com wrote:
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.
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.
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.

From: Fabio Estevam fabio.estevam@freescale.com
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.
Signed-off-by: Rabeeh Khoury rabeeh@solid-run.com Signed-off-by: Fabio Estevam fabio.estevam@freescale.com --- include/configs/mx6cuboxi.h | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/include/configs/mx6cuboxi.h b/include/configs/mx6cuboxi.h index e7a18c6..38c358e 100644 --- a/include/configs/mx6cuboxi.h +++ b/include/configs/mx6cuboxi.h @@ -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" \

On Mon, Apr 27, 2015 at 11:30:43PM -0300, Fabio Estevam wrote:
From: Fabio Estevam fabio.estevam@freescale.com
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.
Signed-off-by: Rabeeh Khoury rabeeh@solid-run.com Signed-off-by: Fabio Estevam fabio.estevam@freescale.com
This all looks right so:
Reviewed-by: Tom Rini trini@konsulko.com
But my keyboards (which iirc also caused problems on Allwinner) don't work but I don't think that's a Hummingboard/mx6 problem.

From: Fabio Estevam fabio.estevam@freescale.com
Let Solidrun's logo appear on Cuboxi and Hummingboard by default.
Signed-off-by: Rabeeh Khoury rabeeh@solid-run.com Signed-off-by: Fabio Estevam fabio.estevam@freescale.com --- tools/logos/solidrun.bmp | Bin 0 -> 5558 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tools/logos/solidrun.bmp
diff --git a/tools/logos/solidrun.bmp b/tools/logos/solidrun.bmp new file mode 100644 index 0000000000000000000000000000000000000000..93db1f8f1649b1c2d81751b4403a9534b68d4167 GIT binary patch literal 5558 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
literal 0 HcmV?d00001

On Mon, Apr 27, 2015 at 11:30:44PM -0300, Fabio Estevam wrote:
From: Fabio Estevam fabio.estevam@freescale.com
Let Solidrun's logo appear on Cuboxi and Hummingboard by default.
Signed-off-by: Rabeeh Khoury rabeeh@solid-run.com Signed-off-by: Fabio Estevam fabio.estevam@freescale.com
Reviewed-by: Tom Rini trini@konsulko.com

On Mon, Apr 27, 2015 at 11:30:41PM -0300, Fabio Estevam wrote:
From: Fabio Estevam fabio.estevam@freescale.com
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 smoch@web.de submitted for the tbs2910 mx6 based board.
It allows the display to work properly at 1024x768@60.
This should make the hdmi output signal compatible with most if not all modern displays.
Signed-off-by: Jon Nettleton jon.nettleton@gmail.com Signed-off-by: Fabio Estevam fabio.estevam@freescale.com
Reviewed-by: Tom Rini trini@konsulko.com Tested-by: Tom Rini trini@konsulko.com

On 2015-04-27, Fabio Estevam wrote:
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 smoch@web.de submitted for the tbs2910 mx6 based board.
It allows the display to work properly at 1024x768@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@60). How complicated would it be to support multiple resolutions?
live well, vagrant

On Wed, Apr 29, 2015 at 3:02 PM, Vagrant Cascadian vagrant@aikidev.net wrote:
On 2015-04-27, Fabio Estevam wrote:
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 smoch@web.de submitted for the tbs2910 mx6 based board.
It allows the display to work properly at 1024x768@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@60). How complicated would it be to support multiple resolutions?
There's edid support in the sunxi display driver..
live well, vagrant
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

On Wed, Apr 29, 2015 at 3:02 PM, Vagrant Cascadian vagrant@aikidev.net wrote:
On 2015-04-27, Fabio Estevam wrote:
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 smoch@web.de submitted for the tbs2910 mx6 based board.
It allows the display to work properly at 1024x768@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@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=H...
Could pull it out as a share it.
Regards,

Hi Vagrant,
On Wed, Apr 29, 2015 at 5:02 PM, Vagrant Cascadian vagrant@aikidev.net wrote:
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@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

On 2015-04-29, Fabio Estevam wrote:
On Wed, Apr 29, 2015 at 5:02 PM, Vagrant Cascadian vagrant@aikidev.net wrote:
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@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
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

On Thu, Apr 30, 2015 at 6:20 PM, Vagrant Cascadian vagrant@aikidev.net wrote:
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
participants (6)
-
Fabio Estevam
-
Jon Nettleton
-
Otavio Salvador
-
Robert Nelson
-
Tom Rini
-
Vagrant Cascadian