Date: Mon, 09 Aug 2010 22:42:17 +0100 From: Ben Gray <ben.r.gray@gmail.com> To: freebsd-arm@freebsd.org Subject: OMAP3530 - Beagleboard and I2C problems Message-ID: <4C607639.9050506@gmail.com>
next in thread | raw e-mail | index | archive | help
Hi, 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. 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? Is there documentation anyone can point me at that describes the startup phases? or alternatively examples in the existing code base? I've looked at the current ARM ports, and on the face of it they seem to suffer the same problem. In case anyone is interested some of my work to date is available on googlecode here <http://code.google.com/p/beagleboard-freebsd/>. At the moment it can't just be pulled into the tree, partially because it's missing the patches needed for the pmap code, but mostly because large parts of it don't work properly :-) And thanks to to the author of the freebsd-bgb googlecode project, without that I probably wouldn't have got started. Cheers, Ben Gray
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C607639.9050506>