none
customized logo at booting time RRS feed

  • Question

  • Dear All,

              I am trying to set logo at booting time. Using AM335x BSP, platform WinCE7.

              I found one file bsp_logo.c

              C:\WINCE700\platform\AM335x\SRC\BOOTLOADER\DISPLAY\bsp_logo.c

               I copied this logo into SD card and if board boots for SD card card by using ShowSDLogo() function from bsp_logo.c 

              file its working fine.

              If i want to boot from NAND how to set this logo But I can't find a file related to nand logo file



    Wednesday, October 14, 2015 10:15 AM

Answers

All replies

  • Hi Vamsikolla,

    This BSP is supported through Adeneo Embedded. http://www.ti.com/devnet/docs/catalog/embeddedsoftwarefulldetails.tsp?productId=13120

    Please use the contact details given when you downloaded the BSP.

    NOTE: The C:\WINCE700\platform\TI_EVM_3530\SRC\BOOT\DISPLAY\bsp_logo.c has a ShowLogo call but as this is a completely different BSP I am not sure if it would be compatible but it is something you could review.

    Sincerely,

    IoTGirl

    Wednesday, October 14, 2015 5:27 PM
    Moderator
  • Thanks for reply

    I Got something related to Writing Splashcreen image to flash Memory in the following file

    C:\WINCE700\platform\AM335x\SRC\BOOTLOADER\EBOOT\flash.c 

    In this file one function like WriteFlashLogo() by using this is function is it possible to set boot logo...?

    while booting from SD card i copied logo into SD card and logo format is .bmp.

    If I copy same logo to NAND I am getting error like BL_IMAGE_TYPE_UNKNOWN.

    Is their any specific Image file format for logo..?

    Thursday, October 15, 2015 6:16 AM
  • Hi Vamsikolla

    In your flat release directory (something like C:\WINCE700\OsDesign\CM_T335\CM_T335\RelDir\CM_T335_BSP_ARMV7_Release)

    do you have the following files:-

    AM33X-nand-logo.raw
    MLO.uart
    logo.bmp

    Can you get debug message from serial port to a PC terminal running Hyperterm when the AM335 boots? (the output from XLDR and EBOOT)

    If you do do the following:-

    1. Copy MLO.uart to SD Card and rename to MLO

    2. Place SD card in dev board SD slot

    3. Connect your dev board to PC with something like Hyperterm or similar running (mine is set to 115200N81)

    4. Power up AM335, should get repeat character every 10secs or so on terminal.

    5. On Hyperterm, go to transfer and select XModem. Browse to AM33X-nand-logo.raw  and start transfer (takes about 4 mins)

    6. Once done, remove SD Card and reboot. Should come up with Splash Screen.

    This was the only way I could find to get the Logo into NAND.

    Also see https://social.msdn.microsoft.com/Forums/en-US/94b1f48a-d62c-47e7-89de-3368da47877c/wec7-getting-logobmp-to-display-whilst-booting-from-sd-card?forum=winembplatdev

    Good luck

    Terry

    Thursday, October 15, 2015 2:40 PM
  • There should be a function like: BOOL WriteFlashLogo( UINT32 address, UINT32 size )

    On my platform this is under: C:\WINCE800\platform\AM335X\SRC\BOOTLOADER\EBOOT\flash.c which is the same place as: BOOL WriteFlashEBOOT( UINT32 address, UINT32 size ), if it isn't you should be able to adapt this function to write the logo as the functions are the same with just a few of the #defines for sizes changed.

    The process to write the logo file to flash is the same as writing EBOOT to flash (through telnet) as described by Terry or you might have a slightly different way.

    In bsp_logo.c there should be a similar looking function to ShowSDLogo() called ShowLogo(UINT32 flashAddr, UINT32 offset), this will read the logo from flash and show it on boot, if you don't have this function, you can adapt ShowSDLogo() to read from flash (same memory space as where WriteFlashLogo() wrote the logo to) as they are also fairly similar.


    • Edited by tomleijen Thursday, October 15, 2015 7:47 PM
    Thursday, October 15, 2015 7:47 PM
  • hi tomleijen

    I copied logo.bmp file into NAND.

    The following code from ShowLogo() function

    here i am getting wSignature=0x0000dfe9 so its not entering into if condition

    Still boot logo is not showing.

    //  The LOGO reserved NAND flash region contains the BMP file

    OALFlashStoreBufferedRead( hFlash, offset, (UCHAR*) &wSignature, sizeof(wSignature), FALSE ); // Check for 'BM' signature if( wSignature == 0x4D42 ) { // Read the offset to the pixel data OALFlashStoreBufferedRead( hFlash, offset + 10, (UCHAR*) &dwOffset, sizeof(dwOffset), FALSE ); OALLog(L"boot from nand--1--\r\n"); // Read the pixel data with the given offset OALFlashStoreBufferedRead( hFlash, offset + dwOffset, pChar, dwLength, FALSE ); }



    Friday, October 16, 2015 1:11 PM
  • I don't know anything about your BSP, but a quick search for "Windows BMP Format" returns everything that you need.  Both Bing and Google have

    https://en.wikipedia.org/wiki/BMP_file_format as the first result.

    In that Wikipedia page, you will see that at offset zero (0x0) where you read the wSignature, the value should be "BM" (0x4D42) as the comment in your code shows.  There are some other possibilities, but it should be BM.

    As your results show that the values aren't ASCII values, then probably one or more of the following must be true:

        1. You didn't correctly write your logo.bmp to NAND

        2. You didn't write logo.bmp to the correct location in your NAND flash.

        3. You are reading from a different address than you wrote.

        4. Your logo.bmp isn't a compatible Windows BMP file.



    Bruce Eitman (eMVP)
    Senior Engineer
    Bruce.Eitman AT Eurotech DOT com
    My BLOG http://geekswithblogs.net/bruceeitman
    I work for Eurotech

    Friday, October 16, 2015 5:39 PM
    Moderator
  • What bruce says is correct, you are either writing it to the wrong place, or trying to read from the wrong place in memory, I don't think I can help much with this since it does vary a lot across platforms, memory type and OS.

     Writing the logo (inside WriteFlashLogo):
     hFlash = OALFlashStoreOpen(g_ulFlashBase);

    offset = IMAGE_XLDR_BOOTSEC_NAND_SIZE + IMAGE_EBOOT_BOOTSEC_NAND_SIZE;
        if (!OALFlashStoreWrite(hFlash, offset, pData, IMAGE_BOOTLOADER_BITMAP_SIZE, FALSE, FALSE)){

    Reading the logo (inside BLShowLogo):

    ShowLogo(g_ulFlashBase, IMAGE_XLDR_BOOTSEC_NAND_SIZE + IMAGE_EBOOT_BOOTSEC_NAND_SIZE);

    The g_ulFlashBase is the base memory location all the other WriteFlash() functions will be referring to this as well.

    The offset is platform dependent (depends how you have configured your platform.

    Also the logo.bmp must be 16bit BMP format.

    Sunday, October 18, 2015 7:37 PM
  • Thanks for reply

      Actually i tried two ways to copy logo.bmp to NAND

    1> After booting board using LCD I copied from Sd card to Mounted_Volume(NAND) like graphically

         in this case also boot logo not coming

     2> I am  copying logo.bmp to NAND from boot loader like eboot.bin 

          but I am getting error like BL_IMAGE_TYPE_UNKNOWN.

     is their any specific location to copy in NAND

    Monday, October 19, 2015 7:15 AM
  • Hi Vamsi,

    Why you are copying Eboot.bin, as you want to boot from NAND

    Monday, October 19, 2015 7:20 AM
  • Hi Vamsikolla

    Have you tried downloading AM33X-nand-logo.raw to NAND as I suggested?

    This file contains XLDRNAND, EBOOTNAND and Logo.bmp all in the correct place.

    When its flashed to NAND by downloading with XModem it all seems to work. No need to do what you're doing with code.

    In the link I gave the steps I took to get logo.bmp in the correct format:-

    STEPS TO CREATE SPLASH SCREEN
    =============================
    1. Create required splash screen as 32 bit .png file
    2. Make sure X and Y pixel sizes are as per LCD display.
    3. Flip the image top to bottom (otherwise it will be upside down)
    4. Use the tool at https://pngtobmp32.codeplex.com/ to convert to a 32 bit .bmp file which is suitable as WEC7 Splash Screen.
    5. Ensure bitmap is called logo.bmp. Use Windows Explorer to copy to SD Card.
    6. ReBoot system - new Splash Screen should be displayed as WEC7 comes up.

    Monday, October 19, 2015 8:31 AM
  • This method won't work:

    "After booting board using LCD I copied from Sd card to Mounted_Volume(NAND) like graphically"

    This method will work but I think you are doing it wrong:

    "I am  copying logo.bmp to NAND from boot loader like eboot.bin "

    You need to modify your bootloader, you cannot use the same function as you used to program eboot.bin, otherwise you will just overwrite eboot.bin. You can copy that function and modify it by changing the memory location to where you save the logo, this memory location must match the memory location used by ShowLogo() and you must use memory locations in a way that you cannot overwrite XLDR, EBOOT or NK

    Terence is suggesting that you use a 32 bit .bmp file, this might be correct for you but, in my case, I needed a 16 bit .bmp file that wasn't flipped for my AM335X bsp.

    Exact locations and bit sizes depend on what hardware configuration you are using (memory, display interface, display panel etc...)

    Monday, October 19, 2015 8:11 PM
  • Hi Terence,

    I Copied MLO.uart to SD Card and rename to MLO

    For getting debug messages I am using tera term tool 

    while booting from SD card I am not getting any thing on tera term

    On Tera term I did following steps

    From menu I selected  File -> transfer -> XModem -> send and Browse to AM33X-nand-logo.raw 

    its showing following Image


    After this I removed SD card and I am trying to boot from NAND but still boot logo was not visible


    • Edited by vamsikolla Tuesday, October 20, 2015 9:27 AM
    Tuesday, October 20, 2015 9:24 AM
  • Hi Vamsikolla

    When I first switch on MLO.uart (renamed to MLO) I get:-

    CCCCCCCC
    Texas Instruments Windows CE SD/UART X-Loader for SubArctic 335X
    Built Apr  8 2014 at 10:55:43
    Version BSP_WINCE_ARM_A8 02.30.00.01

    This XLDR
      o  dnld image file to RAM
      o  saves the image file to NAND flash

    BEFORE

    FMD_Init succeeded

    FMD_GetInfo succeeded

    DNLD Image to RAM @ 0x8FE00000

    *** I now get a char every 10secs saying its ready for download
    *** I now start the XModem download of  AM33X-nand-logo.raw . When it finishes I get something like:-

    Downloaded size = 0x000C0000

    Write Image to NAND

    Wrote to block 0x00

    Wrote to block 0x01

    Wrote to block 0x02

    Wrote to block 0x03

    Wrote to block 0x04

    Wrote to block 0x05

    Receive return code 0x01
    blocks written 0x06
    bytes rx 0x000C0000
    pkts rx 0x00001800
    acks sent 0x00001801
    naks sent 0x0000000C
    can sent 0x00000000
    others sent 0x00000000
    chksum errs 0x00000000
    dup pkts 0x00000000

    *** At this point the SD card can be removed and the board booted from NAND.

    Not sure why you're not getting anything from MLO on Teraterm

    Regards
    Terry

     

    Tuesday, October 20, 2015 10:56 AM
  • Hello,

    The AM335x reference BSP works with the reference TFT displays. If you are not using one of these displays (the one provided with the SK or the EVM), you will first have to adapt the display settings to work with your display. These settings are found at \WINCE700\PLATFORM\AM33X_BSP\SRC\BSP_COMMON\LCDC. Double check that all of the settings are correct for your display.

    When the eboot image is initializing it will attempt to read the logo image from the SD card or from the NANDFlash. First, make sure that the call to BLShowLogo() is not compiled out. Then make sure that ShowLogo() is called for NANDFlash logo.

    In order to get the logo into nandflash, if the serial programming isn't working, you could modify the bootloader to support downloading the logo from Platform Builder or from the SD card. You can modify flashmenu.c to include a new routine (eboot menu item) that uses "BLSDCardReadData()" to read logo.nb0 from the SD card into memory. Once you have it in memory you can write it into nandflash. To write it into nandflash, you could create a routine which uses the OALFlashStore interface (OALFlashStoreOpen, OALFlashStoreWrite() ) to write the image into nandflash at the correct offset. For an example of how to use these functions, look at "WriteFlashLogo" in flash.c. The logo file itself is stored at "IMAGE_XLDR_BOOTSEC_NAND_SIZE + IMAGE_EBOOT_BOOTSEC_NAND_SIZE" just after the eboot image in NANDFlash.

    Thursday, October 29, 2015 9:56 PM