[U-Boot] arm: mvebu: u-boot does not start on db-88f6820-gp
Stefan Eichenberger
stefan.eichenberger at netmodule.com
Fri Sep 4 18:15:17 CEST 2015
Hi Stefan,
On 09/04/2015 05:14 PM, Stefan Roese wrote:
> Hi Stefan,
>
> On 04.09.2015 16:44, Stefan Eichenberger wrote:
>> I have a problem with u-boot compiled from master and the db-88f6820-gp
>> evaluation board from Marvell. The problem is the reconfiguration of the
>> base register address (SOC_REGS_PHY_BASE) under u-boot on A38x. Some
>> functions (e.g. mvebu_soc_family) try to access the new
>> SOC_REGS_PHY_BASE address before this address is reconfigured which
>> leads to an exception. U-Boot won't start in this case. I then set the
>> SOC_REGS_PHY_BASE to 0xd0000000 (same as under SPL) and u-boot starts
>> successfully. This was only to verify that this is the problem, with the
>> modification I can't start Linux because Linux expects that the
>> addresses are reconfigured.
>>
>> I have to mention, I try to start from a SD Card. So I have changed the
>> boot configuration of the board with a pull down on DPR6.
>>
>> This is the output of the SPL when I don't add the modification, u-boot
>> won't start:
>> U-Boot SPL 2015.10-rc2-00308-g6679da9-dirty (Sep 04 2015 - 16:01:24)
>> High speed PHY - Version: 2.0
>>
>> Initialize DB-GP board topology
>> Detected Device ID 6828
>> Lane 5 detection: USB3.0 Host Port 1
>> Lane 1 detection: SATA0
>> Lane 2 detection: SATA1
>> board SerDes lanes topology details:
>> | Lane # | Speed | Type |
>> --------------------------------
>> | 0 | 5 | PCIe0 |
>> | 1 | 3 | SATA0 |
>> | 2 | 3 | SATA1 |
>> | 3 | 3 | SATA3 |
>> | 4 | 3 | SATA2 |
>> | 5 | 5 | USB3 HOST1 |
>> --------------------------------
>> PCIe, Idx 0: detected no link
>> High speed PHY - Ended Successfully
>> DDR3 Training Sequence - Ver TIP-1.29.0
>> DDR3 Training Sequence - Switching XBAR Window to FastPath Window
>> DDR3 Training Sequence - Ended Successfully
>> >>spl:board_init_r()
>> spl_init()
>> boot device - 1
>> spl: mmc boot mode: raw
>> read sector 1140, count=1
>> spl: payload image: U-Bo load addr: 0x7fffc0 size: 336772
>> read 292 sectors to 7fffc0
>> Jumping to U-Boot
>> loaded - jumping to U-Boot...image entry point: 0x800000
>>
>> After I changed SOC_REGS_PHY_BASE u-boot starts correctly:
>> U-Boot 2015.10-rc2-00308-g6679da9-dirty (Sep 04 2015 - 16:19:09 +0200)
>>
>> SoC: MV88F6828-A0
>> I2C: ready
>> SPI: ready
>> DRAM: 2 GiB (ECC not enabled)
>> MMC: mv_sdh: 0
>> SF: Detected M25P128 with page size 256 Bytes, erase size 256 KiB, total
>> 16 MiB
>> Board: Marvell DB-88F6820-GP
>> SCSI: MVEBU SATA INIT
>> SATA link 0 timeout.
>> SATA link 1 timeout.
>> AHCI 0001.0000 32 slots 2 ports 6 Gbps 0x3 impl SATA mode
>> flags: 64bit ncq led only pmp fbss pio slum part sxs
>> Net: neta0, neta1
>> Hit any key to stop autoboot: 0
>>
>> So it seems that SOC_REGS_PHY_BASE should somehow be changeable during
>> runtime but I don't think this works with the current design. Do you
>> have an idea how this could be fixed?
>
> Yes, there are some problems with the current mainline version. Good
> news though is, that I've already fixed this and posted some patches
> for this. And more, e.g. support for DM / dts. I've just uploaded a
> git branch for you to test "mvebu-dm-v2-2015-09-04":
>
> https://gitlab.denx.de/sr/u-boot-a38x/commits/mvebu-dm-v2-2015-09-04
>
> This branch should work just fine. Please give it a try and let me
> know if this works or not.
>
> Thanks,
> Stefan
>
Thanks for the fast response! I've tried this version an was able to run
u-boot as expected. Unfortunately u-boot now hangs if I try to load an
image from the SD-Card:
e.g. if I run the following command u-boot hangs:
ext4load mmc 0:2 0x2000000 /boot/kernel.bin
I don't see why exactly it crashes, it seems for me that it's always at
a different position.
Here are two backtraces, always at a different positions:
Here u-boot stopped automatically:
Program received signal SIGTRAP, Trace/breakpoint trap.
0x7ff65d84 in ?? ()
(gdb) backtrace
#0 0x7ff65d84 in ?? ()
#1 0x803663d0 in ?? ()
#2 0x803663d0 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
And here I've got perhaps some more information?
Program received signal SIGSTOP, Stopped (signal).
v7_inval_dcache_level_setway (log2_line_len=<optimized out>,
way_shift=<optimized out>, num_ways=<optimized out>,
num_sets=<optimized out>, level=<optimized out>) at
arch/arm/cpu/armv7/cache_v7.c:62
62 for (set = num_sets - 1; set >= 0; set--) {
(gdb) backtrace
#0 v7_inval_dcache_level_setway (log2_line_len=<optimized out>,
way_shift=<optimized out>,
num_ways=<optimized out>, num_sets=<optimized out>,
level=<optimized out>) at arch/arm/cpu/armv7/cache_v7.c:62
#1 v7_maint_dcache_level_setway (operation=<optimized out>, level=9) at
arch/arm/cpu/armv7/cache_v7.c:129
#2 v7_maint_dcache_all (operation=2146852864) at
arch/arm/cpu/armv7/cache_v7.c:147
#3 0xfffffbe2 in ?? ()
#4 0xfffffbe2 in ?? ()
Could it be that there is something wrong with cache/dram setup?
I hope I can do some more tests next week.
Best regards,
Stefan
More information about the U-Boot
mailing list