1。 硬件问题
尽量根据原版 evb 开发版 pcb 进行布线和移植,切记不可自行走线。 emmc 和 ddr4 选型都有要求的,按照硬件手册进行设计
2。软件问题
2.1 目前固件系统选用1.3.2 版本进行设计
解压后运行 .repo/repo/repo sync -c 更新代码
2.2 uboot 建议不要动,尝试在 u-boot/include/configs/rk3568_common.h 添加
#define DEBUG 编译报错, spl 编译中没有甚至lib 文件夹下面的链接,修复后又因为,uboot.img 文件变大,无法封包,修改 uboot/KConfig 中的 spl_image_KB 的默认大小 到3072,还需要修改 parameter.txt 设置文件大小
2.3 parameter.txt 参数 解释
CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00020000@0x00008000(boot),0x00020000@0x00028000(recovery),0x00010000@0x00048000(backup),0x00c00000@0x00058000(rootfs),0x00040000@0x00c58000(oem),-@0x00c98000(userdata:grow)
2.3.1 前面是大小,后面是起始位置,单位是 512 sector
2000*512 /1024/1024
修改 rootfs大小,可以增加的便的大小
0x02000000@0x00058000(rootfs),0x00040000@0x02058000(oem),-@0x02098000(userdata:grow)
0x02000000 16G emmc
2.4 修改电源
&pmu_io_domains {
status = "okay";
pmuio2-supply = <&vcc3v3_pmu>;
vccio1-supply = <&vccio_acodec>;
vccio3-supply = <&vccio_sd>;
vccio4-supply = <&vcc_1v8>;
vccio5-supply = <&vcc_3v3>;
vccio6-supply = <&vcc_1v8>;
vccio7-supply = <&vcc_3v3>;
};
2.5 酌情 修改 设备树,
2.5.1 设备数
&hdmi {
status = "okay";
rockchip,defaultmode = <4>;
};
HDMI 在开机时使用的分辨率按照以下优先级:
1. 在 Android 平台,若上次开机用户在 setting 中手动切换过分辨率且未曾恢复出厂设置或重新烧写固
件,则 HDMI 开机使用的分辨率为用户选择的分辨率。
2. 若用户未曾手动设置过分辨率,且开机 HDMI 成功读取 EDID,则选用 EDID 中的与
rockchip,defaultmode 的值对应的分辨率。
3. 若 EDID 中不存在 rockchip,defaultmode 对应的分辨率,则选择 EDID 中最大的分辨率。
4. 若读取 EDID 失败,则直接使用 rockchip,defaultmode 对应的分辨率。
5. 若在 dts 中未配置 rockchip,defaultmode ,则默认使用
kernel/drivers/video/rockchip/hdmi/rockchip-hdmi.h 中的宏
HDMI_VIDEO_DEFAULT_MODE 对应的分辨率。
2.5.2 dmc {disabled} dfi {disabled}
2.5.3 usb 3.0 Host to usb 2.0 host
&usbhost_dwc3 {
phys = <&u2phy0_host>; /*配置 phys 属性只引用 usb 2.0 phy 节点 */
phy-names = "usb2-phy";
maximum-speed = "high-speed"; /*配置 dwc3 控制器最高支持 high speed */
snps,dis_u2_susphy_quirk; /*配置 dwc3 控制器不支持自动 suspend usb2 phy */
status = "okay";
};
&combphy1_usq {
rockchip,dis-u3otg1-port; /*配置 dwc3_1 控制器最高支持 high speed */
status = "okay";
};
2.5.4 route_hdmi 保留一个
其余显示配置全部删除
3. 内核 USB 配置
USB 模块的配置及保存和其它内核模块的配置方法一样,以 arm64 架构的芯片配置为例:
导入默认配置:
make ARCH=arm64 rockchip_linux_defconfig
选择 Kernel 配置:
make ARCH=arm64 menuconfig
保存 default 配置:
make ARCH=arm64 savedefconfig
保存 default 配置,然后用 defconfig 替换 rockchip_linux_defconfig