at91sam9g20: Patches

Greg Ansley gja at ansley.com
Mon Jul 26 15:57:04 UTC 2010


Here is the link to the promised patches (against this mornings head):

http://idisk.mac.com/gansley//Public/sam9.diff.gz

These patches have been tested on a KB9202C and an Atmel AT91SAM9G20EK 
Rev B.  Adding the SAM926[01] chips should be trivial and only very 
slightly more effort for the SAM9263.

Adding a new at91 cpu/chip should only require adding a new 
at91${cputype}.c and at91${cputype}reg.h files and possible small 
additions to at91_machdep.c for anything that has to happen *very* early 
in the boot process.  The drivers now use their resource records to find 
the correct addresses for the hardware and no longer have hard coded 
offsets (at91_st.c is an exception since it is only on the RM9200 so I 
didn't touch it).

at91_mci.c:

    * Compile and run time selection of "Slot B" of mci controller.
    * Compile and run time selection of 4 wire connection (4x bandwidth
      to slot).
    * No byte swapping on non-RM9200 targets.
    * Fix obscure segfault when bus_dma_load() fails in
      at91_mci_start_cmd().

at91_pit.c:

    * Support for full resolution timer counter.
    * Remove compile time address dependencies.

at91_rst.c:  (NEW)

    * Support SAM9 reset controller.
    * Implement shutdown() on NRST (reset button) and full reset if held
      for more the 5 seconds.

at91_reset.c: (NEW)

    * SAM9G20 Errata: Reset During SDRAM Accesses

at91_wdt.c: (NEW)

    * Support SAM9 watchdog timer using the watchdog(9) style interface.

if_ate.c:

    * Add support for sam9 "EMAC" controller.
    * Support for rmii interface to phy.

at91.c & at91sam9.c:

    * Eliminate separate at91sam9.c file.
    * Eliminate chip specific code.
    * Allow for automatic chip identification.

at91_machdep.c & at at91sam9_machdep.c:

    * Automatic chip type determination.
    * Remove compile time chip dependencies.
    * Eliminate separate at91sam9_machdep.c file.

at91_pmc.c:

    * Corrected support for all of the sam926? and sam9g20 chips.
    * Remove compile time chip dependencies.
    * Automatic generation of "peripheral"  clocks references using
      device name/unit e.g. "spi0".

at91_twireg.c:

    * Handle clocking differences for SAM9 family.

at91_pio.c

    * remove unnecessary chip specfic addressing.

at91rm9200.c (NEW)

    * Chip specific initialization.

at91sam9g20.c (NEW)

    * Chip specific initialization.

Greg Ansley



More information about the freebsd-arm mailing list