Atmel at91sam9261-ek support.

Sylvestre Gallon ccna.syl at
Tue Mar 24 02:10:18 PDT 2009

On Tue, Mar 24, 2009 at 3:45 AM, Arnar Mar Sig <antab at> wrote:
> On Mar 23, 2009, at 9:01 PM, Sylvestre Gallon wrote:
>> Hi freebsd-arm@
>> I've got an access to an at91sam9261-ek. This board have a
>> at91sam9261 soc that is near the at91rm9200, so I start a
>> little port of it into FreeBSD. So I work 3 days on it and that
>> results in a Big patch that allow the board to boot.
> Nice work

Thanks :)

>> As you can see in the dmesg, for the moment the system
>> hangs, but it is normal (I haven't yet finish the implementation
>> of the dm9000 ethernet driver so NFS don't find any ethernet
>> interface and panic).
>> This big diff contains :
>>  - an AT91SAM9261EK conf file.
>>  - an std.at91sam9261ek file.
>>  - a begin of dme driver (dm9000 ethernet chip driver). I
>>   will work this week on it to send you another diff that
>>   complete this driver :)
>>  - a board_at91sam9261ek.c file.
>>  - an include for at91sam9261 registers.
>>  - a new watchdog driver (at91_wdt)
>>  - a new smc driver (static memory controller)
> Looks like the at91sam9261 uses the same SMC core as at32ap700x, we should
> look into using the same driver for both archs. I already have at32_smc in
> p4 to do bus managment and attach childs but no setup code (already done in
> uboot for what i need).

I don't found it in the source tree. Where it is located ? If you wan't the
smc register description you can take a look at this datasheet in
chapter 22:

The smc is not used in the patch yet but I will need to use it for the
implement the dm9000 driver (because this chip is attach on the 2nd
channel of the smc)

>>  - a new pit driver (periodic interval timer)
>> There is a lot of little modification on the at91 existing
>> sources.
>> As you can see in the diff I work for the moment on a
>> define way to separate the two soc code that differ. But I
>> think that in the future a .c for each soc should appear.
> What about using hints more for device wiring instead of .c code like i did
> for avr32?

Yes here we can use hints to factorise a lot of code like
a big part of the code where  the #ifdef AT91SAM9261 are.
But  like M. Warner Losh said I think that one needs a .c
by SoC to  put  the cpu_devs structure, the pmap_devmap
structure and the errata code. We need to put this in a specific
files because these code are dependant of the SoC.


Sylvestre Gallon (
Fifth Grade Student @ Epitech & Researcher @ LSE
R&D @ Rathaxes (

More information about the freebsd-arm mailing list