在SD/MMC卡上实现hive (Implement WinCE HIVE&ROM system on NAND or SD system )
本是个很简单的topic,但无奈的是很多客户都没有实现。所以只能写一个guide给客户,让他们依葫芦画瓢。
Implement WinCE HIVE&ROM
system on NAND or SD system
1.0 Scope
This document details in how toimplement the WinCE6 HIVE&ROM system. Two types of media are widely used in Au1300 system, the NAND flash and the SD card. The document will describe
the steps implementing HIVE&ROM system for both media type.
2.0 Hardware details
NAND flash is connected with Au1300’s static memory controller. The SD card is connected with SD slot.
3.0 Creating HIVE&ROM system
Section 3.1 will describe how to implement HIVE&ROM system on NAND flash disk while section 3.2 describes the similar system way to create HVIE&ROM system
on SD card.
3.1 HIVE&ROM system on NAND flash
3.1.1 Add catalog components
catalog->CEBASE->File Systems and Data Store->File system->ROM-only File System
catalog->CEBASE->File Systems and Data Store->Registry Storage- >Hive-based Registry

catalog->CEBASE-> File Systems and Data Store->Storage Manager ->FAT File System
catalog->CEBASE-> File Systems and Data Store->Storage Manager ->Partition Driver

catalog->Third Party->AVN13xx:MIPSII->Storage->NAND

3.1.2 Step2: Registry settings
Update nand fmd driver registry with following content. The nand fmd driver registry is located /Drivers/Nandfmd/nandfmd.reg.
; HIVE BOOT SECTION
; This file is to be included in platform.reg if required.
[HKEY_LOCAL_MACHINE\Drivers\Builtin\NAND]
"Profile"="NAND"
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"Order"=dword:0
"FriendlyName"="NAND FLASH Driver"
"Dll"="NANDFMD.dll"
"Prefix"="DSK"
"Index"=dword:1
"Flags"=dword:1000
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\NAND]
"DriverPath"="Drivers\\Builtin\\NAND"
"LoadFlags"=dword:1
"Order"=dword:0
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NAND]
"Name"="NAND FLASH Storage"
"DefaultFileSystem"="FATFS"
"PartitionDriver"="mspart.dll"
"Folder"="NAND FLASH"
"AutoPart"=dword:1
"AutoMount"=dword:1
"AutoFormat"=dword:1
[HKEY_LOCAL_MACHINE\init\BootVars]
"SystemHive"="Documents and Settings\\system.hv"
"ProfileDir"="Documents and Settings"
"Flags"=dword:3
"RegistryFlags"=dword:1
"NoDefaultUser"=dword:0
; END HIVE BOOT SECTION
3.2 HIVE&ROM system on SD card
3.2.1 Add catalog components
catalog->CEBASE->File Systems and Data Store->File system->ROM-only File System
catalog->CEBASE->File Systems and Data Store->Registry Storage- >Hive-based Registry

catalog->CEBASE-> File Systems and Data Store->Storage Manager ->FAT File System
catalog->CEBASE-> File Systems and Data Store->Storage Manager ->Partition Driver

catalog->Third Party->AVN13xx:MIPSII->Storage->Removable->Secure Digital/MMC

