S3C6410的SD卡UBOOT启动的实现过程

手头上有飞凌的OK6410开发板,想通过sd uboot 启动linuxyaffs根文件系统,考虑过几种实现方式

1.     通过S3C6410sd启动功能,把带下载功能的uboot烧录到sd卡的启动扇区中,当uboot启动时,通过它的网络下载或者usb下载功能把linux内核下载到内存中,再把根文件系统下载并烧录到nand flash中,接着启动内核从而启动整个系统。

2.     通过S3C6410sd启动功能,把带下载功能以及文件系统读取功能的uboot烧录到sd卡的启动扇区,当uboot启动时,把放入sd卡的ubootlinux内核和文件系统写入nand flash中,再转成用nand flash 启动,然后启动linux系统。

3.     通过S3C6410sd启动功能,把带下载功能的uboot烧录到sd卡的启动扇区中,再把linux内核也写入sd卡的对应扇区中,接着通过usb或者网络下载功能把yaffs文件系统下载到nand flash中,接着就从sd卡直接启动linux系统。

 

这里只使用了方法3,但也由于某些问题,还借助了飞凌的一键烧录的方式来烧录yaffs2文件系统到nand flash中。

使用三星的sd uboot源码,对sd uboot进行修改:

a.     在include目录中的configsS3C6410.h文件中,打开sd boot的选项如下图。

b.增加sd卡的copy功能并设置正确的zImage的读取位置:把下面的PART_ROOTFS_OFFSET 改成0X400000 ,因为我使用的是飞凌的linux内核,大小已经超过3M,所以就指定为4M

把下面的ofsinfo.zimage改成1973148672/512,注意这个位置也是zImage写入sd卡的位置。

c. 增加nand flash的功能,参考《uboot支持NAND部分代码》这个目录里面的文件,或者飞凌的uboot的源代码中的nand flash部分的内容。

d.增加网络的功能,直接参考移植后的dm9000x文件就可以了,但注意在smdk6410.h文件中增加如下的宏:

//added for achieving the OK6410 netfunction

#define CONFIG_DRIVER_DM9000 1

#define CONFIG_DM9000_BASE 0x18000000

#define DM9000_IO CONFIG_DM9000_BASE

#define DM9000_DATA (CONFIG_DM9000_BASE+4)

#define CONFIG_DM9000_USE_16BIT

e.增加usb的功能,其实usb的功能只要把usbd-otg-hs.c文件按如下修改:

f.设置bootargs 如下:

setenv bootargs "init=/linuxrcroot=/dev/mtdblock2 rootfstype=yaffs2 console=ttySAC0,115200"

 

g. 注意nandflash的分区如下:

 

0x000000000000-0x000000100000: "Bootloader"

0x000000100000-0x000000600000: "Kernel"

0x000000600000-0x000080000000 : "FileSystem"

 

hsd卡上如何烧写内核和sd uboot请参考《SD&SDHC 下载UBOOT注意事项》和《WINHEX的使用手册》。

 

i. zImage yaffs文件系统使用飞凌现成的文件rootfs.yaffs2-nand2gzImage,请查看此文件夹中的该文件。

 

j.如果使用USB下载的话,还需要在主机端装USB的驱动,请查看此文件夹的USB驱动并按照到你的主机上。

k.nand flash的读取命令和写命令有时候会执行不了,可以多写几遍。另外,在写之前好像一定要擦除。

 

注意:

1.     不管是用USB还是用TFTP功能,下载rootfs.yaffs2-nand2g文件的时候都会下载到90%左右死机,因此,我还是借助了一键安装的功能先把文件系统写到nand flash中的。否则目前还没有办法把 yaffs文件系统放到NAND FLASH的指定分区中。

 

2.另外,我使用的是sandisk 2G sd卡,其他的sd卡我没有试过,但sdhc卡一定是不行的,因为sd uboot里面的驱动只针对sd卡。下载镜像到sd卡我使用的工具是WINHEX软件(记得要用破解版,否则无法写入)。

 

下面贴上串口输出的整个启动过程:

 

U-Boot 1.1.6 (Sep 17 2012 - 18:32:43) for SMDK6410

CPU:    S3C6410@532MHz

         Fclk =532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode)

