kmpark at infradead.org
Sun Mar 4 19:29:12 EST 2007
> 1.The Davinci Dm644x chip has a serial boot mode. It can
> receive data from serial port and run it from on-chip SRAM.
> We first load a small program to SRAM and initialize SDRAM
> and then use that program to load u-boot to SDRAM and run it.
> The u-boot now is running on our board. You have done a great
> job to add the OneNAND driver to u-boot. I don't find it in
> the latest official u-boot release and I am thinking about to
> port your Linux version to u-boot. Now you save us a lot of
> effort. I will study it today and see how to use it on our
> board. Thanks a lot!
The Probing OneNAND is simple. just define OneNAND start address in u-boot
> Why you don't let them put into the official u-boot release?
I tried it but failed. Okay I try it again.
> 2.I have fixed the "can-not-unlock-all" problem.
> According to datasheet of
> Page73), to unlock all we need do the following sequence.
> All Block Unlock Command Sequence:
> Start block address(000h)+All Block Unlock command (0027h)
Yes I found some chips need it.
> So I add one line to onenand_unlock_all(struct mtd_info *mtd)
> to write start block address(000h) first, and this has fixed
> the problem.
> Perhaps other Onenand chips don't need this. But for this
> one, it seems to be a must.
It's already fixed.
> 3. I just noticed that in your email this line is already there:
> /* Set start block address */
> this->write_word(0, this->base +
> But this does not exist in my Linux kernel. It seems I am
> using a diffirent(perhaps old?) version of OneNAND driver.
> I am using the linux-davinci-2.6.git from here:
> I haved checked again inthe tree
> This line does not exist.
> Where do you put your latest driver? The linux-omap-2.6.git?
OneNAND git uses this URL.
> Thanks a lot!
> > 1.How to write the x-loader, u-boot, parameter data and
> other raw data
> > to OneNAND flash? What kind of tools/utilities do you use?
> Now, there's no hardware tools such as Trace32, BDI2000 to
> supporting OneNAND directly. So first we load another
> bootloader, U-Boot using JTAG and then it program the
> oneboot.bin (x-loader + u-boot) to OneNAND.
> 1. load u-boot.bin using JTAG
> 2. download oneboot.bin
> 3. erase block 0 and program
> 4. reboot
> U-Boot 1.1.4 (Feb 15 2006 - 12:14:27)
> U-Boot code: 80E80000 -> 80E96FC4 BSS: -> 80E9BB40
> OMAP2420-GP revision 4 Samsung Apollon SDP Base Board + IP
> Daughter Board + mDDR RAM Configuration:
> Bank #0: 80000000 128 MB
> Scanning device for bad blocks
> Bad eraseblock 452 at 0x03880000
> OneNAND: 256 MB
> In: serial
> Out: serial
> Err: serial
> Hit any key to stop autoboot: 0
> Apollon # help onenand
> onenand info - show available OneNAND devices
> onenand read[.oob] addr ofs len - read data at ofs with len
> to addr onenand write addr ofs len - write data at ofs with
> len from addr onenand erase block start-end - erase block
> from start to end onenand erase saddr eaddr - erase block
> start addr to end addr onenand block[.oob] addr block [page]
> [len] - read data with (block [,
> page]) tr
> onenand unlock start-end - unlock block from start to end
> onenand save bootloader addr - save bootloader at addr
> You can find U-boot source for OneNAND at
More information about the linux-mtd