rk3568 norflash+pcei nvme 配置
文章目录
- rk3568 norflash+pcei nvme 配置
- 1,添加parameter_nor.txt文件
- 2 修改编译规则
- 3 修改uboot
- 4 修改BoardConfig.mk
- 5 修改kernel pcei配置
- 6 编译
- 7 烧录
rk3568 norflash+pcei nvme 配置
1,添加parameter_nor.txt文件
device/rockchip/rk356x/rk3568_xx/parameter_nor.txt
FIRMWARE_VER: 12.0
MACHINE_MODEL: rk3568_s_aio
MACHINE_ID: 007
MANUFACTURER: rockchip
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: rk3568_s_aio
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE:mtdparts=rk29xxnand:0x00002800@0x00004000(uboot)
2 修改编译规则
在这里插入代码片diff --git a/code/RKTools/linux/Linux_Pack_Firmware/rockdev/mkupdate.sh b/code/RKTools/linux/Linux_Pack_Firmware/rockdev/mkupdate.sh
index 0e00949f39e..7270b527312 100755
--- a/code/RKTools/linux/Linux_Pack_Firmware/rockdev/mkupdate.sh
+++ b/code/RKTools/linux/Linux_Pack_Firmware/rockdev/mkupdate.sh
@@ -43,5 +43,33 @@ fiecho "start to make update.img..."./afptool -pack ./ $IMAGE_PATH/update.img $PACKAGE_FILE || pause./rkImageMaker ${vendor_id_map[$PLATFORM]} $IMAGE_PATH/MiniLoaderAll.bin $IMAGE_PATH/update.img update.img -os_type:androidos || pause
-echo "Making update.img OK."
+
+echo "start to make pcie update.img..."
+
+ ./afptool -pack ./ $IMAGE_PATH/update.img $PACKAGE_FILE || pause
+./rkImageMaker ${vendor_id_map[$PLATFORM]} $IMAGE_PATH/MiniLoaderAll.bin $IMAGE_PATH/update.img pcie_update.img -os_type:androidos -storage:pcie || pause
+echo "Making $IMAGE_PATH/pcie_update.img OK."
+
+
+echo "regenernate $PACKAGE_FILE..."
+if [ -f "$PACKAGE_FILE" ]; then
+ rm -rf $PACKAGE_FILE
+fi
+cp $IMAGE_PATH/parameter.txt $IMAGE_PATH/parameter.txt.bak
+cp $IMAGE_PATH/parameter_nor.txt $IMAGE_PATH/parameter.txt
+
+./gen-package-file.sh $IMAGE_PATH > $PACKAGE_FILE
+
+echo "start to make spinor update.img..."
+
+./afptool -pack ./ $IMAGE_PATH/update.img $PACKAGE_FILE || pause
+./rkImageMaker ${vendor_id_map[$PLATFORM]} $IMAGE_PATH/MiniLoaderAll.bin $IMAGE_PATH/update.img spinor_update.img -os_type:androidos -storage:spinor || pause
+echo "Making $IMAGE_PATH/spi_update.img OK."
+
+./rkImageMaker -merge ./update.img ./spinor_update.img ./pcie_update.img
+
+
+mv $IMAGE_PATH/parameter.txt.bak $IMAGE_PATH/parameter.txt
+
+exit 0diff --git a/code/device/rockchip/common/build/rockchip/RebuildParameter.mk b/code/device/rockchip/common/build/rockchip/RebuildParameter.mk
index acc11e0b470..3bff517d2bd 100644
--- a/code/device/rockchip/common/build/rockchip/RebuildParameter.mk
+++ b/code/device/rockchip/common/build/rockchip/RebuildParameter.mk
@@ -5,7 +5,8 @@ $(info build parameter.txt with $(PRODUCT_PARAMETER_TEMPLATE)....)ifeq ($(strip $(BOARD_USES_AB_IMAGE)), true)partition_list := security:4M,uboot_a:4M,trust_a:4M,misc:4Melse
-partition_list := security:4M,uboot:4M,trust:4M,misc:4M
+# partition_list := security:4M,uboot:5M,trust:4M,misc:4M
+partition_list := security:4M,misc:4Mendif # BOARD_USES_AB_IMAGEifeq ($(strip $(BOARD_USES_AB_IMAGE)), true)
diff --git a/code/device/rockchip/common/mkimage.sh b/code/device/rockchip/common/mkimage.sh
index 69b733e0bbd..288c24564a2 100755
--- a/code/device/rockchip/common/mkimage.sh
+++ b/code/device/rockchip/common/mkimage.sh
@@ -193,6 +193,7 @@ thenelseif [ -f $OUT/parameter.txt ]; thencp -a $OUT/parameter.txt $IMAGE_PATH/parameter.txt
+ cp -a ${TARGET_DEVICE_DIR}/parameter_nor.txt $IMAGE_PATH/parameter_nor.txtelseecho "$PARAMETER not fount!"fidiff --git a/code/mkimage.sh b/code/mkimage.sh
index 69b733e0bbd..288c24564a2 100755
--- a/code/mkimage.sh
+++ b/code/mkimage.sh
@@ -193,6 +193,7 @@ thenelseif [ -f $OUT/parameter.txt ]; thencp -a $OUT/parameter.txt $IMAGE_PATH/parameter.txt
+ cp -a ${TARGET_DEVICE_DIR}/parameter_nor.txt $IMAGE_PATH/parameter_nor.txtelseecho "$PARAMETER not fount!"fi
3 修改uboot
diff --git a/code/u-boot/arch/arm/dts/rk3568-u-boot.dtsi b/code/u-boot/arch/arm/dts/rk3568-u-boot.dtsi
index 3eb39374f05..134645c5f68 100644
--- a/code/u-boot/arch/arm/dts/rk3568-u-boot.dtsi
+++ b/code/u-boot/arch/arm/dts/rk3568-u-boot.dtsi
@@ -15,7 +15,32 @@chosen {stdout-path = &uart2;
- u-boot,spl-boot-order = &sdmmc0, &sdhci, &nandc0, &spi_nand, &spi_nor;
+ u-boot,spl-boot-order = &sdhci, &spi_nand, &spi_nor;
+ };
+
+ dc_12v: dc-12v {
+ u-boot,dm-pre-reloc;
+ compatible = "regulator-fixed";
+ regulator-name = "dc_12v";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ };
+
+ vcc3v3_pcie: gpio-regulator {
+ u-boot,dm-pre-reloc;
+ compatible = "regulator-fixed";
+ regulator-name = "vcc3v3_pcie";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ enable-active-high;
+ gpio = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; //跟进实际情况修改
+ startup-delay-us = <5000>;
+ vin-supply = <&dc_12v>;};};@@ -367,16 +392,24 @@u-boot,dm-pre-reloc;};+&pcie30_phy_grf {
+ u-boot,dm-pre-reloc;
+};
+&pcie30phy {u-boot,dm-pre-reloc;status = "okay";};&pcie3x2 {u-boot,dm-pre-reloc;
+ reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; /跟进实际情况修改
+ vpcie3v3-supply = <&vcc3v3_pcie>;status = "okay";};+&pinctrl {u-boot,dm-pre-reloc;status = "okay";
diff --git a/code/u-boot/configs/rk3568_defconfig b/code/u-boot/configs/rk3568_defconfig
index fbd9820acc5..5b44113dd33 100644
--- a/code/u-boot/configs/rk3568_defconfig
+++ b/code/u-boot/configs/rk3568_defconfig
@@ -220,3 +220,19 @@ CONFIG_RK_AVB_LIBAVB_USER=yCONFIG_OPTEE_CLIENT=yCONFIG_OPTEE_V2=yCONFIG_OPTEE_ALWAYS_USE_SECURITY_PARTITION=y
+
+CONFIG_ROCKCHIP_BOOTDEV="nvme 0"
+CONFIG_EMBED_KERNEL_DTB_ALWAYS=y
+CONFIG_SPL_FIT_IMAGE_KB=2560
+# 改成实际使用的 dtb 把kernel编译的dtb拷贝到uboot/dts目录下
+CONFIG_EMBED_KERNEL_DTB_PATH="dts/rk3568-aio-ddr4-v10.dtb"
+CONFIG_NVME=y
+CONFIG_CMD_NVME=y
+CONFIG_CMD_PCI=y
+CONFIG_PCI=y
+CONFIG_DM_PCI=y
+CONFIG_DM_PCI_COMPAT=y
+CONFIG_PCIE_DW_ROCKCHIP=y
+CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
+CONFIG_PHY_ROCKCHIP_SNPS_PCIE3=y
+CONFIG_DM_REGULATOR_FIXED=y
\ No newline at end of file
4 修改BoardConfig.mk
diff --git a/code/device/rockchip/rk356x/BoardConfig.mk b/code/device/rockchip/rk356x/BoardConfig.mk
index c035a7fe6cf..c30bf1c75f3 100755
--- a/code/device/rockchip/rk356x/BoardConfig.mk
+++ b/code/device/rockchip/rk356x/BoardConfig.mk
@@ -24,7 +24,8 @@ PRODUCT_KERNEL_DTS ?= rk3568-evb1-ddr4-v10# BOARD_AVB_ENABLE := true# used for fstab_generator, sdmmc controller address
-PRODUCT_BOOT_DEVICE := fe310000.sdhci,fe330000.nandc
+# PRODUCT_BOOT_DEVICE := fe310000.sdhci,fe330000.nandc
+PRODUCT_BOOT_DEVICE := 3c0800000.pcie
5 修改kernel pcei配置
@@ -91,12 +91,16 @@vcc3v3_pcie: gpio-regulator {compatible = "regulator-fixed";regulator-name = "vcc3v3_pcie";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie3x2_en>;regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;
+ regulator-always-on;enable-active-high;gpio = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;startup-delay-us = <5000>;vcc3v3_bu: vcc3v3-bu {
@@ -505,13 +509,15 @@};&pcie30phy {
- status = "disabled";
+ status = "okay";};&pcie3x2 {reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;vpcie3v3-supply = <&vcc3v3_pcie>;
- status = "disabled";
+ // pinctrl-names = "default";
+ // pinctrl-0 = <&pcie30x2m1_pins>;
+ status = "okay";};&pinctrl {
+ pcie3x2{
+ pcie3x2_rst: pcie3x2-rst {
+ rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ pcie3x2_en: pcie3x2-en {
+ rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
+cam {camera_pwr: camera-pwr {rockchip,pins =
6 编译
第一次编译完kernel 拷贝出dtb到uboot/dts,在编译
./build.sh -AUCKu
7 烧录
切换到Maskrom

全包烧录
注意烧录工具版本

相关文章:
rk3568 norflash+pcei nvme 配置
文章目录 rk3568 norflashpcei nvme 配置1,添加parameter_nor.txt文件2 修改编译规则3 修改uboot4 修改BoardConfig.mk5 修改kernel pcei配置6 编译7 烧录 rk3568 norflashpcei nvme 配置 1,添加parameter_nor.txt文件 device/rockchip/rk356x/rk3568_…...
【Vue】面经基础版-首页请求渲染
步骤分析 1.安装axios 2.看接口文档,确认请求方式,请求地址,请求参数 3.created中发送请求,获取数据,存储到data中 4.页面动态渲染 代码实现 1.安装axios yarn add axios npm i axios 2.接口文档 请求地址: …...
OBS+nginx+nginx-http-flv-module实现阿里云的推流和拉流
背景:需要将球机视频推送到阿里云nginx,使用网页和移动端进行播放,以前视频格式为RTMP,但是在网页上面播放RTMP格式需要安装flash插件,chrome浏览器不给安装,调研后发现可以使用nginx的模块nginx-http-flv-…...
ch1计算机网络和因特网
*1.1 什么是因特网 因特网是一个世界范围的计算机网络,即一个互联了遍及全世界的数十亿计算设备的网络。 具体构成: 主机hosts或端系统end-systems:数以亿计的计算设备互连,例如 主机-PCs(计算机), workstations(工作站), servers(服务器)端系统-PDAs,phones(…...
Web前端安全测试:深入剖析与实战策略
Web前端安全测试:深入剖析与实战策略 在数字化时代,Web前端作为用户与互联网服务交互的直接窗口,其安全性至关重要。然而,随着技术的不断进步,前端安全面临的威胁也日益复杂和多样化。因此,进行Web前端安全…...
Java学习-JDBC(一)
JDBC 概念 JDBC(Java Database Connectivity)Java数据库连接JDBC提供了一组独立于任何数据库管理系统的APIJava提供接口规范,由各个数据库厂商提供接口的实现,厂商提供的实现类封装成jar文件,也就是我们俗称的数据库驱动jar包JDBC充分体现了…...
异步复位和同步释放
文章目录 前言一、为什么需要复位呢?二、同步复位1. 同步复位定义2. 同步复位的实现3. 同步复位的优点和缺点同步复位优点同步复位缺点 三、异步复位1. 异步复位定义2. 异步复位的实现3. 异步复位的优点和缺点异步复位优点异步复位缺点 四、异步复位同步释放1. reco…...
03-3.2.4 双端队列
👋 Hi, I’m Beast Cheng👀 I’m interested in photography, hiking, landscape…🌱 I’m currently learning python, javascript, kotlin…📫 How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以订…...
SpringBoot的Mapper文件什么时候需要使用@Param注解
解决:nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘XXX‘ not found 关于加注解,其他博客说的很清楚!但是有的人会遇见明明使用的springboot2.x以上版本,仍然提示需要加注解!这是为…...
2024.6.8
2024.6.8 **每日一题** 3040.相同分数的最大操作数目 Ⅱ,通多题意可知,该题最多有三种操作分数,分别是前两个,最后两个,以及第一个和最后一个的和。从这里也可以看出一共有三种状态转移方式,所以我们可以利…...
室内外融合定位是如何做到成为定位领域的新宠
在信息化高速发展的今天,定位技术已成为人们生活和工作中不可或缺的一部分。随着物联网、智慧城市等领域的蓬勃发展,传统的单一定位方式已无法满足复杂多变的环境需求。在这样的背景下,室内外融合定位技术应运而生,以其独特的优势…...
【刷题篇】分治-归并排序
文章目录 1、排序数组2、交易逆序对的总数3、计算右侧小于当前元素的个数4、翻转对 1、排序数组 给你一个整数数组 nums,请你将该数组升序排列。 class Solution { public:vector<int> tmp;void mergeSort(vector<int>& nums,int left,int right){…...
【经验】Ubuntu上离线安装VsCode插件浏览Linux kernel源码
1、下载VsCode离线安装包 1.1 下载 下载地址:https://marketplace.visualstudio.com/vscode 本人安装的插件: C/C++ checkpatch Chinese clangd kconfig Makefile Tools Perl Perl Toolbox注意:C/C++插件要安装Linux 64版本 1.2 安装 将离线安装包拷贝到Ubuntu中,执…...
鼠标侧键映射虚拟桌面切换 —— Win11
鼠标侧键映射虚拟桌面切换 —— Win11 基于 AutoHotkey 实现功能 下载软件 AutoHotkey建议安装在默认路径下(C盘) 此软件非常小,几乎不占用资源软件安装在默认路径以外的位置可能导致部分功能不可用 新建一个 .ahk 文件使用记事本打开该 .a…...
2024全国大学生数据统计与分析竞赛B题【电信银行卡诈骗的数据分析】思路详解
电信诈骗是指通过电话、网络和短信方式,编造虚假信息,设置骗局,对受害人实施远程、非接触式诈骗,诱使受害人打款或转账的犯罪行为,通常以冒充他人及仿冒、伪造各种合法外衣和形式的方式达到欺骗的目的,如冒…...
鸿蒙emitter 订阅事件封装 EmitterUtils
适用于api11 和api12 废话不多说,直接上代码 import emitter from ohos.events.emitter; import { StringUtils } from ohos/flutter_ohos;export class EmitterUtils{/*** 发射字符串类型的* param eventId* param data*/public static sendEvent(eventId:stri…...
C语言---深入指针(4)
回调函数 //回调函数就是通过函数指针调用的函数 //这个在之前的转移表-计算器里面很明显,通过函数指针数组内的函数指针进行函数的调用 // // // 将这四段代码分装成一个函数,一个代码将这4个问题都解决 int Add(int x, int y) {return x y; } int S…...
【启程Golang之旅】让文件操作变得简单
欢迎来到Golang的世界!在当今快节奏的软件开发领域,选择一种高效、简洁的编程语言至关重要。而在这方面,Golang(又称Go)无疑是一个备受瞩目的选择。在本文中,带领您探索Golang的世界,一步步地了…...
oracle视图无法删除,orcl视图删除卡住怎么办
话说,这是一个来自周四加班夜晚的故事,当时我的PL/SQL卡住了,每次查询这个表时都会卡住。 经过一番研究,我找到了解决办法,分为三个步骤: 使用以下查询语句获取正在执行的SQL查询的SID和OracleID…...
ug编程怎么录制宏:一步步探索自动化编程的奥秘
ug编程怎么录制宏:一步步探索自动化编程的奥秘 在UG编程的浩瀚领域中,录制宏是一项强大而神秘的功能。它就像一位魔法师,能够将繁琐的重复操作化为简单的指令,释放出惊人的编程效率。然而,对于许多初学者来说…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