Board:  SMDK6410

DRAM:    128 MB

Flash:   0 kB

NAND:    2048 MB

SanDisk MMC:    =>  rca=0x0000e624

1887 MB

In:      serial

Out:     serial

Err:     serial

Hit any key to stop autoboot:  0

Reading zImage from block 3853806.. Completed!

 

Boot with zImage

 

Starting kernel ...

 

Uncompressing Linux... done, booting the kernel.

Linux version 3.0.1 (root@forlinx) (gcc version 4.3.2(Sourcery G++ Lite 2008q3-72) ) #425 Mon May 7 16:56:20 CST 2012

S3C24XX Clocks, Copyright 2004 Simtec Electronics

camera: no parent clock specified

S3C64XX: PLL settings, A=532000000, M=532000000,E=24000000

S3C64XX: HCLK2=266000000, HCLK=133000000,PCLK=66500000

mout_apll: source is fout_apll (1), rate is 532000000

mout_epll: source is epll (1), rate is 24000000

mout_mpll: source is mpll (1), rate is 532000000

mmc_bus: source is mout_epll (0), rate is 24000000

mmc_bus: source is mout_epll (0), rate is 24000000

mmc_bus: source is mout_epll (0), rate is 24000000

usb-bus-host: source is clk_48m (0), rate is 48000000

uclk1: source is dout_mpll (1), rate is 66500000

spi-bus: source is mout_epll (0), rate is 24000000

spi-bus: source is mout_epll (0), rate is 24000000

audio-bus: source is mout_epll (0), rate is 24000000

audio-bus: source is mout_epll (0), rate is 24000000

audio-bus: source is mout_epll (0), rate is 24000000

irda-bus: source is mout_epll (0), rate is 24000000

camera: no parent clock specified

Kernel command line: init=/linuxrc root=/dev/mtdblock2rootfstype=yaffs2 console=ttySAC0,115200

PID hash table entries: 512 (order: -1, 2048 bytes)

Dentry cache hash table entries: 16384 (order: 4,65536 bytes)

Inode-cache hash table entries: 8192 (order: 3, 32768bytes)

Memory: 128MB = 128MB total

Memory: 67672k/67672k available, 63400k reserved, 0Khighmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    DMA     : 0xff600000 - 0xffe00000   (   8MB)

    vmalloc :0xc8800000 - 0xf4000000   ( 696 MB)

    lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)

    pkmap   : 0xbfe00000 - 0xc0000000   (   2MB)

    modules :0xbf000000 - 0xbfe00000   (  14 MB)

      .init : 0xc0008000- 0xc0034000   ( 176 kB)

      .text :0xc0034000 - 0xc0701080   (6965 kB)

      .data :0xc0702000 - 0xc0744330   ( 265 kB)

       .bss :0xc0744354 - 0xc07c1ce0   ( 503 kB)

SLUB: Genslabs=13, HWalign=32, Order=0-3,MinObjects=0, CPUs=1, Nodes=1

NR_IRQS:246 nr_irqs:246 246

VIC @f4000000: id 0x00041192, vendor 0x41

VIC @f4010000: id 0x00041192, vendor 0x41

Console: colour dummy device 80x30

console [ttySAC0] enabled

Calibrating delay loop... 528.79 BogoMIPS(lpj=2643968)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

hw perfevents: enabled with v6 PMU driver, 3 countersavailable

devtmpfs: initialized

NET: Registered protocol family 16

hw-breakpoint: found 6 breakpoint and 1 watchpointregisters.

hw-breakpoint: maximum watchpoint size is 4 bytes.

s3c64xx_dma_init: Registering DMA channels

PL080: IRQ 73, at c8804000, channels 0..8

PL080: IRQ 74, at c8806000, channels 8..16

bio: create slab <bio-0> at 0

SCSI subsystem initialized

------------[ cut here ]------------

WARNING: at drivers/gpio/gpiolib.c:101gpio_ensure_requested+0x58/0x124()

---[ end trace da227214a82491b7 ]---

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

s3c-i2c s3c2440-i2c.0: slave address 0x10

s3c-i2c s3c2440-i2c.0: bus frequency set to 64 KHz

