Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 5304|回復: 9
打印 上一主題 下一主題

[問題求助] uboot 設定??

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-6-2 19:08:18 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
假設一個系統使用uboot
; N" P- J: j9 D! L上頭已經有nor flash, nand flash, 也有網路
. t  H6 S) B) e8 mnor flash physical address = fe000000 有 32 MB
! x0 W. M+ Y: Mnand flash physical address = fc000000 有 32 MB
& a7 i$ U' z( [9 W- I# \% q; ^
9 [2 J* j  q0 e5 ~8 c/ |7 `& J請問那麼要如何設定開機使用?
* j5 i- f( l: ~! ~4 v5 D  a9 t2 f& p3 J  o8 c; @
1) uImage+ramdisk 都在 nand flash 上* x0 r( F) m8 O1 A! w
2) uImage+ramdisk 都在 nor  flash 上
" [+ f3 H+ o1 f1 K0 x3) uImage+ramdisk 都在 tftp server 上
$ E, Q, I% E& Z4 r1 \4) uImage在nand flash, ramdisk在nor flash
! Y+ W& T0 |$ l% g( Q5) uImage在 tftp server, ramdisk在 nand flash
# d& l, p! C: ], ]2 f- z5 Y6) uImage在 nor flash, rootfs使用nfs
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
8#
 樓主| 發表於 2009-11-28 01:33:02 | 只看該作者
本帖最後由 gogojesse 於 2009-11-28 01:34 AM 編輯 3 O! v: Y- q) \; @8 @
nor flash physical address = fe000000 有 32 MB
8 F% ]  T2 K7 ]' U+ g/ @" ?" W4 F2) uImage+ramdisk 都在 nor  flash 上
0 _. w4 _6 L, ^; `- W. |
1 a! D- C% A& ?0 f; w
a) 先將uImage載入到 0x800000
- \0 C. C( N9 L' |3 W, p$ Y# cp.b 0xfe000000 0x800000 300000   (從flash放到RAM 0x800000的地方去)8 u0 o* b4 k" y+ e. K. q

* E6 @4 _# N5 M0 i% u8 k: xb) 將ramdisk載入到 0x2800000 的位置7 d6 r2 s) f# m4 }, }
# cp.b 0xfe300000 0x2800000 8000 (從flash放到RAM 0x2800000的地方去)
4 b, G6 V( n! n5 @3 @* K) L# O
% c* J+ K2 C0 l7 jc) 參考uImage & ramdisk都在memory中的後續動作。
, E! Q. r, s8 b. Z3 P4 W
& s; X/ f0 {8 i7 z4) & 5)應該就呼之欲出,不再累述。
7#
 樓主| 發表於 2009-11-28 01:28:48 | 只看該作者
nand flash physical address = fc000000 有 32 MB: v3 C; X, U# {! m7 o
" K! s  I% k" |* |" _
1) uImage+ramdisk 都在 nand flash 上
1 R; Q9 F, s& F! P" s! }

