ENABLE LCD IN UBOOT

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

ENABLE LCD IN UBOOT

1,556 Views
himabindu
Contributor III

Hi Team,

                   Currently I am using  the U-Boot 2009.08 . In order to upgrade the U-Boot to 2014 can I know what are all the modifications need to be done for the LCD to get Enabled.

Thanks & Regards,
C.Himabindu.

Labels (1)
0 Kudos
2 Replies

847 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

Which board and version BSP are you using? About the LCD porting you can refer to https://community.nxp.com/docs/DOC-172312 .

0 Kudos

847 Views
himabindu
Contributor III

Hi Rita Wang,

                   I am thankful to your response. I am currently working on uboot version:2014.04(imx6sl) to provide the LCD Support.

My LCD Pins Initialization in arch/arm/include/asm/arch-mx6/mx6sl_pins.h are as follows:

 MX6_PAD_LCD_CLK__LCD_CLK                                = IOMUX_PAD(0x04B4, 0x01AC, 0, 0x0000, 0, 0),
        MX6_PAD_LCD_ENABLE__LCD_ENABLE                          = IOMUX_PAD(0x0518, 0x0210, 0, 0x0000, 0, 0),
        MX6_PAD_LCD_HSYNC__LCD_HSYNC                            = IOMUX_PAD(0x051C, 0x0214, 0, 0x0774, 0, 0),
        MX6_PAD_LCD_RESET__LCD_RESET                            = IOMUX_PAD(0x0520, 0x0218, 0, 0x0000, 0, 0),
        MX6_PAD_LCD_VSYNC__LCD_VSYNC                            = IOMUX_PAD(0x0524, 0x021C, 0, 0x0000, 0, 0),
        MX6_PAD_LCD_DAT0__LCD_DAT00                             = IOMUX_PAD(0x04B8, 0x01B0, 0, 0x0778, 1, 0),
        MX6_PAD_LCD_DAT1__LCD_DAT01                             = IOMUX_PAD(0x04BC, 0x01B4, 0, 0x077C, 1, 0),
        MX6_PAD_LCD_DAT2__LCD_DAT02                             = IOMUX_PAD(0x04E8, 0x01E0, 0, 0x0780, 1, 0),
        MX6_PAD_LCD_DAT3__LCD_DAT03                             = IOMUX_PAD(0x04FC, 0x01F4, 0, 0x0784, 1, 0),
        MX6_PAD_LCD_DAT4__LCD_DAT04                             = IOMUX_PAD(0x0500, 0x01F8, 0, 0x0788, 1, 0),
        MX6_PAD_LCD_DAT5__LCD_DAT05                             = IOMUX_PAD(0x0504, 0x01FC, 0, 0x078C, 1, 0),
        MX6_PAD_LCD_DAT6__LCD_DAT06                             = IOMUX_PAD(0x0508, 0x0200, 0, 0x0790, 1, 0),
        MX6_PAD_LCD_DAT7__LCD_DAT07                             = IOMUX_PAD(0x050C, 0x0204, 0, 0x0794, 1, 0),
        MX6_PAD_LCD_DAT8__LCD_DAT08                             = IOMUX_PAD(0x0510, 0x0208, 0, 0x0798, 1, 0),
        MX6_PAD_LCD_DAT9__LCD_DAT09                             = IOMUX_PAD(0x0514, 0x020C, 0, 0x079C, 1, 0),
        MX6_PAD_LCD_DAT10__LCD_DAT10                            = IOMUX_PAD(0x04C0, 0x01B8, 0, 0x07A0, 1, 0),
        MX6_PAD_LCD_DAT11__LCD_DAT11                            = IOMUX_PAD(0x04C4, 0x01BC, 0, 0x07A4, 1, 0),
        MX6_PAD_LCD_DAT12__LCD_DAT12                            = IOMUX_PAD(0x04C8, 0x01C0, 0, 0x07A8, 1, 0),
        MX6_PAD_LCD_DAT13__LCD_DAT13                            = IOMUX_PAD(0x04CC, 0x01C4, 0, 0x07AC, 1, 0),
        MX6_PAD_LCD_DAT14__LCD_DAT14                            = IOMUX_PAD(0x04D0, 0x01C8, 0, 0x07B0, 1, 0),
        MX6_PAD_LCD_DAT15__LCD_DAT15                            = IOMUX_PAD(0x04D4, 0x01CC, 0, 0x07B4, 1, 0),
        MX6_PAD_LCD_DAT16__LCD_DAT16                            = IOMUX_PAD(0x04D8, 0x01D0, 0, 0x07B8, 1, 0),
        MX6_PAD_LCD_DAT17__LCD_DAT17                            = IOMUX_PAD(0x04DC, 0x01D4, 0, 0x07BC, 1, 0),

In the file board/freescale/mx6slevk/mx6slevk.c :

static iomux_v3_cfg_t const lcd_pads[] = {

        MX6_PAD_LCD_CLK__LCD_CLK   | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_ENABLE__LCD_ENABLE  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_HSYNC__LCD_HSYNC  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_VSYNC__LCD_VSYNC  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_RESET__LCD_RESET  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT0__LCD_DAT00  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT1__LCD_DAT01  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT2__LCD_DAT02  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT3__LCD_DAT03  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT4__LCD_DAT04  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT5__LCD_DAT05  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT6__LCD_DAT06  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT7__LCD_DAT07  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT8__LCD_DAT08  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT9__LCD_DAT09  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT10__LCD_DAT10  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT11__LCD_DAT11  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT12__LCD_DAT12  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT13__LCD_DAT13  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT14__LCD_DAT14  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT15__LCD_DAT15  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT16__LCD_DAT16  | MUX_PAD_CTRL(NO_PAD_CTRL),

        MX6_PAD_LCD_DAT17__LCD_DAT17  | MUX_PAD_CTRL(NO_PAD_CTRL),

};

static void setup_iomux_lcd(void)
{
        imx_iomux_v3_setup_multiple_pads(lcd_pads, ARRAY_SIZE(lcd_pads));

}

In the file common/stdio.c:-

        printf("LCD Drv_Init\n");
        drv_lcd_init ();

   When the function lcd_drv_init is called in the file common/stdio.c assigning of the framebuffer address is being done.

   At this point my device stops booting and i am not able to identify the issue. The below Log will show where exactly

   the device stops its booting. Kindly help me to move forward.

  

U-Boot 2014.04 (Sep 16 2017 - 12:02:31)

CPU:   Freescale i.MX6SL rev1.2 at 396 MHz
CPU:   Temperature 33 C, calibration data: 0x5c25365f
Reset cause: POR
Board: MX6SLEVK
I2C:   ready
DRAM:  1 GiB
MMC:  
Setup LCD
LCD Power ON----->
LCD BackLight ON---->
FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
MMC Device
*** Warning - bad CRC, using default environment

LCD Drv_Init
LCD Initialization
Initializing LCD frambuffer at 87b00000

0 Kudos