adding 16550 UART to RM9200

Warner Losh imp at bsdimp.com
Tue Apr 3 19:57:24 UTC 2007


> I might consider running only 3 boards on IRQ0 and the other 3 on IRQ3.
> Although the RM9200 has 7 external interrupts (not counting FIQ), the
> remaining IRQ* all collide :(
> - IRQ0  unshared
> - IRQ1	TWCK needed for my external RTC
> - IRQ2  TWD same as above
> - IRQ3  TXD2 I can easily accept loosing this UART with the new ones
> - IRQ4	SPCK needed for dataflash booting and I don't want to switch to
> 	iic-eeprom for booting
> - IRQ5 	NPCS0 same as above
> - IRQ6	Ethernet MDIO
> 
> I could free 2 IRQ if I either run without IIC or SPI, but this still
> wouldn't give me the ideal of 6 lines.

Have you considered just using a GPIO pin for this and routing the
interrupt that way?  There's code there now to cope with the change of
level in the GPIO pins.  That way you'd only have to read one register
and mask out the pins you want.  The only mild gotcha here is that the
interrupt is for signal change, not for a level, iirc.  Surely you
haven't used up all the I/O lines.

> Is pmap_mapdev useable as Olivier wrote and this comment is outdated?

No.  that's fine.

> Or is there still a problem with AT91?

It is OK.

> All in all this is just a single page to be mapped, which won't hurt,
> so pmap_mapdev sounds good.

OK.  The other way maps it always, but maybe it would be better the
simpler way.  The above table maps to calls to pmap_mapdev anyway.

> > I'm starting to think that we may be getting to the point where we
> > need to do better board support in this subport.  You are making too
> > many of them too quickly and it is straining the infrastructure :-)
> 
> Consider, that the daughter boards all get generic bus access and don't
> really have to be UART ones...

heh...

Warner

P.S.  You never answered my question about giving me one :-)  that's
OK, it was a joke anyway.


More information about the freebsd-arm mailing list