首页 > 其他分享 >x210-2023-03-31

x210-2023-03-31

时间:2023-04-01 10:11:53浏览次数:34  
标签:03 0000 初始化 x210 31 原理图 NFS 0x2000 0x3000

1、在参考网上的一些开启NFS文章时,发现有一个问题,就是他们在---Network File Systems底下都有一个[] Root File system on NFS,但是自己配置这里却没有,而且刚开始的时候也是弄不出来,然后去网上查了个遍,有说直接修改xxx_defconfig文件添加CONFIG_NFS_FS=y、CONFIG_IP_PNP=y的,可是加了并不起效,然后有说根据make menuconfig搜索功能查CONFIG_ROOT_NFS这个配置宏所有依赖然后逐一去打开,但是搜索出来的依赖要不就是已经开启了的(一开始还以为是这些子依赖的depend没做到满足,于是根据一个个depend的内容再往下搜依赖,到最后发现有些depend的子内容搜出来压根不敢确定是不是那项,因为字面内容完全和选项不是很匹配甚至压根没有,导致你根本不确定是否已经开够所有需要的依赖),其实是由于NFS_client_support这项没选对,需要在*模式才能引出[] Root File system on NFS,而在M模式则不可以,这时想起,因为第一次按下空格默认选择的是M模式(如下图),但是实际上要再多按一下空格使其选择到*模式,可是自己完全没注意到,因为被选择项有蓝颜色打掩护,眼神不好以及忙着配别的项所以压根没注意到这里没选择正确,至于能发现这个细微错漏实在是得益于前面make menuconfig搜索依赖的这个折腾过程,有点意识到了某些选项在*、M是完全不一样的,所以直到第二天再次尝试的时候会特别注意甄别自己配置的每一项和参考文章的有没有对上。

 

 2、全部镜像都使用SD卡烧录,但是只有搬移的uImage能对上,而initrd.img.gz对不上,检查发现是uboot的mmc_relocate过程循环代码j错写成了i,检查的办法就是检查hexdump -C和md右侧的ASCII内容(因为hexdump的字节内容是大端格式的,所以字节内容部分只做辅助观察),其实也可以得出思路就是借助hexdump的ASCII内容反过来帮助查看是否烧录或下载到位。

 

 3、根据网上查到的大多数出现restting...、start kernel...uncompressing linux...的情况,绝大部分说都是由于下载地址和链接地址不正确的缘故,所以开始想起好好查查这个0x3000_8000(因为目前在用并不是这个,而是0x2000_8000,其中一个原因是并不满意网上说的为了将512M连起来用,而另一个原因是当时看DDR2初始化视频的时候还没下到友善的板子原理图,而自己的板子虽有原理图但由于那会刚接触所以对其接法还理解不够透,所以只照着视频的模仿来初始化),不过中间插入了个杂事,就是想从机械硬盘拷贝那份友善板子原理图时发现笔记本识别不了这个硬盘(不仅硬盘,鼠标也出现过这个现象),经过多次尝试才发现原来是笔记本内存不够导致的(关掉内存占用多的虚拟机就能识别上了),现在两份原理图(一份九鼎x210cv3一份友善的Mini210s_v1.0_1213),两个对比着看,其实能发现到两者还是有差别的,九鼎的这个不仅用了Xm1,还用到了Xm2,但是友善的只用了Xm1,而Xm2没有用到,所以想起来其实自己的DRAM初始化如果完全照着视频《48-编写自己的DDR初始化代码1》一样去做是有问题的。

 不用mkimage自动生成uImage,而是采取手动命令生成,以便指定Entry Point,烧录结果如下图。

4、在修改的过程测试发现,果然会有问题出现,一是会跑飞(就是使用md查看地址内容时,但是具有不确定性,有时候碰上有时碰不到,自己就碰到过两次),这个需要将memconfig0的chip_map从0x0改为0x1,即使用Interleaved,二是间隔0x0200_0000的两个地址它们的存的值是一样的(改动其中一个都会导致另一个跟着变),这个就需要chip_mask选为能正确反映所接芯片大小的那个掩码值,由于我原来是按视频模仿的配为了512M,但是实际DMC0只接有256M,所以就出现了第二个的现象(说到这里,我又想起后面移植三星的uboot时查阅资料过程中已经有人指出他们的0x2000_0000和0x3000_0000地址内容是同步的,由于他们的uboot开启了MMU,但是还没查到是如何将0x2000_0000映射到0x3000_0000的,因为根据他们说所使用的是smdkc110的,只是从smdkc110开启MMU的注释来看,没看出来有把0x2000_0000映射到0x3000_0000的过程,如果说要是通过DRAM初始化的DMC_MEMCONFIG0来控制映射的话,我测试到的结果是并不能做到,或许也有可能我其它配置步骤里数值没做到完全正确;另外还要再补充说的就是,DMC0、DMC1的memconfig0和memconfig1一定要自己动手配,换成不同的数值、不同的组合看一下情况再下结论,因为不同平台可能存在着差异)。

