retro98boy / tn3399-v3-linux

16 stars 3 forks source link

有关dts的问题(rga & UHS) #6

Closed Not-a-good-username closed 1 year ago

Not-a-good-username commented 1 year ago

您好,上次用了您编译的系统以后一直平稳运行,但是最近有一些新的想法 一个是之前看到了一个尝试在rk3399平台上运行libv4l的项目(https://github.com/JeffyCN/libv4l-rkmpp ),在安装linux-rga的时候卡住了,然后发现好像是设备树里头没有rga的设备 另外一个是我手头有一张支持u3读写的256g 三星tf卡,但是在实际测速中发现只能跑在usb 2下面,查找资料说需要在设备树里配置sdr-104啥的 因为大佬时间宝贵不一定麻烦大佬调通,想问一下,如果我需要自己调整或测试,我应当做些什么,需要重新编译kernel或者uboot嘛,刷写的时候是不是只刷uboot就可以 (以及大佬有没有相关的arm linux,设备树,uboot之类的相关资料书本课程可以推荐啊,因为是全凭兴趣,并不是搞这块的)

retro98boy commented 1 year ago

您好,上次用了您编译的系统以后一直平稳运行,但是最近有一些新的想法 一个是之前看到了一个尝试在rk3399平台上运行libv4l的项目(https://github.com/JeffyCN/libv4l-rkmpp ),在安装linux-rga的时候卡住了,然后发现好像是设备树里头没有rga的设备 另外一个是我手头有一张支持u3读写的256g 三星tf卡,但是在实际测速中发现只能跑在usb 2下面,查找资料说需要在设备树里配置sdr-104啥的 因为大佬时间宝贵不一定麻烦大佬调通,想问一下,如果我需要自己调整或测试,我应当做些什么,需要重新编译kernel或者uboot嘛,刷写的时候是不是只刷uboot就可以 (以及大佬有没有相关的arm linux,设备树,uboot之类的相关资料书本课程可以推荐啊,因为是全凭兴趣,并不是搞这块的)

tf卡这边,我已经在设备树里相关节点添加了sd-uhs-sdr104属性,并且编译了一版dtb,你可以直接拿来替换掉板子上跑的系统的/boot/dtb/rockchip/tn3399的dtb,然后重启试试看

mpp这边,我看了下设备树里vpu,rkvdec等都是打开状态,然后看了下manjaro的运行的内核的config(/proc/config.gz),相关驱动都编译了,lsmod也能确定驱动匹配上并加载了。最后生成了四个/dev/video0到3,用v4l2-ctl -d /dev/videox --all能看到相关信息。 我看了下你提供的链接,编译失败可能是没有正确安装他的依赖rockchip-linux/mpp,这是用户态的库,先编译安装rockchip-linux/mpp就不会再报找不到的错误了。 我在编译rockchip-linux/mpp并安装后,测试自带的test,发现失败,可能是因为这个库要搭配官方的bsp内核使用,主线内核的驱动api可能不同。

retro98boy commented 1 year ago

您好,上次用了您编译的系统以后一直平稳运行,但是最近有一些新的想法 一个是之前看到了一个尝试在rk3399平台上运行libv4l的项目(https://github.com/JeffyCN/libv4l-rkmpp ),在安装linux-rga的时候卡住了,然后发现好像是设备树里头没有rga的设备 另外一个是我手头有一张支持u3读写的256g 三星tf卡,但是在实际测速中发现只能跑在usb 2下面,查找资料说需要在设备树里配置sdr-104啥的 因为大佬时间宝贵不一定麻烦大佬调通,想问一下,如果我需要自己调整或测试,我应当做些什么,需要重新编译kernel或者uboot嘛,刷写的时候是不是只刷uboot就可以 (以及大佬有没有相关的arm linux,设备树,uboot之类的相关资料书本课程可以推荐啊,因为是全凭兴趣,并不是搞这块的)

对于tn3399 v3,已经有许多相同SoC开发板支持Linux内核,这种移植起来很简单,只需要能看懂设备树,然后自己尝试修改。 所需要的技能: 模仿相同SoC板子的dts针对修改; 会(交叉)编译内核,得到image,modules以及给用户态使用的headers; 会使用uboot引导内核,uboot脚本,或者extlinux之类的,uboot本身不需要驱动太多东西,uboot的核心就是把kernel image和dtb加载到内存中运行;

国内学习嵌入式linux,大多都是从nxp imx6系列的板子学起,可以看正点原子的资料,板子可以不买。http://www.openedv.com/docs/boards/arm-linux/zdyz-i.mx6ull.html 只是感兴趣的话,没必要看把书上的东西完全掌握,可以看看怎么编译,移植内核,以及想驱动某个芯片/设备,怎么查看内核里面是不是已经有驱动,编译的时候要打开哪个选项,对应的设备树节点怎么编写(一般会有参考dts节点在Documentation/devicetree/bindings中)

Not-a-good-username commented 1 year ago

您好,上次用了您编译的系统以后一直平稳运行,但是最近有一些新的想法 一个是之前看到了一个尝试在rk3399平台上运行libv4l的项目(https://github.com/JeffyCN/libv4l-rkmpp ),在安装linux-rga的时候卡住了,然后发现好像是设备树里头没有rga的设备 另外一个是我手头有一张支持u3读写的256g 三星tf卡,但是在实际测速中发现只能跑在usb 2下面,查找资料说需要在设备树里配置sdr-104啥的 因为大佬时间宝贵不一定麻烦大佬调通,想问一下,如果我需要自己调整或测试,我应当做些什么,需要重新编译kernel或者uboot嘛,刷写的时候是不是只刷uboot就可以 (以及大佬有没有相关的arm linux,设备树,uboot之类的相关资料书本课程可以推荐啊,因为是全凭兴趣,并不是搞这块的)

tf卡这边,我已经在设备树里相关节点添加了sd-uhs-sdr104属性,并且编译了一版dtb,你可以直接拿来替换掉板子上跑的系统的/boot/dtb/rockchip/tn3399的dtb,然后重启试试看

mpp这边,我看了下设备树里vpu,rkvdec等都是打开状态,然后看了下manjaro的运行的内核的config(/proc/config.gz),相关驱动都编译了,lsmod也能确定驱动匹配上并加载了。最后生成了四个/dev/video0到3,用v4l2-ctl -d /dev/videox --all能看到相关信息。 我看了下你提供的链接,编译失败可能是没有正确安装他的依赖rockchip-linux/mpp,这是用户态的库,先编译安装rockchip-linux/mpp就不会再报找不到的错误了。 我在编译rockchip-linux/mpp并安装后,测试自带的test,发现失败,可能是因为这个库要搭配官方的bsp内核使用,主线内核的驱动api可能不同。

我之前用的是release20220704里头那版的ubuntu,好像那版的dtb在/boot/目录下,不在rockchip里头,然后替换了,很遗憾,dmesg出来后依旧识别是sdxc不是sdr104,测速同样上不去,继续看了一下资料,有说要配置电压可调整到1.8v的相关配置,我后期自己再研究研究,可能还要研究电路看看支不支持(但是应该支持吧,wifi走的sdio都会提示是sdr104设备),不管怎样,我后期抽空自己研究一下了

Not-a-good-username commented 1 year ago

您好,上次用了您编译的系统以后一直平稳运行,但是最近有一些新的想法 一个是之前看到了一个尝试在rk3399平台上运行libv4l的项目(https://github.com/JeffyCN/libv4l-rkmpp ),在安装linux-rga的时候卡住了,然后发现好像是设备树里头没有rga的设备 另外一个是我手头有一张支持u3读写的256g 三星tf卡,但是在实际测速中发现只能跑在usb 2下面,查找资料说需要在设备树里配置sdr-104啥的 因为大佬时间宝贵不一定麻烦大佬调通,想问一下,如果我需要自己调整或测试,我应当做些什么,需要重新编译kernel或者uboot嘛,刷写的时候是不是只刷uboot就可以 (以及大佬有没有相关的arm linux,设备树,uboot之类的相关资料书本课程可以推荐啊,因为是全凭兴趣,并不是搞这块的)

对于tn3399 v3,已经有许多相同SoC开发板支持Linux内核,这种移植起来很简单,只需要能看懂设备树,然后自己尝试修改。 所需要的技能: 模仿相同SoC板子的dts针对修改; 会(交叉)编译内核,得到image,modules以及给用户态使用的headers; 会使用uboot引导内核,uboot脚本,或者extlinux之类的,uboot本身不需要驱动太多东西,uboot的核心就是把kernel image和dtb加载到内存中运行;

国内学习嵌入式linux,大多都是从nxp imx6系列的板子学起,可以看正点原子的资料,板子可以不买。http://www.openedv.com/docs/boards/arm-linux/zdyz-i.mx6ull.html 只是感兴趣的话,没必要看把书上的东西完全掌握,可以看看怎么编译,移植内核,以及想驱动某个芯片/设备,怎么查看内核里面是不是已经有驱动,编译的时候要打开哪个选项,对应的设备树节点怎么编写(一般会有参考dts节点在Documentation/devicetree/bindings中)

谢大佬指路!

retro98boy commented 1 year ago

您好,上次用了您编译的系统以后一直平稳运行,但是最近有一些新的想法 一个是之前看到了一个尝试在rk3399平台上运行libv4l的项目(https://github.com/JeffyCN/libv4l-rkmpp ),在安装linux-rga的时候卡住了,然后发现好像是设备树里头没有rga的设备 另外一个是我手头有一张支持u3读写的256g 三星tf卡,但是在实际测速中发现只能跑在usb 2下面,查找资料说需要在设备树里配置sdr-104啥的 因为大佬时间宝贵不一定麻烦大佬调通,想问一下,如果我需要自己调整或测试,我应当做些什么,需要重新编译kernel或者uboot嘛,刷写的时候是不是只刷uboot就可以 (以及大佬有没有相关的arm linux,设备树,uboot之类的相关资料书本课程可以推荐啊,因为是全凭兴趣,并不是搞这块的)

tf卡这边,我已经在设备树里相关节点添加了sd-uhs-sdr104属性,并且编译了一版dtb,你可以直接拿来替换掉板子上跑的系统的/boot/dtb/rockchip/tn3399的dtb,然后重启试试看 mpp这边,我看了下设备树里vpu,rkvdec等都是打开状态,然后看了下manjaro的运行的内核的config(/proc/config.gz),相关驱动都编译了,lsmod也能确定驱动匹配上并加载了。最后生成了四个/dev/video0到3,用v4l2-ctl -d /dev/videox --all能看到相关信息。 我看了下你提供的链接,编译失败可能是没有正确安装他的依赖rockchip-linux/mpp,这是用户态的库,先编译安装rockchip-linux/mpp就不会再报找不到的错误了。 我在编译rockchip-linux/mpp并安装后,测试自带的test,发现失败,可能是因为这个库要搭配官方的bsp内核使用,主线内核的驱动api可能不同。

我之前用的是release20220704里头那版的ubuntu,好像那版的dtb在/boot/目录下,不在rockchip里头,然后替换了,很遗憾,dmesg出来后依旧识别是sdxc不是sdr104,测速同样上不去,继续看了一下资料,有说要配置电压可调整到1.8v的相关配置,我后期自己再研究研究,可能还要研究电路看看支不支持(但是应该支持吧,wifi走的sdio都会提示是sdr104设备),不管怎样,我后期抽空自己研究一下了

方便给个邮箱吗?我把原理图发给你,你可以和其他开源板子的原理图对照下

retro98boy commented 1 year ago

您好,上次用了您编译的系统以后一直平稳运行,但是最近有一些新的想法 一个是之前看到了一个尝试在rk3399平台上运行libv4l的项目(https://github.com/JeffyCN/libv4l-rkmpp ),在安装linux-rga的时候卡住了,然后发现好像是设备树里头没有rga的设备 另外一个是我手头有一张支持u3读写的256g 三星tf卡,但是在实际测速中发现只能跑在usb 2下面,查找资料说需要在设备树里配置sdr-104啥的 因为大佬时间宝贵不一定麻烦大佬调通,想问一下,如果我需要自己调整或测试,我应当做些什么,需要重新编译kernel或者uboot嘛,刷写的时候是不是只刷uboot就可以 (以及大佬有没有相关的arm linux,设备树,uboot之类的相关资料书本课程可以推荐啊,因为是全凭兴趣,并不是搞这块的)

tf卡这边,我已经在设备树里相关节点添加了sd-uhs-sdr104属性,并且编译了一版dtb,你可以直接拿来替换掉板子上跑的系统的/boot/dtb/rockchip/tn3399的dtb,然后重启试试看 mpp这边,我看了下设备树里vpu,rkvdec等都是打开状态,然后看了下manjaro的运行的内核的config(/proc/config.gz),相关驱动都编译了,lsmod也能确定驱动匹配上并加载了。最后生成了四个/dev/video0到3,用v4l2-ctl -d /dev/videox --all能看到相关信息。 我看了下你提供的链接,编译失败可能是没有正确安装他的依赖rockchip-linux/mpp,这是用户态的库,先编译安装rockchip-linux/mpp就不会再报找不到的错误了。 我在编译rockchip-linux/mpp并安装后,测试自带的test,发现失败,可能是因为这个库要搭配官方的bsp内核使用,主线内核的驱动api可能不同。

我之前用的是release20220704里头那版的ubuntu,好像那版的dtb在/boot/目录下,不在rockchip里头,然后替换了,很遗憾,dmesg出来后依旧识别是sdxc不是sdr104,测速同样上不去,继续看了一下资料,有说要配置电压可调整到1.8v的相关配置,我后期自己再研究研究,可能还要研究电路看看支不支持(但是应该支持吧,wifi走的sdio都会提示是sdr104设备),不管怎样,我后期抽空自己研究一下了

我对tf卡那堆标准不懂,dmesg后要grep什么字样

Not-a-good-username commented 1 year ago

您好,上次用了您编译的系统以后一直平稳运行,但是最近有一些新的想法 一个是之前看到了一个尝试在rk3399平台上运行libv4l的项目(https://github.com/JeffyCN/libv4l-rkmpp ),在安装linux-rga的时候卡住了,然后发现好像是设备树里头没有rga的设备 另外一个是我手头有一张支持u3读写的256g 三星tf卡,但是在实际测速中发现只能跑在usb 2下面,查找资料说需要在设备树里配置sdr-104啥的 因为大佬时间宝贵不一定麻烦大佬调通,想问一下,如果我需要自己调整或测试,我应当做些什么,需要重新编译kernel或者uboot嘛,刷写的时候是不是只刷uboot就可以 (以及大佬有没有相关的arm linux,设备树,uboot之类的相关资料书本课程可以推荐啊,因为是全凭兴趣,并不是搞这块的)

tf卡这边,我已经在设备树里相关节点添加了sd-uhs-sdr104属性,并且编译了一版dtb,你可以直接拿来替换掉板子上跑的系统的/boot/dtb/rockchip/tn3399的dtb,然后重启试试看 mpp这边,我看了下设备树里vpu,rkvdec等都是打开状态,然后看了下manjaro的运行的内核的config(/proc/config.gz),相关驱动都编译了,lsmod也能确定驱动匹配上并加载了。最后生成了四个/dev/video0到3,用v4l2-ctl -d /dev/videox --all能看到相关信息。 我看了下你提供的链接,编译失败可能是没有正确安装他的依赖rockchip-linux/mpp,这是用户态的库,先编译安装rockchip-linux/mpp就不会再报找不到的错误了。 我在编译rockchip-linux/mpp并安装后,测试自带的test,发现失败,可能是因为这个库要搭配官方的bsp内核使用,主线内核的驱动api可能不同。

我之前用的是release20220704里头那版的ubuntu,好像那版的dtb在/boot/目录下,不在rockchip里头,然后替换了,很遗憾,dmesg出来后依旧识别是sdxc不是sdr104,测速同样上不去,继续看了一下资料,有说要配置电压可调整到1.8v的相关配置,我后期自己再研究研究,可能还要研究电路看看支不支持(但是应该支持吧,wifi走的sdio都会提示是sdr104设备),不管怎样,我后期抽空自己研究一下了

方便给个邮箱吗?我把原理图发给你,你可以和其他开源板子的原理图对照下

谢谢大佬啦,不过应该不用,之前买这个板子的时候卖家送了一个大压缩包,pcb和pdf都有(说来也悲伤,到手才发现minipcie用不了

Not-a-good-username commented 1 year ago

您好,上次用了您编译的系统以后一直平稳运行,但是最近有一些新的想法 一个是之前看到了一个尝试在rk3399平台上运行libv4l的项目(https://github.com/JeffyCN/libv4l-rkmpp ),在安装linux-rga的时候卡住了,然后发现好像是设备树里头没有rga的设备 另外一个是我手头有一张支持u3读写的256g 三星tf卡,但是在实际测速中发现只能跑在usb 2下面,查找资料说需要在设备树里配置sdr-104啥的 因为大佬时间宝贵不一定麻烦大佬调通,想问一下,如果我需要自己调整或测试,我应当做些什么,需要重新编译kernel或者uboot嘛,刷写的时候是不是只刷uboot就可以 (以及大佬有没有相关的arm linux,设备树,uboot之类的相关资料书本课程可以推荐啊,因为是全凭兴趣,并不是搞这块的)

tf卡这边,我已经在设备树里相关节点添加了sd-uhs-sdr104属性,并且编译了一版dtb,你可以直接拿来替换掉板子上跑的系统的/boot/dtb/rockchip/tn3399的dtb,然后重启试试看 mpp这边,我看了下设备树里vpu,rkvdec等都是打开状态,然后看了下manjaro的运行的内核的config(/proc/config.gz),相关驱动都编译了,lsmod也能确定驱动匹配上并加载了。最后生成了四个/dev/video0到3,用v4l2-ctl -d /dev/videox --all能看到相关信息。 我看了下你提供的链接,编译失败可能是没有正确安装他的依赖rockchip-linux/mpp,这是用户态的库,先编译安装rockchip-linux/mpp就不会再报找不到的错误了。 我在编译rockchip-linux/mpp并安装后,测试自带的test,发现失败,可能是因为这个库要搭配官方的bsp内核使用,主线内核的驱动api可能不同。

我之前用的是release20220704里头那版的ubuntu,好像那版的dtb在/boot/目录下,不在rockchip里头,然后替换了,很遗憾,dmesg出来后依旧识别是sdxc不是sdr104,测速同样上不去,继续看了一下资料,有说要配置电压可调整到1.8v的相关配置,我后期自己再研究研究,可能还要研究电路看看支不支持(但是应该支持吧,wifi走的sdio都会提示是sdr104设备),不管怎样,我后期抽空自己研究一下了

我对tf卡那堆标准不懂,dmesg后要grep什么字样

我反正直接grep mmc,然后就能看到了,mmc0是sd卡,mmc1是emmc,mmc2是wifi,当然有的时候不全,会漏点东西,我就直接滚轮上去看看(反正启动日志也不长()

retro98boy commented 1 year ago

您好,上次用了您编译的系统以后一直平稳运行,但是最近有一些新的想法 一个是之前看到了一个尝试在rk3399平台上运行libv4l的项目(https://github.com/JeffyCN/libv4l-rkmpp ),在安装linux-rga的时候卡住了,然后发现好像是设备树里头没有rga的设备 另外一个是我手头有一张支持u3读写的256g 三星tf卡,但是在实际测速中发现只能跑在usb 2下面,查找资料说需要在设备树里配置sdr-104啥的 因为大佬时间宝贵不一定麻烦大佬调通,想问一下,如果我需要自己调整或测试,我应当做些什么,需要重新编译kernel或者uboot嘛,刷写的时候是不是只刷uboot就可以 (以及大佬有没有相关的arm linux,设备树,uboot之类的相关资料书本课程可以推荐啊,因为是全凭兴趣,并不是搞这块的)

rk3399的mmc控制器驱动代码在drivers/mmc/host/dw_mmc-rockchip.c,插上tf卡提醒“new high speed SDXC”的实现在drivers/mmc/core/bus.c中mmc_add_card函数,其中如果是eMMC就为MMC,sd卡就为SDHC或SDXC,sdio就为SDIO,所以打印SDXC没啥问题。主要是前面的速度和时钟模式,我把自己的卡插到带sd卡槽的pc上,提示“mmc0: new ultra high speed SDR50 SDXC card at address b368”,对比tn3399的板子,变成了ultra速度,且多了个时钟双边采样的模式打印,真实测速也高上许多,后面我在排除下问题。

Not-a-good-username commented 1 year ago

您好,上次用了您编译的系统以后一直平稳运行,但是最近有一些新的想法 一个是之前看到了一个尝试在rk3399平台上运行libv4l的项目(https://github.com/JeffyCN/libv4l-rkmpp ),在安装linux-rga的时候卡住了,然后发现好像是设备树里头没有rga的设备 另外一个是我手头有一张支持u3读写的256g 三星tf卡,但是在实际测速中发现只能跑在usb 2下面,查找资料说需要在设备树里配置sdr-104啥的 因为大佬时间宝贵不一定麻烦大佬调通,想问一下,如果我需要自己调整或测试,我应当做些什么,需要重新编译kernel或者uboot嘛,刷写的时候是不是只刷uboot就可以 (以及大佬有没有相关的arm linux,设备树,uboot之类的相关资料书本课程可以推荐啊,因为是全凭兴趣,并不是搞这块的)

rk3399的mmc控制器驱动代码在drivers/mmc/host/dw_mmc-rockchip.c,插上tf卡提醒“new high speed SDXC”的实现在drivers/mmc/core/bus.c中mmc_add_card函数,其中如果是eMMC就为MMC,sd卡就为SDHC或SDXC,sdio就为SDIO,所以打印SDXC没啥问题。主要是前面的速度和时钟模式,我把自己的卡插到带sd卡槽的pc上,提示“mmc0: new ultra high speed SDR50 SDXC card at address b368”,对比tn3399的板子,变成了ultra速度,且多了个时钟双边采样的模式打印,真实测速也高上许多,后面我在排除下问题。

好的,我后面也再看看,也就是说确实没有激活sdr104的速度,我百度了一下,好像是说要vqmmc的电压可调( https://blog.csdn.net/andyTW3974/article/details/127468661 ) (6) sd-uhs-sdr104; 此配置为标识此卡槽支持 UHS-I 的 SD 卡。如果不配置,表示不支持 UHS-I 的 SD 卡。 但需要注意,如果要支持这种模式的卡,需要 SD 卡的 IO 电压供电可以在 3.3V 和 1.8v 进行切换。并且需要引用 vqmmc-supply 到实际板级的控制电源,例如 vqmmc-supply = <&vccio_sd>;

我看电路图,SD卡的电源好像确实连到了一个可调电压的引脚上,可能配置一下就能解决,但这段时间要准备写论文了,估计只能说有空看看,issue先开着吧

retro98boy commented 1 year ago

您好,上次用了您编译的系统以后一直平稳运行,但是最近有一些新的想法 一个是之前看到了一个尝试在rk3399平台上运行libv4l的项目(https://github.com/JeffyCN/libv4l-rkmpp ),在安装linux-rga的时候卡住了,然后发现好像是设备树里头没有rga的设备 另外一个是我手头有一张支持u3读写的256g 三星tf卡,但是在实际测速中发现只能跑在usb 2下面,查找资料说需要在设备树里配置sdr-104啥的 因为大佬时间宝贵不一定麻烦大佬调通,想问一下,如果我需要自己调整或测试,我应当做些什么,需要重新编译kernel或者uboot嘛,刷写的时候是不是只刷uboot就可以 (以及大佬有没有相关的arm linux,设备树,uboot之类的相关资料书本课程可以推荐啊,因为是全凭兴趣,并不是搞这块的)

rk3399的mmc控制器驱动代码在drivers/mmc/host/dw_mmc-rockchip.c,插上tf卡提醒“new high speed SDXC”的实现在drivers/mmc/core/bus.c中mmc_add_card函数,其中如果是eMMC就为MMC,sd卡就为SDHC或SDXC,sdio就为SDIO,所以打印SDXC没啥问题。主要是前面的速度和时钟模式,我把自己的卡插到带sd卡槽的pc上,提示“mmc0: new ultra high speed SDR50 SDXC card at address b368”,对比tn3399的板子,变成了ultra速度,且多了个时钟双边采样的模式打印,真实测速也高上许多,后面我在排除下问题。

好的,我后面也再看看,也就是说确实没有激活sdr104的速度,我百度了一下,好像是说要vqmmc的电压可调( https://blog.csdn.net/andyTW3974/article/details/127468661 ) (6) sd-uhs-sdr104; 此配置为标识此卡槽支持 UHS-I 的 SD 卡。如果不配置,表示不支持 UHS-I 的 SD 卡。 但需要注意,如果要支持这种模式的卡,需要 SD 卡的 IO 电压供电可以在 3.3V 和 1.8v 进行切换。并且需要引用 vqmmc-supply 到实际板级的控制电源,例如 vqmmc-supply = <&vccio_sd>;

我看电路图,SD卡的电源好像确实连到了一个可调电压的引脚上,可能配置一下就能解决,但这段时间要准备写论文了,估计只能说有空看看,issue先开着吧

ok,有空我再试下

retro98boy commented 1 year ago

您好,上次用了您编译的系统以后一直平稳运行,但是最近有一些新的想法 一个是之前看到了一个尝试在rk3399平台上运行libv4l的项目(https://github.com/JeffyCN/libv4l-rkmpp ),在安装linux-rga的时候卡住了,然后发现好像是设备树里头没有rga的设备 另外一个是我手头有一张支持u3读写的256g 三星tf卡,但是在实际测速中发现只能跑在usb 2下面,查找资料说需要在设备树里配置sdr-104啥的 因为大佬时间宝贵不一定麻烦大佬调通,想问一下,如果我需要自己调整或测试,我应当做些什么,需要重新编译kernel或者uboot嘛,刷写的时候是不是只刷uboot就可以 (以及大佬有没有相关的arm linux,设备树,uboot之类的相关资料书本课程可以推荐啊,因为是全凭兴趣,并不是搞这块的)

rk3399的mmc控制器驱动代码在drivers/mmc/host/dw_mmc-rockchip.c,插上tf卡提醒“new high speed SDXC”的实现在drivers/mmc/core/bus.c中mmc_add_card函数,其中如果是eMMC就为MMC,sd卡就为SDHC或SDXC,sdio就为SDIO,所以打印SDXC没啥问题。主要是前面的速度和时钟模式,我把自己的卡插到带sd卡槽的pc上,提示“mmc0: new ultra high speed SDR50 SDXC card at address b368”,对比tn3399的板子,变成了ultra速度,且多了个时钟双边采样的模式打印,真实测速也高上许多,后面我在排除下问题。

好的,我后面也再看看,也就是说确实没有激活sdr104的速度,我百度了一下,好像是说要vqmmc的电压可调( https://blog.csdn.net/andyTW3974/article/details/127468661 ) (6) sd-uhs-sdr104; 此配置为标识此卡槽支持 UHS-I 的 SD 卡。如果不配置,表示不支持 UHS-I 的 SD 卡。 但需要注意,如果要支持这种模式的卡,需要 SD 卡的 IO 电压供电可以在 3.3V 和 1.8v 进行切换。并且需要引用 vqmmc-supply 到实际板级的控制电源,例如 vqmmc-supply = <&vccio_sd>;

我看电路图,SD卡的电源好像确实连到了一个可调电压的引脚上,可能配置一下就能解决,但这段时间要准备写论文了,估计只能说有空看看,issue先开着吧

额,我看了下原理图,tf卡槽的供电是vcc3v0_sd,由vcc3v3_sys降压而来,降压芯片为u12,这是一个固定稳压器(设备树的vcc3v0-sd节点),控制信号sdmmc0_pwr_h(gpio0 pa1)只能控制开或关,不能调电压。那就不能自由在3v3和1v8切换了。

Not-a-good-username commented 1 year ago

您好,上次用了您编译的系统以后一直平稳运行,但是最近有一些新的想法 一个是之前看到了一个尝试在rk3399平台上运行libv4l的项目(https://github.com/JeffyCN/libv4l-rkmpp ),在安装linux-rga的时候卡住了,然后发现好像是设备树里头没有rga的设备 另外一个是我手头有一张支持u3读写的256g 三星tf卡,但是在实际测速中发现只能跑在usb 2下面,查找资料说需要在设备树里配置sdr-104啥的 因为大佬时间宝贵不一定麻烦大佬调通,想问一下,如果我需要自己调整或测试,我应当做些什么,需要重新编译kernel或者uboot嘛,刷写的时候是不是只刷uboot就可以 (以及大佬有没有相关的arm linux,设备树,uboot之类的相关资料书本课程可以推荐啊,因为是全凭兴趣,并不是搞这块的)

rk3399的mmc控制器驱动代码在drivers/mmc/host/dw_mmc-rockchip.c,插上tf卡提醒“new high speed SDXC”的实现在drivers/mmc/core/bus.c中mmc_add_card函数,其中如果是eMMC就为MMC,sd卡就为SDHC或SDXC,sdio就为SDIO,所以打印SDXC没啥问题。主要是前面的速度和时钟模式,我把自己的卡插到带sd卡槽的pc上,提示“mmc0: new ultra high speed SDR50 SDXC card at address b368”,对比tn3399的板子,变成了ultra速度,且多了个时钟双边采样的模式打印,真实测速也高上许多,后面我在排除下问题。

好的,我后面也再看看,也就是说确实没有激活sdr104的速度,我百度了一下,好像是说要vqmmc的电压可调( https://blog.csdn.net/andyTW3974/article/details/127468661 ) (6) sd-uhs-sdr104; 此配置为标识此卡槽支持 UHS-I 的 SD 卡。如果不配置,表示不支持 UHS-I 的 SD 卡。 但需要注意,如果要支持这种模式的卡,需要 SD 卡的 IO 电压供电可以在 3.3V 和 1.8v 进行切换。并且需要引用 vqmmc-supply 到实际板级的控制电源,例如 vqmmc-supply = <&vccio_sd>; 我看电路图,SD卡的电源好像确实连到了一个可调电压的引脚上,可能配置一下就能解决,但这段时间要准备写论文了,估计只能说有空看看,issue先开着吧

额,我看了下原理图,tf卡槽的供电是vcc3v0_sd,由vcc3v3_sys降压而来,降压芯片为u12,这是一个固定稳压器(设备树的vcc3v0-sd节点),控制信号sdmmc0_pwr_h(gpio0 pa1)只能控制开或关,不能调电压。那就不能自由在3v3和1v8切换了。

那就没戏了估计,不过还是谢谢大佬了!