首页 > 系统相关 >全志 Tina Linux 存储介质切换:eMMC,SPI NAND,SPI NOR,SD Card,SD NAND

全志 Tina Linux 存储介质切换:eMMC,SPI NAND,SPI NOR,SD Card,SD NAND

时间:2022-10-14 11:01:52浏览次数:71  
标签:spinor storage NAND --- SPI 选中 type menuconfig SD

存储切换方法

SDK切换存储介质需要修改board.dts、sys_config.fex、内核配置、TINA系统配置。另外,在spinor 存储介质下,通过 u-boot-sun8iw21p1.bin 进行烧录,u-boot-spinor-sun8iw21p1.bin 启动,使用sys_partition_nor.fex作为分区表。在非spinor介质(spinand、emmc、sdnand),通过u-boot-sun8iw21p1.bin进行烧录和启动,使用sys_partition.fex作为分区表。下文将介绍spinor切换spinandspinand切换spinorspinor切换emmcspinor切换sdnand四种切换方式。

  • sys_config.fex中只要关注storage_type选项,这个选项决定使用哪一种存储介质,配置后在pack过程,会自动打包对应介质的二进制文件。
  [target]
  storage_type = xxx
  其中storage_type | 0:nand | 1:sd | 2:emmc | 3:spinor  | 4:emmc3 | 5:spinand  | 6:sd1 |

spinor切换spinand

sys_config.fex修改

[target]
- storage_type = 3
+ storage_type = 5

board.dts/uboot-board.dts修改

&spi0 {
-	status = "disabled";
+	status = "okay";
	spi-nand@0 {
-		status="disabled";
+		status="okay";
	};
};

uboot编译

编译u-boot-sun8iw21p1.bin,spinand使用u-boot-sun8iw21p1.bin进行烧录、启动。
cboot切换到uboot目录,编辑configs/sun8iw21p1_defconfig
CONFIG_SUNXI_UBIFS=y   //SDK发布默认已选上
执行mboot               //编译
确保device/config/chips/vxxx/bin/u-boot-sun8iw21p1.bin已更新

内核配置

make kernel_menuconfig 层层选中
内核驱动配置
Device Driver --->
   Memory Technology Device (MTD) support --->
      sunxi-nand  --->
          <*> AWNAND CHOICE (Allwinner MTD SPINAND Device Support)  --->
      -*-   Enable UBI - Unsorted block images  --->
         [*]   Read-only block devices on top of UBI volumes
         
内核文件系统配置
File systems --->
   [*] Miscellaneous filesystems  --->
      <*>   UBIFS file system support

TINA环境配置

make menuconfig 层层选中
Target Images  --->
   Boot (SD Card) Kernel format (boot.img)  ---> //默认选中
   [ ] For storage less than 32M, enable this when using ota  //取消勾选
   
Global build settings  --->
   [*] Strip unnecessary functions from libraries  //取消勾选
   
Utilities  --->
   <*> mtd-utils --->
      <*>   mtd-utils-mkfs.ubifs

spinand切换spinor

切换部分原文链接:https://bbs.aw-ol.com/topic/1701/

sys_config.fex修改

[target]
- storage_type = 5
+ storage_type = 3

board.dts/uboot-board.dts修改

&spi0 {
-	status = "okay";
+	status = "disabled";
	spi-nand@0 {
-		status="okay";
+		status="disabled";
	};
};

内核配置

make kernel_menuconfig 层层选中
内核驱动配置
Device Driver --->
   Memory Technology Device (MTD) support --->
      sunxi-nand  --->  //取消勾选
   Self-contained MTD device drivers  --->
      <*> Support most SPI Flash chips (AT26DF, M25P, W25X, ...)  //确认已选中
   <*>   SPI-NOR device support  --->    
内核文件系统配置
File systems --->
   [*] Miscellaneous filesystems  --->
      <*>   Journalling Flash File System v2 (JFFS2) support

TINA环境配置

make menuconfig 层层选中
Target Images  --->
   [*] For storage less than 32M, enable this when using ota  //选中
   
Global build settings  --->
   [*] Strip unnecessary functions from libraries  //选中
   
Utilities  --->
   <*> mtd-utils
      <*>   mtd-utils-mkfs.jffs2  //选中

spinor切换emmc

sys_config.fex修改

[target]
- storage_type = 3
+ storage_type = 2

内核配置

make kernel_menuconfig 层层选中
[*] Enable the block layer  --->
   [*]   Support for large (2TB+) block devices and files
   [*]   Block layer SG support v4
