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