README for arch/mips/gt64120 directory and subdirectories

Jun Sun, jsun@mvista.com or jsun@junsun.net
01/27, 2001

MOTIVATION
----------

Many MIPS boards share the same system controller (or CPU companian chip),
such as GT-64120.  It is highly desirable to let these boards share
the same controller code instead of duplicating them.

This directory is meant to hold all MIPS boards that use GT-64120 or GT-64120A.


HOW TO ADD A BOARD
------------------
 
. Create a subdirectory include/asm/gt64120/<board>.  

. Create a file called gt64120_dep.h under that directory.

. Modify include/asm/gt64120/gt64120.h file to include the new gt64120_dep.h
  based on config options.  The board-dep section is at the end of 
  include/asm/gt64120/gt64120.h file. There you can find all required
  definitions include/asm/gt64120/<board>/gt64120_dep.h file must supply.

. Create a subdirectory arch/mips/gt64120/<board> directory to hold
  board specific routines.

. The GT-64120 common code is supplied under arch/mips/gt64120/common directory.
  It includes:
	1) arch/mips/gt64120/pci.c -
		common PCI routine, include the top-level pcibios_init()
	2) arch/mips/gt64120/irq.c -
		common IRQ routine, include the top-level do_IRQ() 
	   [This part really belongs to arch/mips/kernel. jsun]
 	3) arch/mips/gt64120/gt_irq.c -
		common IRQ routines for GT-64120 chip.  Currently it only handles
	 	the timer interrupt.

. Board-specific routines are supplied under arch/mips/gt64120/<board> dir.
	1) arch/mips/gt64120/<board>/pci.c - it provides bus fixup routine
	2) arch/mips/gt64120/<board>/irq.c - it provides enable/disable irqs
		and board irq setup routine (irq_setup)
	3) arch/mips/gt64120/<board>/int-handler.S -
		The first-level interrupt dispatching routine.
	4) a bunch of other "normal" stuff (setup, prom, dbg_io, reset, etc)

. Follow other "normal" procedure to modify configuration files, etc.


TO-DO LIST
----------

. Expand arch/mips/gt64120/gt_irq.c to handle all GT-64120 interrupts.
  We probably need to introduce GT_IRQ_BASE  in board-dep header file,
  which is used the starting irq_nr for all GT irqs.

  A function, gt64120_handle_irq(), will be added so that the first-level
  irq dispatcher will call this function if it detects an interrupt
  from GT-64120.

. More support for GT-64120 PCI features (2nd PCI bus, perhaps)