AT91RM9200 hang in atmel_serial_putc
Peter Kardos
kardos.peter.sk at gmail.com
Mon Aug 22 13:39:24 PDT 2016
Hi Sascha,
I've tested your workaround and it seems to work; the board starts and
attempts
to boot.
Peter
On 8/22/2016 11:00 AM, Peter Kardos wrote:
> During the weekend I've played with this some more...
> It seems that the "breakage" was introduced with v2016.05. This version
> introduced the "exception vector remapping to 0xFFFF*".
> Unfortunately AT91RM9200 has peripherals in this region.
>
> I'll test the patch tonight when i get home.
>
> Peter
>
> On 2016-08-22 08:10, Sascha Hauer wrote:
>> On Thu, Aug 18, 2016 at 11:15:33PM +0200, Peter Kardos wrote:
>>> Hi Sascha,
>>>
>>> I may have something. It seems the memory (MMU?) gets "messed" up;
>>>
>>> Reading the debug uart registers (v2015.07) gives reasonable
>>> results, like
>>> (gdb) x/32w 0xfffff200
>>> 0xfffff200: 0x00000000 0x00000800 0x00000000 0x00000000
>>> 0xfffff210: 0x00000000 0x40001a1a 0x00000000 0x00000000
>>> 0xfffff220: 0x00000021 0x00000000 0x00000000 0x00000000
>>> 0xfffff230: 0x00000000 0x00000000 0x00000000 0x00000000
>>> 0xfffff240: 0x09290781 0x00000000 0x00000000 0x00000000
>>>
>>> However the content from v2016.08 gives
>>>
>>> 0xFFFFF200 D78D7E1F F1139ADE 413E0FE5 BBFB6DF2
>>> 0xFFFFF210 7D78666E 79CBDEA6 8FB2CB03 BEF6C2B7
>>> 0xFFFFF220 C9071D17 FA1EFA2D C4BCD95E 27D73C7C
>>> 0xFFFFF230 727C3437 DFBDEBED 69C45C2A 7F5958F6
>>> 0xFFFFF240 834B237E F8B8A211 1AC74D66 FAE06274
>> Uh, this indeed seems to be messed up by the MMU, more specifically
>> during setup of the vector table. Could you try the attached patch?
>> It's not a solution, but is a clear indication that the bug is in this
>> area.
>>
>> Sascha
>>
>> ---------------------------8<--------------------------------
>>
>> From eb66f09db694a0bc1fc88cde8d86e47faf6debf9 Mon Sep 17 00:00:00 2001
>> From: Sascha Hauer <s.hauer at pengutronix.de>
>> Date: Mon, 22 Aug 2016 08:05:38 +0200
>> Subject: [PATCH] ARM: Disable vector table (tmp)
>>
>> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
>> ---
>> arch/arm/cpu/mmu.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/arch/arm/cpu/mmu.c b/arch/arm/cpu/mmu.c
>> index a31bce4..fc26077 100644
>> --- a/arch/arm/cpu/mmu.c
>> +++ b/arch/arm/cpu/mmu.c
>> @@ -289,6 +289,8 @@ static void create_vector_table(unsigned long adr)
>> u32 *exc;
>> int idx;
>> + return;
>> +
>> vectors_sdram = request_sdram_region("vector table", adr, SZ_4K);
>> if (vectors_sdram) {
>> /*
>
More information about the barebox
mailing list