Chip123 科技應用創新平台

標題: uboot 設定?? [打印本頁]

作者: gogojesse    時間: 2009-6-2 07:08 PM
標題: uboot 設定??
假設一個系統使用uboot
# |2 P( o" c6 s上頭已經有nor flash, nand flash, 也有網路5 P4 t# E& _  c7 x. O6 G+ W
nor flash physical address = fe000000 有 32 MB+ v2 A$ v& B/ n: r) _
nand flash physical address = fc000000 有 32 MB6 {( |& a8 m8 C$ |. P9 N
' v3 D4 W- O' n, y9 G
請問那麼要如何設定開機使用?
2 X4 M# Q& [3 I2 X
3 W! |" e4 g( e& C( q1) uImage+ramdisk 都在 nand flash 上
$ s4 w* n' T4 t4 E5 a* i* {2) uImage+ramdisk 都在 nor  flash 上
$ `7 \" A' F; s0 I( W5 {3) uImage+ramdisk 都在 tftp server 上
9 j8 u! j( |, X8 n4) uImage在nand flash, ramdisk在nor flash
5 Y. K0 f, e+ _' @/ a5) uImage在 tftp server, ramdisk在 nand flash$ y' @; n8 o$ ^! o0 o, Z  t
6) uImage在 nor flash, rootfs使用nfs
作者: gogojesse    時間: 2009-6-24 11:00 AM
uImage+ramdisk 都在 tftp server 上

$ b7 i7 O" G6 }! p1 b4 n+ P假設記憶體有512 MBytes, @  B6 q3 M& l; y7 D- P2 |

+ Z9 Q7 N) z; i4 w( Z% ba. set bootargs) A+ i; p% x. V  n+ ~: h* ^
set bootargs root=/dev/ram0 rw console=ttySAC0,115200 mem=512M ramdisk=32768 initrd=0x2800000,20M init=/linuxrc
* \8 b: ~  @) f$ z+ Q- K
) @& s6 T  V2 K4 T# G" Gb. download uImage' z9 G" q" M8 q9 U5 N' M! O! K
tftpboot 0x2000000 uImage-test& ?& G' h8 |9 ^: D
$ ^& B" k1 {0 R8 d8 \2 z
c. download ramdisk5 }- U# T% Z" B: `. c8 x
tftpboot 0x2800000 ramdisk.img
, g' z) X9 t: |* x# L4 G3 q, F0 x' \$ n) ?8 ]$ C
d. boot from memory6 w/ j1 y$ q3 E; i
bootm 2000000
作者: sieg70    時間: 2009-10-13 08:06 PM
標題: 回復 2# 的帖子
補充一下,
) p7 E/ U1 C& e3 Qgogojesse文中的 console=ttySAC0 是當target board的linux kernel為2.6.x版時,
2 G) m7 `/ \2 U$ A& A: A若為 2.4.x之前, 則要用 console=ttyS0
5 }4 z5 H" W* Y3 _6 B0 y8 J+ X, B! ?( ]8 v. V# z$ |% Q, w
[ 本帖最後由 sieg70 於 2009-10-13 08:14 PM 編輯 ]
作者: sciwander    時間: 2009-11-27 09:29 AM
why my linux2.6 ttyS0 works ok?" X, i& {, z5 H3 }, |3 O3 q. k* R
2.6.15
作者: gogojesse    時間: 2009-11-28 01:03 AM
沒仔細深入這個問題4 \. {1 H" \2 Q4 b2 y
不過印象中會用到哪個tty當作serial console可以分幾個步驟:3 ]0 r. l9 w& H' n) O  z+ Z3 l$ w; M3 e

0 m2 d+ z' N& I+ \' S第一是 serial console 的 driver 在被 load 的時候開機訊息有時候可以看到是『console [ttyS0] enabled』,其實這個時候還不知道root files system裡頭的device node是對應到哪一個,對driver來說,她會指定服務某個(major, minor)的device node/ a3 \* u' H) |
第二是 root file system有沒有對應這組(major, minor)的device node,萬一沒有的話,應該也會造成開起 serial console 失敗。
' o1 H8 o+ A# `: W7 U3 v2 P第三是 進入到root file system之後,init script還是有權力更改各種console的生成像是tty0, tty1等等。以前有些控制可以載 /etc/inittab 做,現在有些distribution已經改用其他機制。
作者: gogojesse    時間: 2009-11-28 01:14 AM
nor flash physical address = fe000000 有 32 MB
/ f0 h' j) c0 |+ x; ]" r: |6) uImage在 nor flash, rootfs使用nfs
# y) D( B% N) C( i

