[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel]  Implement device tree support needed for Bamboo
Re: [Qemu-devel]  Implement device tree support needed for Bamboo emulation
Tue, 16 Dec 2008 16:31:31 +0000
> > Then why is it optional?
> As you mention below, libfdt isn't generally available yet, and since
> it's possible to make a real firmware work in this environment (in which
> case -kernel isn't needed), the code can still be useful.
> If you'd prefer to make libfdt mandatory, I'm fine with that.
Well, from your description it sounds like your ppc bits are fairly useless
without it. History has shown that if it's possible for people to build
something incorrectly, they usually will. Even more so if the required
libraries are even vaguely standard.
> > AFAIK libfdt isn't present in any of the major distros. I thought the
> > conclusion was that we should import libfdt into qemu.
> That was our conclusion, but Anthony never agreed.
> FWIW, I have requested that Fedora and Debian package libfdt, and they
> agreed in principle, but it's still missing in Fedora 10 for example.
> Is the existence of distribution packages a requirement for use, or
> should we say "install it by hand into /usr/local"? If it is a
> requirement, which versions of which distributions?
I'm extremely reluctant to require an external library that everyone has to go
fetch and build themselves. IIRC The libfdt docs say it's expected that
people will include it in their projects.
I can say from experience that it drops in pretty easily. It's a 4-line qemu
patch, plus make libfdt_env.h use the qemu byteswap routines.
> I doubt anyone has tried to build libfdt on Windows...
I have (well, technically a cross build from linux, but same difference).
Signed-off-by: Paul Brook <address@hidden>
--- Makefile (revision 6069)
+++ Makefile (working copy)
@@ -5,7 +5,7 @@ include config-host.mak
.PHONY: all clean cscope distclean dvi html info install install-doc \
recurse-all speed tar tarbin test
CFLAGS += $(OS_CFLAGS) $(ARCH_CFLAGS)
LDFLAGS += $(OS_LDFLAGS) $(ARCH_LDFLAGS)
@@ -68,7 +68,11 @@ endif
# system emulation, i.e. a single QEMU executable should support all
# CPUs and machines.
+$(LIBFDT_OBJS): CPPFLAGS += -I$(SRC_PATH)/libfdt
Minor changes are required to get libfdt to build as part of qemu.
The patch below records modifications relative to upstream dtc-v1.2.0.
--- libfdt_env.h (revision 230023)
+++ libfdt_env.h (working copy)
@@ -4,10 +4,9 @@
-#if __BYTE_ORDER == __BIG_ENDIAN
#define fdt32_to_cpu(x) (x)
#define cpu_to_fdt32(x) (x)
#define fdt64_to_cpu(x) (x)