
On Sat, 9 May 2009 21:50:39 +0200 Wolfgang Denk wd@denx.de wrote:
The following patch series includes a heavy rework of the existing code for MPC512x processors. The changes include especially:
- move common files from mpc5121ads (so far ads5121) board to common directory so they can be reused by other boards based on the same CPU
- rename "ads5121" into "freescale/mpc5121ads" so thesame board name as in Linux is used, and the vendor directory is correct
- rework the whole MPC512x related code to use I/O acessors (i. e. in_*() and out_*() functions) instead of deprecated pointer accesses
- Don't #define register offsets, but use the offset from the respective C structs instead [1]
- remove include/mpc512x.h to avoid duplication of the same information in include/asm-ppc/immap_512x.h
- add support for the ARIA board, a MPC5121e based COM Express module
[1] Note: It was not possible to get completely rid of #define'd register offsets yet, as some are used in cpu/mpc512x/start.S, and in assembly the available options are limited. In Linux, the required header files with the respective #define's are auto-generated from the C struct definitions. We intend to do the same, but this needs co-ordinations across architectures - for example, Blackfin already uses such an approach. For now, we created cpu/mpc512x/asm-offsets.h; this file will be removed again as soon as auto-generation works.
Note: It might seem a good idea to squash related patches (like all I/O accessors patches into one, and all mpc512x.h removal patches into another one) to reduce the number of commits. I decided against doing this, as the amount of changes carries the risk that, inspite of pretty careful testing, some errors have not been discovered yet. The current one-step-at-a-time approach is more git-bisect friendly.
Patches are agains v2009.06-rc1; they have been tested on the "mpc5121ads" and the "aria" boards.
Patch overview:
[PATCH 01/29] mpc512x: change cpu/mpc512x/Makefile to use Kconfig style [PATCH 02/29] mpc512x: Move common files to share them by several boards [PATCH 03/29] cpu/mpc512x/pci.c: minor coding style cleanup [PATCH 04/29] cpu/mpc512x/diu.c: fix warning: assignment from incompatible pointer type [PATCH 05/29] Rename ads5121 board into mpc5121ads [PATCH 06/29] MPC512x: add more hardware description to immap_512x.h [PATCH 07/29] mpc5121ads: use I/O accessors instead of pointer accesses [PATCH 08/29] MPC512x: add support for ARIA board [PATCH 09/29] cpu/mpc512x/iopin.c: convert to use I/O acessors. [PATCH 10/29] cpu/mpc512x/iopin.c: remove redundant include of <asm/immap_512x.h> [PATCH 11/29] MPC512x: prepare removal of include/mpc512x.h [PATCH 12/29] include/configs/mpc5121ads.h: prepare removal of include/mpc512x.h [PATCH 13/29] include/configs/aria.h: prepare removal of include/mpc512x.h [PATCH 14/29] common/cmd_ide.c: prepare removal of include/mpc512x.h [PATCH 15/29] cpu/mpc512x/cpu.c: prepare removal of include/mpc512x.h [PATCH 16/29] cpu/mpc512x/cpu_init.c: prepare removal of include/mpc512x.h [PATCH 17/29] cpu/mpc512x/cpu_init.c: use I/O accessors instead of pointer accesses [PATCH 18/29] cpu/mpc512x/speed.c: prepare removal of include/mpc512x.h [PATCH 19/29] cpu/mpc512x/speed.c: use I/O accessors instead of pointer accesses [PATCH 20/29] cpu/mpc512x/serial.c: use I/O accessors instead of pointer accesses [PATCH 21/29] cpu/mpc512x/i2c.c: prepare removal of include/mpc512x.h [PATCH 22/29] cpu/mpc512x/i2c.c: use immr offsets from C struct instead of #define [PATCH 23/29] cpu/mpc512x/i2c.c: use I/O accessors instead of pointer accesses [PATCH 24/29] cpu/mpc512x/pci.c: use I/O accessors instead of pointer accesses [PATCH 25/29] drivers/net/mpc512x_fec.c: prepare removal of include/mpc512x.h [PATCH 26/29] MPC512x FEC: remove duplicated code and data types [PATCH 27/29] drivers/net/mpc512x_fec.c: use I/O accessors instead of pointer accesses [PATCH 28/29] MPC512x FEC: get rid of duplicated struct ethernet_regs [PATCH 29/29] Remove include/mpc512x.h
there seem to be recurring themes among these patches - this patchseries would be better grouped into theme based content instead of on a file by file basis. Eg., Removal of mpc512x.h shouldn't need 10 "prepare to remove" patches - it should be a single patch that removes all #include references, plus the file removal itself.
Kim