3.2.2 Step2: Registry settings
Update SDIO host driver registry with following content. The SDIO driver registry is located /Drivers/SDIO/sdio.reg.
;
;
; Alchemy Au1100 SD Controller registry settings
; HIVE BOOT SECTION
; setting for SD bus driver to load driver
[HKEY_LOCAL_MACHINE\Drivers\Builtin\SDHC_Au1100]
"Dll"="SDIO.dll"
"Order"=dword:1
"Prefix"="SDP"
; force the host controller to run in the PIO mode instead of
; of DMA mode.
"PIOMode"=dword:0
; Disable the MMC 8 bit wide data bus for SD0, the eMMC slot, which is slot 1
; for emmc device, dont disable 8 bits bus
; for sd device, only support 4 bits bus
"Disable8BitBus"=dword:1
"Index"=dword:1
"Flags"=dword:1000
[HKEY_LOCAL_MACHINE\Drivers\Builtin\SDBusDriver]
"Dll"="SDBus.dll"
"Order"=dword:0
"Index"=dword:1
"Prefix"="SDC"
"ThreadPriority"=dword:64 ; default thread priority for dispatch thread
"RequestListDepth"=dword:30 ; pre-allocated requests
"Flags"=dword:11000 ; DEVFLAGS_TRUSTEDCALLERONLY
"IClass"=multi_sz:"{20FA98A8-B298-4b32-8D72-C716AEE2FA84}=%b","{6F40791D-300E-44E4-BC38-E0E63CA8375C}=%b"
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class]
"Dll"="SDMemory.dll"
"Order"=dword:1
"Prefix"="DSK"
"BlockTransferSize"=dword:40 ; send no more than 64 blocks of data per bus transfer
;"SingleBlockWrites"=dword:1 ; alternatively force the driver to use single block access
;"IdleTimeout"=dword:7D0 ; 2000 milliseconds
;"IdlePowerState"=dword:2 ; 0 == D0, 1 == D1, etc.
;"DisablePowerManagement"="" ; if value present, then disable (remove value to enable)
"Profile"="SDMemory"
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
"{A32942B7-920C-486b-B0E6-92A702A99B35}"
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\MMC_Class]
"Dll"="SDMemory.dll"
"Prefix"="DSK"
"BlockTransferSize"=dword:40 ; send no more than 64 blocks of data per bus transfer
;"SingleBlockWrites"=dword:1 ; alternatively force the driver to use single block access
;"IdleTimeout"=dword:7D0 ; milliseconds
;"IdlePowerState"=dword:2 ; 0 == D0, 1 == D1, etc.
;"DisablePowerManagement"="" ; if value present, then disable (remove value to enable)
"Profile"="MMC"
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
"{A32942B7-920C-486b-B0E6-92A702A99B35}"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MMC]
"Name"="MMC Memory Card"
"Folder"="MMCCard"
"PartitionDriverName"="MSPART"
"DefaultFileSystem"="FATFS"
"BootPhase"=dword:0
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MMC\FATFS]
"MountAsBootable"=dword:1
"MountAsROM"=dword:1
"MountAsRoot"=dword:1
"AutoFormat"=dword:1
"AutoPart" =dword:1
"AutoMount"=dword:1
"BootPhase"=dword:0
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory]
"PartitionDriverName"="MSPART"
"Name"="SD Memory Card"
"Folder"="SDCard"
"DefaultFileSystem"="FATFS"
"BootPhase"=dword:0
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory\FATFS]
; "MountAsBootable"=dword:1
; "MountAsROM"=dword:1
; "MountAsRoot"=dword:1
"AutoFormat"=dword:1
"AutoPart" =dword:1
"AutoMount"=dword:1
"BootPhase"=dword:0
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class\High_Capacity]
"Dll"="SDMemory.dll"
"Prefix"="DSK"
"BlockTransferSize"=dword:40 ; send no more than 64 blocks of data per bus transfer
;"SingleBlockWrites"=dword:1 ; alternatively force the driver to use single block access
;"IdleTimeout"=dword:7D0 ; 2000 milliseconds
;"IdlePowerState"=dword:2 ; 0 == D0, 1 == D1, etc.
;"DisablePowerManagement"="" ; if value present, then disable (remove value to enable)
"Profile"="SDMemory"
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
"{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MMC\BINFS]
"MountSystem"=dword:1
"MountAsROM"=dword:1
"BootPhase"=dword:0
; SDHC Memory Storage class driver
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\MMC_Class\High_Capacity]
"Dll"="SDMemory.dll"
"Prefix"="DSK"
"BlockTransferSize"=dword:100 ; send no more than 256 blocks of data per bus transfer
"Index"=dword:1
"BootPhase"=dword:0
;"BlockTransferSize"=dword:40 ; send no more than 64 blocks of data per bus transfer
"SDClockRateOverride"=dword:2625A0 ; 52000000 Hz
;"SingleBlockWrites"=dword:1 ; alternatively force the driver to use single block access
;"IdleTimeout"=dword:7D0 ; 2000 milliseconds
;"IdlePowerState"=dword:2 ; 0 == D0, 1 == D1, etc.
;"DisablePowerManagement"="" ; if value present, then disable (remove value to enable)
"Profile"="MMC"
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
"{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"
[HKEY_LOCAL_MACHINE\System\StorageManager\BinFS]
"BootPhase"=dword:0
"Order"=dword:0
"FriendlyName"="BIN Filesystem"
"Dll"="binfs.dll"
"Paging"=dword:1
[HKEY_LOCAL_MACHINE\init\BootVars]
"SystemHive"="\\Hive\\system.hv"
"ProfileDir"="Documents and Settings"
"Flags"=dword:3
"RegistryFlags"=dword:1
"NoDefaultUser"=dword:0
; END HIVE BOOT SECTION
在SD/MMC卡上实现hive (Implement WinCE HIVE&ROM system on NAND or SD system )的更多相关文章
- SD/MMC卡初始化及读写流程
二.MMC/SD卡的模型和工作原理 PIN脚.SD卡总线.SD卡结构.SD卡寄存器.上电过程 SD卡寄存器: OCR:操作电压寄存器: 只读,32位 第31位: 表示卡上电的状态位 CID: 卡 ...
- (linux)MMC 卡驱动分析
最近花时间研究了一下 MMC 卡驱动程序,开始在网上找了很多关于 MMC 卡驱动的分析文章,但大都是在描述各个层,这对于初学者来讲帮助并不大,所以我就打算把自己的理解写下来,希望对大家有用.个人觉得理 ...
- MA8621带SD读卡的USB 2.0高速3端口HUB方案芯片|MA8621中文规格书|USB 2.0方案
MA8621说明 MA8621是USB 2.0高速3端口集线器的高性能解决方案,带有SD卡控制器,完全符合通用串行总线规范2.0.控制器继承了先进的串行接口技术,当3个DS(下游)端口同时工作时,功耗 ...
- 带SD读卡的USB HUB方案芯片MA8621|用于带读卡的USB HUB拓展坞方案芯片MA8621
MA8621是一款带SD读卡器控制器的USB 2.0高速3端口集线器方案芯片,主要用在USB TYPEC拓展坞或者USB typec扩展底座上面. 1. MA8621功能概述 MA8621是USB 2 ...
- 【Android】读取sdcard卡上的全部图片而且显示,读取的过程有进度条显示
尽管以下的app还没有做到快图浏览.ES文件浏览器的水平,遇到大sdcard还是会存在读取过久.内存溢出等问题,可是基本思想是这种. 例如以下图.在sdcard卡上有4张图片, 打开app,则会吧sd ...
- 在大于32GB或64GB容量的SD卡上使用NOOB安装树莓派 - Using NOOB on SD cards larger than 32GB or 64GB for Raspberry Pi
在树莓派上玩了一小段时间了,因为装的软件包越来越多,所以越来越感觉16G的SD卡没办法长期使用下去.于是采购了几张64G的SD卡,打算周末装上系统.可是按照一般的流程,在Windows下用SD For ...
- android学习笔记47——读写SD卡上的文件
读写SD卡上的文件 通过Context的openFileInput.openFileOutput来打开文件输入流.输出流时,程序打开的都是应用程序的数据文件夹里的文件,其存储的文件大小可能都比较有限- ...
- Android开发之SD卡上文件操作
1. 得到存储设备的目录:/SDCARD(一般情况下) SDPATH=Environment.getExternalStorageDirectory()+"/"; 2. 判断SD卡 ...
- Android权限安全(12)apk安装在sd卡上时,如何保证数据安全
apk安装在sd卡上时,如果把sd卡拿下安在另一个手机B上,那么apk的数据就可以被B里的恶意应用访问了. 下面是android解决这个问题的方案: 绑定设备 1,绑定perDevice使得应用以及应 ...
随机推荐
- Mac 下安装node.js
Node.js 简介 Node.js 是一个用Chrome's V8 JavaScript engine 构建的 JavaScript 运行时框架.Node.js 使用事件驱动.非阻塞式 I/O 模块 ...
- Spring Resource接口获取资源
1.1.1. Resource简介 在Spring内部实现机制,针对于资源文件(配置的xml文件)有一个统一的接口Resource. 1.1.1.1. 接口定义的方法 1.exists():判断资源文 ...
- iOS编程Cookbook第19章最后一个例子不能正常工作的解决办法
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在Cookbook的第19章的11节中所要解决的是在App中显 ...
- 剑指Offer——乐视笔试题+知识点总结
剑指Offer--乐视笔试题+知识点总结 情景回顾 时间:2016.9.19 15:10-17:10 地点:山东省网络环境智能计算技术重点实验室 事件:乐视笔试 总体来说,乐视笔试内容体量不算少, ...
- 关于在eclipse开发环境上打开手机data文件
使用Eclipse开发Android上的数据库应用,需要把数据库文件放到/data/data/mynamespace/database文件夹下,普通手机通过ROOT后经常还是看不到这个文件夹,这时需要 ...
- 02基于注解开发SpringMVC项目(jar包,异步,request,参数传递,多选的接收,Model传参,map传参,model传参,ajax,重定向,时间日期转换)
1 所需jar包 项目结构如下: 2 web.xml配置文件的内容如下: <?xmlversion="1.0"encoding="UTF-8"?&g ...
- 【一天一道LeetCode】#172. Factorial Trailing Zeroes
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- java基础---Java---面试题---银行业务调度系统(线程同步锁、枚举、线程池)
银行业务调度系统的项目需求: 模拟实现银行业务调度系统逻辑,具体需求如下: Ø 银行内有6个业务窗口,1- 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口. Ø 有三种对应类 ...
- LCD 显示异常定位分析方法
第一种情况: 进入kernel或android 后,如果LCM图像示异常,可以通过如下步骤来判断问题出现在哪个层面. step1:通过DMMS截图,来判断上面刷到LCM的数据是否有问题. 若DMMS获 ...
- jquery 只读
大家都理解这是什么,正常的写法如下: if (status == true) { $("#minDelistStr").val(totalAmount);// 去掉首部的" ...