4xx change to core files
Armin
akuster at pacbell.net
Thu May 9 02:45:02 EST 2002
I have changed the way the paddrs are used in the 4xx specifically in
the manner they are used in the core.c files. This eliminates the need
for "externs struct *_ADDR[]" , IIC_PORT_DFNS and in most cases the need
for *_NUMS. The ocp API's have changed to take advantage of this new
core_ocp[]. All the ocp drivers have been affected in a minor way as
well as most core.h files.
The core_ocp[] is don ein the following:
new struct in asm-ppc/ocp.h
struct ocp_def {
enum ocp_type type;
int paddr;
int irq;
};
each 4xx core file now contains something simulary to this ( ibm405gp.c)
struct ocp_def core_ocp[] = {
{UART, UART0_IO_BASE, UART0_INT},
{UART, UART1_IO_BASE, UART1_INT},
{IIC, IIC0_BASE, IIC0_IRQ},
{GPIO, GPIO0_BASE, OCP_IRQ_NA},
{PCI, PCIL0_BASE, OCP_IRQ_NA},
{OPB, OPB0_BASE, OCP_IRQ_NA},
{EMAC, EMAC0_BASE, OCP_IRQ_NA},
{OCP_NULL_TYPE, 0x0, OCP_IRQ_NA},
};
new ocp APIs:
unsigned long get_ocp_paddr(int type, int dev_num);
returns the physical address for a given ocp type for the nth one.
this is used when the mmu is not completely up such as during pci
bring up.
int ocp_get_max(int type);
returns the max number of ocp device type
This affects the 405gp, np405l, np405h, 440gp , stb03xxx, stb04xxx and
np4gs cores.
the following drivers have been altered, ibm_ocp_enet.c, ibm_ocp_zmii.c,
ppc405_pci.c, ibm_ocp_gpio.c, i2c-adapt-ibm_ocp.c
I expect to be done soon.
Armin
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev
mailing list