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.

Beaglebone black and custom display using TI SDK 6

Other Parts Discussed in Thread: DA8XX

Dear TI,

I am trying to test out the Beaglebone Black with the largest display size the Am335x supports (WXGA). When trying to do this, I get DMA allocation issues.  I tried modifying the Kconfig file as well as the DMA settings to 8 in the menuconfig.  However, I am still getting errors.  I was curious if there is another setting that I have to use to ensure larger resolutions on the TI SDK than the 800x480 display that is present:

Here is the trace:

[    1.042510]  da8xx_lcdc.0: alias fck already exists

[    1.048156] da8xx_lcdc da8xx_lcdc.0: GLCD: Found DISPLAY panel

[    1.055053] ------------[ cut here ]------------

[    1.059936] WARNING: at mm/page_alloc.c:2095 __alloc_pages_nodemask+0x4f4/0x664()

[    1.067779] Modules linked in:

[    1.071014] Backtrace:

[    1.073608] [<c0017dbc>] (dump_backtrace+0x0/0x10c) from [<c0414098>] (dump_stack+0x18/0x1c)

[    1.082458]  r6:c0080954 r5:00000009 r4:00000000 r3:c05f7f4c

[    1.088439] [<c0414080>] (dump_stack+0x0/0x1c) from [<c003f1b0>] (warn_slowpath_common+0x54/0x6c)

[    1.097778] [<c003f15c>] (warn_slowpath_common+0x0/0x6c) from [<c003f1ec>] (warn_slowpath_null+0x24/0x2c)

[    1.107818]  r8:c05d60f8 r7:c0635434 r6:00000000 r5:00000000 r4:c0653d68

[    1.114685] r3:00000009

[    1.117462] [<c003f1c8>] (warn_slowpath_null+0x0/0x2c) from [<c0080954>] (__alloc_pages_nodemask+0x4f4/0x664)

[    1.127899] [<c0080460>] (__alloc_pages_nodemask+0x0/0x664) from [<c0019bd8>] (__dma_alloc+0xa0/0x304)

[    1.137664] [<c0019b38>] (__dma_alloc+0x0/0x304) from [<c001a2f0>] (dma_alloc_coherent+0x64/0x6c)

[    1.147003] [<c001a28c>] (dma_alloc_coherent+0x0/0x6c) from [<c0409e6c>] (fb_probe+0x2dc/0x708)

[    1.156127]  r7:df242608 r6:df231650 r5:c06134c8 r4:004007ff

[    1.162109] [<c0409b90>] (fb_probe+0x0/0x708) from [<c0221dd8>] (platform_drv_probe+0x1c/0x20)

[    1.171173] [<c0221dbc>] (platform_drv_probe+0x0/0x20) from [<c02207ec>] (driver_probe_device+0xb4/0x2c0)

[    1.181243] [<c0220738>] (driver_probe_device+0x0/0x2c0) from [<c0220ad8>] (__device_attach+0x48/0x4c)

[    1.191009]  r8:00000000 r7:c05f7730 r6:c0220a90 r5:df242608 r4:c061338c

[    1.198059] [<c0220a90>] (__device_attach+0x0/0x4c) from [<c021f4b4>] (bus_for_each_drv+0x4c/0x94)

[    1.207489]  r5:df242608 r4:00000000

[    1.211242] [<c021f468>] (bus_for_each_drv+0x0/0x94) from [<c022062c>] (device_attach+0x90/0xa8)

[    1.220489]  r6:df242610 r5:df24263c r4:df242608

[    1.225341] [<c022059c>] (device_attach+0x0/0xa8) from [<c021fdf4>] (bus_probe_device+0x2c/0x48)

[    1.234558]  r6:df242610 r5:00000000 r4:df242608 r3:00000001

[    1.240539] [<c021fdc8>] (bus_probe_device+0x0/0x48) from [<c021e0c4>] (device_add+0x484/0x574)

[    1.249694] [<c021dc40>] (device_add+0x0/0x574) from [<c0222380>] (platform_device_add+0xfc/0x1e8)

[    1.259124] [<c0222284>] (platform_device_add+0x0/0x1e8) from [<c0036b70>] (omap_device_register+0x38/0x5c)

[    1.269348]  r7:c04fa824 r6:df244b40 r5:00000000 r4:df242600

[    1.275329] [<c0036b38>] (omap_device_register+0x0/0x5c) from [<c0036c90>] (omap_device_build_ss+0xfc/0x148)

[    1.285644]  r4:df242600 r3:00000000

