[U-Boot] persistent logo on LCD on imx6ull
Michael Nazzareno Trimarchi
michael at amarulasolutions.com
Wed Jul 4 22:01:29 UTC 2018
Hi otavio
On Wed., 4 Jul. 2018, 7:03 pm Michael Nazzareno Trimarchi, <
michael at amarulasolutions.com> wrote:
> Hi
>
>
> On Wed, Jul 4, 2018 at 6:45 PM, Otavio Salvador
> <otavio.salvador at ossystems.com.br> wrote:
> > On Tue, Jul 3, 2018 at 6:20 AM, Michael Nazzareno Trimarchi
> > <michael at amarulasolutions.com> wrote:
> >> Ok I have fixed it :)
> >
> > Mind to share how?
>
I will change those patches soon to share memory up to the kernel. I have
already implement something there but not really happy.
Michael
>
> commit 9c066153a6876b1ae57117d99ad228a07873eb75
> Author: Michael Trimarchi <michael at amarulasolutions.com>
> Date: Wed Jul 4 15:50:41 2018 +0200
>
> spl: Make the spl_nand_load_image static
>
> Change-Id: I1c2f71e75fc052c54fc94b13d0942cb9e75ff1c6
> Signed-off-by: Michael Trimarchi <michael at amarulasolutions.com>
>
> diff --git a/common/spl/spl_nand.c b/common/spl/spl_nand.c
> index b96fce2..527cfc0 100644
> --- a/common/spl/spl_nand.c
> +++ b/common/spl/spl_nand.c
> @@ -12,7 +12,7 @@
> #include <fdt.h>
>
> #if defined(CONFIG_SPL_NAND_RAW_ONLY)
> -int spl_nand_load_image(struct spl_image_info *spl_image,
> +static int spl_nand_load_image(struct spl_image_info *spl_image,
> struct spl_boot_device *bootdev)
> {
> nand_init();
> michael at panicking ~/work/amarula/w_and_h/dist/u-boot $ git show HEAD^^^
> commit 110e91ee5a837684d99778d72a3c9aec5953baf6
> Author: Michael Trimarchi <michael at amarulasolutions.com>
> Date: Wed Jul 4 13:03:23 2018 +0200
>
> video: mxsfb: Allocate a memory align to the page
>
> We want to allocate memory align at page size because we then
> need to reserve it to linux and simple frame buffer. The
> lcd should not be powerdown if simple frame buffer configuration
> is active
>
> Change-Id: I1d139364d91686b12cd607821dcc1b84b0dc0b69
> Signed-off-by: Michael Trimarchi <michael at amarulasolutions.com>
>
> diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
> index 4011066..0aaf9f0 100644
> --- a/drivers/video/cfb_console.c
> +++ b/drivers/video/cfb_console.c
> @@ -2107,6 +2107,12 @@ static int cfg_video_init(void)
> video_console_address = video_fb_address;
> #endif
>
> + env_set_hex("video_address", (unsigned long)VIDEO_FB_ADRS);
> + env_set_hex("video_memory_size", (unsigned long)
> roundup(VIDEO_SIZE, PAGE_SIZE));
> + env_set_hex("video_stride", (unsigned long) VIDEO_LINE_LEN);
> + env_set_hex("video_width", (unsigned long) VIDEO_COLS);
> + env_set_hex("video_height", (unsigned long) VIDEO_ROWS);
> +
> /* Initialize the console */
> console_col = 0;
> console_row = 0;
> diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c
> index 4e3e3d7..254f230 100644
> --- a/drivers/video/mxsfb.c
> +++ b/drivers/video/mxsfb.c
> @@ -7,6 +7,7 @@
> #include <common.h>
> #include <malloc.h>
> #include <video_fb.h>
> +#include <lcd.h>
>
> #include <asm/arch/imx-regs.h>
> #include <asm/arch/clock.h>
> @@ -145,6 +146,7 @@ static void mxs_lcd_init(GraphicDevice *panel,
> writel(LCDIF_CTRL_RUN, ®s->hw_lcdif_ctrl_set);
> }
>
> +#ifndef CONFIG_VIDEO_DT_SIMPLEFB
> void lcdif_power_down(void)
> {
> struct mxs_lcdif_regs *regs = (struct mxs_lcdif_regs
> *)MXS_LCDIF_BASE;
> @@ -164,6 +166,9 @@ void lcdif_power_down(void)
> }
> mxs_reset_block((struct mxs_register_32
> *)®s->hw_lcdif_ctrl_reg);
> }
> +#else
> +void lcdif_power_down(void) {};
> +#endif
>
> void *video_hw_init(void)
> {
> @@ -214,8 +219,8 @@ void *video_hw_init(void)
> panel.memSize = mode.xres * mode.yres * panel.gdfBytesPP;
>
> /* Allocate framebuffer */
> - fb = memalign(ARCH_DMA_MINALIGN,
> - roundup(panel.memSize, ARCH_DMA_MINALIGN));
> + fb = memalign(PAGE_SIZE,
> + roundup(panel.memSize, PAGE_SIZE));
> if (!fb) {
> printf("MXSFB: Error allocating framebuffer!\n");
> return NULL;
> (END)
> {
> struct mxs_lcdif_regs *regs = (struct mxs_lcdif_regs
> *)MXS_LCDIF_BASE;
> @@ -164,6 +166,9 @@ void lcdif_power_down(void)
> }
> mxs_reset_block((struct mxs_register_32
> *)®s->hw_lcdif_ctrl_reg);
> }
> +#else
> +void lcdif_power_down(void) {};
> +#endif
>
> void *video_hw_init(void)
> {
> @@ -214,8 +219,8 @@ void *video_hw_init(void)
> panel.memSize = mode.xres * mode.yres * panel.gdfBytesPP;
>
> /* Allocate framebuffer */
> - fb = memalign(ARCH_DMA_MINALIGN,
> - roundup(panel.memSize, ARCH_DMA_MINALIGN));
> + fb = memalign(PAGE_SIZE,
> + roundup(panel.memSize, PAGE_SIZE));
> if (!fb) {
> printf("MXSFB: Error allocating framebuffer!\n");
> return NULL;
>
> The I need to trick the dts ;)
>
> This should be more then enough ;).
>
> Michael
>
> >
> > --
> > Otavio Salvador O.S. Systems
> > http://www.ossystems.com.br http://code.ossystems.com.br
> > Mobile: +55 (53) 9 9981-7854 Mobile: +1 (347) 903-9750
>
>
>
> --
> | Michael Nazzareno Trimarchi Amarula Solutions BV |
> | COO - Founder Cruquiuskade 47 |
> | +31(0)851119172 Amsterdam 1018 AM NL |
> | [`as] http://www.amarulasolutions.com |
>
More information about the U-Boot
mailing list