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