[    1.289398] [<c0036b94>] (omap_device_build_ss+0x0/0x148) from [<c0036d2c>] (omap_device_build+0x50/0x58)

[    1.299438]  r7:00000040 r6:c05f60f4 r5:c05f0650 r4:00000000

[    1.305419] [<c0036cdc>] (omap_device_build+0x0/0x58) from [<c05a0320>] (am33xx_register_lcdc+0x60/0xb0)

[    1.315399] [<c05a02c0>] (am33xx_register_lcdc+0x0/0xb0) from [<c0033bac>] (lcdc_init+0x94/0x108)

[    1.324707]  r6:00000000 r5:c05e90e4 r4:00000006

[    1.329589] [<c0033b18>] (lcdc_init+0x0/0x108) from [<c0033508>] (_configure_device+0xcc/0xe4)

[    1.338623]  r6:00000006 r5:c0640f8c r4:c05f5de0 r3:c0033b18

[    1.344604] [<c003343c>] (_configure_device+0x0/0xe4) from [<c0033820>] (am335x_evm_setup+0x300/0x5f8)

[    1.354370]  r7:00000040 r6:df22fb40 r5:00000000 r4:c0640f8c

[    1.360351] [<c0033520>] (am335x_evm_setup+0x0/0x5f8) from [<c023183c>] (at24_probe+0x464/0x510)

[    1.369567]  r6:df22fb40 r5:df0ab020 r4:df0ab000

[    1.374450] [<c02313d8>] (at24_probe+0x0/0x510) from [<c02c7f0c>] (i2c_device_probe+0x90/0xe8)

[    1.383514] [<c02c7e7c>] (i2c_device_probe+0x0/0xe8) from [<c02207ec>] (driver_probe_device+0xb4/0x2c0)

[    1.393371]  r6:c06381f8 r5:c0662580 r4:df0ab020 r3:c02c7e7c

[    1.399353] [<c0220738>] (driver_probe_device+0x0/0x2c0) from [<c0220a8c>] (__driver_attach+0x94/0x98)

[    1.409118]  r8:00000000 r7:df22fcc0 r6:df0ab054 r5:c061814c r4:df0ab020

[    1.416198] [<c02209f8>] (__driver_attach+0x0/0x98) from [<c021f548>] (bus_for_each_dev+0x4c/0x94)

[    1.425598]  r6:c02209f8 r5:c061814c r4:00000000 r3:c02209f8

[    1.431579] [<c021f4fc>] (bus_for_each_dev+0x0/0x94) from [<c0220414>] (driver_attach+0x24/0x28)

[    1.440795]  r6:c0623b44 r5:c061814c r4:c061814c

[    1.445648] [<c02203f0>] (driver_attach+0x0/0x28) from [<c0220068>] (bus_add_driver+0x188/0x270)

[    1.454895] [<c021fee0>] (bus_add_driver+0x0/0x270) from [<c0220fa8>] (driver_register+0x80/0x144)

[    1.464324] [<c0220f28>] (driver_register+0x0/0x144) from [<c02c9fbc>] (i2c_register_driver+0x34/0xe8)

[    1.474121] [<c02c9f88>] (i2c_register_driver+0x0/0xe8) from [<c05b7be0>] (at24_init+0x48/0x54)

[    1.483245]  r5:c05d2644 r4:c05d2430

[    1.486999] [<c05b7b98>] (at24_init+0x0/0x54) from [<c000876c>] (do_one_initcall+0x128/0x1a8)

[    1.495971] [<c0008644>] (do_one_initcall+0x0/0x1a8) from [<c059888c>] (kernel_init+0x84/0x120)

[    1.505126] [<c0598808>] (kernel_init+0x0/0x120) from [<c0042010>] (do_exit+0x0/0x65c)

[    1.513458]  r5:c0598808 r4:00000000

[    1.517242] ---[ end trace 7819ea468c96703d ]---

[    1.522125] da8xx_lcdc da8xx_lcdc.0: GLCD: kmalloc for frame buffer failed