0 D7 U7 {- }( ^- X$ H假設uImage放在nand上offset 0x0的地方(size = 0x300000),ramdisk放在offset 0x300000的地方, size = 32768
# v' g7 ?' ^0 D0 \. I( k! a6 y& g5 f% o3 [
a) 先將uImage載入到 0x800000
! N  M8 z( `/ P# f  S, r# nand read.jffs2 800000 0 300000
4 Y+ J* n* g$ N% M% \; V; P/ T5 ^6 Y5 m0 N  F
b) 將ramdisk載入到 0x2800000 的位置
7 H) t5 h! x0 A! A1 O6 u, l* i# nand read.jffs2 2800000 0x300000 32768( G- f/ i# ~) l, Q  k
( }& j* O9 r: k1 P1 Q
c) 載入到memory,就如同load ramdisk的bootargs,可以參考之前/ `) u' ^, a! Y: J; O' r  \! ^3 ^) r
bootargs root=/dev/ram0 rw console=ttySAC0,115200 mem=512M ramdisk=32768 initrd=0x2800000,20M init=/linuxrc
3 r( G4 f% n! S  }/ B! l
6 |- g( h( U7 O8 f2 T; R! e( I" x下去修改使用
6#
 樓主| 發表於 2009-11-28 01:14:33 | 只看該作者
nor flash physical address = fe000000 有 32 MB
4 J& M$ {/ O8 G6) uImage在 nor flash, rootfs使用nfs
/ w9 v! E0 J# v4 c( C

4 M! f' a3 V( ^+ p" x! O" d! \a) 首先,必須將uImage拷貝到ram上某個位置
3 B' D/ A5 i* e! E" Q* i5 \) Xb) 因為要用nfsroot所以網路也要先設置好- D2 d9 B8 x+ ]6 ~7 m
c) Jump to uImage
, @+ |" c4 X; _2 e0 C$ V% ^& v7 }# H
* Z) A9 j( r3 D* }# cp.b 0xfe000000 0x800000 300000   (從flash放到RAM 0x800000的地方去)
4 @6 q. X3 G7 W: }# dhcp  (取得ip或是直接用setenv ipaddr xx.xx.xx.xx)
1 M( g4 b7 u8 ~  {7 A2 }# setenv serverip oo.oo.oo.oo  (設定nfsroot server ip)
$ M* q4 |4 U' h7 T0 X+ Z6 i# setenv root=/dev/nfsroot rw nfsroot=oo.oo.oo.oo:/rootfs/
5#
 樓主| 發表於 2009-11-28 01:03:30 | 只看該作者
沒仔細深入這個問題
  q4 y, Z# K; V! Y不過印象中會用到哪個tty當作serial console可以分幾個步驟:
" v3 L5 W1 I. f" n- N2 l& G- K) z; E
第一是 serial console 的 driver 在被 load 的時候開機訊息有時候可以看到是『console [ttyS0] enabled』,其實這個時候還不知道root files system裡頭的device node是對應到哪一個,對driver來說,她會指定服務某個(major, minor)的device node; h& _1 e$ `: m
第二是 root file system有沒有對應這組(major, minor)的device node,萬一沒有的話,應該也會造成開起 serial console 失敗。4 O! s6 r" Z2 s
第三是 進入到root file system之後,init script還是有權力更改各種console的生成像是tty0, tty1等等。以前有些控制可以載 /etc/inittab 做,現在有些distribution已經改用其他機制。
4#
發表於 2009-11-27 09:29:08 | 只看該作者
why my linux2.6 ttyS0 works ok?7 X* e0 X2 a' |/ v
2.6.15
3#
發表於 2009-10-13 20:06:00 | 只看該作者

回復 2# 的帖子

補充一下, ; y: @; C- C4 H) g) o
gogojesse文中的 console=ttySAC0 是當target board的linux kernel為2.6.x版時,2 M# m+ g# g4 \9 W
若為 2.4.x之前, 則要用 console=ttyS00 E  I/ O3 H. R! C9 }& M! H8 \2 N8 g

* X5 C. q4 Q+ t/ }[ 本帖最後由 sieg70 於 2009-10-13 08:14 PM 編輯 ]
2#
 樓主| 發表於 2009-6-24 11:00:08 | 只看該作者
uImage+ramdisk 都在 tftp server 上

/ ~) e  _% i4 m1 \, S假設記憶體有512 MBytes
: \) ^/ R9 ~& M5 S4 w1 A0 x
% j; Y$ l6 G8 w& B; @a. set bootargs" F9 V$ j: G0 C1 Q$ I$ a/ w
set bootargs root=/dev/ram0 rw console=ttySAC0,115200 mem=512M ramdisk=32768 initrd=0x2800000,20M init=/linuxrc5 x: P+ h' Y  J  |6 |* O3 m
0 y4 J! w2 W/ `6 M: k% s# d* s. h
b. download uImage8 g% b% O9 O6 i) l) ?. [9 R5 X+ Z
tftpboot 0x2000000 uImage-test
0 x- \/ L. v* U7 A$ n, T) g3 ~2 z% f. Q
c. download ramdisk
1 M0 V  w; }, z! m# S: ytftpboot 0x2800000 ramdisk.img
1 {5 W  K5 i% e8 {- e
# i: C; x8 t5 k; Nd. boot from memory1 d5 @5 n, C' k+ ]9 A
bootm 2000000
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2025-1-16 08:14 AM , Processed in 0.156001 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表