Re: bug report: fail to boot barebox in marvell 6281 board

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday, April 2, 2020 5:25:10 PM CST Sascha Hauer wrote:
> +Cc Marvell expert <ukl@xxxxxxxxxxxxxx>
> 
> On Thu, Apr 02, 2020 at 04:02:57PM +0800, you xiaojie wrote:
> > On Thursday, April 2, 2020 3:41:54 PM CST Sascha Hauer wrote:
> > > On Thu, Apr 02, 2020 at 03:03:41PM +0800, you xiaojie wrote:
> > > > the debugging message.
> > > > 
> > > > allan@allan-home:/media/allan/c6293bbf-6fa1-49ca-9b01-24855a810e0e/bar
> > > > ebox
> > > > -
> > > > test/barebox$ ./scripts/kwboot -b ./images/barebox-huanshuo-hs50a.img
> > > > -n
> > > > 15 -B 115200 -t /dev/ttyUSB0
> > > > Sending boot message. Please reboot the target...
> > > > Got expected NAKs
> > > > Sending boot image...
> > > > 
> > > >  86 %
> > > >  [....................................................................
> > > >  ..]
> > > >  89 %
> > > >  [....................................................................
> > > >  ..]
> > > >  91 %
> > > >  [....................................................................
> > > >  ..]
> > > >  93 %
> > > >  [....................................................................
> > > >  ..]
> > > >  96 %
> > > >  [....................................................................
> > > >  ..]
> > > >  98 % [.............................................]
> > > > 
> > > > [Type Ctrl-\ + c to quit]
> > > > uncompress.c: memory at 0x00000000, size 0x20000000
> > > > uncompress.c: enabling MMU, ttb @ 0x1ffe4000
> > > > uncompress.c: uncompressing barebox binary at 0x010053e0 (size
> > > > 0x00057dfe)
> > > > to 0x1fe00000 (uncompressed size: 0x000a4ee0)
> > > > uncompress.c: jumping to uncompressed image at 0x1fe00000
> > > > start.c: memory at 0x00000000, size 0x20000000
> > > > start.c: found DTB in boarddata, copying to 0x1fdfcc40
> > > > start.c: initializing malloc pool at 0x0fefe620 (size 0x0fefe620)
> > > > start.c: starting barebox...
> > > > initcall-> globalvar_init+0x0/0x48
> > > 
> > > This looks all perfectly fine until here. I have no idea what goes wrong
> > > here. You need a binary.0 file for this board, right? Are you sure that
> > > works? Did you extract it from some working U-Boot?
> > > It might also be a toolchain related issue. Which toolchain are you
> > > using?
> > > 
> > > Sascha
> > 
> > binary.0? no I don't think so.for armada 370, need. for
> > kirkwood,kwbimage.cfg complete such memory initialisation work. so there
> > is no need binary.0 file. that is to see in images/Makefile.
> > this is kwbimage from uboot setting registry  for mem init. also in 6281
> > datasheet (publicly available on internet)
> 
> Ok, I am not very familiar with these SoCs. I thought there generally is
> a binary.0 file necessary.
> 
> > DATA 0xFFD01514 0x00000000	# CS[2]n Size, window disabled
> > DATA 0xFFD0151C 0x00000000	# CS[3]n Size, window disabled
> > 
> > DATA 0xFFD01494 0x00030000	#  DDR ODT Control (Low)
> > DATA 0xFFD01498 0x00000000	#  DDR ODT Control (High)
> > # bit1-0:  00, ODT0 controlled by ODT Control (low) register above
> > # bit3-2:  01, ODT1 active NEVER!
> > # bit31-4: zero, required
> > 
> > DATA 0xFFD0149C 0x0000E803	# CPU ODT Control
> > DATA 0xFFD01480 0x00000001	# DDR Initialization Control
> > #bit0=1, enable DDR init upon this register write
> > 
> > 
> > what is the register's base mem address for uboot or barebox?
> > where to define 0xffd00000 base address?
> 
> I am a bit confused. In arch/arm/mach-mvebu/common.c we have:
> 
> /*
>  * All MVEBU SoCs start with internal registers at 0xd0000000.
>  * To get more contiguous address space and as Linux expects them
>  * there, we remap them early to 0xf1000000.
>  */
> 
> It seems this is not true for Kirkwood??
> 
> Sascha

I also noticed: barebox/arch/arm/mach-mvebu/include/mach/common.h

#ifndef __MACH_COMMON_H__
#define __MACH_COMMON_H__

#include <asm/sections.h>
#include <asm/unaligned.h>

#define MVEBU_BOOTUP_INT_REG_BASE	0xd0000000
#define MVEBU_REMAP_INT_REG_BASE	0xf1000000

/* #including <asm/barebox-arm.h> yields a circle, so we need a forward decl 
*/
unsigned long get_runtime_offset(void);

static inline void __iomem *mvebu_get_initial_int_reg_base(void)
{
#ifdef __PBL__
	u32 base = __get_unaligned_le32(_text + get_runtime_offset() + 
0x30);
	return (void __force __iomem *)base;
#else
	return (void __force __iomem *)MVEBU_REMAP_INT_REG_BASE;
#endif
}

#endif

take this as example DATA 0xFFD0149C 0x0000E803,
in datasheet,
Table 189:DDR Controller ODT Control Register
Offset: 0x0149C
.......(omitted)

so what is 0xffd00000? in uboot could not find barbox is also not find .
strange value. 

however this file should work in uboot. I try again for sure.





_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux