U-Boot-2009-03 Porting Notes (Booting from Nandflash 2)

Publisher:SereneNatureLatest update time:2024-09-04 Source: elecfansKeywords:U-Boot Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

In the U-Boot-2009-03 porting notes (booting from Nandflash 1), we wrote the nandflash read driver and tried to read u-boot itself from nandflash to sdram, and finally light up led1 and led2 at the same time. Unfortunately, the result is not what we want. This article uses the openjtag debugging method to diagnose the problem (if you are not familiar with the debugging method, please refer to the U-Boot-2009-03 porting notes (debugging)).


Problem Discovery

We decompile the u-boot file and find that our program still calls the nand_init_ll function at 33f800090, so we set breakpoints at addresses 0x00000090 and 0x00000094, as shown in the figure:

What should I do if I find that the program runs away after 0x00000090? Let's take a look at the disassembly code of u-boot:

First look at 0x00000090 and find no problem, as shown in the figure:

Let's look at the nand_init_ll function itself and find that the function address is 0x33f8dcf0. If it is mapped to address 0, it should be 0x0000dcf0, which exceeds 4K and cannot be executed in sram. Knowing the cause of the problem, it is easy to solve.

Problem Solving

Open board/xinna2440/u-boot.lds and put the code of nand_op.c in the first 4k:

Recompile and burn, and find that both LED1 and LED2 are lit.


Keywords:U-Boot Reference address:U-Boot-2009-03 Porting Notes (Booting from Nandflash 2)

Previous article:U-Boot-2009-03 Porting Notes (Debugging)
Next article:U-Boot-2009-03 Porting Notes (Second Phase Porting Preparation)

Recommended ReadingLatest update time:2024-11-15 13:41

u-boot-2009.08 transplantation on mini2440 adds yaffs2 file system
Migration environment 1. Host environment: CentOS 5.5 under VMare, 1G memory. 2. Integrated development environment: Eclipse IDE 3. Compilation environment: arm-linux-gcc v4.4.3, arm-none-eabi-gcc v4.5.1. 4. Development board: mini2440, 2M nor flash, 128M nand flash. 5. u-boot version: u-boot-2009.08 5.1, Add Yaffs
[Microcontroller]
Detailed explanation of u-boot transplantation steps
1 Introduction to U-Boot U-Boot, the full name of Universal Boot Loader, is an open source project that complies with the terms of the GPL. It has evolved from FADSROM, 8xxROM, and PPCBOOT. Its source code directory and compilation format are very similar to the Linux kernel. In fact, many U-Boot source codes ar
[Microcontroller]
[Linux bottom layer] U-boot debugging command usage tips
If you debug the driver at the uboot stage, you can make full use of the existing resources of uboot. This is more convenient and can speed up the development process. Only by standing on the shoulders of giants can you achieve twice the result with half the effort. 1. uboot provides operation commands to cover 2.
[Microcontroller]
U-boot kernel transplantation steps
Linux 3.3.5 system porting Copy mach-smdk6410.c under arch/arm/mach-s3c6410/ to mach-my6410.c; Open Kconfig under arch/arm/mach-s3c6410/ and make a menu item based on MACH_SMDK6410: config MACH_MY6410 bool "MY6410" select CPU_S3C6410 select SAMSUNG_DEV_ADC select S3
[Microcontroller]
Chapter 13: Tiny4412 U-BOOT transplantation 13 DDR3 initialization source code analysis
Step 1: Set the clock Follow the steps in the previous chapter to explain: 1.  DMC must assert and hold CKE to a logic lowlevel to provide stable power for memory device and then apply stable clock. Set up DMC. Since the clock has been set in clock_init_mytiny4412.S, there is no need to set it here. Just keep CKE at a
[Microcontroller]
Chapter 13: Tiny4412 U-BOOT transplantation 13 DDR3 initialization source code analysis
Feiling OK6410 development board transplanted u-boot official latest version u-boot-2012.10.tar.bz2
Part 0 Preparatory knowledge 0.1 Key Parameters 0.1.1 Development Board Description OK6410 is a development board released by Feiling. There are currently two versions, OK6410-A and OK6410-B. I am currently using the former. The former has also been upgraded, so there are 128M ram and newer 256 memory versions. The na
[Microcontroller]
U-boot-2014.04 ported to MINI2440 (11) Analysis of the second boot phase
Let's review what u-boot does in the first stage of startup: First: Set the CPU to SVC mode Second: Turn off the watchdog Third: Turn off interrupts and sub-interrupts Step 4: Set the clock Fifth: MMU is turned off, cache and TLB are cleared, address alignment check is enabled, etc. Sixth: Initialize SDRAM
[Microcontroller]
18. U-boot workflow analysis -210
210 startup process: Although there is a distinction between BL1 and BL2 in 2440 and 6410, the same is true for 210:
[Microcontroller]
18. U-boot workflow analysis -210
Latest Microcontroller Articles
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号