s3c-i2c s3c2440-i2c.0: i2c-0: S3C I2C adapter

Advanced Linux Sound Architecture Driver Version1.0.23.

cfg80211: Calling CRDA to update world regulatorydomain

NET: Registered protocol family 2

IP route cache hash table entries: 1024 (order: 0,4096 bytes)

TCP established hash table entries: 4096 (order: 3,32768 bytes)

TCP bind hash table entries: 4096 (order: 2, 16384bytes)

TCP: Hash tables configured (established 4096 bind4096)

TCP reno registered

UDP hash table entries: 256 (order: 0, 4096 bytes)

UDP-Lite hash table entries: 256 (order: 0, 4096bytes)

NET: Registered protocol family 1

RPC: Registered named UNIX socket transport module.

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

RPC: Registered tcp NFSv4.1 backchannel transportmodule.

audit: initializing netlink socket (disabled)

type=2000 audit(0.270:1): initialized

msgmni has been set to 132

alg: No test for stdrng (krng)

Block layer SCSI generic (bsg) driver version 0.4loaded (major 253)

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

LCD TYPE :: LTE480WV will be initialized

Console: switching to colour frame buffer device 60x34

fb0: s3cfb frame buffer device

fb1: s3cfb frame buffer device

fb2: s3cfb frame buffer device

fb3: s3cfb frame buffer device

s3c6400-uart.0: ttySAC0 at MMIO 0x7f005000 (irq = 16)is a S3C6400/10

s3c6400-uart.1: ttySAC1 at MMIO 0x7f005400 (irq = 20)is a S3C6400/10

s3c6400-uart.2: ttySAC2 at MMIO 0x7f005800 (irq = 24)is a S3C6400/10

s3c6400-uart.3: ttySAC3 at MMIO 0x7f005c00 (irq = 28)is a S3C6400/10

Hello, world

NAND device: Manufacturer ID: 0xec, Chip ID: 0xd5(Samsung NAND 2GiB 3,3V 8-bit)

Creating 3 MTD partitions on "NAND 2GiB 3,3V8-bit":

0x000000000000-0x000000100000 : "Bootloader"

0x000000100000-0x000000600000 : "Kernel"

0x000000600000-0x000080000000 : "FileSystem"

vcan: Virtual CAN interface driver

slcan: serial line CAN interface driver

slcan: 10 dynamic interface channels.

CAN device driver interface

mcp251x: setup gpio pins CS and External Int

mcp2515 spi1.0: MCP251x didn't enter in conf modeafter reset

mcp2515 spi1.0: Probe failed

mcp2515 spi1.0: probe failed

PPP generic driver version 2.4.2

PPP Deflate Compression module registered

PPP BSD Compression module registered

PPP MPPE Compression module registered

NET: Registered protocol family 24

dm9000 Ethernet Driver, V1.31

eth0: dm9000a at c881c000,c8c00004 IRQ 108 MAC:08:90:00:a0:90:90 (platform data)

libertas_sdio: Libertas SDIO driver

libertas_sdio: Copyright Pierre Ossman

usbcore: registered new interface driver rt73usb

ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver

s3c2410-ohci s3c2410-ohci: S3C24XX OHCI

s3c2410-ohci s3c2410-ohci: new USB bus registered,assigned bus number 1

s3c2410-ohci s3c2410-ohci: irq 79, io mem 0x74300000

usb usb1: New USB device found, idVendor=1d6b,idProduct=0001

usb usb1: New USB device strings: Mfr=3, Product=2,SerialNumber=1

usb usb1: Product: S3C24XX OHCI

usb usb1: Manufacturer: Linux 3.0.1 ohci_hcd

usb usb1: SerialNumber: s3c24xx

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 2 ports detected

usbcore: registered new interface driver cdc_acm

cdc_acm: USB Abstract Control Model driver for USBmodems and ISDN adapters

Initializing USB Mass Storage driver...

usbcore: registered new interface driver usb-storage

USB Mass Storage support registered.

usbcore: registered new interface driver usbserial

USB Serial support registered for generic

usbcore: registered new interface driverusbserial_generic

usbserial: USB Serial Driver core

USB Serial support registered for GSM modem (1-port)

