[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 4/8] arm: link a device tree blob into the xen image
On Fri, 2012-02-10 at 13:03 +0000, David Vrabel wrote: > From: David Vrabel <david.vrabel@xxxxxxxxxx> > > Link a device tree blob (DTB) into the xen image. This is loaded > immediately after Xen and xen_start() is called with the correct > address in atag_paddr. Is platform.dtb supposed to be included in this patch/series or is it intended that I should supply it from somewhere? (in which case, how and where etc). > Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx> > --- > xen/arch/arm/Makefile | 7 +++++-- > xen/arch/arm/dtb.S | 2 ++ > xen/arch/arm/head.S | 4 ++++ > xen/arch/arm/xen.lds.S | 5 +++++ > 4 files changed, 16 insertions(+), 2 deletions(-) > create mode 100644 xen/arch/arm/dtb.S > > diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile > index 9bc2fc8..ac346a5 100644 > --- a/xen/arch/arm/Makefile > +++ b/xen/arch/arm/Makefile > @@ -1,5 +1,6 @@ > subdir-y += lib > > +obj-y += dtb.o > obj-y += dummy.o > obj-y += entry.o > obj-y += domain.o > @@ -27,7 +28,7 @@ ALL_OBJS := head.o $(ALL_OBJS) > $(TARGET): $(TARGET)-syms > # XXX: VE model loads by VMA so instead of > # making a proper ELF we link with LMA == VMA and adjust crudely > - $(OBJCOPY) --change-addresses +0x7fe00000 $< $@ > + $(OBJCOPY) --change-addresses +0x80000000 $< $@ > # XXX strip it > > #$(TARGET): $(TARGET)-syms $(efi-y) boot/mkelf32 > @@ -50,7 +51,7 @@ endif > $(BASEDIR)/common/symbols-dummy.o: > $(MAKE) -f $(BASEDIR)/Rules.mk -C $(BASEDIR)/common symbols-dummy.o > > -$(TARGET)-syms: prelink.o xen.lds $(BASEDIR)/common/symbols-dummy.o > +$(TARGET)-syms: prelink.o xen.lds $(BASEDIR)/common/symbols-dummy.o dtb.o > $(LD) $(LDFLAGS) -T xen.lds -N prelink.o \ > $(BASEDIR)/common/symbols-dummy.o -o $(@D)/.$(@F).0 > $(NM) -n $(@D)/.$(@F).0 | $(BASEDIR)/tools/symbols >$(@D)/.$(@F).0.S > @@ -71,6 +72,8 @@ xen.lds: xen.lds.S > sed -e 's/xen\.lds\.o:/xen\.lds:/g' <.xen.lds.d >.xen.lds.d.new > mv -f .xen.lds.d.new .xen.lds.d > > +dtb.o: platform.dtb > + > .PHONY: clean > clean:: > rm -f asm-offsets.s xen.lds > diff --git a/xen/arch/arm/dtb.S b/xen/arch/arm/dtb.S > new file mode 100644 > index 0000000..0728c04 > --- /dev/null > +++ b/xen/arch/arm/dtb.S > @@ -0,0 +1,2 @@ > + .section .dtb,#alloc > + .incbin "platform.dtb" > diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S > index 57b990d..22ac512 100644 > --- a/xen/arch/arm/head.S > +++ b/xen/arch/arm/head.S > @@ -55,6 +55,10 @@ start: > adr r9, start /* r9 := paddr (start) */ > sub r10, r9, r0 /* r10 := phys-offset */ > > + /* XXX: using the DTB in the .dtb section. */ > + ldr r8, =_sdtb > + add r8, r10 /* r8 := paddr(DTB) */ > + > #ifdef EARLY_UART_ADDRESS > /* Say hello */ > ldr r11, =EARLY_UART_ADDRESS /* r11 := UART base address */ > diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S > index 5a62e2c..30fc7b7 100644 > --- a/xen/arch/arm/xen.lds.S > +++ b/xen/arch/arm/xen.lds.S > @@ -122,6 +122,11 @@ SECTIONS > } :text > _end = . ; > > + /* XXX: don't yet have a bootloader to provide the DTB, link it into > + Xen in its own section. */ > + _sdtb = .; > + .dtb : { dtb.o(.dtb) } :text > + > /* Sections to be discarded */ > /DISCARD/ : { > *(.exit.text) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |