Date: Fri, 25 Jan 2013 13:49:48 +0100 From: Zbyszek Bodek <zbb@semihalf.com> To: Aleksander Dutkowski <adutkowski@gmail.com> Cc: freebsd-ppc@freebsd.org Subject: Re: OpenFirmware issue on P1010 Message-ID: <51027F6C.7090403@semihalf.com> In-Reply-To: <CABkKHSZ=GGh0FQ%2BG7cvHHhiBmJuGhhgLd5iWAActw8pdqk%2BV-w@mail.gmail.com> References: <CABkKHSZ=GGh0FQ%2BG7cvHHhiBmJuGhhgLd5iWAActw8pdqk%2BV-w@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hello Aleksander, Please check my answer inline. On 25.01.2013 13:10, Aleksander Dutkowski wrote: > hi! > > I am porting FreeBSD on P1010RDB platform. I modified existing MPC85XX > config (i.e. removed SMP), created p1010rdb.dts from p1020rdb.dts etc, > and ran the kernel via u-boot: > tftp 0x1000000 fbsd.elf > go 0x10000e0 Apart from other hints that you gave, are you trying to boot an elf file via tftp command or this is in fact a .bin file (objcopied) but with the .elf postfix ? It is impossible to boot an elf file via tftpboot/go commands. If this is what you are doing then try to create a bin file using objcopy (for powerpc) and then boot. For example: /obj/path/to/powerpc/objcopy -S -O binary /obj/path/to/powerpc/kernel fbsd.bin Of course you should also extract the "kernel start address" to ensure that you are executing (go) the bin file in a right way: /obj/path/to/powerpc/objdump -f /obj/path/to/powerpc/kernel And an additional thought - make sure that you are using statically embedded dtb when booting directly from u-boot: options FDT_DTB_STATIC > > Nothing happened, so I used CodeWarrior IDE with CW USB Tap, and it > turned out, that OF_install() call in sys/powerpc/booke/machedp.c > returns false. I inspected this function and moreover, I inspected the > structure, which is pointer from set_ofw_set linker set: > > $ powerpc-rtems-objdump -s kernel | grep set_ofw_set > Contents of section set_ofw_set: > c03694f0 c037ab54 .7.T > > (gdb) p (ofw_def_t)*0xc037ab54 > $1 = {name = 0xc03339a4 "ofw_fdt", methods = 0xc0319350, size = 0, > baseclasses = 0x0, refs = 0, ops = 0x0} > > As we can se, name field is correct. But this function seems to fail > in strcmp(). > I have found the issue [1] on bugtracker, so Im quite sure, that the > problem is ith linker sets on powerpc (but this issue is quite old now > ;) ), but the fix is not working for me - it crashes while compiling: > > cc -c -O -pipe -std=c99 -Wa,-me500 -g -Wall -Wredundant-decls > -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes > -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign > -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option > -nostdinc -I. -I/usr/home/aleek/src/p1010-github/sys > -I/usr/home/aleek/src/p1010-github/sys/contrib/altq > -I/usr/home/aleek/src/p1010-github/sys/contrib/libfdt -D_KERNEL > -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common > -finline-limit=15000 --param inline-unit-growth=100 --param > large-function-growth=1000 -msoft-float -Wa,-many > -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding > -fstack-protector -Werror > /usr/home/aleek/src/p1010-github/sys/dev/ofw/openfirm.c > cc1: warnings being treated as errors > /usr/home/aleek/src/p1010-github/sys/dev/ofw/openfirm.c: In function > 'OF_install': > /usr/home/aleek/src/p1010-github/sys/dev/ofw/openfirm.c:126: warning: > assignment from incompatible pointer type > /usr/home/aleek/src/p1010-github/sys/dev/ofw/openfirm.c:126: warning: > comparison of distinct pointer types lacks a cast > > Do you have any idea, how to fix this? > > > > [1] http://www.freebsd.org/cgi/query-pr.cgi?pr=140241 > Sorry to ignore the rest of your observations at the moment but I wanted to make sure that everything is OK with the running process. Best regards and good luck Zbyszek Bodek
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51027F6C.7090403>