Date: Fri, 25 Jan 2013 13:10:05 +0100 From: Aleksander Dutkowski <adutkowski@gmail.com> To: freebsd-ppc@freebsd.org Subject: OpenFirmware issue on P1010 Message-ID: <CABkKHSZ=GGh0FQ%2BG7cvHHhiBmJuGhhgLd5iWAActw8pdqk%2BV-w@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
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 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 -- regards aleek
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CABkKHSZ=GGh0FQ%2BG7cvHHhiBmJuGhhgLd5iWAActw8pdqk%2BV-w>