简单梳理一下LS1012开发板的Uboot阶段网络初始化过程
在文件:
1 | OK10xx-linux-fs/flexbuild/packages/firmware/u-boot/include/net/pfe_eth/pfe_eth.h |
首先定义了我们所需要的三个结构体:
1 | struct gemac_s { |
简单梳理一下LS1012开发板的Uboot阶段网络初始化过程
在文件:
1 | OK10xx-linux-fs/flexbuild/packages/firmware/u-boot/include/net/pfe_eth/pfe_eth.h |
首先定义了我们所需要的三个结构体:
1 | struct gemac_s { |
在使用LS10xx系列核心板开发项目的过程中,有时候需要根据自己的需求修改一些引脚功能或者一些引脚设置,难免有需要修改RCW(Reset ConfigurationWord)的时候。本文就是根据平时开发的经验谈一下LS10xx系列开发板修改RCW参数修改的方法。
针对三个平台的修改的RCW文件位置分别为:
LS1012平台:
1 | flexbuild/packages/firmware/rcw/ls1012ardb/R_SPNH_3508/rcw_1000_default.rcw |
LS1043平台:
1 | flexbuild/packages/firmware/rcw/ls1043ardb/RR_FQPP_1455/rcw_1600_qspiboot.rcw |
LS1046平台:
1 | SerDes为1040_5559的rcw配置文件: |
LS1046网口RCW及网口配置修改示例 本文要解决的问题: 由于LS104x系列开发板引入了【复位控制字】Reset configuration word (RCW)的配置方法,通过这种配置方法客户可以方便的进行引脚的功能定义,也就是实现引脚的PinMUX功能。 LS104x平台所特有的SerDes Module也是要通过RCW来进行配置,从而将不同的SerDes通道选择为不同的功能。以LS1046A为例,可配置的两路SerDes有:
但是这个被称为RCW的配置方法还有很多客户还不是很了解,所以本文以一个LS1046A的实际需求为例,来详细说明一下修改的过程以供客户后续定制参考。
华为ME909s的4G模块是一个PCIE接口的USB协议的4G模块,它会通过USB口拓展出4路串口,分别为/dev/ttyUSB0,/dev/ttyUSB1,/dev/ttyUSB2,/dev/ttyUSB3。
然后用户可以通过echo “ATE0” > /dev/ttyUSB2命令来向4G模块发送AT指令。
此外,此模块还会通过USB协议注册一个网络设备节点:wwan0
以LS10XX为例,如果想要使板卡支持该模块的话,首先先连接4G模块,使用lsusb命令查看一下硬件连接是否正常:
1 | lsroot@localhost:~# lsusb |
如上所示,ID 12d1:15c1 Huawei Technologies Co., Ltd.为接入的4G模块设备,其中12d1为厂家ID,15c1为产品ID。
接下来我们需要检查内核配置。
首先检查内核配置文件:
1 | arch/arm64/configs/ls1012_defconfig |
ubuntu更新报错如下:
1 | root@localhost:~# apt-get update |
原因是dns没有配置,解决办法 加入dns服务器地址:
vi /etc/resolv.conf
添加
1 | nameserver 202.96.134.133 |
如果提示只读,用sudo运行,即:
sudo vi /etc/resolv.conf
运行完重启系统解决
手机信号值是越大越好,也就是-60db比-70db信号好。这个值越大信号就越好,因为那是个负值,而且在你手里的时候它永远是负值,如果你感兴趣且附近有无线基站的天线的话,你也可以把你的手机尽量接近天线面板,那么值就越来越大;如果手机跟天线面板挨到一起,那么它可能十分接近于 0了(0是达不到的,这里的0的意思也不是说手机没信号了)。
在无线路由中,db同样是越大越好,也就是9db比5db信号好,发射端一般是正值,数值越大发射功率越大;接收端一般是负值,数值越小代表灵敏度越高。
这两者没有必然的关联。
对于信号接收端,此值为负值,这个值越大信号就越好,也就是-60db比-70db信号好。
对于信号发送端,此值为正值,同样是越大越好,也就是9db比5db信号好
雪莲的纯洁在于它选择绽放在了荒无人际的冰域,以自己独一的冷漠与清高向人们诠释了何谓真正的纯洁。其实,我终于明白,所谓的纯洁其实是需要极大的勇气,甘心并且坚持拒绝繁华,拒绝任何可能玷污心灵的向往。
任何繁华的指向都是虚无,因为世界上没有什么可以永远鲜艳的存在,极致背后总会是失落的痛苦。所以告诉自己,要淡化所有的追逐。可以有生活的梦想,但不要让自我成为梦想的附属。我只求每天都是自己,每天都能感受到自我的存在,心的跳动与永不枯竭的泪湖。
我时时告诉自己,要懂得区分幻想与现实。我知道,没有什么可以永远存在于自己的世界里,自己所遇到的,所了解的,所熟知的,终究会成为陌生的东西。所有的色彩都经不起时间的冲刷,所有的一切都会成为记忆的琥珀,尘封在已过往的岁月流年里。
现实中我更喜欢用幻想编制虚无的美丽,看那绽放在记忆中绚丽的七彩。然而,我会知道。无论自己有多么喜欢,那依旧是幻影,终会随时间减淡。无论是什么,我会喜欢,但绝不会迷恋。我会很清醒的知道,不会妄想将幻想带进现实的世界里。而我,也必须要为现实做出某种努力,比如说:学习。
我想,现在的自己已经达到了理想中的状态。所以,自己应该感觉到平和与幸福。
自己已经很好了,卓绝的认知与无悔的坚守。这些都让自己很好的成长。所以我不想再改变什么,也不想再接触其他的神秘。我只求永远保持这种感觉到生命的尽头。
任何时候都不要妄想用满足了结自己的向往。一个人的向往与追逐是一个填不满的无底洞。其实,我们都不知道自己想要的最终是什么,仅仅是靠一个名为梦想的东西指引着不断前行。我们的目的到底在哪里?难道人生注定只是一个漫游?有时候,真的真的不要轻易满足自己,不断满足背后是更为辛苦煎熬的追逐。人性对繁华的贪恋,真的好可怕,有时候,连自己的意志都克制不了……
自己拒绝自己想要的,这是一种多么残酷的本领,因为世人都习惯放纵,很少有人愿意与自己斗争,编造种种可悲的理由来为自己的堕落寻找借口,以侥幸的想法来为自己开脱责任。
人的价值,在遭遇诱惑的一瞬间被决定。
这一篇文章就是简单解析一下SGMII这种接口的内容。
SGMII即Serial GMII,串行GMII,收发各一对差分信号线,时钟频率625MHz,在时钟信号的上升沿和下降沿均采样。
ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,它提供了linux操作系统的音频与MIDI功能 。
在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了alsa-lib,应用程序只要调用alsa-lib提供的API,即可以完成对底层音频硬件的控制。

图1.1 alsa的软件体系结构
前面一节的内容我们提到,ASoC被分为Machine、Platform和Codec三大部分。
其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,再次引用上一节的内容:
Machine驱动负责处理机器特有的一些控件和音频事件(例如,当播放音频时,需要先行打开一个放大器);单独的Platform和Codec驱动是不能工作的,它必须由Machine驱动把它们结合在一起才能完成整个设备的音频处理工作。
ASoC的一切都从Machine驱动开始,包括声卡的注册,绑定Platform和Codec驱动等等,下面就让我们从Machine驱动开始讨论吧
ASoC把声卡注册为Platform Device,以WM8960为例 ,涉及文件:sound/soc/imx/imx-wm8960.c
其模块初始化函数为:module_init(imx_asoc_init);