Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/powerpc Remove openbios dependent code from ibm4xx/...



details:   https://anonhg.NetBSD.org/src/rev/d9cd1f7c06b4
branches:  trunk
changeset: 573023:d9cd1f7c06b4
user:      shige <shige%NetBSD.org@localhost>
date:      Mon Jan 17 17:19:36 2005 +0000

description:
Remove openbios dependent code from ibm4xx/ibm40x dependent module.

diffstat:

 sys/arch/powerpc/ibm4xx/ibm40x_machdep.c  |  38 ++++--------------------------
 sys/arch/powerpc/ibm4xx/ibm4xx_autoconf.c |  36 +++++++++++++++++++++--------
 sys/arch/powerpc/include/ibm4xx/cpu.h     |  25 ++++++++++++--------
 3 files changed, 47 insertions(+), 52 deletions(-)

diffs (197 lines):

diff -r 8b122ba059d6 -r d9cd1f7c06b4 sys/arch/powerpc/ibm4xx/ibm40x_machdep.c
--- a/sys/arch/powerpc/ibm4xx/ibm40x_machdep.c  Mon Jan 17 17:14:56 2005 +0000
+++ b/sys/arch/powerpc/ibm4xx/ibm40x_machdep.c  Mon Jan 17 17:19:36 2005 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ibm40x_machdep.c,v 1.2 2003/12/30 12:33:19 pk Exp $    */
+/*     $NetBSD: ibm40x_machdep.c,v 1.3 2005/01/17 17:19:36 shige Exp $ */
 
 /*
  * Copyright 2001, 2002 Wasabi Systems, Inc.
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ibm40x_machdep.c,v 1.2 2003/12/30 12:33:19 pk Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ibm40x_machdep.c,v 1.3 2005/01/17 17:19:36 shige Exp $");
 
 #include "opt_compat_netbsd.h"
 #include "opt_ddb.h"
@@ -130,9 +130,6 @@
 struct mem_region physmemr[MEMREGIONS];        /* Hard code memory */
 struct mem_region availmemr[MEMREGIONS];/* Who's supposed to set these up? */
 
-struct board_cfg_data board_data;
-struct propdb *board_info = NULL;
-
 extern struct user *proc0paddr;
 
 paddr_t msgbuf_paddr;
@@ -140,21 +137,19 @@
 
 
 void
-ibm4xx_init_board_data(void *info_block, u_int startkernel)
+ibm40x_memsize_init(u_int memsize, u_int startkernel)
 {
+
         /* Initialize cache info for memcpy, etc. */
         cpu_probe_cache();
 
-       /* Save info block */
-       memcpy(&board_data, info_block, sizeof(board_data));
-
        memset(physmemr, 0, sizeof physmemr);
        memset(availmemr, 0, sizeof availmemr);
        physmemr[0].start = 0;
-       physmemr[0].size = board_data.mem_size & ~PGOFSET;
+       physmemr[0].size = memsize & ~PGOFSET;
        /* Lower memory reserved by eval board BIOS */
        availmemr[0].start = startkernel; 
-       availmemr[0].size = board_data.mem_size - availmemr[0].start;
+       availmemr[0].size = memsize - availmemr[0].start;
 }
 
 void
@@ -374,27 +369,6 @@
        printf("avail memory = %s\n", pbuf);
 }
 
-void
-ibm4xx_setup_propdb(void)
-{
-       /*
-        * Set up the board properties database.
-        */
-       if (!(board_info = propdb_create("board info")))
-               panic("Cannot create board info database");
-
-       if (board_info_set("mem-size", &board_data.mem_size, 
-               sizeof(&board_data.mem_size), PROP_CONST, 0))
-               panic("setting mem-size");
-       if (board_info_set("sip0-mac-addr", &board_data.mac_address_pci, 
-               sizeof(&board_data.mac_address_pci), PROP_CONST, 0))
-               panic("setting sip0-mac-addr");
-       if (board_info_set("processor-frequency", &board_data.processor_speed, 
-               sizeof(&board_data.processor_speed), PROP_CONST, 0))
-               panic("setting processor-frequency");
-}
-
-
 /*
  * Crash dump handling.
  */
