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)