OMAP3530 - Beagleboard and I2C problems
Olivier Houchard
mlfbsd at ci0.org
Tue Aug 10 09:05:06 UTC 2010
On Mon, Aug 09, 2010 at 10:42:17PM +0100, Ben Gray wrote:
> Hi,
>
Hi Ben,
> I've been working on a port of FreeBSD to Texas Instruments OMAP3530
> for a while now. I have the basic drivers, Clocks, MMC, DMA, GPIO's,
> etc. The kernel is coming up, however it crashes with a seg fault when
> starting the init process, this is probably caused by the hacks I had to
> put in the pmap code to get it to work with ARMv7 MMU's, but that's an
> email for another day.
>
That's great to hear !
How hackish is your work ? There's an ongoing work to support armv6/armv7, so
maybe it's best to avoid duplicating efforts ?
> The problem I'm currently having is with the I2C code and it is
> perhaps highlighting a more fundamental problem with my port so far.
> Currently I have an 'omap3' bus device, which is the parent for all the
> other peripheral drivers (I2C, MMC, DMA, etc). These child bus drivers
> are added during the attach call of the parent, but at that time IRQ's
> are not enabled and nor is the system clocking code. So the problem I
> have is that during the attach phase of the I2C device driver I want to
> be able to send messages over the I2C bus, but my bus driver doesn't
> work because IRQ's are still disabled. So what is the correct solution
> for this? How do I delay device initialisation to after this?
>
If you need to do stuff once IRQ are enabled, you may try to use
config_intrhook_establish(), that should do exactly what you need.
Regards,
Olivier
More information about the freebsd-arm
mailing list