Looking to formalize board support in embedded platforms.

Arnar Mar Sig antab at valka.is
Thu Dec 4 22:22:02 PST 2008


On Dec 4, 2008, at 11:37 PM, M. Warner Losh wrote:
> I've spent a little bit of time implementing the start of board files
> for the arm port. The initial push has been for the at91 subport only,
> and many improvements could be made to this. I've written up my
> initial thoughts on this on the FreeBSD wiki
> http://wiki.freebsd.org/FreeBSDArmBoards/. It could use much
> improvement, I'm sure.
Some comments:
What is the point of a std.* file for every board, cant this be in the  
config file? I can understand the reason for having std.at91 and  
std.xscale that board configs can include to set cpu dependent  
options. But imo it would be cleaner to skip the std.* files for the  
boards.

"There's some suggestions that there be a separate "boards" directory.  
I'm not sure that I like it."
Depends on have many board we have, with 2 board it doesn't matter  
much, but with 10+ board all with a separate std.*, *.c and maybe  
files.* then its probably best to add the "boards" directory.

>
> One idea that hasn't been reflected there yet, was shown to me by Sam
> Laffler who suggested using linker sets to allow boards to 'probe',
> 'init' and other standardized functions. This is an interesting idea
> and I plan on working on adding it to the above links when Sam has
> results to share.
Sounds interesting

>
> I'd also like to expand the above wiki page to be a 'best practices'
> guide for all architectures where there's great diversity of
> boards/cpus/etc (eg, not the homogeneous env that x86 provides).
Good thing.

>
> I'm also soliciting comments on the above boards in addition to the
> above. Send them to me, or post them here.
> _______________________________________________
> freebsd-embedded at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-embedded
> To unsubscribe, send any mail to "freebsd-embedded-unsubscribe at freebsd.org 
> "


Another thing semi related to board settings, device clocks.
I see that in some of the device drivers for at91 the peripheral input  
clock is hard coded. This is probably fine for cpu's with one clock  
zone (don't know if at91 has one or many), but for cpu's like avr32  
where you have many clock zones and peripherals can be connected to  
any one of them then hard coding this will not work.

I think we need a clock framework (extension to the device driver  
framework?) to be able to lookup the peripherals input clock so the  
driver can calculates its prescalers right. This would also allow use  
to dynamically change the frequency for zones to get better power  
efficiency.

Greets
	Arnar Mar Sig
	Valka ehf



More information about the freebsd-embedded mailing list