
Hello list,
I am trying to load a Linux 2.6.22 kernel uimage on the flash memory of a custom Atmel AT91RM9200 board. From U-Boot the flash memory map is as follows:
U-Boot> flinfo DataFlash:AT45DB161 Nb pages: 4096 Page Size: 528 Size= 2162688 bytes Logical address: 0xC0000000 Area 0: C0000000 to C0007FFF (RO) Area 1: C0008000 to C001FFFF (RO) Area 2: C0020000 to C0027FFF Area 3: C0028000 to C020FFFF
Bank # 1: Atmel: AT49BV163D (16Mbit) Size: 2 MB in 39 Sectors Sector Start Addresses: 10000000 (RO) 10002000 (RO) 10004000 (RO) 10006000 10008000 1000A000 1000C000 1000E000 (RO) 10010000 (RO) 10020000 10030000 10040000 10050000 10060000 10070000 10080000 10090000 100A0000 100B0000 100C0000 100D0000 100E0000 100F0000 10100000 10110000 10120000 10130000 10140000 10150000 10160000 10170000 10180000 10190000 101A0000 101B0000 101C0000 101D0000 101E0000 101F0000
I also have 2x 48LC8M16A2 modules (32MB, SDRAM, address 0x20000000 - 0x21ffffff) which I download the kernel to before copying to flash.
I have to copy the kernel into the flash starting at address 0x10020000 (lower addresses reserved by U-Boot apparently). However, when I try to copy the 1018KB uimage, the copy always fails with "flash not erased", even after the sectors have been unprotected and erased. I found that if I copy anything into the sector starting at 0x10100000, U-Boot will fail to start from the flash. The sector in question can be unprotected and erased without problems.
Is there any way to find out why U-Boot will not let me copy to this sector, and why erasing and/or trying to copying to it would cause U-Boot not to start anymore? Thanks in advance.
P.S. This is my first post here, apologies if I missed out any important info.