Message ID | AANLkTimfe=+SkTjpdg5z9ontAXFqR_3+WkG9jA+kDmty@mail.gmail.com |
---|---|
State | Rejected |
Delegated to: | Stefano Babic |
Headers | show |
On 01/20/2011 03:06 AM, Thomas Besemer wrote: > Hi folks - > > I had posted last week. I was able to get basic Splash Screen going on EVK, > through using patches I found from googling around. At the end of this email, > the patch set that shows the differences from the U-Boot I pulled on > 12/24/2010. I am not sure I have the right patch set, but in this case, > what I have does seem to work; U-Boot does output to LCD display on the > second Display Interface. There is no correct patchset. As I already stated, patches sent sometimes ago to ML (and that you reuse) require some rework to be merged into the mainline. > There seems to have been a discussion on lcd_setmem(). Has this been > resolved, and I missed it? No, someone should fix it. The result of the discussion suggested by Wolfgang is to use the same interface Linux uses, that is with a video-mode=" variable with something such as 1024x768@60. U-Boot has already a videomodes.c, but it uses an ancient syntax for videomode (see the code). Feel free to fix it. > You'll see from patch set that I just put a > very large buffer in place (hard coded hack). Of course it can work, but this cannot go to mainline... > U-Boot hung on boot before > I put this in, and based on what I see on mailing list, this seems to be > an issue of not having the display information available early on in boot. Right. This is an open issue. > At any rate, I got it to boot, and see that the LCD shows display on > startup. Yet, I lose the console on this; the serial port is read, but > the output goes to LCD. Fine. > In an ideal world, what I would like is to not loose the console. Console remains on UART if you do not change the behavior. > I want > stdin/stdout to remain on serial port, while I toss a bit map out on LCD. > Any comments on how to do this? End game is that I toss a splash screen > up on LCD on EVK, while having U-Boot information still on the console. This is already foreseen. If you checked in IPU code, there is an overwrite function set for this purpose. You must set CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE. Check the setup in the vision2 board. > > So, a couple of things: > > 1. Do I have correct patch work for this version of U-Boot, or is there a > newer version of U-Boot to pull? I pulled both mainline and IMX tree > yesterday, don't see the MX51 EVK in them. As I stated previously, the patch adding splashscreen to the mx51evk board need reworking. > 2. How to configure so that I get console while LCD is available for display. See my answer before > > 3. What is current status on lcd_setmem() thing. Awaiting for patches. Do you think you can provide them ? > I might have missed a few things along the way folks; I am not the sharpest > tool in the shed. Please let me know if I missed patch sets on lcd_setmem(), > and help me understand how to make sure console works with Splash Screen. Regarding lcd_setmem() there is some clear statements. IMHO I like Wolfgang's proposal, because we should not reinvent the wheel. Best regards, Stefano Babic
On Thursday 20 January 2011 09:07:53 Stefano Babic wrote: > On 01/20/2011 03:06 AM, Thomas Besemer wrote: > > Hi folks - > > > > I had posted last week. I was able to get basic Splash Screen going on > > EVK, through using patches I found from googling around. At the end of > > this email, the patch set that shows the differences from the U-Boot I > > pulled on 12/24/2010. I am not sure I have the right patch set, but in > > this case, what I have does seem to work; U-Boot does output to LCD > > display on the second Display Interface. > > There is no correct patchset. As I already stated, patches sent > sometimes ago to ML (and that you reuse) require some rework to be > merged into the mainline. > > > There seems to have been a discussion on lcd_setmem(). Has this been > > resolved, and I missed it? > > No, someone should fix it. The result of the discussion suggested by > Wolfgang is to use the same interface Linux uses, that is with a > video-mode=" variable with something such as 1024x768@60. U-Boot has > already a videomodes.c, but it uses an ancient syntax for videomode (see > the code). Feel free to fix it. > > > You'll see from patch set that I just put a > > > > very large buffer in place (hard coded hack). > > Of course it can work, but this cannot go to mainline... > > > U-Boot hung on boot before > > > > I put this in, and based on what I see on mailing list, this seems to be > > an issue of not having the display information available early on in > > boot. > > Right. This is an open issue. > > > At any rate, I got it to boot, and see that the LCD shows display on > > startup. Yet, I lose the console on this; the serial port is read, but > > the output goes to LCD. > > Fine. > > > In an ideal world, what I would like is to not loose the console. > > Console remains on UART if you do not change the behavior. > > > I want > > > > stdin/stdout to remain on serial port, while I toss a bit map out on LCD. > > Any comments on how to do this? End game is that I toss a splash screen > > up on LCD on EVK, while having U-Boot information still on the console. > > This is already foreseen. If you checked in IPU code, there is an > overwrite function set for this purpose. You must set > CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE. Check the setup in the vision2 board. > > > So, a couple of things: > > > > 1. Do I have correct patch work for this version of U-Boot, or is there a > > newer version of U-Boot to pull? I pulled both mainline and IMX tree > > yesterday, don't see the MX51 EVK in them. > > As I stated previously, the patch adding splashscreen to the mx51evk > board need reworking. > > > 2. How to configure so that I get console while LCD is available for > > display. > > See my answer before > > > 3. What is current status on lcd_setmem() thing. > > Awaiting for patches. Do you think you can provide them ? > > > I might have missed a few things along the way folks; I am not the > > sharpest tool in the shed. Please let me know if I missed patch sets on > > lcd_setmem(), and help me understand how to make sure console works with > > Splash Screen. > > Regarding lcd_setmem() there is some clear statements. IMHO I like > Wolfgang's proposal, because we should not reinvent the wheel. > > Best regards, > Stefano Babic Hey guys, any update on this matter ? I'm quite interested :)
On 02/26/2011 07:32 PM, Marek Vasut wrote:
> Hey guys, any update on this matter ? I'm quite interested :)
On my side I am not currently working on this issue...
Best regards,
Stefano Babic
On Sun, Feb 27, 2011 at 5:41 AM, Stefano Babic <sbabic@denx.de> wrote: > > On 02/26/2011 07:32 PM, Marek Vasut wrote: > > > Hey guys, any update on this matter ? I'm quite interested :) > > On my side I am not currently working on this issue... > > Best regards, > Stefano Babic > On my end, I had to go back to the FSL SDK version of U-Boot. Reason is that they have an extensive patch set that is not in mainstream U-Boot. I ran into some issues using current U-Boot, such as a slower boot time, but did not investigate. If I get a chance in next month or so, I am going to migrate all FSL SDK U-Boot patches to the top of the U-Boot tree, and stabilize. I have not back ported the Splash Screen stuff to the SDK version of U-Boot. In an ideal world, FSL will start working with current U-Boot, and post their patch sets back to mailing list. Would make life easier for all of us. tom
Index: include/configs/mx51evk.h =================================================================== --- include/configs/mx51evk.h (revision 173) +++ include/configs/mx51evk.h (working copy) @@ -190,6 +190,15 @@ #define CONFIG_SYS_DDR_CLKSEL 0 #define CONFIG_SYS_CLKTL_CBCDR 0x59E35100 +/* + * Framebuffer and LCD + */ +#define CONFIG_LCD +#define CONFIG_VIDEO_MX5 +#define LCD_BPP LCD_COLOR16 +#define CONFIG_CMD_BMP +#define CONFIG_BMP_16BPP + /*----------------------------------------------------------------------- * FLASH and environment organization */ Index: board/freescale/mx51evk/mx51evk.c =================================================================== --- board/freescale/mx51evk/mx51evk.c (revision 170) +++ board/freescale/mx51evk/mx51evk.c (working copy) @@ -34,10 +34,38 @@ #include <fsl_pmic.h> #include <mc13892.h> +#ifdef CONFIG_LCD +#include <linux/fb.h> +#include <lcd.h> +#endif + DECLARE_GLOBAL_DATA_PTR; static u32 system_rev; +extern int mx51_fb_init(struct fb_videomode *mode, u32 ipu_di, u32 pix_fmt); +#ifdef CONFIG_LCD +static struct fb_videomode claa_wvga = { + "CLAA07LC0ACW", + 57, /* Refresh */ + 800, /* xres */ + 480, /* yres */ + 37037, /* pixclock = 27Mhz */ + 40, /* left margin */ + 60, /* right margin */ + 10, /* upper margin */ + 10, /* lower margin */ + 20, /* hsync-len */ + 10, /* vsync-len */ + 0, /* sync */ + FB_VMODE_NONINTERLACED, /* vmode */ + 0, /* flag */ +}; + +static int wvga_ipu_di = 1; +static int wvga_bppix = 16; +#endif + #ifdef CONFIG_FSL_ESDHC struct fsl_esdhc_cfg esdhc_cfg[2] = { {MMC_SDHC1_BASE_ADDR, 1}, @@ -148,6 +176,41 @@ mxc_iomux_set_pad(MX51_PIN_NANDF_D11, 0x2180); } +#ifdef CONFIG_LCD +void setup_iomux_ipu(void) +{ + puts( "setup_iopmux_ipu(): invoked\n" ); + /* DISP2_DAT [0:15] are configured by default */ + mxc_request_iomux(MX51_PIN_DI1_D1_CS, IOMUX_CONFIG_ALT4); + mxc_iomux_set_pad(MX51_PIN_DI1_D1_CS, + PAD_CTL_PKE_ENABLE | PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); + mxc_request_iomux(MUX_IN_GPIO3_IPP_IND_G_IN_4_SELECT_INPUT, + INPUT_CTL_PATH1); + + /* DISP2_DRDY pin */ + mxc_request_iomux(MX51_PIN_DI_GP4, IOMUX_CONFIG_ALT4); + mxc_iomux_set_pad(MX51_PIN_DI_GP4, PAD_CTL_PKE_ENABLE | + PAD_CTL_PUE_KEEPER | PAD_CTL_DRV_LOW); + + puts( "setup_iopmux_ipu(): done\n" ); +} + +#endif + +#ifdef CONFIG_LCD +void lcd_enable(void) +{ + int ret; +puts( "lcd_enable(): invoked\n" ); + + ret = mx51_fb_init(&claa_wvga, wvga_ipu_di, wvga_bppix); + if (ret) { + puts("LCD cannot be configured\n"); + } + +} +#endif + #ifdef CONFIG_MXC_SPI static void setup_iomux_spi(void) { @@ -409,7 +472,9 @@ setup_iomux_uart(); setup_iomux_fec(); - +#ifdef CONFIG_LCD + setup_iomux_ipu(); +#endif return 0; } Index: common/lcd.c =================================================================== --- common/lcd.c (revision 170) +++ common/lcd.c (working copy) @@ -438,16 +438,21 @@ ulong lcd_setmem (ulong addr) { ulong size; +#ifdef ORIGINAL_PRE_TBESEMER int line_length = (panel_info.vl_col * NBITS (panel_info.vl_bpix)) / 8; debug ("LCD panel info: %d x %d, %d bit/pix\n", panel_info.vl_col, panel_info.vl_row, NBITS (panel_info.vl_bpix) ); size = line_length * panel_info.vl_row; +#else + size = 1024 * 1024 * 12; /* Round up to nearest full page */ size = (size + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1); +#endif + /* Allocate pages for the frame buffer. */ addr -= size; Index: drivers/video/mxc_ipuv3_fb.c =================================================================== --- drivers/video/mxc_ipuv3_fb.c (revision 170) +++ drivers/video/mxc_ipuv3_fb.c (working copy) @@ -526,7 +526,7 @@ * * @return Appropriate error code to the kernel common code */ -static int mxcfb_probe(u32 interface_pix_fmt, struct fb_videomode *mode) +static int mxcfb_probe(u32 interface_pix_fmt, struct fb_videomode *mode, u32 ipu_di) { struct fb_info *fbi;