Chip123 科技應用創新平台

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

作者: gogojesse    時間: 2009-6-2 07:08 PM
標題: uboot 設定??
假設一個系統使用uboot: E' `( d' Q6 D- ~: P& o
上頭已經有nor flash, nand flash, 也有網路- V! }5 ]) x0 F. T
nor flash physical address = fe000000 有 32 MB( O4 R  \7 }6 \9 ~
nand flash physical address = fc000000 有 32 MB+ g  {& V3 G/ h  p2 K+ U6 m
4 i+ ]# r6 @  M$ J4 f5 B( Y
請問那麼要如何設定開機使用?
& U1 n' p8 _  w5 L  [9 M5 o) h3 W8 z& f6 T' H, E1 [
1) uImage+ramdisk 都在 nand flash 上
% L, X, F' Q4 m7 N# z2 o; L2) uImage+ramdisk 都在 nor  flash 上: m$ D  h; S/ ]; Y$ [7 h* z& j3 f
3) uImage+ramdisk 都在 tftp server 上
8 |& L8 b- [" ~4) uImage在nand flash, ramdisk在nor flash4 j6 D" o/ z& H- a; d' I
5) uImage在 tftp server, ramdisk在 nand flash
' a( ~& e0 p+ n$ g6) uImage在 nor flash, rootfs使用nfs
作者: gogojesse    時間: 2009-6-24 11:00 AM
uImage+ramdisk 都在 tftp server 上
9 [8 L. X) k$ s. Q0 i: t
假設記憶體有512 MBytes5 B1 g: C: p# L' F. m