usbcore: registered new interface driver option

option: v0.7.2:USB Driver for GSM modems

USB Serial support registered for pl2303

usbcore: registered new interface driver pl2303

pl2303: Prolific PL2303 USB to serial adaptor driver

dummy_hcd dummy_hcd: USB Host+Gadget Emulator, driver02 May 2005

dummy_hcd dummy_hcd: Dummy host controller

dummy_hcd dummy_hcd: new USB bus registered, assignedbus number 2

usb usb2: New USB device found, idVendor=1d6b,idProduct=0002

usb usb2: New USB device strings: Mfr=3, Product=2,SerialNumber=1

usb usb2: Product: Dummy host controller

usb usb2: Manufacturer: Linux 3.0.1 dummy_hcd

usb usb2: SerialNumber: dummy_hcd

hub 2-0:1.0: USB hub found

hub 2-0:1.0: 1 port detected

mousedev: PS/2 mouse device common for all mice

input: gpio-keys as/devices/platform/gpio-keys/input/input0

input: s3c-keypad as/devices/platform/s3c-keypad/input/input1

S3C Touchscreen driver, (c) 2008 Samsung Electronics

S3C TouchScreen got loaded successfully : 12 bits

input: S3C TouchScreen as/devices/virtual/input/input2

s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling

s3c-rtc s3c64xx-rtc: rtc core: registered s3c as rtc0

i2c /dev entries driver

Linux video capture interface: v2.00

gspca: main v2.10.0 registered

usbcore: registered new interface driver benq

benq: registered

usbcore: registered new interface driver conex

conex: registered

usbcore: registered new interface driver cpia1

cpia1: registered

usbcore: registered new interface driver etoms

etoms: registered

usbcore: registered new interface driver finepix

finepix: registered

usbcore: registered new interface driver jeilinj

jeilinj: registered

usbcore: registered new interface driver mars

mars: registered

usbcore: registered new interface driver mr97310a

mr97310a: registered

usbcore: registered new interface driver ov519

ov519: registered

usbcore: registered new interface driver ov534

ov534: registered

usbcore: registered new interface driver ov534_9

ov534_9: registered

usbcore: registered new interface driver pac207

pac207: registered

usbcore: registered new interface driver pac7302

pac7302: registered

usbcore: registered new interface driver pac7311

pac7311: registered

usbcore: registered new interface driver sn9c2028

sn9c2028: registered

usbcore: registered new interface driver sn9c20x

sn9c20x: registered

usbcore: registered new interface driver sonixb

sonixb: registered

usbcore: registered new interface driver sonixj

sonixj: registered

usbcore: registered new interface driver spca500

spca500: registered

usbcore: registered new interface driver spca501

spca501: registered

usbcore: registered new interface driver spca505

spca505: registered

usbcore: registered new interface driver spca506

spca506: registered

usbcore: registered new interface driver spca508

spca508: registered

usbcore: registered new interface driver spca561

spca561: registered

usbcore: registered new interface driver spca1528

spca1528: registered

usbcore: registered new interface driver sq905

sq905: registered

usbcore: registered new interface driver sq905c

sq905c: registered

usbcore: registered new interface driver sq930x

sq930x: registered

usbcore: registered new interface driver sunplus

sunplus: registered

usbcore: registered new interface driver stk014

stk014: registered

usbcore: registered new interface driver stv0680

stv0680: registered

usbcore: registered new interface driver t613

t613: registered

usbcore: registered new interface driver tv8532

tv8532: registered

usbcore: registered new interface driver vc032x

vc032x: registered

usbcore: registered new interface driver zc3xx

zc3xx: registered

usbcore: registered new interface driver ALi m5602

ALi m5602: registered

usbcore: registered new interface driver STV06xx

STV06xx: registered

gspca_gl860: driver startup - version 0.9d10

usbcore: registered new interface driver gspca_gl860

gspca_gl860: driver registered

s3c-fimc: controller 0 registered successfully

s3c-fimc: controller 1 registered successfully

s3c-fimc: info ov965x_init

cym s3c_mfc_mememap: addr:55af9000 size:1138688

S3C6400 MFC Driver, (c) 2007 Samsung Electronics

