Andrew Lunn andrew@lunn.ch
Wed Aug 1 12:06:00 GMT 2007

On Wed, Aug 01, 2007 at 12:18:37PM +0200, jc.caquet@kerlink.fr wrote:
> Dear all, 
> As we are working on AT91SAM7SE we wonder how hard it is to adapt AT91SAM7S
> configuration to work with SAM7SE ?
> Does anybody have an idea ?

I just took a 120 second look at the data sheet. It appears to be a
AT91SAM7S with an added external memory interface. The memory
controller likes to be slightly extended, but not much. The FLASH and
SRAM are still in the same place etc.

So i guess a SAM7S image would boot on the SAM7SE.

To do a port:

Check that all the peripherals are in the same place in memory. Make
modifications as necessary.

Add code for the third PIO controller. I guess this shares pins with
the external memory interface, so you might not actually need it?
However it would be good to have, just for completeness.

Check the interrupts sources are the same. The interrupt source is the
same as the peripheral identifier.

Extend the AT91 flash driver to recognize this chip. It just needs the
CPU ID adding, trivial.

Check that function/pin mapping have not changed for the PIO
controllers. You probably need to add a new set of pins to
var_io.h. This might either be a complete new set, or maybe just pins
on the PIO C controller.

The external bus interface does not look like any of the EBI which
other AT91 devices eCos support has. So you will need to add a driver
for it. How you structure this driver is an interesting question. The
EBI has many different things it can driver. It would be nice to build
a framework which can support each of the different options. Then
within the framework implement the specific features you need for your
hardware. So, for example you would have CDL

cdl_option  CYGOPT_AT91_HAL_EBI_NCS0_IS {
        display "What is connected to NCS0"
        flavor data
        legal_values { "nothing", "SRAM" }
        description "
           Configures what it attaches to Chip select 0. This
           can either be nothing or an SRAM"

cdl_option  CYGOPT_AT91_HAL_EBI_NCS1_IS {
        display "What is connected to NCS1"
        flavor data
        legal_values { "nothing", "SDRAM", "SRAM" }
        description "
           Configures what it attaches to Chip select 1. This
           can either be nothing an SDRAM or an SRAM"


Then depending on the values of CYGOPT_AT91_HAL_EBI_NCS?_IS you can
enable/disable the SRAM driver, the SDRAM driver, the CompactFlash
driver etc... This is just an idea, i don't know if it will really

Overall, i don't think it is a lot of work. Most of the work will be
to write the EBI driver.


Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list