设备树中的简单帧缓冲区
Simple framebuffer in device-tree
我一直在尝试在设备上设置简单的帧缓冲区,但我遇到了设备树问题。目前我的设置和文档中的差不多:
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 属性,它的定义让我感到困惑,不知道哪里出了问题。
我遇到了类似的问题
我添加了范围;和 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"
};
};
我一直在尝试在设备上设置简单的帧缓冲区,但我遇到了设备树问题。目前我的设置和文档中的差不多:
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 属性,它的定义让我感到困惑,不知道哪里出了问题。
我遇到了类似的问题 我添加了范围;和 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"
};
};