diff -r 8b122ba059d6 -r d9cd1f7c06b4 sys/arch/powerpc/ibm4xx/ibm4xx_autoconf.c
--- a/sys/arch/powerpc/ibm4xx/ibm4xx_autoconf.c Mon Jan 17 17:14:56 2005 +0000
+++ b/sys/arch/powerpc/ibm4xx/ibm4xx_autoconf.c Mon Jan 17 17:19:36 2005 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ibm4xx_autoconf.c,v 1.1 2005/01/13 17:12:28 shige Exp $        */
+/*     $NetBSD: ibm4xx_autoconf.c,v 1.2 2005/01/17 17:19:36 shige Exp $        */
 /*     Original Tag: ibm4xxgpx_autoconf.c,v 1.2 2004/10/23 17:12:22 thorpej Exp $      */
 
 /*
@@ -33,13 +33,16 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ibm4xx_autoconf.c,v 1.1 2005/01/13 17:12:28 shige Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ibm4xx_autoconf.c,v 1.2 2005/01/17 17:19:36 shige Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
 #include <sys/device.h>
 #include <sys/systm.h>
 
+#include <net/if.h>
+#include <net/if_ether.h>
+
 #include <machine/cpu.h>
 
 void
@@ -50,14 +53,27 @@
        if (strcmp(dev->dv_cfdata->cf_name, "emac") == 0 &&
            strcmp(parent->dv_cfdata->cf_name, "opb") == 0) {
                /* Set the mac-addr of the on-chip Ethernet. */
-               /* XXX 405GP/405GPr only has one; what about CPUs with two? */
-               /* XXX board_data is for IBM ROM Monitor 1.x with 405GP */
-               if (prop_set(dev_propdb, dev, "mac-addr",
-                            &board_data.mac_address_local,
-                            sizeof(board_data.mac_address_local),
-                            PROP_CONST, 0) != 0)
-                       printf("WARNING: unable to set mac-addr "
-                           "property for %s\n", dev->dv_xname);
+
+               if (dev->dv_unit < 10) {
+                       uint8_t enaddr[ETHER_ADDR_LEN];
+                       unsigned char prop_name[15];
+
+                       snprintf(prop_name, sizeof(prop_name),
+                               "emac%d-mac-addr", dev->dv_unit);
+
+                       if (board_info_get(prop_name,
+                               enaddr, sizeof(enaddr)) == -1) {
+                               printf("WARNING: unable to get mac-addr "
+                                   "property from board properties\n");
+                               return;
+                       }
+
+                       if (prop_set(dev_propdb, dev, "mac-addr",
+                                    enaddr, sizeof(enaddr),
+                                    PROP_ARRAY, 0) != 0)
+                               printf("WARNING: unable to set mac-addr "
+                                   "property for %s\n", dev->dv_xname);
+               }
                return;
        }
 }
diff -r 8b122ba059d6 -r d9cd1f7c06b4 sys/arch/powerpc/include/ibm4xx/cpu.h
--- a/sys/arch/powerpc/include/ibm4xx/cpu.h     Mon Jan 17 17:14:56 2005 +0000
+++ b/sys/arch/powerpc/include/ibm4xx/cpu.h     Mon Jan 17 17:19:36 2005 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: cpu.h,v 1.7 2005/01/13 17:16:33 shige Exp $    */
+/*     $NetBSD: cpu.h,v 1.8 2005/01/17 17:19:36 shige Exp $    */
 
 /*
  * Copyright 2002 Wasabi Systems, Inc.
@@ -60,7 +60,8 @@
 #if defined(_KERNEL)
 extern char bootpath[];
 
-void ibm4xx_init_board_data(void *, u_int);
+/* export from ibm4xx/ibm40x_machdep.c */
+void ibm40x_memsize_init(u_int, u_int);
 void ibm4xx_init(void (*)(void));
 void ibm4xx_startup(const char *);
 void ibm4xx_setup_propdb(void);
@@ -82,6 +83,17 @@
 
 #include <powerpc/cpu.h>
 
+/* Board info database stuff */
+extern struct propdb *board_info;
+
+extern void board_info_init(void);
+#define        board_info_set(n, v, l, f, w)   \
+       prop_set(board_info, 0, (n), (v), (l), (f), (w))
+#define        board_info_get(n, v, l)         \
+       prop_get(board_info, 0, (n), (v), (l), NULL)
+
+/*****************************************************************************/
+/* THIS CODE IS OBSOLETE. WILL BE REMOVED */
 /*
  * Board configuration structure from the OpenBIOS.
  */
@@ -97,13 +109,6 @@
 };
 
 extern struct board_cfg_data board_data;
-
-/* Board info database stuff */
-extern struct propdb *board_info;
-
-#define        board_info_set(n, v, l, f, w)   \
-       prop_set(board_info, 0, (n), (v), (l), (f), (w))
-#define        board_info_get(n, v, l)         \
-       prop_get(board_info, 0, (n), (v), (l), NULL)
+/*****************************************************************************/
 
 #endif /* _IBM4XX_CPU_H_ */



Home | Main Index | Thread Index | Old Index