如何在Ubuntu下使用TF/SD 卡制作exynos 4412芯片手册 u-boot启动盘

查看: 3710|回复: 1
x4412开发板&ibox卡片电脑更新升级方法
longteng 该用户已被删除
fastboot手动更新方式:
1、系统上电,在串口终端中按空格键进入uboot命令行
2、如果系统INAND未执行过任何分区命令,则键入命令:fdisk -c 0
3、确认USB线已正确连接至PC端,在uboot的串口终端中键入命令:fastboot 以启动传输服务
4、在PC端的命令行下,按需键入如下命令:
BOOTLOADER:
& & & & fastboot flash ubootpak ubootpak.bin
& & & & 或者
& & & & fastboot flash fwbl1 fwbl1
& & & & fastboot flash bl2 bl2.bin
& & & & fastboot flash bootloader u-boot.bin
& & & & fastboot flash tzsw tzsw
BOOT IMAGE:
& & & & fastboot flash boot boot.img
& & & & 或者
& & & & fastboot flash kernel zImage
& & & & fastboot flash ramdisk ramdisk-uboot.img
FILESYSTEM:
& & & & fastboot flash system system.img
& & & & 擦除data cache及fat分区:
& & & & fastboot -w
& & & & fastboot erase fat
& & & & 此命令可直接烧写BOOT IMAGE及FILESYSTEM
& & & & fastboot update update.zip
备注:如果需要手动更新QT,bootloader及内核更新方法同上,仅仅需要将system分区对应的烧写文件改为qt-rootfs.img即可。
在更换文件系统后,请确认环境变量的设置是否正确,具体设置见下文说明。
=================================================================================================
SD卡更新方式:
Android系统:
1、准备一张SD卡,在其根目录下建立x4412-android文件夹
2、拷贝镜像文件:ubootpak.bin boot.img system.img至x4412-android目录下
3、并在x4412-android目录下,创建环境变量默认配置文件env.txt,不存在,则不更新系统环境变量
4、env.txt文件内容配置示例: (需正确设置环境变量,在文件末尾需要保留一空行)
& & & & bootcmd=movi read kernel 0 ;movi read rootfs 0 000;bootm 00000
& & & & bootargs=lcd=vga- tp=ft5x06- cam=ov2655
5、系统上电,系统自动检测是否需要升级,等待即可
1、准备一张SD卡,在其根目录下建立x4412-qt文件夹
2、拷贝镜像文件:ubootpak.bin zImage qt-rootfs.img至x4412-qt目录下
3、并在x4412-qt目录下,创建环境变量默认配置文件env.txt,不存在,则不更新系统环境变量
4、env.txt文件内容配置示例: (需正确设置环境变量,在文件末尾需要保留一空行)
& & & & bootcmd=movi read kernel 0 ;bootm
& & & & bootargs=root=/dev/mmcblk0p2 rw rootfstype=ext4 lcd=vga- tp=ft5x06- cam=ov2655
5、系统上电,系统自动检测是否需要升级,等待即可
UBUNTU系统:
1、准备一张SD卡,在其根目录下建立x4412-ubuntu文件夹
2、拷贝镜像文件:ubootpak.bin zImage ubuntu-rootfs.tar.bz2 burn-ubuntu-ramdisk.img至x4412-ubuntu目录下
3、并在x4412-ubuntu目录下,创建环境变量默认配置文件env.txt,不存在,则不更新系统环境变量
4、env.txt文件内容配置示例: (需正确设置环境变量,在文件末尾需要保留一空行)
& & & & bootcmd=movi read kernel 0 ;bootm
& & & & bootargs=root=/dev/mmcblk0p1 rw rootfstype=ext4 lcd=vga- tp=ft5x06- cam=ov2655
5、系统上电,系统自动检测是否需要升级,等待即可
备注:如需强制更新,按着Left键启动或者将环境变量恢复为默认设置,则会触发强制升级
env default -f
注意,自动检测是否升级是依据文件的crc来实现的,为避免较长的计算时间,最大读取单个升级文件的前5MB并计算CRC。比如system.img这类镜像文件,如果前5MB没变化,且bootloader和内核都没改变,则不会触发自动更新。为解决此类情况,可执行强制更新模式。
补充 :SD卡升级系统时,会自动根据EMMC的CID自动生成唯一MAC地址,不再需要手动设置环境变量,添加MAC参数。
=================================================================================================
制作量产启动SDCARD
1、准备一张SD卡,通过gparted工具将前面保留100多MB空间,后面格式化为FAT32分区
2、运行脚本exynos4x12-irom-sd.sh或者sd_fusing.sh制作启动卡
UBOOT四合一镜像ubootpak.bin烧写命令:
& & & & sudo ./exynos4x12-irom-sd.sh /dev/sdb ubootpak.bin
UBOOT分离镜像fwbl1 bl2.bin u-boot.bin tzsw烧写命令:
& & & & sudo ./sd_fusing.sh /dev/sdb
3、拷贝相应的升级文件至SD卡,方法同上。
====================================================================================
UBOOT环境变量参数说明:
1)设置网卡MAC地址为,(此参数已失效,当前MAC地址是根据EMMC的唯一CID序列号运算获得的)
env set bootargs &mac=00:09:c0:ff:ee:58&
2)Camera模块,如果没有传递任何&cam=xxx&参数,则默认使能OV2655模块
cam变量可选参数列表如下:
& & & & ov2655
& & & & tvp5150
& & & & tvp5146
示例,选择tvp5150 TVIN模块
env set bootargs &cam=tvp5150&
3)选择LCD液晶屏
lcd变量可选择参数列表如下:
& & & & ek070tn93 & & & & & & & & (800 X 480)
& & & & vs070cxn& & & & & & & & (1024 X 600)
& & & & kd079d2& & & & & & & & & & & & (768 X 1024)
& & & & b116xtn04& & & & & & & & (1366 X 768)
& & & & vga-& & & & (1024 X 768)
& & & & vga-& & & & (1440 X 900)
& & & & vga-& & & & (1280 X 1024)
示例,选择EK070TN93标清屏(800 X 480)
env set bootargs &lcd=ek070tn93&
4)选择触摸屏分辨率
tp变量可选择参数列表如下:
& & & & ft5x06-800x480
& & & & ft5x06-
& & & & ft5x06-768x1024
& & & & gslx680
示例,选择ft5x06-
env set bootargs &tp=ft5x06-&
5)选择HDMI相关参数,(仅对ubuntu和QT系统有效,默认480P):
hdmi变量可选择参数列表如下:
& & & & STD_1080P
& & & & STD_720P
& & & & STD_480P
full变量示例参数如下: HDMI调整边界相关参数
& & & & full=15x25 -- Top adjustment is 15, left adjustment is 25;
& & & & full=0x10&&-- Top adjustment is 0, left adjustment is 10;
6)示例参数:
env set bootargs &lcd=ek070tn93 tp=ft5x06-800x480 cam=ov2655&
env set bootargs &lcd=vs070cxn tp=ft5x06- cam=ov2655&
高清屏 - 思利微电容触摸:
env set bootargs &lcd=vs070cxn tp=gslx680 cam=ov2655&
高清屏7.9寸屏 - FT5406电容触摸:
env set bootargs &lcd=kd079d2 tp=ft5x06-768x1024 cam=ov2655&
高清屏11.6寸屏:
env set bootargs &lcd=b116xtn04 tp=ft5x06- cam=ov2655&
env set bootargs &lcd=vga- tp=ft5x06- cam=ov2655&
env set bootargs &lcd=vga- tp=ft5x06- cam=ov2655&
env set bootargs &lcd=vga- tp=ft5x06- cam=ov2655&
=================================================================================================
1) 破坏INAND引导,操作如下:
& & & & 系统上电,按空格键进入uboot命令行,执行命令mmc erase boot 0 1 1 则INAND启动已破坏,可以从外部SDCARD启动
2) system分区以读写方式挂载:
& & & & mount -t ext4 -o remount,rw /dev/block/mmcblk0p2 /system
3) 不烧写INAND,调试kernel及ramdisk
& & & & fastboot boot zImage ramdisk-uboot.img
& & & & 启动DEBUG版ramdisk则使用如下命令:
& & & & fastboot boot zImage debug-ramdisk-uboot.img
4) 切换INAND的boot及user模式
& & & & emmc open 0
& & & & emmc close 0
5) 烧写QT文件系统
& & & & fastboot flash system qt-rootfs.img
& & & & 设置uboot启动参数:
& & & & env set bootargs &root=/dev/mmcblk0p2 rw rootfstype=ext4 lcd=vs070cxn tp=ft5x06- hdmi=STD_720P full=15x25 cam=ov2655&
& & & & env set bootcmd &movi read kernel 0 ;bootm &
& & & & env save
6) 烧写lubuntu系统至外部SDCARD
& & & & 制作一张sdcard并将其格式化为EXT4分区,在PC平台上执行解压到sdcard命令:
& & & & tar xvf lubuntu-12.04-x4412-roofs.tar.bz2 -C /xxxxx/sdcard
& & & & 设置uboot启动参数:
& & & & env set bootargs &root=/dev/mmcblk1p1 rw rootfstype=ext4 lcd=vs070cxn tp=ft5x06- hdmi=STD_720P full=15x25 cam=ov2655&
& & & & env set bootcmd &movi read kernel 0 ;bootm &
& & & & env save
7) 恢复uboot默认配置参数
& &在uboot的命令行里执行如下指令,即可
& &env default -f
& &env save
如何擦除emmc上的所有数据,包括bootloader、kernel和文件系统等?
另外,谁能够具体阐述下emmc上的数据存储布局和类型?我在uboot里查看fdisk -c 0,只看到4个不同类型的分区,这些分区分别是用来干什么的?& & 一、安装nginx相对较为简单,安装前确认已经安装了pcre,可通过rpm -q pcre查看本机安装版本。一般安装即可。若无安装直接yum install pcre安装下。& & 二、下载当前稳定版1.2.7& & cd /tmp& & wget http://nginx.org/download/nginx-1.2.7.tar.gz& & tar -xvf nginx-1.2.7.tar.gz& & cd nginx-1.2.7& & 三、正式安装& & 点击(此处)折叠或打开& & #安装Nginx& & tar -zxvf nginx-1.2.7.tar.gz& & cd nginx-1.2.7& & ./configure --user=www --group=www \& & --prefix=/usr/local/nginx \& & --sbin-path=/usr/local/nginx/sbin/nginx \& & --conf-path=/usr/local/nginx/conf/nginx.conf \& & --with-http_stub_status_module \& & --with-http_ssl_module \& & --with-pcre \& & --lock-path=/var/run/nginx.lock \& & --pid-path=/var/run/nginx.pid& & 编译完成没错误后,执行以下命令& & make && make install && cd ../ 四、更改nginx配置信息& & 点击(此处)折叠或打开#更改配置& & vi /usr/local/nginx/conf/nginx.conf& & #修改一些参数,别直接替换文件,这只是一部分& & user www& & events {& && & worker_connections 1024;& & }& & listen 80;& & server_& & index    index.html index.htm index.& & root      /var/www/& & location ~ .*\.(php|php5)?$ {& & fastcgi_pass 127.0.0.1:9000;& & fastcgi_index index.& & fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_& & include fastcgi_& & }& & #注意这里& & #$document_root$fastcgi_script_& & #检测配置文件& & /usr/local/nginx/sbin/nginx -t& & #提示表示成功& & #nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok& & #nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful& & #开启Nginx& & /usr/local/nginx/sbin/nginx& & #平滑重启Nginx& & /usr/local/nginx/sbin/nginx -s reload& & #添加开机启动& & vi /etc/rc.d/rc.local& & #最后一行加入& & /usr/local/nginx/sbin/nginx & 五、测试nginx及php是否可用& & 点击(此处)折叠或打开vi /var/www/html/index.php& & #新建index文件,输入& & <?php& & phpinfo();& & ?> 如果出现phpinfo界面,查看显示信息无异常,说明nginx跟php配置都成功。& & 这样就完成了nginx的安装配置。下一步就该进行zend安装了。& & cd打开淘宝销量排行榜,有好的建议可提供~
声明:该文章系网友上传分享,此内容仅代表网友个人经验或观点,不代表本网站立场和观点;若未进行原创声明,则表明该文章系转载自互联网;若该文章内容涉嫌侵权,请及时向
论文写作技巧
上一篇:下一篇:
相关经验教程1 Pages: 1/4& & &Go
主题 : 分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc
级别: 新手上路
金钱: 60 两
威望: 12 点
贡献值: 0 点
综合积分: 24 分
&分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc
本人是第一次在此发帖,希望大家多多支持,发帖目的是为了分享,分享的目的是传递开源的精神。Tiny4412开发板刚拿到手是,看了下介绍,发现superboot是个好东西,但是不开源,这个严重与开源思想不符合。前言:按照光盘介绍编译烧写U-boot也无法启动板子,只有superboot使用后才可以启动板子。到此大家估计很多和我想的一样,如何使用开源的u-boot来启动开发板。言归正传,我们的目的是要用u-boot来运行tiny4412. 正文:首先要注意的是,原版的内核配置把CONFIG_ARM_TRUSTZONE给打开了,这个与superboot.bin是配套使用的,但是u-boot经研究发现暂不支持TZ模式,所以内核配置要把这个选项去掉。不然按照教程会出现死机。论坛也有很多网友发现了此现象,不再赘述。(后面有时间本人会研究下trustzone机制)把TZ选项去掉后,通过SD卡烧录u-boot可以把板子带起来,这个不是我们要讲述的重点,我们要讲的是如何把u-boot烧录到emmc中,这个友善没有提供方法,其实不难。emmc其实和SD卡类似,都是SD设备,emmc是8-bit模式,SD是4-bit模式。TINY4412是eMMC4.4. 既然sd卡能烧,那么emmc一定可以烧。SD卡烧录,其实通过友善教程,在U-boot源码目录下有sd_fusing.sh,打开看下即可知道烧录原理。这个不讲了,有兴趣的朋友可以看下,很见到。就是把各个bin文件按照指定位置烧到SD卡的系统分区中。那么eMMC如何烧写呢,这是我们要讲的重点。在这里不得不讲一下DNW工具,这个可以通过USB把电脑端的文件烧录到目标板的内存中。附件是dnw Linux完整源码包,解要到一个文件夹,里面有dnw.c , Makefile, 预编译dnw(x86_64). 大家可以直接使用或是自己编译,编译后的dnw 可以复制到/usr/bin,并chmod 777 /usr/bin/dnw.u-boot中断也支持dnw指令,所以eMMC烧录就有可能了,因为电脑上的u-boot.bin固件可以通过dnw烧录到开发板的内存了。。。。编译uboot过程友善的文档已经写的很完善,大家自己参考并编译u-boot. 编译完成后u-boot目录下有:u-boot.bin进入u-boot/sd_fuse/执行make,可以生成mkbl2工具,进入u-boot/sd_fuse/tiny4412目录下可以看到bl2.bin&&E4412_N.bl1.bin&&E4412_tzsw.bin三个bin,其中bl2.bin在制作SD启动卡时会生成,我们也需要此文件。下面讲如何使用dnw下载固件到开发板内存, 注意本人是以Ubuntu环境来调试,使用Windows的朋友自己对照流程。1 下载附件dnw编译,上面已经讲了,2 按照友善文档,制作SD启动卡,开发板SW2开关选择SD启动.3 把串口先连接PC与开发板。4 插制作好的SD卡到开发板,并给开发板上电SW1.5 键盘按任意键盘进入uboot终端,此时输入help可以看到很多指令。6 现在我们进入了SD卡模式启动的u-boot. 现在我们看下mmc设备信息:u-boot模式下输入:&mmcinfo 0省略。。。&mmcinfo 1Device: S5P_MSHC4Manufacturer ID: 15OEM: 100Name: M4G1Y Tran Speed: 0Rd Block Len: 512MMC version 4.0High Capacity: YesSize: 3728MB (block: 7634944)Bus Width: 8-bitBoot Partition Size: 2048 KB上面两条指令分别执行,可以发现 mmc 0就是我们的SD卡,mmc 1设备就是我们要烧录的设备eMMC,uboot返回提示是8-bit,内存容量是4G的eMMC卡。7 继续输入:&fdisk -p 0&fdisk -p 1partion #&&&&size(MB)&&&& block start #&&&&block count&&&&partition_Id && 1&&&&&&&&&& 695&&&&&&&&&&6070812&&&&&&&& 1424478&&&&&&&&&&0x0C && 2&&&&&&&&&& 320&&&&&&&&&& 134244&&&&&&&&&&656304&&&&&&&&&&0x83 && 3&&&&&&&&&&2057&&&&&&&&&& 790548&&&&&&&& 4213770&&&&&&&&&&0x83 && 4&&&&&&&&&& 520&&&&&&&&&&5004318&&&&&&&& 1066494&&&&&&&&&&0x83 这两条指令是分别查看mmc 0/1设备的分区表信息。设备mmc1的分区信息,即eMMC分析,注意这个是superboot分区信息,我们就用这个分区。分区1 是FAE分区, 分区2 是给system的,分区3是user-data, 分区4 是 cache.8 格式化eMMC, u-boot模式下输入如下指令来格式化eMMC设备。&fdisk -c 1 320 执行后会返回分区信息,继续格式话分区1,2,3,4&fatformat mmc 1:1这句话意思是对mmc 1设备的第一分区格式作fat格式化。&ext3format mmc 1:2&ext3format mmc 1:3&ext3format mmc 1:4上面三个指令是分别对eMMC的分区2,3,4作ext3格式化。到此我们完成了对eMMC的设备的格式化。接下来我们要想办法烧录bl1.bin, bl2.bin, u-boot.bin, tzsw.bin烧录到eMMC中。9 从PC端下载固件到开发板Memory中。刚才我们重点介绍了dnw, 接下来我们要使用此工具来下载固件到开发板内存中。注意是下载到内存,把固件数据缓存起来,到时要烧录到eMMC中。首先我们要打开emmc设备u-boot下输入:&emmc open 1eMMC OPEN Success.!!&&&&&&&&&&&&&&&&&&&&&&&&!!!Notice!!!!You must close eMMC boot Partition after all image writing!!eMMC boot partition has continuity at image writing time.!!So, Do not close boot partition, Before, all images is written.!上面提示emmc开启成功,注意说明,emmc一旦打开,需要连续烧录,烧录完成后可以关闭emmc.10 接下来我们要运行dnwu-boot下面输入:&dnwOTG cable Connected!Now, Waiting for DNW to transmit data提示等待数据输入,这里就是等待我们从PC端通过DNW传送数据过来。此时在PC端终端串口,cd到u-boot目录所在路径user@~/u-boot/: 输入: dwn sd_fuse/tiny_N.bl1.bin此时u-boot中断会提示传送校验完成,此时已经把bl1.bin通过USB传送到了memeory的0xc0000000起始地址,大小8KB.接下来我们烧录bl1.bin到eMMC中,u-boot下继续输入:&mmc write 1 0xc 0x10会提示写入信息,说明已经写入成功。这个是把刚才从PC端通过dnw下载下来的bl1.bin固件下载到emmc中,起始0, 16个block, 一个block是512B, 16*512=8*1024=8KB. 这个是bl1.bin的存放位置。以此类推,烧录bl2.bin. u-boot.bin, tzsw.bin-----------------------------------------------------------------------------------------------------------------------------------------------------u-boot终端继续输入:&dnwPC端输入: (注意输入内容是以 dnw 开始的,前面是当前路径,便于理解)user@~/u-boot/:&&dwn sd_fuse/tiny4412/bl2.binu-boot下继续输入:&mmc write 1 0xcx10 0x1Cbl2.bin实际大小约14K,分配的空间是16K. 其实是第16个block开始,写入28个block, 28*512B=14*1024=14K注意这个区域预分配是32个Block,所以下一个开始是32+16=48------------------------------------------------------------------------------------------------------------------------------------------------------u-boot终端继续输入:&dnwPC端输入: (注意输入内容是以 dnw 开始的,前面是当前路径,便于理解)user@~/u-boot/:&&dwn u-boot.binu-boot下继续输入:&mmc write 1 0xcx30 0x21Du-boot.bin实际大小约270K,分配的空间是328K. 其实是第48个block开始,写入541个block, 541*512B=270.5*1024 约270K------------------------------------------------------------------------------------------------------------------------------------------------------u-boot终端继续输入:&dnwPC端输入: (注意输入内容是以 dnw 开始的,前面是当前路径,便于理解)user@~/u-boot/:&&dwn sd_fuse/tiny_tzsw.binu-boot下继续输入:&mmc write 1 0xcx2c0 0xB8tzsw.bin实际大小约92K,分配的空间是160K. 其实是第704个block开始,写入184个block, 184*512=92*1024=92K ------------------------------------------------------------------------------------------------------------------------------------------------------ 启动分区到此全部写入完成,注意一定要关闭emmc,u-boot下继续输入:&emmc close 1eMMC CLOSE Success.!!关闭emmc设备,提示关闭成功。此时我们已经把启动文件全部烧录到了eMMC中。-------------------------------------------------------------------------------------------------------------------------------------------------------接下来我们可以把开发板的SW2拨动到NAND启动,同时u-boot中断输入reset, 并在电脑键盘按下任意键,此时我们可以看到:+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++U-Boot 00-g3e284d5-dirty (Jul 04 2014 - 17:40:58) for TINY4412CPU:&&&&S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9]&&&&&&&&APLL = 1400MHz, MPLL = 800MHzBoard:&&TINY4412DRAM:&& 1023 MiBvdd_arm: 1.2vdd_int: 1.0vdd_mif: 1.1BL1 version:&&N/A (TrustZone Enabled BSP)Checking Boot Mode ... EMMC4.41REVISION: 1.1MMC Device 0: 3728 MBMMC Device 1: 1876 MBMMC Device 2: N/ARead... Bootmode reg 0x Get Bootmode reg 0xf3ca4c36 ModeKey Check... run normal_boot Net:&&&&No ethernet found.Hit any key to stop autoboot:&&0TINY4412 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++大功告成啊,我们的u-boot已经成功写入到了eMMC中,并可以成功启动。还有一件非常重要的事情我们还有做,就是启动参数写入,我们bootargs写入到env分区,注意ENV分区在TZSW分区后面,内核分区之前。即 TZSW | ENV | KERNEL从eMMC启动u-boot后,在u-boot终端输入:&setenv bootargs console=ttySAC0, androidboot.console=ttySAC0 uhost0=n ctp=2 skipcali=y vmalloc=512m lcd=S70&saveenv设置并保存启动参数,此时再重启板子,进入U-boot。u-boot下输入:&printenv 查看刚才烧录的启动参数是否成功。11 烧写kernel, system, ramdisk下面烧kernel, system,ramdisk和SD卡烧录一样。u-boot继续输入&fastboot进入fastboot模式PC端使用fastboot flash kernel zImag, fastboot flash system system.img, fastboot flash ramdisk ramdisk-u.img即可把剩下全部的img烧录到eMMC中。重启开发板,就可以启动开发板。虽然没有开源的superboot,但是依然无法阻挡我们一个开源的心。还有本人已经成功在u-boot加入按键启动u-boot的fastboot功能,在此贴一并发出。。。使用开发板底板的K1按键,按住K1,开机即可进入系统的fastboot模式。 同时支持fastboot下载完成后执行fastboot reboot bootloader重启模式。功能已经全部验证。到此位置,针对u-boot烧录eMMC的过程基本已经讲解完毕,希望给大家带来帮助,给友善的开源u-boot添砖加瓦。谢谢Harry
(9 K) 下载次数:252
(1 K) 下载次数:188
(3 K) 下载次数:184
级别: 新手上路
金钱: 60 两
威望: 12 点
贡献值: 0 点
综合积分: 24 分
自己先顶下。注意使用附件补丁后,在启动系统后,执行adb reboot bootloader即可进入u-boot的fastboot模式。目前LCD还有显示信息,论坛有兴趣的朋友可以帮忙完善和分享一下。
级别: 骑士
金钱: 1830 两
威望: 366 点
贡献值: 9 点
综合积分: 522 分
非常好的帖子。
级别: 新手上路
金钱: 235 两
威望: 47 点
贡献值: 0 点
综合积分: 92 分
请问你使用的是Tiny4412ADK增强版 还是Tiny4412SDK标准版 ?
级别: 新手上路
金钱: 60 两
威望: 12 点
贡献值: 0 点
综合积分: 24 分
Tiny4412 SDK标准版,应该差不多,增强板多了miniPCI卡槽,支持3G网卡。
级别: 新手上路
金钱: 235 两
威望: 47 点
贡献值: 0 点
综合积分: 92 分
&回 4楼(ahai518) 的帖子
嗯,Tiny4412 SDK标准版还多了miniUSB,没有miniUSB,因此采用你的方法采用DNW不可行,不知道是否有其它方式?
级别: 新手上路
金钱: 60 两
威望: 12 点
贡献值: 0 点
综合积分: 24 分
大家都知道在友善的u-boot教程中,从SD卡启动开发板,SD卡被uboot分配了节点0,emmc被分配到节点1,之后的分区和格式化命令都可以自由选择节点0或节点1的设备,但是,fastboot默认烧写的就是烧写节点0。下面两种思路是不是可行?1、修改uboot fastboot命令,让其可以直接烧写节点12、修改uboot的哪个地方,把sd卡认成节点1,emmc认成节点0,fastboot不改。
级别: 新手上路
金钱: 60 两
威望: 12 点
贡献值: 0 点
综合积分: 24 分
回楼上, 不建议这么做,修改fastboot烧写为1,你烧进去后,从emmc启动后是修改过的u-boot,此时mmc 1是sd card, mmc 0是emmc,和SD卡启动正好相反。u-boot就无法刷进去了。第二个问题,没深入研究,只是目前uboot是按从哪个启动就认为哪个是mmc 0.
级别: 新手上路
金钱: 60 两
威望: 12 点
贡献值: 0 点
综合积分: 24 分
ahai518你好,第一种思路确实有问题,破坏了fastboot的通用性。第二种思路确实有人已经实现,请看,他描述了sd卡启动之后烧写emmc的方法,显然他是从sd卡启动的,但是emmc却认成了节点0。从他的代码片段上看还是和友善有不小差别,我水平有限,不知道怎么实现的,你要是有兴趣可以研究一下。此外他还提到另一种使用Sdfuse命令来烧写emmc的方法,优点是不用usb,有点像友善的superboot,但是友善开源的uboot不支持Sdfuse。
级别: 新手上路
金钱: 60 两
威望: 12 点
贡献值: 0 点
综合积分: 24 分
回复楼上:Tiny4412 u-boot 你可以看下:u-boot/board/samsung/tiny4412/tiny4412.cint board_mmc_init(bd_t *bis){#ifdef CONFIG_S3C_HSMMC&&&&setup_hsmmc_clock();&&&&setup_hsmmc_cfg_gpio();&&&&if (OmPin == BOOT_EMMC_4_4 || OmPin == BOOT_EMMC) {#ifdef CONFIG_S5PC210&&&&&&&&smdk_s5p_mshc_init();#endif&&&&&&&&smdk_s3c_hsmmc_init();&&&&} else {&&&&&&&&smdk_s3c_hsmmc_init();#ifdef CONFIG_S5PC210&&&&&&&&smdk_s5p_mshc_init();#endif&&&&}#endif&&&&return 0;}这个初始化,明显可以看出,当为eMMC启动时,先初始化smdk_s5p_mshc_init(), 再初始化smdk_s3c_hsmmc_init(); 这两个分别注册register_mmc,索引对应的会增加,而mshc就是emmc, HSMMC就是SDMMC, 所以从emmc启动,emmc设备为mmc 0 ,sdmmc为mmc 1. 而从sd卡启动,这两个初始化相反了(见上面else),此时mmc 0 就是SD,mmc 1就是emmc. do_mmcinfo 寻找设备就是按照register_mmc时注册的顺序(mmc 0,mmc 1)来查找的。 所以你不妨把上面的 else里面的初始化顺序对调,看下是不是可以默认mmc 0为emmc.mmc 0/1顺序相反 就是这个引起的。
1 Pages: 1/4& & &Go
Powered by

我要回帖

更多关于 exynos 4412 停产 的文章

 

随机推荐