[U-Boot] Issue with relocating code to DDR

Clément Péron peron.clem at gmail.com
Thu Nov 8 12:54:04 UTC 2018


Hi,

Maybe check the GCC option "-mno-unaligned-access"

$>cat arch/arm/cpu/armv7/config.mk
#
# (C) Copyright 2002
# Gary Jennejohn, DENX Software Engineering, <garyj at denx.de>
#
# SPDX-License-Identifier: GPL-2.0+
#

# On supported platforms we set the bit which causes us to trap on unaligned
# memory access.  This is the opposite of what the compiler expects to be
# the default so we must pass in -mno-unaligned-access so that it is aware
# of our decision.
PF_NO_UNALIGNED := $(call cc-option, -mno-unaligned-access,)
PLATFORM_CPPFLAGS += $(PF_NO_UNALIGNED)

Regards,
Clement
On Thu, 8 Nov 2018 at 13:16, SHEKHAR SINGH <imsinghshekhar at gmail.com> wrote:
>
> Hi All,
>
> We got the issue, actually our DDR only supports 32bit access, 16bit and 8bit access are not supported.
> Is there any compiler option or any u-boot option, we need to configure so that u-boot use 32 bit access only.
>
> Thanks in advance.
> Regards
> Shekhar Singh
>
> On Thu, Nov 1, 2018 at 7:14 PM SHEKHAR SINGH <imsinghshekhar at gmail.com> wrote:
>>
>>
>> Hi All,
>>
>> I am new to U-boot. Currently, I am working on developing U-boot for a new SOC. The SOC has arm926ej-s as the core and is implemented on Xilinx FPGA with SD-card as the boot device. With current setup DDR is already initialized by FPGA and SD card can be accessed using direct addressing. We have added board files and SoC related files to the Uboot directory and is able to successfully compile and get some outputs on UART (debug console). Currently, we have added only support for GPIO and UART drivers.
>>
>> SD Card : 0x00000000 - 0x007FFFFF
>> SRAM    : 0x90000000 - 0x90007FFF
>> DDR       : 0x40000000 - 0x43FFFFFF
>>
>> We are facing some issue with the uboot booting. We are able to see the initial uboot prints and debug prints when the stack pointer is in SRAM, but after we relocate the code from SD card to DDR and change the stack pointer to DDR we are getting junk prints on the console. Can anyone help me or suggest me what we are doing wrong here? Thanks in advance for your help.
>>
>> Please see the below UART Log:
>>
>> initcall: 00005cdc
>> initcall: 00009a84
>> initcall: 00005ccc
>> initcall: 00005fbc
>> initcall: 000060c0
>> initcall: 00000418
>> initcall: 00006090
>> initcall: 00005fb4
>> malloc_simple: size=18, ptr=18, limit=400: 90000b30
>> malloc_simple: size=54, ptr=6c, limit=400: 90000b48
>> malloc_simple: size=4, ptr=70, limit=400: 90000b9c
>> uclass_find_device_by_seq: 0 -1
>> uclass_find_device_by_seq: 0 0
>>    - -1 -1 'root_driver'
>>    - not found
>> initcall: 00006088
>> initcall: 000010b0
>> initcall: 000004a8
>> initcall: 0000f77c
>> env_init: Environment nowhere init done (ret=0)
>> initcall: 00005f88
>> initcall: 0000f0dc
>> initcall: 000147c0
>>
>>
>>  U-Boot 2018.09 (Nov 01 2018 - 18:33:40 +0530)
>>
>>  initcall: 00005eac
>>  U-Boot code: 00000000 -> 00024604  BSS: -> 00030608
>>  initcall: 00000438
>>  CPU: SoC Version 0.01
>>  CPU clock:        75MHz
>>  SDRAM clock:      75MHz
>>  initcall: 00006470
>>  initcall: 00005f70
>>  DRAM:  initcall: 000010ec
>>  SDRAM Reg 000 : ffffffff
>>  EDAC Reg  004 : ffffffff
>>  SDRAM Reg 100 : ffffffff
>>  EDAC Reg  104 : ffffffff
>>  EMC Reg       : 1ff
>>  initcall: 00006178
>>  Monitor len: 00030608
>>  Ram size: 04000000
>>  gd->relocaddr : 44000000
>>  Ram top: 44000000
>>  initcall: 00005cfc
>>  initcall: 00006098
>>  initcall: 00005d14
>>  initcall: 000060a0
>>  initcall: 00005e44
>>  Reserving 193k for U-Boot at: 43fcf000
>>  initcall: 00005e18
>>  Reserving 1152k for malloc() at: 43eaf000
>>  initcall: 00005f1c
>>  Reserving 80 Bytes for Board Info at: 43eaefb0
>>  initcall: 000060a8
>>  initcall: 00005de4
>>  Reserving 200 Bytes for Global Data at: 43eaeee8
>>  initcall: 00005d5c
>>  initcall: 000060b0
>>  initcall: 000060c8
>>  initcall: 000061f4
>>  gd->relocaddr : 43FCF000
>>  initcall: 00005d1c
>>  initcall: 000060dc
>>
>>  RAM Configuration:
>>  Bank #0: 40000000 64 MiB
>>
>>  DRAM:  64 MiB
>>  initcall: 00005d40
>>  New Stack Pointer is: 43eaeec0
>>  initcall: 00005ed8
>>  initcall: 000060b8
>>  initcall: 00005fd0
>>  __image_copy_start : 00000000
>>  __image_copy_end : 00024604
>>  gd copied successfully to new gd...
>>  Relocation Offset is: 43fcf000
>>  Relocating to Addr 43fcf000, new gd at 43eaeee8, sp at 43eaeec0
>>  Current Stack Pointer 90000a60
>>  rrrr    ccccooooeeee4444eeeettttllll44445555ttttllll44445555ttttllll00006666eeeeaaaa    44445555))))ENABLE CACHESWARNING: Caches not enabled
>>  ttttllll00006666eeeeaaaa    44445555))))ttttllll00006666eeeeaaaa    44445555))))ttttllll00006666eeeeaaaa    44445555))))----ooooaaaaccccuuuu    7777tttt((((BBBBnnnneeeeyyyy4444ffff----4444ffffffffmmmmoooo    44449999----44449999
>>
>>
>>
>>  ttttllll00005555eeeeaaaa    44444444))))ttttllll00006666eeeeaaaa    44445555))))ttttllll00006666eeeeaaaa    44445555))))ttttllll00006666eeeeaaaa    44445555))))ttttllll00006666eeeeaaaa    44445555))))aaaaffff____iiiibbbbeeee0000
>>
>>
>>
>>  aaaaffff____iiiibbbbeeee0000----    ''''ttttiiii''''----ttttuuuuttttllll00001111eeeeaaaa    44440000))))IIII::::aaaaiiii
>>
>>
>>
>>  ttttllll0000aaaaeeeeaaaa    44449999))))ttttllll00006666eeeeaaaa    44445555))))ttttllll00006666eeeeaaaa    44445555))))    nnnn    RRRR----BBBB        4444ffffttttllll00006666eeeeaaaa    44445555))))ttttllll00006666eeeeaaaa    44445555))))MMC:   ttttllll00006666eeeeaaaa    44445555))))nnnneeeellllnnnnoooonnnniiiimmmm    oooommmmccccNNNNooooccccaaaa        ::::ooooddddhhhhoooooooooooonnnniiiiEEEE::::ooooddddhhhhoooooooooooonnnntttt    hhhhbbbb    44442222bbbb====00000000aaaaHHHH    llllNNNN
>>
>>
>>
>>  eeeebbbb,,,,llll::::eeee    BBBB    mmmmeeeebbbb,,,,dddd::::eeee    BBBB    mmmmEEEE    llll44442222    llll1111    4444ffff        eeeeoooo    uuuueeee    BBBB    mmmm""""EEEE    eeeetttt    4444ffffEEEE    eeeettttllll00006666eeeeaaaa    44445555))))ttttllll0000aaaaeeeeaaaa    44449999))))ttttllll00006666eeeeaaaa    44445555))))ttttllll00008888eeeeaaaa    44447777))))In:    iiii4444ffff
>>
>>
>>
>>  Out:   iiii4444ffff
>>
>>
>>
>>  Err:   iiii4444ffff
>>
>>
>>
>>  tttt    uuuuoooorrrr3333aaaaaaaa        cccctttt    uuuuoooorrrr3333aaaaaaaa        cccctttt    uuuuoooorrrr3333aaaaaaaa        ccccttttllll0000ddddeeeeaaaa    4444ffff))))ttttllll00006666eeeeaaaa    44445555))))ttttllll00006666eeeeaaaa    44445555))))ttttllll00006666eeeeaaaa    44445555))))Net:       ttttiiiiiiiiSSSSppppNo ethernet found.
>>  ttttllll00006666eeeeaaaa    44445555))))tttt    uuuuoooorrrr3333aaaaaaaa        cccc    nnnnoooonnnneeeebbbbddddyyyy
>>
>>
>>
>>      nnnnoooobbbbcccc""""DDDDNNNN""""Uboot >
>>  Uboot >
>>  Uboot >
>>  Uboot >
>>  Uboot >
>>  Uboot >
>>  Uboot >
>>  Uboot >
>>
>>
>>
>> Regards,
>> Shekhar S
>>
>>


More information about the U-Boot mailing list