This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3874 framebuffer from u-boot

Hi!

I'm reviewing the code used in uboot in order to display a logo on screen. I've seen the code is based in a firmware binary loaded by uboot, see the 'vpdma_firmware[]' array from '0008-ti814x-ti816x-adding-the-vpdma-firmware-1B2-for-logo.patch'.

I would like to know if there is anything in common with the firmware dm814x_hdvpss.xem3 loaded once the linux kernel is loaded using the script /etc/init.d/load-hd-firmware.sh? I would like to know is it possible to do all the firmware loading stuff in uboot to display a loading logo once and avoid video going off and on when the firmware is loaded from linux script.

Regards

Jorge

  • Hi Jorge,

    Jorge Fernandez said:
    I would like to know if there is anything in common with the firmware dm814x_hdvpss.xem3 loaded once the linux kernel is loaded using the script /etc/init.d/load-hd-firmware.sh?

    I think both firmwares are using the VPDMA module that is inside the HDVPSS subsystem.

    Jorge Fernandez said:
    I would like to know is it possible to do all the firmware loading stuff in uboot

    I think this is possible, but not easy to implement. You can try putting a stripped version of XEM3 image into one of the partitions in the flash and then u-boot will be able to load the image into RAM. Then, the ELF loader (added to U-boot) is taking over from there and is reading all of the sections out of the ELF image and putting them where they go for the Cortex-M3 to use, as expected.  Then U-boot could continue booting linux, as usual, from that point in time.

    refer also to the below e2e threads:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/p/288379/1012595.aspx

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/p/150496/733385.aspx

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/209073.aspx

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/220648.aspx

    Regards,
    Pavel

  • Hi Pavel,

    I've done a simple test only changing the load-hd-firmware.sh to simulate that the firmware is loaded before anything but there are some errors. It seems that the syslink.ko must be loaded before running 'firmware_loader' because it tries to do something with devices created by syslink.ko

    With

            prcm_config_app s
            echo "Loading HDVPSS Firmware"
            firmware_loader $HDVPSS_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvpss.xem3 start -mmap /usr/share/ti/ti-media-controller-utils/mm_dm81xxbm_am3874unidesa.bin
            modprobe syslink TRACE=1 TRACECLASS=3 TRACEFAILURE=1

    I get:

    DM814X prcm_config_app version: 2.0.0.1
    Doing PRCM settings...
            PRCM for IVHD0 is in Progress, Please wait..... 
                            BW Phy Addr : 0x48180600 Data : 0x00000001
                            AW Phy Addr : 0x48180600 Data : 0x00000002
                            Phy Addr : 0x48180c04 Data : 0x00000037
                            BW Phy Addr : 0x48180620 Data : 0x00070000
                            AW Phy Addr : 0x48180620 Data : 0x00050002
                            BW Phy Addr : 0x48180624 Data : 0x00030000
                            AW Phy Addr : 0x48180624 Data : 0x00010002
                            Phy Addr : 0x48180600 Data : 0x00000102
                            BW Phy Addr : 0x48180c10 Data : 0x00000007
                            AW Phy Addr : 0x48180c10 Data : 0x00000003
                            Phy Addr : 0x48180c14 Data : 0x00000004
                            BW Phy Addr : 0x58088000 Data : 0x600ebd46
                            AW Phy Addr : 0x58088000 Data : 0xeafffffe
                            BW Phy Addr : 0x58098000 Data : 0x574e23a8
                            AW Phy Addr : 0x58098000 Data : 0xeafffffe
                            BW Phy Addr : 0x48180c10 Data : 0x00000003
                            AW Phy Addr : 0x48180c10 Data : 0x00000000
                            Phy Addr : 0x48180c14 Data : 0x00000007
            PRCM for IVHD0 is Done Successfully 
    PRCM Initialization completed
    Loading HDVPSS Firmware
    FIRMWARE: I2cInit will be done by M3
    FIRMWARE: memory map bin file: /usr/share/ti/ti-media-controller-utils/mm_dm81xxbm_am3874unidesa.bin
    FIRMWARE: isI2cInitRequiredOnM3: 1
    MemCfg: DCMM (Dynamically Configurable Memory Map) Version :  2.1.2.1
    OsalDrv driver open: /dev/syslinkipc_Osal: No such file or directory
    OsalDrv driver close: /dev/syslinkipc_Osal: Bad file descriptor
    /dev/syslinkipc_MultiProc: No such file or directory
    MultiProc driver close: : Bad file descriptor
    SharedRegion driver open: : No such file or directory
    SharedRegion driver close: : Bad file descriptor
    /dev/syslinkipc_GateMP: No such file or directory
    /dev/syslinkipc_MessageQ: No such file or directory
    MessageQ driver close: : Bad file descriptor
    Notify driver open: /dev/syslinkipc_Notify: No such file or directory
    Notify driver close: /dev/syslinkipc_Notify: Bad file descriptor
    ProcMgr driver open: /dev/syslinkipc_ProcMgr: No such file or directory
    ProcMgr driver close: /dev/syslinkipc_ProcMgr: Bad file descriptor
    /dev/syslinkipc_HeapBufMP: No such file or directory
    /dev/syslinkipc_HeapMemMP: No such file or directory
    /dev/syslinkipc_ListMP: No such file or directory
    /dev/syslinkipc_RingIO: No such file or directory
    RingIO driver close: : Bad file descriptor
    /dev/syslinkipc_RingIOShm: No such file or directory
    RingIO driver close: : Bad file descriptor
    /dev/syslinkipc_ClientNotifyMgr: No such file or directory
    ClientNotifyMgr driver close: : Bad file descriptor
    /dev/syslinkipc_FrameQBufMgr: No such file or directory
    FrameQBufMgr driver close: : Bad file descriptor
    /dev/syslinkipc_FrameQ: No such file or directory
    FrameQ driver close: : Bad file descriptor
    /dev/syslinkipc_Ipc: No such file or directory
    ProcMgr driver open: /dev/syslinkipc_ProcMgr: No such file or directory
    ProcMgr driver close: /dev/syslinkipc_ProcMgr: Bad file descriptor

    and nothing is displayed...

    Regards,

    Jorge