Device Drivers  --->
   < > Memory Technology Device (MTD) support  --->  //取消勾选
   [*] Block devices  --->  //确认勾选
File systems  --->
   <*> The Extended 4 (ext4) filesystem

TINA环境配置

make menuconfig 层层选中
Target Images  --->
   Boot (SD Card) Kernel format (boot.img)  ---> //默认选中
   [ ] For storage less than 32M, enable this when using ota  //取消勾选
   
Global build settings  --->
   [ ] Strip unnecessary functions from libraries  //取消勾选
   
Utilities  --->
   Filesystem  --->
      <*> e2fsprogs //选中

spinor切换sdnand

sys_config.fex修改

[target]
- storage_type = 3
+ storage_type = 1

board.dts修改

&sdc2 {
	non-removable;
	bus-width = <8>;
	mmc-ddr-1_8v;
	mmc-hs200-1_8v;
	mmc-hs400-1_8v;
	no-sdio;
-	no-sd;
+	//no-sd;
	ctl-spec-caps = <0x308>;
	cap-mmc-highspeed;
	sunxi-power-save-mode;
	sunxi-dis-signal-vol-sw;
	max-frequency = <100000000>;
	vmmc-supply = <&reg_dcdc1>;
	/*emmc io vol 3.3v*/
	vqmmc-supply = <&reg_bldo1>;
	/*emmc io vol 1.8v*/
	/*vqmmc-supply = <&reg_eldo1>;*/
	status = "disabled";
};

内核配置

make kernel_menuconfig 层层选中
[*] Enable the block layer  --->
   [*]   Support for large (2TB+) block devices and files
   [*]   Block layer SG support v4
Device Drivers  --->
   < > Memory Technology Device (MTD) support  --->  //取消勾选
   [*] Block devices  --->  //确认勾选
File systems  --->
   <*> The Extended 4 (ext4) filesystem

TINA环境配置

make menuconfig 层层选中
Target Images  --->
   Boot (SD Card) Kernel format (boot.img)  ---> //默认选中
   [ ] For storage less than 32M, enable this when using ota  //取消勾选
   
Global build settings  --->
   [ ] Strip unnecessary functions from libraries  //取消勾选
   
Utilities  --->
   Filesystem  --->
      <*> e2fsprogs //选中

Tina 一般支持nor, nand, mmc 三种介质。

更具体的,nand分为并口nand和spinand,mmc分emmc和sd卡

主要需要区分的是nor和其他介质,因为需要打包的部分有所不同。

即,emmc和nand,sd卡一般可共用一份固件,而nor则需使用另一份固件

sys_config配置

在sys_config中有一个配置项,storage_type,取值及含义如下

;----------------------------------------------------------------------------------
; storage_type 0:nand 1:sd 2:emmc 3:spinor 4:emmc3 5:spinand 6:sd1
;----------------------------------------------------------------------------------
[target]
storage_type = xxx

对于nor的方案,必须配置为

 storage_type = 3

对于其他介质,storage_type则不能配置为3

spinand切换为spinor

sys_config 设置介质为nor

[target]
storage_type = 3

配置所用nor的大小

[norflash]
size		= 16   

内核配置

 make kernel_menuconfig --->
	Device Drivers --->
                < >Block devices  (取消选中)
	Device Drivers --->
		<*>Memory Technology Device (MTD) support
                        <*>OpenFirmware partitioning information support
			<*>SUNXI partitioning support
       <*>   Caching block device access to MTD devices
			<*>   SPI-NOR device support  (对于linux4.9,先选这个,下面的选项才出现)
			Self-contained MTD device drivers  --->
				 <*> Support most SPI Flash chips (AT26DF, M25P, W25X, ...)
  File systems  --->
    < > The Extended 4 (ext4) filesystem(取消选中)
  File systems  --->
    [*] Miscellaneous filesystems  ---> 
     <*>   Journalling Flash File System v2 (JFFS2) support(选中)
  [*] Enable the block layer  --->
    [ ]   Support for large (2TB+) block devices and files(取消选中)

menuconfig配置

make menuconfig --->
       Utilities  --->
                <*> mtd-utils (选择) --->
                        <*> mtd-utils-mkfs.jffs2
make menuconfig --->
       Utilities  --->
                Filesystem  --->
                        < > e2fsprogs(取消选择)

spinor切换为spinand

sys_config 设置介质为spinand

[target]
storage_type = 5

