AT91RM9200 hang in atmel_serial_putc
Peter Kardos
kardos.peter.sk at gmail.com
Mon Aug 22 02:00:48 PDT 2016
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