' w0 _0 V: s- Ra. set bootargs
% h" f, A) l6 {4 w7 `set bootargs root=/dev/ram0 rw console=ttySAC0,115200 mem=512M ramdisk=32768 initrd=0x2800000,20M init=/linuxrc
7 i" \! f6 K. I  U
! Z! {3 a# C1 l$ Xb. download uImage  N7 ?3 s7 `; F/ A+ V
tftpboot 0x2000000 uImage-test: n! S- G# K" e2 ~6 q
1 p5 }8 x6 O' H( _0 }6 M  W1 O  h* _
c. download ramdisk
) s: D+ t& F8 @5 ?* mtftpboot 0x2800000 ramdisk.img
8 t! t) l, H' [1 d; `$ I7 P; A- }0 ~- c
d. boot from memory
+ \& V. z& E! ^; ]) M% f  Ibootm 2000000
作者: sieg70    時間: 2009-10-13 08:06 PM
標題: 回復 2# 的帖子
補充一下, 8 t7 A* |$ j% W7 t7 w" W# `
gogojesse文中的 console=ttySAC0 是當target board的linux kernel為2.6.x版時,
1 l  R0 {" G9 R( n1 M, {若為 2.4.x之前, 則要用 console=ttyS04 ?! ^( \- |' a- Q. B( f

% J& p) z. ]( U! H[ 本帖最後由 sieg70 於 2009-10-13 08:14 PM 編輯 ]
作者: sciwander    時間: 2009-11-27 09:29 AM
why my linux2.6 ttyS0 works ok?
* \! A5 v% ~2 O% q2.6.15
作者: gogojesse    時間: 2009-11-28 01:03 AM
沒仔細深入這個問題
3 s$ n! I8 h5 \& M# X$ C不過印象中會用到哪個tty當作serial console可以分幾個步驟:
% `+ h2 r- g6 }' e' m8 d5 B; Q- i( x) B$ l) J9 {
第一是 serial console 的 driver 在被 load 的時候開機訊息有時候可以看到是『console [ttyS0] enabled』,其實這個時候還不知道root files system裡頭的device node是對應到哪一個,對driver來說,她會指定服務某個(major, minor)的device node
+ ^6 ~& U- n6 m: _第二是 root file system有沒有對應這組(major, minor)的device node,萬一沒有的話,應該也會造成開起 serial console 失敗。, j) y6 z0 Z3 H8 i
第三是 進入到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
0 {- @9 V+ R# T6 n6) uImage在 nor flash, rootfs使用nfs
' I+ g3 `3 z' |: W$ }: u

4 F  U8 R6 i& E1 a& m$ q: ?; X; O1 va) 首先,必須將uImage拷貝到ram上某個位置
. V. Q6 `; }+ k, q  fb) 因為要用nfsroot所以網路也要先設置好
5 U0 G( @& p: B3 t0 lc) Jump to uImage9 O7 B4 x3 J$ e5 _

, O" S# S# \5 H, {- m' E" I# cp.b 0xfe000000 0x800000 300000   (從flash放到RAM 0x800000的地方去)6 I6 X6 d1 y: I6 r# T( r7 [  r1 X5 _
# dhcp  (取得ip或是直接用setenv ipaddr xx.xx.xx.xx)
) M) D5 B- ^* r7 X# setenv serverip oo.oo.oo.oo  (設定nfsroot server ip)
5 h4 [; u8 ^) k! O" e# e# 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) ?3 K7 g( D+ m4 p' {

2 v$ U! J0 {/ J2 G5 Z: M$ N7 _1) uImage+ramdisk 都在 nand flash 上

# A$ ]1 d3 m$ A& x# ]- I7 i7 X" r1 H; g+ Y5 t0 X. C# U1 \
假設uImage放在nand上offset 0x0的地方(size = 0x300000),ramdisk放在offset 0x300000的地方, size = 32768
5 ]- V  w% W6 F5 D/ Q. e+ w( p. U+ [
a) 先將uImage載入到 0x800000
# b9 ?0 U* r2 L( y# nand read.jffs2 800000 0 300000
: [) r8 d1 d/ K. d
$ U0 Z) Z( Q5 Q$ `b) 將ramdisk載入到 0x2800000 的位置
5 J$ q% @( Q! x" \, Y8 M* v# W0 R# nand read.jffs2 2800000 0x300000 32768: ]8 ?& w7 b' J" x0 B+ Q, z& z
& m3 V! O2 b/ g: H7 U% C8 B
c) 載入到memory,就如同load ramdisk的bootargs,可以參考之前8 d4 w9 ~" }/ B3 A' I3 `
bootargs root=/dev/ram0 rw console=ttySAC0,115200 mem=512M ramdisk=32768 initrd=0x2800000,20M init=/linuxrc. C5 u/ \6 @; E7 U  \" s2 x9 D8 a
& e% s7 c- e/ s7 w4 V  t' C/ ]6 [
下去修改使用
作者: gogojesse    時間: 2009-11-28 01:33 AM
本帖最後由 gogojesse 於 2009-11-28 01:34 AM 編輯
5 e4 s, i8 `9 H
nor flash physical address = fe000000 有 32 MB
' _" k' E9 C# T8 \8 u2) uImage+ramdisk 都在 nor  flash 上

$ x3 j: V% p: J! I6 c! u( h4 q. A8 w! H, @4 {1 f2 \# o( T
a) 先將uImage載入到 0x8000005 I8 I# v! o2 I* W* Y# X4 y& V2 K
# cp.b 0xfe000000 0x800000 300000   (從flash放到RAM 0x800000的地方去)
2 D* h. }* S1 _, x9 {' R
4 [" @: D6 t% r2 D1 V; Rb) 將ramdisk載入到 0x2800000 的位置
' a" ?) J4 T% m% R- K) H0 Q9 X# cp.b 0xfe300000 0x2800000 8000 (從flash放到RAM 0x2800000的地方去); T1 F4 c6 E$ @( T7 `# I& `

* E, r9 d, Z4 Ec) 參考uImage & ramdisk都在memory中的後續動作。5 F3 \- J* M% |
+ u3 q. c& L( T9 F% ^6 |
4) & 5)應該就呼之欲出,不再累述。




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