S3C PostProcessor Driver v3.12, (c) 2009 SamsungElectronics

S3C6410 TV encoder Driver, (c) 2008 SamsungElectronics

S3C6410 TV scaler Driver, (c) 2008 Samsung Electronics

S3C Rotator Driver, (c) 2008 Samsung Electronics

s3c_rotator_probe called

S3C JPEG Driver, (c) 2007 Samsung Electronics

s3c_g2d_probe called

 s3c_g2d_probeSuccess

S3C G3D Driver, (c) 2007-2009 Samsung Electronics

S3C CMM Driver, (c) 2008 Samsung Electronics

usbcore: registered new interface driver uvcvideo

USB Video Class driver (v0.1.0)

S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics

s3c2410-wdt s3c2410-wdt: watchdog inactive, resetdisabled, irq enabled

sdhci: Secure Digital Host Controller Interface driver

sdhci: Copyright(c) Pierre Ossman

s3c-sdhci s3c-sdhci.0: clock source 0: hsmmc(133000000 Hz)

s3c-sdhci s3c-sdhci.0: clock source 1: hsmmc (133000000Hz)

s3c-sdhci s3c-sdhci.0: clock source 2: mmc_bus(24000000 Hz)

mmc0: SDHCI controller on samsung-hsmmc [s3c-sdhci.0]using ADMA

s3c-sdhci s3c-sdhci.1: clock source 0: hsmmc(133000000 Hz)

s3c-sdhci s3c-sdhci.1: clock source 1: hsmmc(133000000 Hz)

s3c-sdhci s3c-sdhci.1: clock source 2: mmc_bus(24000000 Hz)

mmc1: SDHCI controller on samsung-hsmmc [s3c-sdhci.1]using ADMA

usbcore: registered new interface driver usbhid

usbhid: USB HID core driver

mmc0: new SD card at address e624

mmcblk0: mmc0:e624 SU02G 1.84 GiB

 mmcblk0: p1

asoc: wm9713-hifi <-> samsung-ac97 mapping ok

ALSA device list:

  #0: smdk6410

TCP cubic registered

NET: Registered protocol family 17

can: controller area network core (rev 20090105 abi 8)

NET: Registered protocol family 29

can: raw protocol (rev 20090105)

can: broadcast manager protocol (rev 20090105 t)

lib80211: common routines for IEEE802.11 drivers

Registering the dns_resolver key type

s3c-rtc s3c64xx-rtc: setting system clock to2000-03-08 17:26:07 UTC (952536367)

yaffs: dev is 32505858 name is "mtdblock2"rw

yaffs: passed flags ""

VFS: Mounted root (yaffs2 filesystem) on device 31:2.

devtmpfs: mounted

Freeing init memory: 176K

FAT-fs (mmcblk0p1): utf8 is not a recommended IOcharset for FAT filesystems, filesystem will be case sensitive!

 

Try to bring eth0 interface up......dm9000 dm9000.0:eth0: link down

Done

                                 

Starting Qtopia2, please waiting...

 

