Re: RFC: Sentosa boot fix

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

 



On Wed, 31 Jan 2007, Atsushi Nemoto wrote:

> I compiled ip27 kernel and really confused...
> 
> head.S:
> 	PTR_LA		t0, __bss_start		# clear .bss
> 	LONG_S		zero, (t0)
> 
> System.map:
> a8000000003b6000 A __bss_start
> 
> vmlinux:
> a800000000385058:	3c0c003b 	lui	t0,0x3b
> a80000000038505c:	658c6000 	daddiu	t0,t0,24576
> a800000000385060:	fd800000 	sd	zero,0(t0)
> 
> vmlinux.32:
> 80385058:	3c0c003b 	lui	t4,0x3b
> 8038505c:	658c6000 	daddiu	t4,t4,24576
> 80385060:	fd800000 	sd	zero,0(t4)
> 
> How does this code work?  Isn't address 0x3b6000 in user space?

 Well, the default config for this machine specifies -msym32 with the load 
address of 0xa80000000001c000.  No wonder it does not work.

 I suppose the setup for this platform should be more or less like this:

ifdef CONFIG_BUILD_ELF64
ifdef CONFIG_MAPPED_KERNEL
load-$(CONFIG_SGI_IP27)		+= 0xc00000004001c000
dataoffset-$(CONFIG_SGI_IP27)	+= 0x01000000
else
load-$(CONFIG_SGI_IP27)		+= 0xa80000000001c000
endif
else
ifdef CONFIG_MAPPED_KERNEL
load-$(CONFIG_SGI_IP27)		+= 0xffffffffc001c000
OBJCOPYFLAGS			:= --change-addresses=0xc000000080000000
dataoffset-$(CONFIG_SGI_IP27)	+= 0x01000000
else
load-$(CONFIG_SGI_IP27)		+= 0xffffffff8001c000
OBJCOPYFLAGS			:= --change-addresses=0xa800000080000000
endif
endif

 I can cook a patch if some SGI expert steps in and comments whether this 
makes sense from the platform point of view or not.

  Maciej


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux