I use the new version R32.5 or R32.5.1 of the source code, I am using RT5639 sound card, and it has been able to mount it. I put file 01-tegra-rt5639.conf int the rootfs/usrshare/alsa/alsa/init/postinit/ folder. But there is a strange phenomenon that he still has no sound, but if I change the uboot.bin file back to the previous R32.3 file, it will work normally. n the same way of modification, this situation is not seen in TK1. Is there any possible reason?
Why do you pick up uboot to change but not cboot, kerenl or kernel-dtb? Are you changing those components one by one and then find out the uboot matters?
Also, I don’t think comparing tk1 will help now. TK1 has different boot flow and also the code base is really old.
I used all the R32.5 source code to build the image file and the uboot.bin. I also used the uboot.bin file of R32.5, but there was no sound. But when only uboot.bin is changed back to R32, it work.
I have another device use TK1， but it work with the uboot.
I assume that you meant TX1 and not TK1, correct?
It is most likely the default pinmux changes set by the bootloader. Assuming that you are using I2S1 on TX1, you could compare the pinmux settings to see if they differ with the different u-boot versions …
$ sudo grep dap1 /sys/kernel/debug/tegra_pinctrl_reg $ sudo cat /sys/kernel/debug/tegra_gpio
If you are using the TX1 devkit then you can use jetson-io to configure the default pinmux for I2S1 …
$ sudo /opt/nvidia/jetson-io/config-by-function.py -o dtb i2s1