- [! J( Z7 D" @9 ?5 Ga) 首先,必須將uImage拷貝到ram上某個位置
, Z1 \+ y( b1 F4 ]% _6 p) c; gb) 因為要用nfsroot所以網路也要先設置好% ^  D  b! K$ v, z
c) Jump to uImage
: p: S% D5 `. Y, _4 m, O1 J/ L" S1 V7 J0 ]0 [7 z- Y
# cp.b 0xfe000000 0x800000 300000   (從flash放到RAM 0x800000的地方去)1 F4 a! b) C# k$ o) z4 ~5 |. B
# dhcp  (取得ip或是直接用setenv ipaddr xx.xx.xx.xx)9 T1 A' R; t+ _5 m. V
# setenv serverip oo.oo.oo.oo  (設定nfsroot server ip)
% c7 |: r& D. Y4 a% G# ~# setenv root=/dev/nfsroot rw nfsroot=oo.oo.oo.oo:/rootfs/
作者: gogojesse    時間: 2009-11-28 01:28 AM
nand flash physical address = fc000000 有 32 MB
( d$ @. W: d) D; l, }5 f
% c1 D4 t- D- s/ Y4 R- b4 C  `) Y1) uImage+ramdisk 都在 nand flash 上
. M0 L8 \. j; j; @

' {. m0 x- q& @* ]$ Y$ ]假設uImage放在nand上offset 0x0的地方(size = 0x300000),ramdisk放在offset 0x300000的地方, size = 32768
9 ?. k; r+ O, u! ^, a% S, S" K6 y4 N5 Q6 R3 p
a) 先將uImage載入到 0x8000008 |' r( E! t1 m
# nand read.jffs2 800000 0 300000% O; s% W  [: D

. w& S# m: D9 {; ?/ n2 ?5 Hb) 將ramdisk載入到 0x2800000 的位置& P# c% P, s/ I$ K1 L+ L1 M: S
# nand read.jffs2 2800000 0x300000 32768  L4 I# v6 H! }9 K( T2 G

' f& \3 h4 O# l1 qc) 載入到memory,就如同load ramdisk的bootargs,可以參考之前
: D& z4 n- M3 p, S& vbootargs root=/dev/ram0 rw console=ttySAC0,115200 mem=512M ramdisk=32768 initrd=0x2800000,20M init=/linuxrc: n5 L. z  b* U1 l; e9 @

: Q! z! i6 E+ u  b下去修改使用
作者: gogojesse    時間: 2009-11-28 01:33 AM
本帖最後由 gogojesse 於 2009-11-28 01:34 AM 編輯 # Q4 G" B2 z: W: E. o6 A1 n0 G
nor flash physical address = fe000000 有 32 MB# S2 \' \: M5 ~6 C  s' I
2) uImage+ramdisk 都在 nor  flash 上

( B2 I: ]9 H6 s, q7 J/ m/ c* |* ^  ?
a) 先將uImage載入到 0x800000
% ]7 @6 |" ]* m5 I$ t# cp.b 0xfe000000 0x800000 300000   (從flash放到RAM 0x800000的地方去)/ N' @9 [) f6 I: _+ t0 z% ~4 `7 C# L
: Y0 x6 M9 P7 m2 X3 F3 ^6 Q
b) 將ramdisk載入到 0x2800000 的位置% y$ E9 B4 e' f) v5 F/ m
# cp.b 0xfe300000 0x2800000 8000 (從flash放到RAM 0x2800000的地方去)) Q" m( ~% K# J" j
( l) X% o) ~) F
c) 參考uImage & ramdisk都在memory中的後續動作。
7 B4 `6 X" x. a$ t
8 F2 Q, k: T" z% Y4) & 5)應該就呼之欲出,不再累述。




歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/) Powered by Discuz! X3.2