OpenFirmware issue on P1010
Lukasz Wojcik
lukasz.wojcik at zoho.com
Mon Jan 28 14:12:52 UTC 2013
On 01/25/13 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
>
> 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
Hi Aleksander,
You did not mention the version (or commit) of FreeBSD you're using, so
I'm unsure of what is the assignment mentioned in error msg; However,
the compile-time error you're seeing seems to be really easy to fix, by
doing proper type cast.
-LW
More information about the freebsd-ppc
mailing list