Please press Enter to activate thisconsole. touch...

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Uboot启动Linux过程详解: 1. Uboot加载内核镜像:Uboot首先会从存储设备(如SD卡、NAND Flash等)中加载内核镜像到内存中。 2. 设置内核启动参数:Uboot会设置内核启动参数,包括内核镜像在内存中的位置、根文件系统的位置、启动参数等。 3. 启动内核:Uboot会将控制权交给内核,让内核开始执行。内核会进行一系列初始化操作,包括初始化CPU、内存、设备驱动等。 4. 挂载根文件系统:内核会挂载根文件系统,使得用户可以访问文件系统中的文件和目录。 5. 启动用户空间:内核启动用户空间,即启动init进程。init进程会读取配置文件,启动各种系统服务和应用程序。 6. 用户空间运行:一旦用户空间启动成功,系统就进入了正常的运行状态,用户可以使用各种应用程序和系统服务。 总之,Uboot启动Linux过程是一个复杂的过程,需要多个组件协同工作,才能让系统正常启动并运行。 ### 回答2: Uboot是嵌入式系统中常用的一个开源启动加载程序,其主要功能是在嵌入式操作系统中启动Linux系统,并初始化系统硬件资源。Uboot在整个Linux系统启动过程中起到很关键的作用,下面就来详细介绍一下Uboot启动Linux过程. 一、Uboot的加载 第一个引导程序(Bootloader)需要存放在系统的闪存中,是Linux系统启动的重要组成部分。当开机后CPU默认开始执行闪存芯片0的地址,此时Uboot就被加载到RAM中,并执行。由于Uboot同样位于一块桥接器和一个NOR Flash的四接口ARM微控制器总线上,因此Uboot在存储器刚刚发挥了重要作用。 在Uboot启动过程中,系统会根据用户的选择进行环境的设置,比如启动选项、串口设置等。同时,Uboot还会初始化内存,并将内核镜像加载到内存中,准备启动内核。 二、内核启动 Linux内核启动主要分为五个过程,分别是: 1.内核加载 当Uboot初始化完成后,系统进入内核加载阶段。Uboot会将存放在NOR Flash中的内核镜像加载到系统主内存中。在加载内核时,会有一个fdt文件,该文件是系统在启动时加载设备树的重要文件,在设备树的启动阶段,大部分设备驱动程序都是通过fdt中的节点进行解析。 2.内核装载初始化 在内核镜像成功加载到内存中后,Linux内核开始进入装载初始化,该阶段主要进行一些内部的初始化工作,比如初始化调度程序、内存管理、文件系统等;此外还会启动ELF文件解析程序,解析各个驱动模块,以便后续的设备树解析和驱动程序的加载。 3.设备树解析 在内核镜像加载到内存中之后,Linux会对设备树进行解析。设备树是在启动时由Uboot加载、传递给内核的一种数据结构,主要用于描述系统的硬件资源分布情况,是操作系统启动过程中很关键的一环,因为设备树可以为操作系统提供有关系统硬件的信息,便于操作系统启动后初始化对应的硬件资源。 4.初始化进程 在设备树解析完成之后,Linux会进入初始化进程的阶段。在这个过程中,系统会完成一系列的启动脚本,完成基本系统的初始化,并启动基本服务。 5.用户空间启动 当初始化进程执行完毕后,系统进入用户空间启动阶段。此时可以执行用户的应用程序,系统也正式进入了可用状态了。 三、总结 以上就是Uboot启动Linux过程的详解了。在整个启动过程中,Uboot不仅完成了硬件资源初始化,还实现内核和用户空间的启动,是整个系统的重要组成部分。对于嵌入式设备的开发者来说,深入了解Uboot启动过程,对于准确定位问题和有序开发代码具有很大的帮助。 ### 回答3: uboot是嵌入式系统中常用的一个启动引导程序,其作用是加载Linux内核文件到系统中,并启动内核从而让系统正常运行。本文就uboot启动linux过程进行详细的分析。 uboot启动linux过程: 1. CPU从复位向量开始执行: 当CPU启动时,会首先寻找复位向量所在的地址,并执行该地址中存储的指令。在嵌入式系统中,这个复位向量通常被配置为uboot程序的起始地址。 2. 加载uboot程序: uboot启动后会先加载自身的程序代码。uboot的程序包括bootloader和一些工具函数,它们可以执行一些用户定制的任务,比如读写参数、显示系统信息等操作,然后才会加载Linux内核。 3. 加载Linux内核: 在uboot加载内核时,它首先要根据指定的地址和大小,从存储介质中读取内核文件,并将其存储到内存中。在读取内核文件期间,uboot会进行一些配置操作,比如初始化内存、配置内存映射等操作。 4. 启动Linux内核Linux内核启动时需要设置一些参数,这些参数通常由uboot传递给内核。例如,uboot会告诉内核内存的位置和大小、设备树等信息。接着,内核会根据这些参数进一步初始化系统,比如建立内存映射表、配置硬件设备等操作。这些操作完成后,Linux内核会开始执行用户空间程序,使得系统正常运行。 总结: 通过上述分析可知,uboot启动Linux过程涉及到多个环节,其中包括uboot程序的加载、Linux内核的加载以及启动Linux内核时传递参数等操作。在实际系统中,这些过程需要针对具体的硬件平台进行适当的定制,才能保证系统正常启动和运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值