[    1.529357] da8xx_lcdc: probe of da8xx_lcdc.0 failed with error -22

  • Hi Dean,
     
    What settings are you trying to use, that cause this error?
  • Here are the video sizes I am shooting for:

     .name = "MY_DISPLAY",
                    .width = 1366,
                    .height = 768,
                    .hfp = 80,
                    .hbp = 200,
                    .hsw = 130,
                    .vfp = 3,
                    .vbp = 22,
                    .vsw = 5,
                    .pxl_clk = 70000000,
                    .invert_pxl_clk = 0,

    I have modified the Kconfig file to 12 zones:

    config FORCE_MAX_ZONEORDER
            int "Maximum zone order"
            range 12 64 if ARCH_SHMOBILE || SOC_AM33XX
     default "12" if  SOC_OMAPAM33XX
     default "9" if SA1111
     default "12"

    Finally I did modify the dma settings in the tisdk_am335x-evm_defconfig:

    #
    # Frame buffer hardware drivers
    #
    # CONFIG_FB_S1D13XXX is not set
    # CONFIG_FB_TMIO is not set
    # CONFIG_FB_SMSCUFX is not set
    # CONFIG_FB_UDL is not set
    CONFIG_FB_DA8XX=y
    CONFIG_FB_DA8XX_CONSISTENT_DMA_SIZE=12 

  • Jason,

    It looks like you are already abiding by the information from these sources, but just to be sure can you confirm you have seen and followed the steps in:

    1. The LCD section of the board port lab: http://processors.wiki.ti.com/index.php/Sitara_Linux_Training:_Linux_Board_Port#Adding_LCD_and_Touchscreen_Support


    2. The verified answer in this forum post: http://e2e.ti.com/support/arm/sitara_arm/f/791/t/189862.aspx

    Regards,

    Josh

  • Josh,

    Thanks for your prompt reply.  Yes, I have followed the steps in both the pieces you mention.  I now have an image on the screen but I am still struggling with allocating anything over the 4Mb boundary even though I changed the settings as indicated in your posts.

    Is there a way to identify what the DMA allocation in linux is set at run time so that I can validate that my kernel changes for the configuration are taking effect?

    Sincerely,

    Jason 

  • Hey Jason,


    Are you setting your kernel configuration by directly modifying .config, or are you using menuconfig?

    If you are manually editing .config, are you running make oldconfig afterwards?  If you don't do that, in my experience the kernel will just revert your changes when you build uImage.


    Josh

  • Dear TI,

                   I am trying to test out dynamic DNS server in the Beaglebone Black

               i Cross-Compiled Dyndns-2012.0112 package and flashing the beaglebone black board

    but coming error..........Plz Solve my Problem    .... I send Log file...........Plz reply me

    Thank & Regerds

    Mohan Garg

    am335x-evm login: root
    root@am335x-evm:~# dyndns
    /usr/bin/dyndns: line 70: our: command not found
    /usr/bin/dyndns: line 78: use: command not found
    /usr/bin/dyndns: line 79: use: command not found
    /usr/bin/dyndns: line 80: use: command not found
    /usr/bin/dyndns: line 81: use: command not found
    /usr/bin/dyndns: line 82: syntax error near unexpected token `('
    /usr/bin/dyndns: line 82: `use autouse 'Pod::Text'     => qw( pod2text );'
    root@am335x-evm:~# perl
    -sh: /usr/bin/perl: cannot execute binary file

     

  • Josh,

    I have modified using menuconfig.  But I am not sure after I made the kernel properly after that.  I saved the file and then ran make linux at the top of the SDK.  When I am saving this modfieid .config can you outline the steps to build after that and verify?

    Thanks Josh!

    -Jason

  • Hey Jason,


    Try following these steps:


    1. go to the linux source in the SDK
        cd ti-sdk-am335x-evm-06.00.00.00/board-support/linux-3.2.0-psp04.06.00.11/


    2. set up your toolchain path
        export PATH=$PATH:/home/user/ti-sdk-am335x-evm-06.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/

    3. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-   tisdk_am335x-evm_defconfig

    4. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

    5. set your options in menuconfig and save them

    6. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage

    7. grab uImage from arch/arm/boot and copy to your boot partition.


    Let me know how it goes.


    Josh

  • Josh,

    Thanks for the feedback and sorry for the delay. I did finally try this and get the same feedback as before.  I can do a static image using Starterware with the display settings but when I import the same changes into the linux SDK I am struggling with this.  Is there someone who has done a larger display in the SDK than what is currently present?

    Thanks,

    Jason 

  • Hey Jason,

    In our new SDK 7.0 which uses a 3.12 kernel, resolutions up to 1080p24 will work with the LCD controller.

    For SDK 6.0, I haven't gotten to test resolutions greater than those of the LCDs on our EVMs (800x480).  I will see if I can get a set up for SDK 6.0 that will allow me to test a higher resolution and get back to you with my results.

    Regards,

    Josh