[U-Boot-Users] [PATCH] Changes ADS5121 splash screen from hard-coded bmp to flash bmp

John Rigby jrigby at freescale.com
Mon Jul 7 20:48:15 CEST 2008


York, could you ack this?  I'll fix the commit message before checking
it in, I'd just like an ack of the actual content.

Thanks
John

On Mon, Jun 16, 2008 at 9:05 AM, Grant Likely <grant.likely at secretlab.ca> wrote:
> On Thu, May 29, 2008 at 12:24 PM, Martha Marx <mmarx at silicontkx.com> wrote:
>> Signed-off-by: Martha Marx <mmarx at silicontkx.com>
>
> You need to include a description of what your change does and why in
> every patch.  In general, your commit message should be in the form:
> ----
> 1-line short description
>
> multiline detailed description; feel free to be verbose here and split
> up into paragraphs as needed
>
> signed-of/acked-by lines.
> ---
>
> Also, you should include relevant maintainers in the to: line when you
> email patches, not just the mailing list.  In this case, I believe it
> is York Sun.
>
> Cheers,
> g.
>
>
>> ---
>>  board/ads5121/Makefile              |    1 -
>>  board/ads5121/ads5121_diu.c         |   66 +++++++++++++++++++++++++++++++----
>>  board/freescale/common/fsl_diu_fb.c |    6 +++-
>>  include/configs/ads5121.h           |    2 +
>>  4 files changed, 66 insertions(+), 9 deletions(-)
>>
>> diff --git a/board/ads5121/Makefile b/board/ads5121/Makefile
>> index f4dacce..0e4de61 100644
>> --- a/board/ads5121/Makefile
>> +++ b/board/ads5121/Makefile
>> @@ -30,7 +30,6 @@ LIB   = $(obj)lib$(BOARD).a
>>  COBJS-y        := $(BOARD).o
>>  COBJS-${CONFIG_FSL_DIU_FB} += ads5121_diu.o
>>  COBJS-${CONFIG_FSL_DIU_FB} += ../freescale/common/fsl_diu_fb.o
>> -COBJS-${CONFIG_FSL_DIU_FB} += ../freescale/common/fsl_logo_bmp.o
>>  COBJS-$(CONFIG_PCI) += pci.o
>>
>>  COBJS  := $(COBJS-y)
>> diff --git a/board/ads5121/ads5121_diu.c b/board/ads5121/ads5121_diu.c
>> index 87cf0cb..a57d505 100644
>> --- a/board/ads5121/ads5121_diu.c
>> +++ b/board/ads5121/ads5121_diu.c
>> @@ -26,6 +26,7 @@
>>  #include <common.h>
>>  #include <command.h>
>>  #include <asm/io.h>
>> +#include <malloc.h>
>>
>>  #ifdef CONFIG_FSL_DIU_FB
>>
>> @@ -61,16 +62,67 @@ void diu_set_pixel_clock(unsigned int pixclock)
>>        debug("DIU: Modified value of CLKDVDR = 0x%08x\n", *clkdvdr);
>>  }
>>
>> +char *valid_bmp(char *addr)
>> +{
>> +       unsigned long h_addr;
>> +
>> +       h_addr = simple_strtoul(addr, NULL, 16);
>> +       if (h_addr < CFG_FLASH_BASE ||
>> +               h_addr >= (CFG_FLASH_BASE + CFG_FLASH_SIZE - 1)) {
>> +               printf("bmp addr %x is not a valid flash address\n", h_addr);
>> +               return 0;
>> +       } else if ((*(char *)(h_addr) != 'B') || (*(char *)(h_addr+1) != 'M')) {
>> +               printf("bmp addr is not a bmp\n");
>> +               return 0;
>> +       } else
>> +               return (char *)h_addr;
>> +}
>> +
>>  int ads5121_diu_init(void)
>>  {
>> +       int gamma_fix;
>>        unsigned int pixel_format;
>> -
>> -       xres = 1024;
>> -       yres = 768;
>> -       pixel_format = 0x88883316;
>> -
>> -       return fsl_diu_init(xres, pixel_format, 0,
>> -                    (unsigned char *)FSL_Logo_BMP);
>> +       char *bmp_env, *bmp, *monitor_port;
>> +       unsigned char *dest;
>> +       long bmp_sz;
>> +
>> +       debug("ads5121_diu_init\n");
>> +       bmp_env = getenv("bmp_addr");
>> +       if (bmp_env == NULL) {
>> +               debug("Environment Variable bmp_addr is not set \n");
>> +               bmp = 0;
>> +       } else {
>> +               bmp = valid_bmp(bmp_env);
>> +       }
>> +       if (bmp) {
>> +               bmp_sz  = (bmp[5] << 24) | (bmp[4] << 16) |
>> +                               (bmp[3] << 8) | bmp[2];
>> +               debug("bmp_sz = %u\n", bmp_sz);
>> +               if (bmp_sz > CFG_SPLASH_SIZE) {
>> +                       printf("BMP exceeds size limit of %d\n",
>> +                               CFG_SPLASH_SIZE);
>> +                       bmp = 0;
>> +               } else {
>> +                   dest = malloc(bmp_sz);
>> +                   (void)memcpy((void *)dest, bmp, bmp_sz);
>> +               }
>> +       }
>> +       monitor_port = getenv("monitor_port");
>> +       if (!strncmp(monitor_port, "LCD", 3)) {
>> +               debug("LCD Monitor port\n");
>> +               xres = 1024;
>> +               yres = 768;
>> +               pixel_format = 0x88883316;
>> +               gamma_fix = 1;
>> +       } else {
>> +               debug("DVI Monitor port\n");
>> +               xres = 1024;
>> +               yres = 768;
>> +               pixel_format = 0x88883316;
>> +               gamma_fix = 0;
>> +       }
>> +       return fsl_diu_init(xres, pixel_format, gamma_fix,
>> +                    (unsigned char *)bmp);
>>  }
>>
>>  int ads5121diu_init_show_bmp(cmd_tbl_t *cmdtp,
>> diff --git a/board/freescale/common/fsl_diu_fb.c b/board/freescale/common/fsl_diu_fb.c
>> index 75f782e..a3bee17 100644
>> --- a/board/freescale/common/fsl_diu_fb.c
>> +++ b/board/freescale/common/fsl_diu_fb.c
>> @@ -301,11 +301,15 @@ int fsl_diu_init(int xres,
>>                debug("Fix gamma table\n");
>>                gamma_table_base = gamma.paddr;
>>                for (i = 0; i < 256*3; i++) {
>> +#ifdef CONFIG_ADS5121
>> +                       gamma_table_base[i] = ((gamma_table_base[i] % 4) << 6)
>> +                               | (gamma_table_base[i] >> 2);
>> +#else
>>                        gamma_table_base[i] = (gamma_table_base[i] << 2)
>>                                | ((gamma_table_base[i] >> 6) & 0x03);
>> +#endif
>>                }
>>        }
>> -
>>        debug("update-lcdc: HW - %p\n Disabling DIU\n", hw);
>>
>>        /* Program DIU registers */
>> diff --git a/include/configs/ads5121.h b/include/configs/ads5121.h
>> index 21374e9..ae98359 100644
>> --- a/include/configs/ads5121.h
>> +++ b/include/configs/ads5121.h
>> @@ -45,6 +45,7 @@
>>  */
>>  #define CONFIG_E300            1       /* E300 Family */
>>  #define CONFIG_MPC512X         1       /* MPC512X family */
>> +#define CONFIG_ADS5121         1       /* ADS5121 board  */
>>  #define CONFIG_FSL_DIU_FB      1       /* FSL DIU */
>>
>>  /* video */
>> @@ -222,6 +223,7 @@
>>  #define CFG_MONITOR_LEN                (256 * 1024)            /* Reserve 256 kB for Mon */
>>  #ifdef CONFIG_FSL_DIU_FB
>>  #define CFG_MALLOC_LEN         (6 * 1024 * 1024)       /* Reserved for malloc */
>> +#define CFG_SPLASH_SIZE                (2 * 1024 * 1024)
>>  #else
>>  #define CFG_MALLOC_LEN         (512 * 1024)
>>  #endif
>> --
>> 1.5.2.4
>>
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by: Microsoft
>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> _______________________________________________
>> U-Boot-Users mailing list
>> U-Boot-Users at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/u-boot-users
>>
>
>
>
> --
> Grant Likely, B.Sc., P.Eng.
> Secret Lab Technologies Ltd.
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
>




More information about the U-Boot mailing list