Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Aug 2010 11:05:33 +0200
From:      Olivier Houchard <mlfbsd@ci0.org>
To:        Ben Gray <ben.r.gray@gmail.com>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: OMAP3530 - Beagleboard and I2C problems
Message-ID:  <20100810090533.GA56784@ci0.org>
In-Reply-To: <4C607639.9050506@gmail.com>
References:  <4C607639.9050506@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100810090533.GA56784>