[U-Boot] [PATCH 0/17] tegra: Add display driver and LCD support for Seaboard

Simon Glass sjg at chromium.org
Sat Jul 14 10:03:31 CEST 2012


Hi Christian,

On Thu, Apr 19, 2012 at 2:41 PM, Christian Kroehnert
<christian.kroehnert at avionic-design.de> wrote:
> On 15.01.2012 01:47, Simon Glass wrote:
>>
>> This series adds support for the Tegra2x's display peripheral. This
>> supports the LCD display on Seaboard and we use this to enable console
>> output in U-Boot on the LCD.
>>
>> Configuration is via the device tree. Proposed bindings are included
>> in this series.
>>
>> To improve performance two optimisations are offered:
>>
>> 1. The LCD frame buffer is cached, with the cache being flushed after
>> each call puts(). This dramatically increases performance (around 10x).
>> This requires a few additions to the ARM cache support.
>>
>> 2. The console supports scrolling in steps of more than 1 line. This
>> speeds up scrolling output considerably, particularly commands like
>> 'printenv' which display a lot of output. This requires a new CONFIG
>> and a change to the console_scrollup() function.
>>
>>
>> Mayuresh Kulkarni (1):
>>    tegra: Enable display/lcd support on Seaboard
>>
>> Simon Glass (15):
>>    fdt: Add function to look up a phandle's register address
>>    fdt: Add header guard to fdtdec.h
>>    fdt: Correct GPIO name access in fdtdec
>>    tegra: Add display support to funcmux
>>    tegra: fdt: Add LCD definitions for Tegra
>>    tegra: Add support for PWFM
>>    tegra: Add LCD driver
>>    tegra: Add LCD support to Nvidia boards
>>    arm: Add control over cachability of memory regions
>>    lcd: Add CONFIG_ALIGN_LCD_TO_SECTION to align lcd for MMU
>>    lcd: Add support for flushing LCD fb from dcache after update
>>    tegra: Align LCD frame buffer to section boundary
>>    tegra: Support control of cache settings for LCD
>>    tegra: fdt: Add LCD definitions for Seaboard
>>    lcd: Add CONSOLE_SCROLL_LINES option to speed console
>>
>> Wei Ni (1):
>>    tegra: Add SOC support for display/lcd
>>
>>   README                                          |   16 +
>>   arch/arm/cpu/armv7/cache_v7.c                   |   11 +
>>   arch/arm/cpu/armv7/tegra2/Makefile              |    1 +
>>   arch/arm/cpu/armv7/tegra2/display.c             |  271 +++++++++++
>>   arch/arm/cpu/armv7/tegra2/funcmux.c             |   39 ++
>>   arch/arm/cpu/armv7/tegra2/pwfm.c                |   40 ++
>>   arch/arm/dts/tegra20.dtsi                       |   25 +
>>   arch/arm/include/asm/arch-tegra2/dc.h           |  544
>> +++++++++++++++++++++++
>>   arch/arm/include/asm/arch-tegra2/display.h      |  133 ++++++
>>   arch/arm/include/asm/arch-tegra2/pwfm.h         |   54 +++
>>   arch/arm/include/asm/system.h                   |   30 ++
>>   arch/arm/lib/cache-cp15.c                       |   62 +++-
>>   board/nvidia/common/board.c                     |   21 +-
>>   board/nvidia/dts/tegra2-seaboard.dts            |   21 +
>>   common/cmd_echo.c                               |    3 +-
>>   common/lcd.c                                    |   85 +++-
>>   doc/device-tree-bindings/video/nvidia-video.txt |   92 ++++
>>   drivers/video/Makefile                          |    1 +
>>   drivers/video/tegra.c                           |  388 ++++++++++++++++
>>   include/configs/seaboard.h                      |   12 +-
>>   include/configs/tegra2-common.h                 |    1 +
>>   include/fdtdec.h                                |   17 +
>>   include/lcd.h                                   |   11 +
>>   lib/fdtdec.c                                    |   15 +-
>>   24 files changed, 1862 insertions(+), 31 deletions(-)
>>   create mode 100644 arch/arm/cpu/armv7/tegra2/display.c
>>   create mode 100644 arch/arm/cpu/armv7/tegra2/pwfm.c
>>   create mode 100644 arch/arm/include/asm/arch-tegra2/dc.h
>>   create mode 100644 arch/arm/include/asm/arch-tegra2/display.h
>>   create mode 100644 arch/arm/include/asm/arch-tegra2/pwfm.h
>>   create mode 100644 doc/device-tree-bindings/video/nvidia-video.txt
>>   create mode 100644 drivers/video/tegra.c
>>
>
> Hi Simon,
>
> I have added your patch sources manually into the "Prepare v2012.04-rc1
> release", because I got errors at apply. Also I added a device tree source
> file for Harmony.
>
> I tested the device tree source file for Harmony and your patch sources on
> our Harmony hardware and generated a new patch file:
>
> http://poeggi.dotsec.net/nvidia/uboot-lvds-init-patch/0001-Add-display-driver-and-LCD-support-for-Harmony-board.patch
>
> I hope it's all okay, this my first patch release.
>
> In the display.c source file I implemented a bug fix, because I get garbled
> images on the LCD without this fix.

