存储系统的配置
*****************

DDR
======

基本介绍
-----------

DDR由一个单独的ddr_init镜像进行初始化，该镜像由MCU侧的sbl镜像负责调用。
DDR镜像会根据一个ADC的采样值来进行不同的初始化逻辑，请参考 :doc:`DDR特性 <../../j6_sysdev/storage/ddr/j6_sysdev_storage_ddr_feature>` 。


EMMC
=======

基本介绍
-----------

J6X SOC上集成了1个MMC控制器，与外部EMMC设备交互，实现数据高速读写、安全存储等功能。
EMMC的详细信息参考 :doc:`EMMC <../../j6_sysdev/storage/emmc/j6_sysdev_storage_emmc_implementation_j6_soc_zh_CN>`。


UFS
=======

基本介绍
-----------

J6X SOC上集成了1个UFS控制器，与外部UFS设备交互，实现数据高速读写、安全存储等功能。
UFS详细内容参考 :doc:`UFS <../../j6_sysdev/storage/ufs/j6_sysdev_storage_ufs_implementation_j6_soc_zh_CN>`。


NOR-FLASH
============

基本介绍
-----------

NorFlash驱动是在MCU侧实现的，Acore是通过核间通信的方式访问MCU域的NorFlash。XSPI控制器配置和NorFlash适配需要通过MCU侧的EB工具来配置。
控制器配置和Flash颗粒适配请参考 :doc:`fls 集成指导 <../../mcu_mcalcdd/fls/mcu_mcallcdd_fls_4_integration>`。

MCU侧测试命令
-------------

.. code:: bash

	horizon:/$ flsbasictest
	[033.952577 0]############Fls_GetVersionInfo#############
	[033.953215 0]moduleID 92 vendorID 189 sw_major_version 1 sw_minor_version 0 sw_patch_version 0
	[033.954550 0]#############Fls_SetMode#############
	[033.955122 0]Set fast mode OK!
	[033.955510 0]###########Fls_Erase###############
	[034.304029 0]Erase offset 2000000 len 262144 OK!
	[034.304565 0]############Fls_BlankCheck##############
	[034.818230 0]Blankcheck offset 2000000 len 262144 OK!
	[034.818822 0]###########Fls_Write###############
	[034.822702 0]Write offset 2000000 len 2048 OK!
	[034.823216 0]############Fls_Read##############
	[034.826233 0]Read offset 2000000 len 2048 OK!
	[034.826736 0]###########Fls_Compare###############
	[034.830312 0]Compare offset 2000000 len 2048 OK!
	[034.831037 0]Read/Wirte data Verify success!
	[034.831542 0]############Fls_Erase##############
	[034.832396 0]############Fls_Cancel 210116449##############
	Return: 48, 0x00000030

如上打印，说明MCU侧NorFlash驱动已经正常工作了。

Acore Uboot/kernel下测试命令
----------------------------

参考 :doc:`虚拟xspi-norflash使用指南 <../../j6_sysdev/storage/flash/j6_sysdev_storage_flash_controller_introduce_zh_CN>`。
