Date: Sun, 27 Jan 2013 15:34:32 +0100 From: Aleksander Dutkowski <aleek@FreeBSD.org> To: freebsd-ppc@freebsd.org Subject: Re: OpenFirmware issue on P1010 Message-ID: <CABkKHSZKuujMVemOpodQANQVa7AnTn=V9kZN6iJdHs2K2wX6-Q@mail.gmail.com> In-Reply-To: <CABkKHSZXSQAVML7c=yiSnf_sirn-QF32OLMsv=f_=C5MSau1HA@mail.gmail.com> References: <CABkKHSZ=GGh0FQ%2BG7cvHHhiBmJuGhhgLd5iWAActw8pdqk%2BV-w@mail.gmail.com> <51027F6C.7090403@semihalf.com> <CABkKHSZXSQAVML7c=yiSnf_sirn-QF32OLMsv=f_=C5MSau1HA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 25, 2013 at 1:49 PM, Zbyszek Bodek <zbb@semihalf.com> wrote: > 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 ? Yes I am booting elf file. I am using readelf to find the offset of __start function. (in this case, offset is 0xe0). I was able to do the ame trick on BeagleBoard-xM and it worked perfectly, but I'll check the solution with raw binary. > > 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 Yes, I am using statically embedded dtb :) > > >> >> 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 -- regards aleek
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CABkKHSZKuujMVemOpodQANQVa7AnTn=V9kZN6iJdHs2K2wX6-Q>