* [U-Boot] Atmel AT91RM9200: U-Boot refuses to copy to a particular sector of flash memory
@ 2008-10-20 9:16 Ki Chi Leung
2008-10-20 11:15 ` Jean-Christophe PLAGNIOL-VILLARD
0 siblings, 1 reply; 3+ messages in thread
From: Ki Chi Leung @ 2008-10-20 9:16 UTC (permalink / raw)
To: u-boot
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.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [U-Boot] Atmel AT91RM9200: U-Boot refuses to copy to a particular sector of flash memory
2008-10-20 9:16 [U-Boot] Atmel AT91RM9200: U-Boot refuses to copy to a particular sector of flash memory Ki Chi Leung
@ 2008-10-20 11:15 ` Jean-Christophe PLAGNIOL-VILLARD
2008-10-20 14:59 ` 7words.sg at gmail.com
0 siblings, 1 reply; 3+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2008-10-20 11:15 UTC (permalink / raw)
To: u-boot
On 17:16 Mon 20 Oct , Ki Chi Leung wrote:
> Hello list,
hi
Could you specify the U-Boot version.
the command sequence that you use please
Best Regards,
J.
>
> 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
>
btw I supposed that 1000E000 (RO) 10010000 (RO) is your env sector, maybe you
can put the env just after U-Boot itself to not loose space.
> I also have 2x 48LC8M16A2 modules (32MB, SDRAM, address 0x20000000 -
> 0x21ffffff) which I download the kernel to before copying to flash.
do check that the uImage in ram is correct? (just to be sure)
>
> 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.
Best Regards,
J.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [U-Boot] Atmel AT91RM9200: U-Boot refuses to copy to a particular sector of flash memory
2008-10-20 11:15 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2008-10-20 14:59 ` 7words.sg at gmail.com
0 siblings, 0 replies; 3+ messages in thread
From: 7words.sg at gmail.com @ 2008-10-20 14:59 UTC (permalink / raw)
To: u-boot
Hello,
The U-Boot version I am using is 1.1.2.
I forgot to mention my sector sizes: they are as given in the
AT49BV163D data sheet. Sectors up to address 0x0000ffff are 8KB in
size, while all others after 0x00010000 are 64KB.
And the commands I use are:
* tftpboot 20000000 uimage
* cp.b 20000000 10020000 fe4bc # my uimage is 0xfe4bc (1041516) bytes,
the copy will always fail here
I tried to copy in chunks of smaller sectors each but I cannot copy if
the range written to crosses the "special" byte 10102000:
* cp.b 200e0000 10100000 2000 # works, copies to 0x10100000 -
0x10101fff inclusive
* cp.b 200e0000 10100000 2001 # fails, even though it is writing to
the same 64KB sector as the previous copy
I tried erasing the problematic sector but it appears to be only half
erased - everything after 0x10102000 is intact.
U-Boot> protect off 10100000 1010ffff
Un-Protected 1 sectors
U-Boot> erase 10100000 1010ffff
Erasing sector 23 ... ok.
Erased 1 sectors
U-Boot> md 10101fe0 10
10101fe0: ffffffff ffffffff ffffffff ffffffff ................
10101ff0: ffffffff ffffffff ffffffff ffffffff ................
10102000: e3500000 1affffef ebfffeea e3500000 ..P...........P.
10102010: 0a00000f e3500003 979ff100 ea000009 ......P.........
Regards,
Ki Chi
On 10/20/08, Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> wrote:
> On 17:16 Mon 20 Oct , Ki Chi Leung wrote:
>> Hello list,
> hi
> Could you specify the U-Boot version.
>
> the command sequence that you use please
>
> Best Regards,
> J.
>>
>> 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
>>
> btw I supposed that 1000E000 (RO) 10010000 (RO) is your env sector, maybe
> you
> can put the env just after U-Boot itself to not loose space.
>
>> I also have 2x 48LC8M16A2 modules (32MB, SDRAM, address 0x20000000 -
>> 0x21ffffff) which I download the kernel to before copying to flash.
> do check that the uImage in ram is correct? (just to be sure)
>>
>> 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.
>
> Best Regards,
> J.
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-10-20 14:59 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-20 9:16 [U-Boot] Atmel AT91RM9200: U-Boot refuses to copy to a particular sector of flash memory Ki Chi Leung
2008-10-20 11:15 ` Jean-Christophe PLAGNIOL-VILLARD
2008-10-20 14:59 ` 7words.sg at gmail.com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox