X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fppc%2Fplatforms%2F4xx%2Febony.c;h=6c9bde47360e21c021c2f98e734cbdc50f700e0d;hb=918425d07b2fe2087ee7dabf90e69a17e914649c;hp=a531c13f3e89a6ecb45eab38b0df9fe7e073a1bb;hpb=86090fcac5e27b630656fe3d963a6b80e26dac44;p=linux-2.6.git diff --git a/arch/ppc/platforms/4xx/ebony.c b/arch/ppc/platforms/4xx/ebony.c index a531c13f3..6c9bde473 100644 --- a/arch/ppc/platforms/4xx/ebony.c +++ b/arch/ppc/platforms/4xx/ebony.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -119,9 +120,6 @@ static u_char ebony_IRQ_initsenses[] __initdata = { extern void abort(void); -/* Global Variables */ -bd_t __res; - static void __init ebony_calibrate_decr(void) { @@ -308,7 +306,9 @@ static void __init ebony_setup_arch(void) { unsigned char * vpd_base; - struct ibm440gp_clocks clocks; + struct ibm44x_clocks clocks; + struct ocp_def *def; + struct ocp_func_emac_data *emacdata; #if !defined(CONFIG_BDI_SWITCH) /* @@ -318,10 +318,15 @@ ebony_setup_arch(void) mtspr(SPRN_DBCR0, (DBCR0_TDE | DBCR0_IDM)); #endif - /* Retrieve MAC addresses */ + /* Set mac_addr for each EMAC */ vpd_base = ioremap64(EBONY_VPD_BASE, EBONY_VPD_SIZE); - memcpy(__res.bi_enetaddr[0],EBONY_NA0_ADDR(vpd_base),6); - memcpy(__res.bi_enetaddr[1],EBONY_NA1_ADDR(vpd_base),6); + def = ocp_get_one_device(OCP_VENDOR_IBM, OCP_FUNC_EMAC, 0); + emacdata = def->additions; + memcpy(emacdata->mac_addr, EBONY_NA0_ADDR(vpd_base), 6); + def = ocp_get_one_device(OCP_VENDOR_IBM, OCP_FUNC_EMAC, 1); + emacdata = def->additions; + memcpy(emacdata->mac_addr, EBONY_NA1_ADDR(vpd_base), 6); + iounmap(vpd_base); /* * Determine various clocks. @@ -330,10 +335,7 @@ ebony_setup_arch(void) * --ebs */ ibm440gp_get_clocks(&clocks, 33333333, 6 * 1843200); - __res.bi_opb_busfreq = clocks.opb; - - /* Use IIC in standard (100 kHz) mode */ - __res.bi_iic_fast[0] = __res.bi_iic_fast[1] = 0; + ocp_sys_info.opb_bus_freq = clocks.opb; /* Setup TODC access */ TODC_INIT(TODC_TYPE_DS1743,