2

我一直在尝试在设备上设置简单的帧缓冲区,但设备树出现问题。目前我的设置和文档中的差不多:

chosen {
    #address-cells = <1>;
    #size-cells = <1>;

    framebuffer0: framebuffer@1817000
    {
            compatible = "simple-framebuffer";
            reg = <0x1817000 (1920*1080*4)>;
            width = <1920>;
            height = <1080>;
            stride = <(1920*4)>;
            format = "a8b8g8r8";
    };

};

在启动期间,我得到的错误是:

simple-framebuffer chosen:framebuffer@1817000: No memory resource
simple-framebuffer: probe of chosen:framebuffer@1817000 failed with error -22

从 simplefb 代码中,我看到它在以下方面失败:

  mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  if (!mem) {
          dev_err(&pdev->dev, "No memory resource\n");
          return -EINVAL;
  }

一些互联网消息来源告诉我 IORESOURCE_MEM 是 reg 属性,它是被定义的,所以我对可能出现的问题感到困惑。

4

1 回答 1

1

我有一个类似的问题,我添加了范围;和status="okay"它对我有用。Zynq 也是如此。

chosen {
    #address-cells = <0x1>;
    #size-cells = <0x1>;
    ranges;
    framebuffer0: framebuffer@1817000
    {
            compatible = "simple-framebuffer";
            reg = <0x1817000 (1920*1080*4)>;
            width = <1920>;
            height = <1080>;
            stride = <(1920*4)>;
            format = "a8b8g8r8";
            status = "okay"
    };

};
于 2017-08-22T18:49:01.310 回答