内核配置

 make kernel_menuconfig --->
      Device Drivers --->
                 [*]Block devices --->
                         <*>   sunxi nand flash driver
      Device Drivers --->
		< >Memory Technology Device (MTD) support(取消选择)
       [*] Enable the block layer  --->
                [*]   Support for large (2TB+) block devices and files 
      File systems  --->
               <*> The Extended 4 (ext4) filesystem

menuconfig 配置

make menuconfig --->
       Utilities  --->
                < > mtd-utils (取消选择)
                Filesystem  --->
                        <*> e2fsprogs

分区表配置 注意点

对于nand,rootfs_data分区,使用ext4格式。分配太小的话可能会创建失败。

FAQ

使用mkfs.ext4等工具的时候出现

/usr/sbin/fsck.ext4 -y /dev/by-name/rootfs_data
Error loading shared library /home/wuguanling/workspace/project/v316-sdv-tina/out/v316-sdv/staging_dir/target/rootfs/lib/libc.so: No such file or directory (needed by /usr/lib/libext2fs.so.2)

关闭以下选项:

make menuconfig
   | --- Global build settings
		| --- []strip unnecessary functions for libraries  

原文链接:https://bbs.aw-ol.com/topic/1701/ 作者@YterAA

标签:spinor,storage,NAND,---,SPI,选中,type,menuconfig,SD
From: https://blog.51cto.com/u_15380233/5755764

相关文章

  • 高通骁龙SDM450平台功能介绍
    XY450安卓核心板是一款基于高通SDM450平台高性能、可运行安卓操作系统的4G智能模块,支持LTE-FDD/LTE-TDD/WCDMA/TD-SCDMA/EVDO/CDMA/GSM等多种制式;支持WiFi802.11b/g/n,BT4.0......
  • 什么是 SD-WAN 架构?
     ​SD-WAN架构主要分为三种类型,每种都有其自身的优势,这些优势通常植根于它们使用WAN的方式。这三种类型的SD-WAN架构是:仅限本地架构支持云的架构支持云的加骨干网​仅......
  • SDN小测
    1.SDN来源于()大学的未来网络项目。                斯坦福大学 2.最早商业化版本的OpenFlow是()年发布的。 2009 3.常用的ping命令是发送什......
  • 拒绝了对对象 'sp_sdidebug'(数据库 'master',所有者 'dbo')的 EXECUTE 权限。
    在用VS2008开发网站时,调试代码时(选择了附加到进程的方法进行调试),在执行一个SQL查询时报以下错误:“/VM”应用程序中的服务器错误。拒绝了对对象'sp_sdidebug'(数据库'mas......
  • 陆地观测卫星数据服务(CRESDA)订单ftp地址错误—已解决不能下载问题
    陆地观测卫星数据服务订单ftp地址错误问题:本人在陆地观测卫星数据网站上申请GF1-WFV10幅数据,订单完成后返回的FTP地址出现无法连接服务器现象。(数据订单申请已通过)一、情......
  • 美颜SDK对如今的直播和短视频平台有多重要?全局美颜是什么?
    从事美颜技术相关的工作者肯定对SDK比较熟悉,但是纯路人的话就比较难理解了。所以,平时会有很多小伙伴跟小编问起什么是美颜SDK,以及美颜SDK的作用,我一般给大家讲解时会简单概......
  • NetBSD安装中的一些问题总结
    参考文档:https://www.cioworld.cn/guide/install/netbsd-quick-installhttps://www.netbsd.org/docs/guide/en/最近迷上了BSD系统,玩了一阵子FreeBSD之后,发现FreeBSD对ar......
  • csdn文章编辑变量替换
    ​作者::​​Wflynn​​场景:以前写的​​CSDN​​文章有一些固定的变量名称,现在想统一替换成其他的文本。解决方法首先编辑所需要修改文章,然后开启​​F12​​开发者工具控......
  • 【音视频连载-003】基础学习篇-SDL 消息循环和事件响应
    公众号回复:OpenGL,领取学习资源大礼包音视频学习入门技术文章连载:​​技术开发故事会连载​​​​【音视频连载-001】基础学习篇-SDL介绍以及工程配置​​​​【音视频连载-......
  • 【音视频连载-006】基础学习篇-SDL 播放 YUV 视频文件
    公众号回复:OpenGL,领取学习资源大礼包音视频学习入门技术文章连载:​​技术开发故事会连载​​​​【音视频连载-001】基础学习篇-SDL介绍以及工程配置​​​​【音视频连载-......