标签:03,0000,初始化,x210,31,原理图,NFS,0x2000,0x3000
From: https://www.cnblogs.com/weizhunie/p/17249750.html

相关文章

  • 力扣603(MySQL)-连续空余座位(简单)
    题目:几个朋友来到电影院的售票处,准备预约连续空余座位。你能利用表cinema,帮他们写一个查询语句,获取所有空余座位,并将它们按照seat_id排序后返回吗? 对于如上样例,你的查询语句应该返回如下结果。注意:seat_id字段是一个自增的整数,free字段是布尔类型(‘1’表示空余,‘0......
  • day31(2023.3.31)
    1.TCP双向通信(创建服务端)2.TCP双向通信(创建客户端) 运行结果: 3.点对点聊天应用(创建服务端)4.点对点聊天应用(创建客户端) 运行结果:  5.点对点应用聊天优化(服务端和客户端一起) 运行结果:  3月底了,一个月过去了,继续加油,冲冲冲!day31(2023......
  • 202031607213-李蕊 实验一 软件工程准备--构建之法与博客首秀
    实验一软件工程准备一、实验介绍项目内容班级博客链接https://edu.cnblogs.com/campus/xbsf/2020CSSE本次作业要求链接https://edu.cnblogs.com/campus/xbsf/2020CSSE/homework/12938我的课程学习目标(1)学习博客园软件开发者学习社区使用技巧和经验。(2)了解Gi......
  • 3.31学习总结
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="java.io.*,java.util.*"%><!DOCTYPEhtml><html><head><metacharset="utf-......
  • 代码大全 阅读笔记03
    复杂数据类型恰当地对数据进行结构化,可以使程序更简单、更容易理解也更容易维护。可以用表来代替复杂的逻辑结构。当你被程序的复杂逻辑迷惑时,应考虑是否可用查寻表来简化程序。抽象数据类型是降低复杂性的有力武器。它使你可以分层编写程序,而且是从问题域,而不是程序语言细节来编......
  • 202031607211-米乐 实验一 软件工程准备—初步认识软件工程
    实验一软件工程准备项目内容班级博客链接2023年春软件工程(2020级计算机科学与技术)本次作业要求链接实验一软件工程准备我的课程学习目标学会使用博客园进行学习、了解Github的基本操作、阅读《现代软件工程——构建之法》本次作业帮我实现的学习目标能够......
  • 第一天 2023-03-31
    MYSQL第一个知识点--创建数据库--创建一个数据库targetcreatedatabasetarget;--进入到数据usetarget;--创建表createtablestage_1(idintauto_incrementprimarykeycomment'ID',k8s_1varchar(10)notnulluniquecomment'k8s第一道系统的完成度......
  • 2023.3.31团队开发
    今天思考了大致的方向:首先创建web端的服务,即用户可以实现二维码的扫码,选择自己在车上需要的产品然后将数据更新在数据库中。最后使用Android端;也就是在司机的手机上查看商品的购买情况购买情况通过大数据分析,预测等......
  • 每日总结 3.31
    今天学习了微信小程序的list列表视图展示商品信息,并实现页面的刷新,代码量大概80行左右。   明天继续学习页面的设计。 ......
  • 项目一众筹网05_03_树的节点的增删改查、radio、代码里面实现模拟用户点击重置、每次
    系列文章目录文章目录系列文章目录18-添加子节点-目标和思路19-添加子节点-前端:打开模态框20-添加子节点-前端:发送Ajax请求==代码里面实现模拟用户点击重置==21-添加子节点-后端==bug发现异步的问题:每次加载数据的时候都要考虑一下异步的问题==22-更新节点-目标和思路23-更新节点......