Nand Flash Support In U-Boot; Device Id List - Philips LPC3180 Application Note

Getting started linux with
Table of Contents

Advertisement

Philips Semiconductors
Further explanation to the figure:

7.3 NAND flash support in U-Boot

U-Boot plays important roles in NAND flash operations as reading, writing, erasing, bad
block checking, etc.
Below is a list of the related source files and their functions.

7.3.1 Device ID list

The first step in NAND flash driver poring is to check whether your NAND flash device
type is listed in the file
to the list manually.
E.g. the info structure for ST NAND256R3A:
struct nand_flash_dev nand_flash_ids[] = {
......
{"NAND 32MiB 1,8V 8-bit",// the string identifies the device type
0x35,
512,
32,
0x4000,
0},
......
};
struct nand_manufacturers nand_manuf_ids[] = {
......
<12NC>
Application note
1) The first block data of the image is not guaranteed to start from the head of the
first block. So
read_first_block()
and its main job includes:
Start reading the image data from the page address where the image
o
starts.
Cut off the header info data of the image and reallocate the rest of the
o
first block into the SDRAM address space specified by the header info.
2) Then
read_block()
3) The last block data of the image is not guaranteed to fill with the whole block,
and the last page data is not guaranteed to fill with a completed page.
invokes
oad_image()
and
read_data()
Directory
Source file name
lpc3180_nand_phytec.c
lpc3180_nand_abi_phytec.c
nand_base.c
lib_nand/
nand_ecc.c
nand_bbt.c
nand_ids.c
common/
cmd_nand.c
nand_ids.c
Rev.03 — 21 Dec 2006
is first invoked when performing
is invoked for reading the sequent blocks until the last one.
in reading the full pages in the last block
read_page_data()
in reading the last incomplete page.
Description
Deal with low-level access to the specific nand flash
on the board.
Interface between the Linux NAND driver MTD and the
U-boot NAND command.
NAND low-level MTD interface functions.
Contain an ECC algorithm that detect and correct 1 bit
errors in a 256 byte block data.
Bad block table support for the NAND driver.
A chip list than contains the chip info supported by the
NAND driver.
The U-boot NAND command functions.
. If not, you need to add the corresponding device info
// the device ID code which you can find in its datasheet
// the page size of the device (B)
// the total chip size of the device (MB)
// the erase block size of the device (B)
// the bit-field to store chip relevant options
AN10476
Getting started Linux with LPC3180
© Koninklijke Philips Electronics N.V. 2004. All rights reserved.
,
load_image()
22 of 28

Advertisement

Table of Contents
loading

Table of Contents