当前位置:首页 > 技术 > LINUX > 正文内容

更换了800*480的屏幕以后报错[记录]

Watrt10个月前 (04-02)LINUX6150

更换了800*480的屏幕以后,报错:

[    0.138371] rockchip-drm display-subsystem: bound ff990000.vop (ops 0xb039a8e4)
[    0.138480] rockchip-drm display-subsystem: bound ff000000.syscon:rgb (ops 0xb039b444)
[    0.139121] rockchip-drm display-subsystem: failed to parse loader memory
[    0.139394] [drm:rockchip_gem_create_object] *ERROR* failed to allocate 1536000 byte dma buffer
[    0.139418] rockchip-drm display-subsystem: [drm:rockchip_drm_fbdev_init] *ERROR* Failed to set initial hw config - -12.
[    0.139819] rockchip-drm display-subsystem: master bind failed: -12
[    0.139913] rockchip-drm: probe of display-subsystem failed with error -12

应该是ARGB的缓存空间800*480*4=1536000


630QX~5{{B$XN3I3`_PUVUL.png

查源代码是这个位置申请的DMA内存

解决方法:

改设备树

reserved-memory {
        #address-cells = <1>;
        #size-cells = <1>;
        ranges;
        linux,cma {
            compatible = "shared-dma-pool";
            inactive;
            reusable;
            size = <0x1000000>;
            linux,cma-default;
        };
        drm_logo: drm-logo@00000000 {
            compatible = "rockchip,drm-logo";
            reg = <0x0 0x0>;
        };
    };


这是设备树中的一部分内容,用于描述保留内存区域和相关设备的配置。让我为你解释一下:

首先,`reserved-memory` 是一个设备树节点,它用于定义保留内存区域。

`#address-cells` 和 `#size-cells` 属性指定了地址单元和大小单元的数量。

`ranges` 属性为空,表示没有定义范围。

`linux,cma` 是关于连续内存分配器(Contiguous Memory Allocator)的配置。`compatible` 属性表示与共享DMA池(Shared DMA Pool)兼容。`inactive` 表示此连续内存未被使用,`reusable` 表示可以重新使用,`size` 属性定义了连续内存的大小,`linux,cma-default` 表示这是默认的连续内存配置。

`drm_logo` 是一个子节点,它描述了一个名为 `drm-logo` 的设备。`compatible` 属性指定了该设备与 Rockchip 平台上的 DRM-Logo 兼容。`reg` 属性定义了该设备的寄存器地址范围。

这段设备树描述了一个保留内存区域和一个 DRM-Logo 设备。


分享给朋友:

相关文章

mkfs 参数

mkfs 参数

#mkfs.jffs2 -r rootfs -o fs.jffs2 -e 0x20000 --pad=0x500000 -s 0x800 –n -l即可生成 rootfs.jffs2Mkfs.jffs2各参数的意义如下:-r:指定要做成image的目录名。-o:指定输出image的文件名。-e:每一块要擦除的block size,默认是64KB.要注意,不同的flash, 其block size会不一样,三星的K9F2G08U0A的block size为0x20000(从其datasheet里可...

buildroot编译中的问题

buildroot编译中的问题

在编译中遇到flex 报错。一直过不了。后来发现安装flex bison两个包后解决sudo apt-get install flex bison...

Linux没有最小只有更小----迷你Linux版本大集合

Linux没有最小只有更小----迷你Linux版本大集合

    自从去年到现在已经收集了上百种版本的Linux和Unix,至于Unix就不想说了,没有Linux的功底是很难驾驭Unix的,我在这里只把小于360M的Linux以及一些非Linux但是很像Linux的版本也发布一下,我本人喜欢安静,如果你想要这些迷你版本的Linux光盘的话,建议去官网下载就OK了。英语不行的话随时带个字典。有些没有桌面,想知道哪些没有桌面的话请自己网上查资料!下面就是绝大部分小于361M的Linux及其非Linux名单,参考时间为...

[转]《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

[转]《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

转自哇酷网=丨晋丨通过参考荔枝派nano官方和论坛大佬的帖子,总结了烧录 spi-flash 启动的方法。通过搜寻资料,把其中有错误或者做了多余的操作的步骤做了修正,以免大家再次踩坑,耗费青春。以下包括 uboot、kernel、buildroot 和 烧录的详细步骤和需要注意的问题,尽量精简方法,以期容易上手和理解。各种配置项也做了详细注释,要知其然,也知其所以然。最理想的状态应该是是:有的坑,踩的人多了,也便没有了坑。论坛不太好排版,有需要的也可以去我的博客看:P:全志F1C100S/F1C...

修改U-BOOT,输出信息在LCD上显示,并使用USB连接键盘使用控制台

修改U-BOOT,输出信息在LCD上显示,并使用USB连接键盘使用控制台

修改方法:一:修改U-BOOT   include/configs/suniv.h#define CONFIG_BOOTCOMMAND"fatload mmc 0:1 0x80800000 zImage; "  \              &nb...

控制台终端输出颜色

控制台终端输出颜色

在使用putty、secureCRT、XShell等终端仿真器连接linux系统时,ls、vim等工具的输出都含有各种颜色,这些颜色的输出大大地增强了文本的可读性。一、终端文本颜色输出的一般示例在bash中,通常我们可以使用echo命令加-e选项输出各种颜色的文本,例如:echo -e "\033[31mRed Text\033[0m" echo -e "\033[32mGreen Text\033[0m...

debootstrap报"Release signed by unknown key"错误的解决方法

debootstrap报"Release signed by unknown key"错误的解决方法

1、下载最新的ASC文件:wget https://ftp-master.debian.org/keys/release-11.asc -qO- | gpg --import --no-default-keyring --keyring ./debian-release-11.gpg注意这里的11对应debian的版本号。我这里是debian11 (bullseye)2、debootstrap指定asc文件sudo&...

老是提示:newer kernel available 解决方法

老是提示:newer kernel available 解决方法

这个是由于没有正确的安装内核造成的。可以直接关掉提示 sudo apt purge needrestart...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。