FreeBSD/powerpc on MPC5200
Daan Vreeken
Daan at vehosting.nl
Fri Aug 28 19:27:30 UTC 2009
Hi Rafal (and the list),
On Sunday 24 May 2009 21:15:44 Rafal Jaworowski wrote:
> On 2009-05-23, at 07:21, Andrew Turner wrote:
> > On Fri, 22 May 2009 12:21:01 +0200
> >
> > Rafal Jaworowski <raj at semihalf.com> wrote:
> >> On 2009-05-11, at 15:15, Peter Czanik wrote:
> >>> Rafal Jaworowski írta:
> >>>> I'd like to let people know that FreeBSD/powerpc is now able to
> >>>> boot into single user on the Freescale MPC5200 system-on-chip
> >>>> (EFIKA board). The environment is very simplistic: RAM disk based
> >>>> root fs, as
> >>>> there's no peripherals drivers besides serial console and the
> >>>> built- in
> >>>> PIC. See this log: http://people.freebsd.org/~raj/logs/efika.log
> >>>
> >>> Wow, great news! Two questions:
> >>> - are there any plans to support additional devices?
> >>
> >> We don't have immediate plans for other devices drivers, but this
> >> basic support will be merged into SVN, and it would be greatly
> >> welcome to see people help with remaining items.
> >
> > Is there a patch available? I would like to get back to working on the
> > EFIKA.
>
> Preliminary diff against 2009.04.06 HEAD is here:
> http://people.freebsd.org/~raj/patches/powerpc/efika.diff
>
> Comments or questions welcome. Some bits need to be streamlined so
> that all AIM/OF variations work together, and the code has to be
> rebased against up-to-date HEAD.
I have downloaded your diff and succesfully patched it to -HEAD (checked out
on 2009-08-25).
Right now I'm looking into getting the USB controller working. (That would
allow me to use network & disks all in one go.)
I have written the OHCI attachment code (inspired by a mix of Warner's atmel
version, mpc5xxx/ic.c and uart_dev_psc.c) and gotten it to succesfully attach
to the OHCI controller when booting the Efika board.
USB is not (yet) working correctly. Near the end of ohci_init(), the board
seems to halt completely for about 30 seconds and after that, the OHCI
controller sets the 'unrecoverable error' flag.
A complete dmesg dump can be found here :
http://vehosting.nl/pub_diffs/efika-daan-2009-08-28-ohci_attaching_but_failing.txt
The kernel that produced this can be downloaded here :
http://vehosting.nl/pub_diffs/efika-daan-2009-08-28-ohci_attaching_but_failing.kernel
The files I added/changed to get the attachment of the OHCI controller
to 'work' can be found here :
http://vehosting.nl/pub_diffs/efika-daan-2009-08-28_changed_files.tar.gz
(Warning : Ugly! and full of printf's for now!)
(I could have missed one, let me know if you can't get it to work.)
The above dmesg shows a number of printf's I've added to ohci.c . My mutilated
version can be found here :
http://vehosting.nl/pub_diffs/efika-daan-2009-08-28_ohci.c
As you can see, I printf() the interrupt status register at various points
during ohci_init(). The 'unrecoverable error' flag gets set just a couple of
miliseconds after the following command has been executed :
/* And finally start it! */
OWRITE4(sc, OHCI_CONTROL, ctl);
After that OWRITE4(), the board sits for about 30 seconds and then continues.
I'm just guessing what's going on here, but could it be that (one of?) the
endpoint lists isn't properly setup and that the OHCI controller keeps the
CPU from accessing memory while it's racing through memory following
corrupt/invalid 'next' pointers?
Regards,
--
Daan Vreeken
VEHosting
http://VEHosting.nl
tel: +31-(0)40-7113050 / +31-(0)6-46210825
KvK nr: 17174380
More information about the freebsd-ppc
mailing list