📄 using_nand_flash_with_u-boot_and_linux_kernel.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head> <title></title> <link rel="stylesheet" media="screen" type="text/css" href="./style.css" /> <link rel="stylesheet" media="screen" type="text/css" href="./design.css" /> <link rel="stylesheet" media="print" type="text/css" href="./print.css" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body><a href=start.html>start</a></br><div class="toc"><div class="tocheader toctoggle" id="toc__header">Table of Contents</div><div id="toc__inside"><ul class="toc"><li class="clear"><ul class="toc"><li class="level2"><div class="li"><span class="li"><a href="#introduction" class="toc">Introduction</a></span></div></li><li class="level2"><div class="li"><span class="li"><a href="#enable_the_nand_flash_support_in_the_u-boot" class="toc">Enable the NAND flash support in the U-Boot</a></span></div></li><li class="level2"><div class="li"><span class="li"><a href="#loading_uclinux_kernel_from_the_nand_flash_with_ext2_rootfs" class="toc">Loading uClinux kernel from the NAND flash with EXT2 rootfs</a></span></div></li><li class="level2"><div class="li"><span class="li"><a href="#loading_uclinux_kernel_from_the_nand_flash_with_yaffs_rootfs" class="toc">Loading uClinux kernel from the NAND flash with YAFFS rootfs</a></span></div></li></ul></li></ul></div></div><h2><a name="introduction" id="introduction">Introduction</a></h2><div class="level2"><p>NAND flash is supported by Blackfin U-Boot and uClinux kernel. See here: <a href="compactflash_ide_ata_nand_flash_-_interface_card.html" class="wikilink1" title="compactflash_ide_ata_nand_flash_-_interface_card.html">compactflash_ide_ata_nand_flash_-_interface_card</a> to get more hardware howto info. The complete documentation is available at here: <a href="http://www.linux-mtd.infradead.org/" class="urlextern" title="http://www.linux-mtd.infradead.org/" rel="nofollow">Memory Technology Devices</a></p></div><!-- SECTION [1-300] --><h2><a name="enable_the_nand_flash_support_in_the_u-boot" id="enable_the_nand_flash_support_in_the_u-boot">Enable the NAND flash support in the U-Boot</a></h2><div class="level2"><p>Add the following line into the BF537 config head file ./include/configs/bf537.h</p><pre class="code">#define CONFIG_BF537_NAND</pre></div><!-- SECTION [301-478] --><h2><a name="loading_uclinux_kernel_from_the_nand_flash_with_ext2_rootfs" id="loading_uclinux_kernel_from_the_nand_flash_with_ext2_rootfs">Loading uClinux kernel from the NAND flash with EXT2 rootfs</a></h2><div class="level2"><p>U-Boot supports to access NAND flash and boot linux kernel from it. You can program the linux kernel image “uImage” to the NAND flash and boot from it. Here, “uImage” contains the file system image and takes EXT2 as root file system. </p><pre class="code">U-Boot-1.1.3-ADI-2005R4 (Feb 8 2006 - 15:49:36)CPU: ADSP BF537 Rev.: 0.2Board: ADI BF537 stamp board Support: http://blackfin.uclinux.org/Clock: VCO: 500 MHz, Core: 500 MHz, System: 100 MHzSDRAM: 64 MBFLASH: 4 MBIn: serialOut: serialErr: serialNAND: 16 MBNet: ADI BF537 EMACI2C: readyHit any key to stop autoboot: 0bf537> tftpboot 0x1000000 uImageUsing MAC Address 00:E0:22:FE:42:84TFTP from server 192.168.0.2; our IP address is 192.168.0.15Filename 'uImage'.Load address: 0x1000000Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ##################doneBytes transferred = 2085133 (1fd10d hex)bf537> help nandnand info - show available NAND devicesnand device [dev] - show or set current devicenand read[.jffs2[s]] addr off sizenand write[.jffs2] addr off size - read/write `size' bytes starting at offset `off' to/from memory address `addr'nand erase [clean] [off size] - erase `size' bytes from offset `off' (entire device if not specified)nand bad - show bad blocksnand read.oob addr off size - read out-of-band datanand write.oob addr off size - read out-of-band databf537> nand erase cleanNAND erase: device 0 offset 0, size 16777216 ... OKbf537> nand write 0x1000000 0x0 $(filesize)NAND write: device 0 offset 0, size 2085133 ... 2085133 bytes written: OKbf537> setenv autostart yesbf537> help nbootnboot loadAddr devbf537> nand deviceDevice 0: ST NAND128W3A at 0x20202000 (16 MB, 16 kB sector)bf537> nboot 0x2000000 0x0Loading from device 0: <NULL> at 0x20202000 (offset 0x0) Image Name: uClinux Kernel and Filesystem Created: 2006-01-25 9:11:39 UTC Image Type: Blackfin Linux Kernel Image (gzip compressed) Data Size: 2085069 Bytes = 2 MB Load Address: 00001000 Entry Point: 00001000Automatic boot of image at addr 0x02000000 ...## Booting image at 02000000 ... Image Name: uClinux Kernel and Filesystem Created: 2006-01-25 9:11:39 UTC Image Type: Blackfin Linux Kernel Image (gzip compressed) Data Size: 2085069 Bytes = 2 MB Load Address: 00001000 Entry Point: 00001000 Verifying Checksum ... OK Uncompressing Kernel Image ... OKStarting Kernel at = 1000Linux version 2.6.12.1 (aubrey@linux) (gcc version 3.4.4) #10 Wed Jan 25 17:11:22 CST 2006Blackfin support (C) 2004 Analog Devices, Inc.ADSP-BF537 Rev. 0.2uClinux/BF537Blackfin uClinux support by blackfin.uclinux.orgProcessor Speed: 500 MHz core clock and 62 Mhz System ClockBoard Memory: 64MBMemory map: text = 0x001000-0x0dc6fc data = 0x0ea208-0x10ff3c bss = 0x10ff40-0x11e3d0 rootfs = 0x3700000-0x3f00000 stack = 0x0ec000-0x0ee000Command line: 'root=/dev/mtdblock0 rw'Instruction Cache EnabledData Cache Enabled (write-through)Hardware Trace EnabledBuilt 1 zonelistsKernel command line: root=/dev/mtdblock0 rwConfiguring Blackfin Priority Driven InterruptsPID hash table entries: 256 (order: 8, 4096 bytes)Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)Physical pages: 3700Memory available: 54656k/64599k RAM, (52k init code, 877k kernel code, 208k data, 9216k dma)Blackfin Scratchpad data SRAM: 4 KBBlackfin DATA_A SRAM: 16 KBBlackfin DATA_B SRAM: 16 KBSecurity Framework v1.0.0 initializedCapability LSM initializedMount-cache hash table entries: 512NET: Registered protocol family 16Blackfin DMA Controller for BF533stamp_init(): registering device resourcesReal Time Clock Driver v1.10eBlackFin BF533 serial driver version 2.00 With DMA Supportio scheduler noop registeredio scheduler cfq registeredRAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksizeBlackfin 537 mac net device registered.Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xxBlackfin IDE interrupt setup: flag PF4, irq 34ide0: Blackfin generic IDE interfacehda: probing with STATUS(0x50) instead of ALTSTATUS(0xff)hda: Hitachi XX.V.3.5.0.0, CFA DISK drivehdb: probing with STATUS(0x00) instead of ALTSTATUS(0xff)hdb: probing with STATUS(0x00) instead of ALTSTATUS(0xff)ide0 at 0x2030c020-0x2030c027,0x2030c01c on irq 34hda: max request size: 128KiBhda: 1000944 sectors (512 MB) w/1KiB Cache, CHS=993/16/63hda: cache flushes not supported hda: hda1 hda2 hda3 hda4uclinux[mtd]: RAM probe address=0x3700000 size=0x800000Creating 1 MTD partitions on "RAM":0x00000000-0x00800000 : "EXT2fs"uclinux[mtd0]: set EXT2fs to be root filesystemNET: Registered protocol family 2IP: routing cache hash table of 512 buckets, 4KbytesTCP established hash table entries: 2048 (order: 2, 16384 bytes)TCP bind hash table entries: 2048 (order: 1, 8192 bytes)TCP: Hash tables configured (established 2048 bind 2048)NET: Registered protocol family 1NET: Registered protocol family 17VFS: Mounted root (ext2 filesystem).Freeing unused kernel memory: 52k freed (0xdd000 - 0xe9000)ttyS0 at irq = 18 is a builtin BlackFin UARTdma_alloc_init: dma_page @ 0x000e6000 - 256 pages at 0x03f00000bfin_change_speed: baud = 57600, cval = 0x13Welcome to: ____ _ _ / __| ||_| _ _ _ _| | | | _ ____ _ _ \ \/ /| | | | | | || | _ \| | | | \ /| |_| | |__| || | | | | |_| | / \| ___\____|_||_|_| |_|\____|/_/\_\|_|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -