Unable to allocate framebuffer memory i.MX6 HDMI fb

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Unable to allocate framebuffer memory i.MX6 HDMI fb

3,910 Views
eugenevolkov
Contributor IV

Hi!

In load kernel i received error.

mxc_sdc_fb fb.17: Unable to allocate framebuffer memory

detected fb_set_par error, error code: -12

My HDMI monitor not work.

I do not know why, but I guess that my board is much less memory than sabreeai

where I need to change the size of the DMA and the video buffer size?

i set boot args? but this not work.

video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 fbmem=32M fb0base=0x27b00000 mem=256M vmalloc=100M

0 Kudos
Reply
3 Replies

1,903 Views
igorpadykov
NXP Employee
NXP Employee

Hi Eugene

you can also try:

imx_v7_defconfig <---- change CONFIG_CMA_SIZE_MBYTES size

https://community.freescale.com/thread/328377

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply

1,903 Views
eugenevolkov
Contributor IV

Hi

I brought the console address and size of the buffer that is not allocated -


allocated fb @ paddr=0xFFFFFFFF, size=16727040.

Size is good, but addres is wrong.


0 Kudos
Reply

1,903 Views
eugenevolkov
Contributor IV

Hi, Igor.

I change CONFIG_CMA_SIZE_MBYTES. But this not help.

I suppose that it is necessary to reduce the size of the DMA, since initialization by DMA is not allocated area

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    vmalloc : 0x90800000 - 0xff000000   (1768 MB)

    lowmem  : 0x80000000 - 0x90000000   ( 256 MB)

    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)

    modules : 0x7f000000 - 0x7fe00000   (  14 MB)

      .text : 0x80008000 - 0x806db714   (6990 kB)

      .init : 0x806dc000 - 0x80721300   ( 277 kB)

      .data : 0x80722000 - 0x8075ece0   ( 244 kB)

       .bss : 0x8075ece0 - 0x807c51dc   ( 410 kB)

maybe I'm wrong.

     fbi->screen_base = dma_alloc_writecombine(fbi->device,  fbi->fix.smem_len,  (dma_addr_t *)&fbi->fix.smem_start,  GFP_DMA | GFP_KERNEL);

            if (fbi->screen_base == 0) {

                 dev_err(fbi->device, "Unable to allocate framebuffer memory\n");

                 fbi->fix.smem_len = 0;

                 fbi->fix.smem_start = 0;

Here is a piece of code that generates the error.

DT_MACHINE_START(IMX6Q, "Freescale i.MX6 Quad/DualLite (Device Tree)")

  /*

  * i.MX6Q/DL maps system memory at 0x10000000 (offset 256MiB), and

  * GPU has a limit on physical address that it accesses, which must

  * be below 2GiB.

  */

  .dma_zone_size = (SZ_2G - SZ_256M),

Here's what I found. I not have 2GB  memory for DMA. I wont change this?

0 Kudos
Reply