本帖最后由 stone-363407 于 2018-12-7 16:42 编辑 3 D& Y" |0 {* M) f 代码地址: http://github.com/huayuguo/uboot-stm32h743_eth) a0 v B K; l" [9 N2 i ?1 Y . Y" c( d2 G+ a, X2 t' `5 @ U-Boot 2018.09-rc2-gc16d658 (Dec 06 2018 - 16:00:30 +0800) : x% d5 S% R6 e; ~ C( q $ [! S0 W. ~$ I3 T6 r& G) ]7 R. ^% ^ Model: STMicroelectronics STM32H743i-EVAL board% O6 Y* C9 U P2 ~2 \# G DRAM: 32 MiB MMC: STM32 SDMMC2: 0 In: serial@40011000 Out: serial@40011000& W. e$ _+ N, \# ]8 \1 J! m$ Z0 h Err: serial@40011000* l4 o7 |! o ^1 ~+ F Net: 1 G3 Y; e2 T7 I6 |9 k2 a5 f0 E Warning: ethernet@40028000 (eth0) using random MAC address - fe:f8:94:5f:5e:263 ?) Y O& P: h% H, J eth0: ethernet@40028000 Hit SPACE in 3 seconds to stop autoboot. switch to partitions #0, OK* t4 {& @9 {7 D- f! O3 u' Q" P mmc0 is current device! ?; z5 O. C" @8 | @ Scanning mmc 0:1... U-Boot > setenv gatewayip 192.168.10.1;setenv ipaddr 192.168.10.22;setenv netmask 255.255.255.0;setenv ethaddr 1a:5a:38:ef:38:d8; U-Boot > env set bootargs "root=/dev/ram console=ttyS0,115200 " U-Boot > tftpboot 61000000 192.168.10.25:uImage;tftpboot 61300000 192.168.10.25:stm32h743i-eval.dtb; ethernet@40028000 Waiting for PHY auto negotiation to complete. done Using ethernet@40028000 device TFTP from server 192.168.10.25; our IP address is 192.168.10.22+ L6 K6 N$ W+ m: b) p" z Filename 'uImage'.$ o |& |6 {( m V* W! N Load address: 0x61000000 Loading: #################################################################/ f$ q+ G$ e/ C) _1 Y& n& k ################################################################# ########## 1.4 MiB/s done Bytes transferred = 2048568 (1f4238 hex) ethernet@40028000 Waiting for PHY auto negotiation to complete. done B& K+ G7 ^/ ] ?1 M5 K Using ethernet@40028000 device* x% e. {. M, J! [ TFTP from server 192.168.10.25; our IP address is 192.168.10.22. t8 x- [3 o2 Y1 ~ Filename 'stm32h743i-eval.dtb'. Load address: 0x61300000& V s2 f5 i3 c, E$ |8 q9 ?. _ Loading: #, L+ e/ N% H. |$ i: g" n 999 KiB/s- L( q! x2 u- Q! }( @; T' ^$ H done Bytes transferred = 5115 (13fb hex) U-Boot > bootm 61000000 - 61300000 ; r) K7 S# i1 r2 D4 h$ ` ## Booting kernel from Legacy Image at 61000000 ...! Q# N- g, u/ \; v: J Image Name: linux Image Type: ARM Linux Kernel Image (uncompressed)% G7 g! f. h+ g( a! e/ k/ u4 g4 j Data Size: 2048504 Bytes = 2 MiB Load Address: 610000005 v9 i; I4 i# W* p Entry Point: 61000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 61300000" Q/ J l) F2 K- y0 e9 y2 B/ e0 g Booting using the fdt blob at 0x61300000% t4 t% f6 U9 V5 \2 r+ l Loading Kernel Image ... OK1 E1 g* r' L# P Using Device Tree in place at 61300000, end 613043fa) G1 F8 ]0 Q! d8 E/ P# f' H Starting kernel ... ' T0 A2 ?8 e7 p8 C# U% R8 X [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.15.2-gb37c1e299-dirty (xiao@xd) (gcc version 6.3.1 20170620 (15:6.3.1+svn253039-1build1)) #134 PREEMPT Fri Dec 7 13:45:02 CST 2018 [ 0.000000] CPU: ARMv7-M [411fc271] revision 1 (ARMv7M), cr=00000000 [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32H743i-EVAL board4 `4 f. T! G/ v: Y! G1 j$ S [ 0.000000] Reserved memory: created DMA memory pool at 0x61000000, size 2 MiB- T: ~1 X9 a5 g# W5 H# e8 ?) K [ 0.000000] OF: reserved mem: initialized node linux,dma, compatible id shared-dma-pool, I3 _8 M1 i' s3 I8 y# ` [ 0.000000] Ignoring RAM after 0x61000000, memory at 0x61200000 ignored3 k. B6 N( M" @! ~ [ 0.000000] Using ARMv7 PMSA Compliant MPU. Region independence: No, Used 2 of 16 regions1 q! {# n; J( a5 h# ?- ^* e [ 0.000000] On node 0 totalpages: 40969 b0 g5 c# j5 d7 n% p5 L8 Q6 G& D' g [ 0.000000] Normal zone: 32 pages used for memmap u1 L. Q1 N, A$ j( n' |/ V [ 0.000000] Normal zone: 0 pages reserved; ~7 ~5 ]7 N; T9 b/ m [ 0.000000] Normal zone: 4096 pages, LIFO batch:0- @2 J3 p* j2 T6 c6 p8 l9 ~ B, o3 E [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 % x# L$ b+ K2 ~5 G0 T y% C [ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 4064 q1 ?, A/ ]8 F' `% G e$ ` [ 0.000000] Kernel command line: root=/dev/ram console=ttyS0,115200 [ 0.000000] Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)$ W5 W; K& G; ~$ D5 b! R7 s5 J [ 0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)4 e! N) O$ z' l [ 0.000000] Memory: 13080K/16384K available (1596K kernel code, 154K rwdata, 496K rodata, 632K init, 130K bss, 3304K reserved, 0K cma-reserved)# Q1 |# f6 M+ ~ [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0x00000000 - 0x00001000 ( 4 kB) [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)! n9 ?9 X" `& L$ L [ 0.000000] vmalloc : 0x00000000 - 0xffffffff (4095 MB) [ 0.000000] lowmem : 0x60000000 - 0x61000000 ( 16 MB) [ 0.000000] .text : 0x(ptrval) - 0x(ptrval) (1597 kB)7 Q/ H5 `( e" Y g4 L- H8 j& N [ 0.000000] .init : 0x(ptrval) - 0x(ptrval) ( 632 kB): b7 z1 v" J; ^" W [ 0.000000] .data : 0x(ptrval) - 0x(ptrval) ( 155 kB) [ 0.000000] .bss : 0x(ptrval) - 0x(ptrval) ( 131 kB)4 w' ?$ s2 {- \( I) F8 ]4 k [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=10 d& D% s: Q" A+ W. H/ ? [ 0.000000] Preemptible hierarchical RCU implementation." C Z& p; R ~# V% Q7 ?2 T3 Y0 q' O; v [ 0.000000] Tasks RCU enabled.( x# W$ |# J' p2 { [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16+ S! k( W/ g# K% o9 \ [ 0.000000] clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 18664651 ns" _9 }6 G3 @/ y7 g1 q3 M: z [ 0.000000] ARM System timer initialized as clocksource9 ?: P1 j0 x* j' D) X [ 0.000000] /soc/timer@40000c00: STM32 clockevent driver initialized (32 bits)& ?3 q& K4 k* |* l; N [ 0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836475000000ns [ 0.010000] Calibrating delay loop... 795.44 BogoMIPS (lpj=3977216)) t) p$ {8 M1 g$ k, p [ 0.100000] pid_max: default: 4096 minimum: 301 [ 0.100000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.100000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.100000] Hierarchical SRCU implementation.% f4 Q) e0 W2 S5 J# @- s" X$ y [ 0.100000] devtmpfs: initialized [ 0.110000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.110000] pinctrl core: initialized pinctrl subsystem [ 0.110000] DMA: default coherent area is set6 r) z d1 ^1 v8 ^( `( ?5 r" x [ 0.110000] random: get_random_u32 called from bucket_table_alloc+0xc9/0xf4 with crng_init=09 |' X/ d, Y. s [ 0.110000] NET: Registered protocol family 16+ [9 b' _* I7 W( Y [ 0.120000] cpuidle: using governor ladder [ 0.120000] cpuidle: using governor menu [ 0.130000] stm32h743-pinctrl soc:pin-controller: GPIOA bank added; T$ x3 A& |, s7 ^' \" \ [ 0.130000] stm32h743-pinctrl soc:pin-controller: GPIOB bank added/ R' j c& h; p7 j! q [ 0.130000] stm32h743-pinctrl soc:pin-controller: GPIOC bank added9 ?7 _! f' Q3 o/ n, o4 g- _ [ 0.130000] stm32h743-pinctrl soc:pin-controller: GPIOD bank added [ 0.130000] stm32h743-pinctrl soc:pin-controller: GPIOE bank added [ 0.130000] stm32h743-pinctrl soc:pin-controller: GPIOF bank added [ 0.140000] stm32h743-pinctrl soc:pin-controller: GPIOG bank added" n: s i% t* c5 U" D0 @ [ 0.140000] stm32h743-pinctrl soc:pin-controller: GPIOH bank added [ 0.140000] stm32h743-pinctrl soc:pin-controller: GPIOI bank added6 M% V; A* |6 B/ t9 ?4 t6 a# P [ 0.140000] stm32h743-pinctrl soc:pin-controller: GPIOJ bank added [ 0.140000] stm32h743-pinctrl soc:pin-controller: GPIOK bank added [ 0.140000] stm32h743-pinctrl soc:pin-controller: Pinctrl STM32 initialized' ^8 i+ a3 g" V1 P1 M [ 0.160000] pps_core: LinuxPPS API ver. 1 registered% W M, `. p/ K+ A! B! o; Q& \ [ 0.160000] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>$ b3 V$ V+ D: J! l: i g# \% B$ l' b& D! z [ 0.160000] PTP clock support registered [ 0.160000] clocksource: Switched to clocksource arm_system_timer [ 0.170000] NET: Registered protocol family 2 [ 0.170000] TCP established hash table entries: 1024 (order: 0, 4096 bytes) [ 0.170000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)0 T; h1 f# c6 p2 T" ? [ 0.170000] TCP: Hash tables configured (established 1024 bind 1024)* I1 K: ~0 i9 L8 b; {/ Q- u/ } [ 0.170000] UDP hash table entries: 256 (order: 0, 4096 bytes)# T; \4 h( \, ]/ A" I9 n [ 0.170000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.170000] NET: Registered protocol family 1 [ 0.360000] workingset: timestamp_bits=30 max_order=12 bucket_order=0 [ 0.380000] random: fast init done, L. V' M, ~+ |/ s9 c1 s$ |) n [ 0.400000] io scheduler noop registered# k1 R- @# E" M8 V* q6 E [ 0.400000] io scheduler deadline registered [ 0.400000] io scheduler cfq registered (default)# v6 ^) d8 y) ^+ r7 h6 N [ 0.400000] io scheduler mq-deadline registered: E! @$ B7 D( i+ ?$ m" V2 m2 X0 b [ 0.400000] io scheduler kyber registered' G& |' Q ]3 B1 u, { [ 0.400000] STM32 USART driver initialized [ 0.400000] 40011000.serial: ttyS0 at MMIO 0x40011000 (irq = 17, base_baud = 12500000) is a stm32-usart [ 0.850000] console [ttyS0] enabled [ 0.850000] stm32-usart 40011000.serial: rx dma alloc failed [ 0.860000] stm32-usart 40011000.serial: interrupt mode used for rx (no dma) [ 0.870000] stm32-usart 40011000.serial: tx dma alloc failed [ 0.870000] stm32-usart 40011000.serial: interrupt mode used for tx (no dma) [ 0.880000] libphy: Fixed MDIO Bus: probed [ 0.890000] tun: Universal TUN/TAP device driver, 1.60 Q e0 B7 |: F7 Y, g# D8 ? [ 0.890000] stm32-dwmac 40028000.ethernet: Found phy-handle subnode [ 0.900000] stm32-dwmac 40028000.ethernet: Found MDIO subnode: k7 L4 `1 U' e( O [ 0.910000] stm32-dwmac 40028000.ethernet: use snps,dwmac-4.00.. [ 0.910000] stm32-dwmac 40028000.ethernet: PTP uses main clock0 _( Y& h' L" E3 [ [ 0.910000] stm32-dwmac 40028000.ethernet: no reset control found. v! m9 a! k: G$ q. h, d [ 0.930000] stmmac - user ID: 0x30, Synopsys ID: 0x41 [ 0.930000] stm32-dwmac 40028000.ethernet: DMA HW capability register supported [ 0.930000] stm32-dwmac 40028000.ethernet: RX Checksum Offload Engine supported( O+ q) D4 W4 P; x- n [ 0.950000] stm32-dwmac 40028000.ethernet: TX Checksum insertion supported+ s G- Y+ |# t; P [ 0.950000] stm32-dwmac 40028000.ethernet: Wake-Up On Lan supported( N0 b4 P8 B U! F0 _ [ 0.950000] stm32-dwmac 40028000.ethernet: TSO supported [ 0.970000] stm32-dwmac 40028000.ethernet: Enable RX Mitigation via HW Watchdog Timer0 F+ D& D; k9 A$ Z% x [ 0.970000] stmmac_mdio_reset : reset gpio direction num=28 % C$ R6 F0 p& b% h [ 1.080000] libphy: stmmac: probed8 n9 L% U4 D! F0 c* e" }: u- Y [ 1.090000] stm32-dwmac 40028000.ethernet: register the MDIO bus [ 1.100000] u32 classifier0 m9 V+ m+ W' n. g8 T; l [ 1.100000] Initializing XFRM netlink socket% b. b8 V! a5 ~+ N4 I [ 1.110000] NET: Registered protocol family 17) Q: |; Y+ m6 `' O* U y2 M4 i [ 1.110000] NET: Registered protocol family 15" p8 t8 c: B7 ]( f [ 1.110000] 8021q: 802.1Q VLAN Support v1.89 v4 V$ O9 ?8 E3 s [ 1.120000] Key type dns_resolver registered [ 1.130000] Freeing unused kernel memory: 632K' }: e3 \% S$ Z& z# G [ 1.140000] This architecture does not have kernel memory protection." J1 { ~9 i0 `! s2 o' m) R8 C/ _0 J can't run '/sbin/swapon': No such file or directory* s) G, n/ O! J* ]/ S Initializing random number generator... done./ t3 ~. T( X: k/ c+ s0 R1 E Jan 1 00:00:01 login[59]: root login on 'console'% k% ~0 J5 g" S, k! G: U3 N ~ # |
; z+ x) p6 X4 u* u2 ~" [
cpu 400Mhz sdram 100mhz cas=2 8 l, p' U+ T( Q D5 ^. L+ c( O+ X! f
测试软件:iperf3 8 }. N* m: I. l& T8 Z$ d# d
系统跑了25个线程测试速度如下。。。。没有原子裸奔的那个快............! h6 A' O! z' t5 L7 R$ _3 u9 t" j2 g
65.8 Mbits/sec9 m8 e4 r! b: H- H6 p1 M! Q" ^
~ # cat /proc/cpuinfo & G+ M. c$ m& M6 \7 \0 z. z! o
processor : 0
model name : ARMv7-M rev 1 (v7ml)
BogoMIPS : 795.444 W1 a2 I% r0 S. f1 x% D( \& }
Features : half thumb fastmult edsp idivt 1 ?* K, r: f! A% m% \
CPU implementer : 0x41
CPU architecture: 7M+ c4 A9 X; @% O& F, ?" b5 G
CPU variant : 0x1" t# l7 k! Z ^' D" H$ \) {
CPU part : 0xc276 O9 p" e% H4 E# [) U! m8 j
CPU revision : 1
Hardware : STM32 (Device Tree Support)5 C8 \, ]3 ^4 b9 z
Revision : 0000
Serial : 0000000000000000- Q* u& C) c5 ?; b$ `& ]
~ # iperf3 -c 192.168.10.26
Connecting to host 192.168.10.26, port 5201- B* {/ S/ t( q( p; m! S% H
[ 4] local 192.168.10.22 port 41328 connected to 192.168.10.26 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd# h7 m- L! a; b. S0 r
[ 4] 0.00-1.01 sec 7.57 MBytes 63.0 Mbits/sec 0 173 KBytes
[ 4] 1.01-2.03 sec 8.22 MBytes 67.3 Mbits/sec 0 181 KBytes % I: C$ Z2 v9 l! f9 Y
[ 4] 2.03-3.15 sec 8.75 MBytes 66.0 Mbits/sec 0 181 KBytes : ~% H" l3 B- J" Y
[ 4] 3.15-4.04 sec 6.90 MBytes 65.0 Mbits/sec 0 181 KBytes I% W( f9 ~+ G8 ^/ j2 [( F
[ 4] 4.04-5.15 sec 8.70 MBytes 65.4 Mbits/sec 0 181 KBytes
[ 4] 5.15-6.10 sec 7.40 MBytes 65.5 Mbits/sec 0 181 KBytes " ^' P! e7 c+ m) |" s P
[ 4] 6.10-7.01 sec 7.37 MBytes 67.7 Mbits/sec 0 191 KBytes
[ 4] 7.01-8.16 sec 8.95 MBytes 65.6 Mbits/sec 0 191 KBytes
[ 4] 8.16-9.02 sec 6.86 MBytes 66.5 Mbits/sec 0 191 KBytes
[ 4] 9.02-10.13 sec 8.73 MBytes 65.9 Mbits/sec 0 191 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr; Q$ _. {. k$ M4 t0 c
[ 4] 0.00-10.13 sec 79.4 MBytes 65.8 Mbits/sec 0 sender
[ 4] 0.00-10.13 sec 79.4 MBytes 65.8 Mbits/sec receiver
9 S. M8 ~) k1 n; i7 ^
iperf Done.
~ # ps8 ]. m9 l) {7 Q. h- f
PID USER VSZ STAT COMMAND
1 root 400 S init7 \3 o( K+ s" U }8 t8 |! Q8 m
2 root 0 SW [kthreadd]
4 root 0 IW< [kworker/0:0H]; o M) l+ Q+ x) ~" E/ s1 y6 s
6 root 0 IW< [mm_percpu_wq]
7 root 0 SW [ksoftirqd/0]
8 root 0 IW [rcu_preempt]0 V& B* V$ G9 T, b7 w# o
9 root 0 IW [rcu_sched]* Z$ [4 a# W6 \" K% |
10 root 0 IW [rcu_bh], q/ c. H0 t, b1 N+ S3 c
11 root 0 SW [kdevtmpfs]
12 root 0 SW [rcu_tasks_kthre]
14 root 0 IW< [writeback]
15 root 0 IW< [crypto]8 i- f" t- I6 H% O& ~* P
16 root 0 IW< [kblockd] c$ X8 q0 h5 F# x( l+ K
17 root 0 IW< [watchdogd]
18 root 0 SW [kswapd0]6 e# G8 q' W: p/ }9 S
41 root 0 SW [irq/17-40011000]# D- F2 v# i9 m9 ~$ u4 }5 E) a
59 root 420 S -sh6 j, U7 G2 E; O1 ]- i/ ?$ \ b
60 root 0 IW [kworker/u2:1]
61 root 0 IW [kworker/u2:2]
64 root 0 IW [kworker/0:2]# l0 k5 D( @3 F% j
65 root 0 IW [kworker/0:3]2 g3 a# `" f$ `1 m+ k8 S
71 root 0 IW [kworker/0:0]
75 root 396 R ps
% l8 O- B2 m5 d0 p I: t, | d1 q
楼主,您好,看了您的贴子,手头正好有一块stm32f746-disco 的板子,按照您的思路,移植了uboot2016.09,移植了uboot eth驱动,因为没有移植MMC驱动,就打算把linux内核加载在SDRAM上,再从SDRAM启动内核;使用的是linux4.19.24默认的stm32配置,但是现在一直卡在“Starting kernel ...”,内核应该是没有起来;不知道您调试过程中是否遇到这个问题。附上打印的信息:! t# Y m1 |8 P t
2 f+ f& B+ b7 \ Y! C
U-Boot 2016.09-g83ec55b-dirty (Feb 22 2019 - 18:30:58 +0800)
$ L& O, X6 {2 \) _0 z$ ?
DRAM: 8 MiB
WARNING: Caches not enabled8 B0 G( [" G9 N
Flash: 1 MiB( N, x9 m! t& b" Y
Using default environment
+ p: J) B& B+ z) l& k
In: serial_stm32x79 s; o7 O3 c6 u. v& y, @
Out: serial_stm32x7
Err: serial_stm32x77 C9 L1 O! }& O$ B- C
Net: 7 d) v! s: a" s3 {7 y% i$ S, ]+ m8 z; ~% S
stm32 eth probe start' v; ?$ {4 [( s' ~5 \4 x
stm32 eth probe end G6 ]9 g) U/ Z5 {( q6 x6 p5 t
stm32_read_rom_hwaddr5 ^/ q" J7 k/ n) R, K' E- J
Warning: eth_stm32_eth using MAC address from ROM
eth0: eth_stm32_eth
stm32_write_hwaddr
G. K+ F8 W- d- ~
Hit SPACE in 3 seconds to stop autoboot.
U-Boot > set ipaddr 10.0.0.2
U-Boot > set serverip 10.0.0.6
U-Boot > tftp c0400000 uImage.bin+ @3 t) y0 r' q3 z$ {& k
! q B* M8 N; v* B+ A8 r) d
stm32_eth_stop start
stm32_eth_stop end
6 e1 a1 ?1 u/ F& s& B& V5 T
stm32_eth_start start
stm32_eth_start end4 Y9 v4 ` N4 X( U8 p
Using eth_stm32_eth device$ Y8 {! o( ]( g4 B7 N! ?: z
TFTP from server 10.0.0.6; our IP address is 10.0.0.2; S E; l N( k
Filename 'uImage.bin'.
Load address: 0xc0400000% N0 Z( Y; |5 Z
Loading: #################################################################; l5 r- U; w; E% C2 f8 N) X
###########################
2 MiB/s/ i7 i4 b$ f Z6 u% W% k
done
Bytes transferred = 1337888 (146a20 hex)4 F, b+ a+ y# d% \! t% B
stm32_eth_stop start
stm32_eth_stop end
U-Boot > tftp c0600000 discodtb.bin% L; T9 B; x1 j4 u) T4 g
stm32_eth_stop start
stm32_eth_stop end
- {! j7 i; |" D% N3 G
stm32_eth_start start
stm32_eth_start end7 d- l$ v+ |6 ~9 y3 X; D/ ?9 s
Using eth_stm32_eth device6 h) l. X9 _7 d& Q! } L; x: W
TFTP from server 10.0.0.6; our IP address is 10.0.0.2, u( V# f- Y8 X1 y* F _. \
Filename 'discodtb.bin'.9 O* f$ y/ K- U e
Load address: 0xc0600000
Loading: ##
966.8 KiB/s
done( H5 U- V9 R( {0 W$ h; j7 }; [
Bytes transferred = 14858 (3a0a hex)3 t7 v; k, [% X: Y
; V7 q( @* \7 t
stm32_eth_stop start0 F5 M9 x$ M( q' N0 h: W
stm32_eth_stop end( e7 d7 x( m+ m+ M8 A& Q
U-Boot > bootm c0400000 - c0600000
## Booting kernel from Legacy Image at c0400000 ...
Image Name: Linux-4.19.24! l2 {- j$ w) b% |; @# ]
Image Type: ARM Linux Kernel Image (uncompressed)9 x3 y9 M1 u+ {! X) r* w
Data Size: 1337824 Bytes = 1.3 MiB
Load Address: c00080009 d2 B) v5 o M8 s) Z
Entry Point: c0008000& ]+ t" f( @0 A1 T: `6 k; f9 ]5 a. E
Verifying Checksum ... OK
## Flattened Device Tree blob at c0600000( }/ Y+ K5 C" p( F$ R5 W: ?( U
Booting using the fdt blob at 0xc0600000; Y7 N8 ~. N8 m) `1 J
Loading Kernel Image ... OK9 S; ^5 m0 M N$ M: {: X8 E
Loading Device Tree to c07c7000, end c07cda09 ... OK3 x6 L: F3 B7 r+ z& P3 x
$ I- i! l5 E) k8 O
Starting kernel ...
U-Boot 2018.09-rc2-g36b739b (Nov 25 2018 - 10:45:48 +0800)
Model: STMicroelectronics STM32H743i-EVAL board$ J& E% J. U" W( @, s
DRAM: 32 MiB$ K3 F0 i0 N0 ~ K/ e) R6 T
MMC: STM32 SDMMC2: 0
In: serial@40011000
Out: serial@400110002 h) r2 b2 w3 g" G# a
Err: serial@40011000- Q% C" q( E; |* E4 g# B/ n
Net:
Warning: ethernet@40028000 (eth0) using random MAC address - b6:1d:0e:15:99:e3" Z6 H6 Q e8 {# N# J5 @
eth0: ethernet@40028000
Hit SPACE in 3 seconds to stop autoboot.
Card did not respond to voltage select!8 p5 F+ ]1 j, u- h# q* W8 s, Y
U-Boot > tftpboot 0x60001000 192.168.1.103:u-boot.bin
ethernet@40028000 Waiting for PHY auto negotiation to complete... done
*** ERROR: `ipaddr' not set
U-Boot > set ipaddr 192.168.1.101;set serverip 192.168.1.1;set ethaddr d6:54:97:9f:9a:90; ) K, e& n' }8 p. v2 C" z. J/ ?
U-Boot > tftpboot 0x60001000 192.168.1.103:u-boot.bin 7 _/ c8 k6 F9 C/ s4 G! r
ethernet@40028000 Waiting for PHY auto negotiation to complete... done
Using ethernet@40028000 device% G) `' c2 m4 Q' J) \& Y) e
TFTP from server 192.168.1.103; our IP address is 192.168.1.1013 h& f; \1 L8 b0 \; n
Filename 'u-boot.bin'.
Load address: 0x60001000
Loading: ##################; ?1 f( j- t* q
1.8 MiB/s$ ^3 O$ y3 Y. V+ S0 @/ n. f
done
Bytes transferred = 257336 (3ed38 hex)0 |1 t4 o4 |4 L8 g6 u1 C5 I, r. [5 k
U-Boot > cmp.b 60001000 8000000 3ed38
Total of 257336 byte(s) were the same, r# u, N' a& b8 W. {1 W
1 r* A. y" h6 p3 W6 @! \) O% {: D
接下来看看kernel 咋能。
说下eth dma 最大的注意事项,就是cache dma ram 一致性, 卡了好个晚上,对于这个一致性,没有多少经验,希望大家给点经验指导下。
switch to partitions #0, OK' J* A& ?6 p7 j+ d5 o3 b
mmc0 is current device
Scanning mmc 0:1...: H8 n& ~! C+ R5 U1 D0 E: i" A: y" E
U-Boot > fatload mmc 0 60008000 uImage;fatload mmc 0 60800000 stm32h743i-eval.dtb
1926672 bytes read in 19 ms (96.7 MiB/s)9 B- ~9 S- w0 O, ?$ O* A
9370 bytes read in 2 ms (4.5 MiB/s)
U-Boot >
请查看串口定义部分 高版本内核串口的定义不一样 ttys0 具体看下驱动代码
看下这个如果你用的内核版本是这样8 \+ g p U2 X1 [
git\linux-4.19.9\drivers\tty\serial\stm32-usart.h
/ S5 j1 v6 a! N, e% q! C/ x
#define _SERIAL_NAME "ttySTM"
把这个 U-Boot > env set bootargs "root=/dev/ram console=ttyS0,115200 " C2 y* N, A5 R, J) q) g
5 |+ @. r9 q5 F
改成这个$ ^9 c1 Z. o$ g
+ n) T9 j* x6 L! i
env set bootargs "root=/dev/ram console=ttySTM,115200 " ( _7 S3 H! [4 i3 c" p
这个STM工程师比较那个,我也被坑了,各种分析,内存BUFF分析 等等 我就像骂一句 mmp& w5 ]5 b4 @/ F/ {5 h; t
谢楼主啊,我回头试一下
楼主您好,linux内核确实是你说的那样,但是改了uboot的bootargs后,仍然不能在启动内核后打印信息。。。stm的工程师看来是只管写不管有没有用啊。。。