This I2C driver framework has some major differences compared to libi2c.
* It is compatible to the Linux I2C user-space API.
* It uses generic IMFS nodes and thus reduces the levels of indirection.
* The drivers don't have to mess around with minor numbers to get their
state information.
* No arbitrary bus controller model is assumed. The main task of an I2C
bus controller driver is to process I2C messages. How this is done is
private to the driver.
* Scatter/gather operations are supported (I2C_M_NOSTART).
Reduce non-IRQ stacks to size zero. All non-IRQ stacks overlap now the
IRQ stack. This is all right since the SVC stack is used only during
startup and here interrupts are disabled. The other exception stacks
lead to a system termination by default, so we can here also use the IRQ
stack since interrupts are disabled on exception entry.
Adding a local symbol lets the relocator find local symbols referenced
in relocation records. The local symbol table is erased once the object
module has been loaded.
Specifically the beagleboard, beagleboard xM, beaglebone, beaglebone black.
More info on these targets: http://www.beagleboard.org/
This commit forms a basic BSP by combining Claas's work with
. new clock and irq code and definitions for
beagle targets (beagleboard and beaglebones), mostly
reused from the Minix codebase, thus making
irqs, ticks and non-polled console mode work too
. new timer code for ns timing with high timer resolution,
24MHz on the AM335X and 13MHz on the DM37XX
. select the console uart based on target at configure time
. removing all the lpc32xx-specific macros and code and
other unused code and definitions that the beagle bsp
was based on
. re-using some standard functions instead of lpc32xx versions
. fixed some whitespace problem in preinstall.am
. fixed some compile warnings
. configure MMU: set 1MB sections directly in the TTBR,
just to show the difference between cacheable RAM and
non-cacheable device memory and invalid ranges; this lets us
turn on caches and not rely on boot loader MMU configuration.
Verified to work when MMU is initially either on or off when
RTEMS gets control.
Thanks for testing, commentary, improvements and fixes to Chris Johns,
Brandon Matthews, Matt Carberry, Romain Bornet, AZ technology and others.
Signed-Off-By: Ben Gras <beng@shrike-systems.com>