I see this code:

	u32 m_value;

	m_value = readl(0x54202e04);
	m_value &= ~0x2;
	writel(m_value, 0x54202e04);

What register are you actually writing here? I can't find it in my
manual, but maybe I just haven't seen that address.

Also I notice you have changed the memorypriorites:

 	writel(0x00202020, &disp->mem_high_pri);
 	writel(0x00010101, &disp->mem_high_pri_timer);

Does that make a difference in your system?

Regards,
Simon

>
> Greetings
> Christian
>
> Changes:
>
> - Add device tree source file for Harmony board
> - Add bug fix in display.c
> - Patch based on the "Prepare v2012.04-rc1" release
>
> ---
>  README                                          |    7 +
>
>  arch/arm/cpu/armv7/cache_v7.c                   |   11 +
>  arch/arm/cpu/armv7/tegra2/Makefile              |    1 +
>  arch/arm/cpu/armv7/tegra2/display.c             |  282 ++++++++++++
>  arch/arm/cpu/armv7/tegra2/funcmux.c             |   41 ++
>  arch/arm/cpu/armv7/tegra2/pwfm.c                |   45 ++
>  arch/arm/dts/tegra20.dtsi                       |   26 ++
>
>  arch/arm/include/asm/arch-tegra2/dc.h           |  544
> +++++++++++++++++++++++
>  arch/arm/include/asm/arch-tegra2/display.h      |  133 ++++++
>  arch/arm/include/asm/arch-tegra2/pwfm.h         |   54 +++
>  arch/arm/include/asm/system.h                   |   30 ++
>  arch/arm/lib/cache-cp15.c                       |   61 +++-
>  board/nvidia/common/board.c                     |   20 +
>  board/nvidia/dts/tegra2-harmony.dts             |   97 ++++
>  board/nvidia/dts/tegra2-seaboard.dts            |   21 +
>  common/cmd_echo.c                               |    2 +-
>  common/lcd.c                                    |   86 +++-
>
>  doc/device-tree-bindings/video/nvidia-video.txt |   92 ++++
>  drivers/video/Makefile                          |    1 +
>  drivers/video/tegra.c                           |  397 +++++++++++++++++
>  dts/Makefile                                    |    2 +-
>  include/configs/harmony.h                       |   39 ++-
>  include/configs/tegra2-common.h                 |  218 +++++++++-
>  include/fdtdec.h                                |   19 +-
>  include/lcd.h                                   |   12 +
>  lib/fdtdec.c                                    |   12 +
>  26 files changed, 2206 insertions(+), 47 deletions(-)
>
>  create mode 100644 arch/arm/cpu/armv7/tegra2/display.c
>  create mode 100644 arch/arm/cpu/armv7/tegra2/pwfm.c
>  create mode 100644 arch/arm/include/asm/arch-tegra2/dc.h
>  create mode 100644 arch/arm/include/asm/arch-tegra2/display.h
>  create mode 100644 arch/arm/include/asm/arch-tegra2/pwfm.h
>  create mode 100644 board/nvidia/dts/tegra2-harmony.dts
>
>  create mode 100644 doc/device-tree-bindings/video/nvidia-video.txt
>  create mode 100644 drivers/video/tegra.c
>
>
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


More information about the U-Boot mailing list