PERFORCE change 120132 for review

Marcel Moolenaar marcel at FreeBSD.org
Sun May 20 23:09:55 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=120132

Change 120132 by marcel at marcel_cluster on 2007/05/20 23:08:55

	Juniper's platform branch for MPC85xx and Book-E support.
	Needs work.

Affected files ...

.. //depot/projects/e500/lib/libc/Makefile#2 edit
.. //depot/projects/e500/lib/libc/powerpc/gen/Makefile.inc#2 edit
.. //depot/projects/e500/lib/libc/powerpc/gen/eabi.c#1 add
.. //depot/projects/e500/lib/libc/powerpc/gen/flt_rounds.c#2 edit
.. //depot/projects/e500/lib/libc/powerpc/gen/fpgetmask.c#2 edit
.. //depot/projects/e500/lib/libc/powerpc/gen/fpgetround.c#2 edit
.. //depot/projects/e500/lib/libc/powerpc/gen/fpgetsticky.c#2 edit
.. //depot/projects/e500/lib/libc/powerpc/gen/fpsetmask.c#2 edit
.. //depot/projects/e500/lib/libc/powerpc/gen/fpsetround.c#2 edit
.. //depot/projects/e500/lib/libc/powerpc/softfloat/milieu.h#1 add
.. //depot/projects/e500/lib/libc/powerpc/softfloat/powerpc-gcc.h#1 add
.. //depot/projects/e500/lib/libc/powerpc/softfloat/softfloat.h#1 add
.. //depot/projects/e500/lib/libstand/Makefile#2 edit
.. //depot/projects/e500/lib/msun/powerpc/fenv.h#2 edit
.. //depot/projects/e500/share/mk/bsd.cpu.mk#2 edit
.. //depot/projects/e500/share/sendmail/Makefile#2 edit
.. //depot/projects/e500/sys/boot/Makefile#2 edit
.. //depot/projects/e500/sys/boot/common/bootstrap.h#2 edit
.. //depot/projects/e500/sys/boot/common/dev_net.c#2 edit
.. //depot/projects/e500/sys/boot/common/load_elf.c#2 edit
.. //depot/projects/e500/sys/boot/powerpc/Makefile#2 edit
.. //depot/projects/e500/sys/boot/powerpc/loader/Makefile#2 delete
.. //depot/projects/e500/sys/boot/powerpc/loader/conf.c#2 delete
.. //depot/projects/e500/sys/boot/powerpc/loader/help.ofw#2 delete
.. //depot/projects/e500/sys/boot/powerpc/loader/ldscript.powerpc#2 delete
.. //depot/projects/e500/sys/boot/powerpc/loader/metadata.c#2 delete
.. //depot/projects/e500/sys/boot/powerpc/loader/start.c#2 delete
.. //depot/projects/e500/sys/boot/powerpc/loader/version#2 delete
.. //depot/projects/e500/sys/boot/powerpc/ofw/Makefile#1 add
.. //depot/projects/e500/sys/boot/powerpc/ofw/conf.c#1 add
.. //depot/projects/e500/sys/boot/powerpc/ofw/help.ofw#1 add
.. //depot/projects/e500/sys/boot/powerpc/ofw/ldscript.powerpc#1 add
.. //depot/projects/e500/sys/boot/powerpc/ofw/metadata.c#1 add
.. //depot/projects/e500/sys/boot/powerpc/ofw/start.c#1 add
.. //depot/projects/e500/sys/boot/powerpc/ofw/version#1 add
.. //depot/projects/e500/sys/boot/powerpc/uboot/Makefile#1 add
.. //depot/projects/e500/sys/boot/powerpc/uboot/conf.c#1 add
.. //depot/projects/e500/sys/boot/powerpc/uboot/defs.sh#1 add
.. //depot/projects/e500/sys/boot/powerpc/uboot/gnu/NOTES#1 add
.. //depot/projects/e500/sys/boot/powerpc/uboot/gnu/global_data.h#1 add
.. //depot/projects/e500/sys/boot/powerpc/uboot/gnu/u-boot.h#1 add
.. //depot/projects/e500/sys/boot/powerpc/uboot/help.uboot#1 add
.. //depot/projects/e500/sys/boot/powerpc/uboot/ldscript.powerpc#1 add
.. //depot/projects/e500/sys/boot/powerpc/uboot/metadata.c#1 add
.. //depot/projects/e500/sys/boot/powerpc/uboot/start.S#1 add
.. //depot/projects/e500/sys/boot/powerpc/uboot/version#1 add
.. //depot/projects/e500/sys/boot/uboot/Makefile#1 add
.. //depot/projects/e500/sys/boot/uboot/common/Makefile.inc#1 add
.. //depot/projects/e500/sys/boot/uboot/common/calls.sh#1 add
.. //depot/projects/e500/sys/boot/uboot/common/main.c#1 add
.. //depot/projects/e500/sys/boot/uboot/gnu/NOTES#1 add
.. //depot/projects/e500/sys/boot/uboot/gnu/_exports.h#1 add
.. //depot/projects/e500/sys/boot/uboot/lib/Makefile#1 add
.. //depot/projects/e500/sys/boot/uboot/lib/console.c#1 add
.. //depot/projects/e500/sys/boot/uboot/lib/copy.c#1 add
.. //depot/projects/e500/sys/boot/uboot/lib/devicename.c#1 add
.. //depot/projects/e500/sys/boot/uboot/lib/disk.c#1 add
.. //depot/projects/e500/sys/boot/uboot/lib/elf_freebsd.c#1 add
.. //depot/projects/e500/sys/boot/uboot/lib/libuboot.h#1 add
.. //depot/projects/e500/sys/boot/uboot/lib/module.c#1 add
.. //depot/projects/e500/sys/boot/uboot/lib/net.c#1 add
.. //depot/projects/e500/sys/boot/uboot/lib/reboot.c#1 add
.. //depot/projects/e500/sys/boot/uboot/lib/time.c#1 add
.. //depot/projects/e500/sys/conf/NOTES#2 edit
.. //depot/projects/e500/sys/conf/files#2 edit
.. //depot/projects/e500/sys/conf/files.powerpc#2 edit
.. //depot/projects/e500/sys/conf/ldscript.powerpc#2 edit
.. //depot/projects/e500/sys/conf/options.powerpc#2 edit
.. //depot/projects/e500/sys/dev/ic/quicc.h#1 add
.. //depot/projects/e500/sys/dev/md/md.c#2 edit
.. //depot/projects/e500/sys/dev/mii/ciphy.c#2 edit
.. //depot/projects/e500/sys/dev/mii/miidevs#2 edit
.. //depot/projects/e500/sys/dev/quicc/quicc_bfe.h#1 add
.. //depot/projects/e500/sys/dev/quicc/quicc_bfe_ocp.c#1 add
.. //depot/projects/e500/sys/dev/quicc/quicc_bus.h#1 add
.. //depot/projects/e500/sys/dev/quicc/quicc_core.c#1 add
.. //depot/projects/e500/sys/dev/scc/scc_bfe.h#2 edit
.. //depot/projects/e500/sys/dev/scc/scc_bfe_ebus.c#2 edit
.. //depot/projects/e500/sys/dev/scc/scc_bfe_macio.c#2 edit
.. //depot/projects/e500/sys/dev/scc/scc_bfe_quicc.c#1 add
.. //depot/projects/e500/sys/dev/scc/scc_bfe_sbus.c#2 edit
.. //depot/projects/e500/sys/dev/scc/scc_bus.h#2 edit
.. //depot/projects/e500/sys/dev/scc/scc_core.c#2 edit
.. //depot/projects/e500/sys/dev/scc/scc_dev_quicc.c#1 add
.. //depot/projects/e500/sys/dev/scc/scc_dev_sab82532.c#2 edit
.. //depot/projects/e500/sys/dev/scc/scc_dev_z8530.c#2 edit
.. //depot/projects/e500/sys/dev/scc/scc_if.m#2 edit
.. //depot/projects/e500/sys/dev/tsec/if_tsec.c#1 add
.. //depot/projects/e500/sys/dev/tsec/if_tsec.h#1 add
.. //depot/projects/e500/sys/dev/tsec/if_tsecreg.h#1 add
.. //depot/projects/e500/sys/dev/uart/uart_bus_ocp.c#1 add
.. //depot/projects/e500/sys/dev/uart/uart_bus_scc.c#2 edit
.. //depot/projects/e500/sys/dev/uart/uart_cpu_alpha.c#1 add
.. //depot/projects/e500/sys/dev/uart/uart_cpu_powerpc.c#2 edit
.. //depot/projects/e500/sys/dev/uart/uart_dev_quicc.c#1 add
.. //depot/projects/e500/sys/gdb/gdb_packet.c#2 edit
.. //depot/projects/e500/sys/kern/subr_witness.c#2 edit
.. //depot/projects/e500/sys/powerpc/aim/clock.c#1 add
.. //depot/projects/e500/sys/powerpc/aim/copyinout.c#1 add
.. //depot/projects/e500/sys/powerpc/aim/interrupt.c#1 add
.. //depot/projects/e500/sys/powerpc/aim/locore.S#1 add
.. //depot/projects/e500/sys/powerpc/aim/machdep.c#1 add
.. //depot/projects/e500/sys/powerpc/aim/mem.c#1 add
.. //depot/projects/e500/sys/powerpc/aim/nexus.c#1 add
.. //depot/projects/e500/sys/powerpc/aim/ofw_machdep.c#1 add
.. //depot/projects/e500/sys/powerpc/aim/ofwmagic.S#1 add
.. //depot/projects/e500/sys/powerpc/aim/pmap.c#1 add
.. //depot/projects/e500/sys/powerpc/aim/swtch.S#1 add
.. //depot/projects/e500/sys/powerpc/aim/trap.c#1 add
.. //depot/projects/e500/sys/powerpc/aim/trap_subr.S#1 add
.. //depot/projects/e500/sys/powerpc/aim/uio_machdep.c#1 add
.. //depot/projects/e500/sys/powerpc/aim/uma_machdep.c#1 add
.. //depot/projects/e500/sys/powerpc/aim/vm_machdep.c#1 add
.. //depot/projects/e500/sys/powerpc/booke/clock.c#1 add
.. //depot/projects/e500/sys/powerpc/booke/copyinout.c#1 add
.. //depot/projects/e500/sys/powerpc/booke/interrupt.c#1 add
.. //depot/projects/e500/sys/powerpc/booke/locore.S#1 add
.. //depot/projects/e500/sys/powerpc/booke/machdep.c#1 add
.. //depot/projects/e500/sys/powerpc/booke/mem.c#1 add
.. //depot/projects/e500/sys/powerpc/booke/pmap.c#1 add
.. //depot/projects/e500/sys/powerpc/booke/support.S#1 add
.. //depot/projects/e500/sys/powerpc/booke/swtch.S#1 add
.. //depot/projects/e500/sys/powerpc/booke/trap.c#1 add
.. //depot/projects/e500/sys/powerpc/booke/trap_subr.S#1 add
.. //depot/projects/e500/sys/powerpc/booke/uio_machdep.c#1 add
.. //depot/projects/e500/sys/powerpc/booke/vm_machdep.c#1 add
.. //depot/projects/e500/sys/powerpc/conf/GENERIC#2 edit
.. //depot/projects/e500/sys/powerpc/conf/JUNIPER#1 add
.. //depot/projects/e500/sys/powerpc/conf/MORNINGSTAR#1 add
.. //depot/projects/e500/sys/powerpc/conf/NOTES#2 edit
.. //depot/projects/e500/sys/powerpc/include/_bus.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/bootinfo.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/bus.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/float.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/fpu.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/frame.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/gdb_machdep.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/hid.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/intr_machdep.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/kdb.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/md_var.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/metadata.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/ocpbus.h#1 add
.. //depot/projects/e500/sys/powerpc/include/pcb.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/pcpu.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/pmap.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/psl.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/pte.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/sf_buf.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/spr.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/tlb.h#1 add
.. //depot/projects/e500/sys/powerpc/include/trap.h#2 edit
.. //depot/projects/e500/sys/powerpc/include/trap_aim.h#1 add
.. //depot/projects/e500/sys/powerpc/include/trap_booke.h#1 add
.. //depot/projects/e500/sys/powerpc/include/vmparam.h#2 edit
.. //depot/projects/e500/sys/powerpc/mpc85xx/lbc.c#1 add
.. //depot/projects/e500/sys/powerpc/mpc85xx/lbc.h#1 add
.. //depot/projects/e500/sys/powerpc/mpc85xx/lbc_if.m#1 add
.. //depot/projects/e500/sys/powerpc/mpc85xx/nexus.c#1 add
.. //depot/projects/e500/sys/powerpc/mpc85xx/ocpbus.c#1 add
.. //depot/projects/e500/sys/powerpc/mpc85xx/ocpbus.h#1 add
.. //depot/projects/e500/sys/powerpc/mpc85xx/opic.c#1 add
.. //depot/projects/e500/sys/powerpc/mpc85xx/pci_ocp.c#1 add
.. //depot/projects/e500/sys/powerpc/powerpc/autoconf.c#2 edit
.. //depot/projects/e500/sys/powerpc/powerpc/bus_machdep.c#1 add
.. //depot/projects/e500/sys/powerpc/powerpc/busdma_machdep.c#2 edit
.. //depot/projects/e500/sys/powerpc/powerpc/clock.c#2 delete
.. //depot/projects/e500/sys/powerpc/powerpc/copyinout.c#2 delete
.. //depot/projects/e500/sys/powerpc/powerpc/cpu.c#2 edit
.. //depot/projects/e500/sys/powerpc/powerpc/db_trace.c#2 edit
.. //depot/projects/e500/sys/powerpc/powerpc/gdb_machdep.c#2 edit
.. //depot/projects/e500/sys/powerpc/powerpc/genassym.c#2 edit
.. //depot/projects/e500/sys/powerpc/powerpc/interrupt.c#2 delete
.. //depot/projects/e500/sys/powerpc/powerpc/locore.S#2 delete
.. //depot/projects/e500/sys/powerpc/powerpc/machdep.c#2 delete
.. //depot/projects/e500/sys/powerpc/powerpc/mem.c#2 delete
.. //depot/projects/e500/sys/powerpc/powerpc/nexus.c#2 delete
.. //depot/projects/e500/sys/powerpc/powerpc/ofw_machdep.c#2 delete
.. //depot/projects/e500/sys/powerpc/powerpc/ofwmagic.S#2 delete
.. //depot/projects/e500/sys/powerpc/powerpc/swtch.S#2 delete
.. //depot/projects/e500/sys/powerpc/powerpc/trap.c#2 delete
.. //depot/projects/e500/sys/powerpc/powerpc/trap_subr.S#2 delete
.. //depot/projects/e500/sys/powerpc/powerpc/uio_machdep.c#2 delete
.. //depot/projects/e500/sys/powerpc/powerpc/uma_machdep.c#2 delete
.. //depot/projects/e500/sys/powerpc/powerpc/vm_machdep.c#2 delete

Differences ...

==== //depot/projects/e500/lib/libc/Makefile#2 (text+ko) ====

@@ -56,7 +56,7 @@
 .include "${.CURDIR}/rpc/Makefile.inc"
 .include "${.CURDIR}/uuid/Makefile.inc"
 .include "${.CURDIR}/xdr/Makefile.inc"
-.if ${MACHINE_ARCH} == "arm"
+.if ${MACHINE_ARCH} == "arm" || ${MACHINE_ARCH} == "powerpc"
 .include "${.CURDIR}/softfloat/Makefile.inc"
 .endif
 .if ${MK_NIS} != "no"

==== //depot/projects/e500/lib/libc/powerpc/gen/Makefile.inc#2 (text+ko) ====

@@ -1,6 +1,6 @@
 # $FreeBSD: src/lib/libc/powerpc/gen/Makefile.inc,v 1.8 2005/03/15 15:53:38 das Exp $
 
-SRCS += _ctx_start.S fabs.S flt_rounds.c fpgetmask.c fpgetround.c \
+SRCS += _ctx_start.S eabi.c fabs.S flt_rounds.c fpgetmask.c fpgetround.c \
 	fpgetsticky.c fpsetmask.c fpsetround.c \
 	infinity.c ldexp.c makecontext.c modf.c _setjmp.S \
 	setjmp.S sigsetjmp.S signalcontext.c syncicache.c \

==== //depot/projects/e500/lib/libc/powerpc/gen/flt_rounds.c#2 (text+ko) ====

@@ -37,6 +37,7 @@
 #include <sys/types.h>
 #include <machine/float.h>
 
+#ifndef _SOFT_FLOAT
 static const int map[] = {
 	1,	/* round to nearest */
 	0,	/* round to zero */
@@ -52,3 +53,4 @@
 	__asm__ __volatile("mffs %0" : "=f"(fpscr));
 	return map[(fpscr & 0x03)];
 }
+#endif

==== //depot/projects/e500/lib/libc/powerpc/gen/fpgetmask.c#2 (text+ko) ====

@@ -43,6 +43,7 @@
 #include <sys/types.h>
 #include <ieeefp.h>
 
+#ifndef _SOFT_FLOAT
 fp_except_t
 fpgetmask()
 {
@@ -51,3 +52,4 @@
 	__asm__("mffs %0" : "=f"(fpscr));
 	return ((fp_except_t)((fpscr >> 3) & 0x1f));
 }
+#endif

==== //depot/projects/e500/lib/libc/powerpc/gen/fpgetround.c#2 (text+ko) ====

@@ -43,6 +43,7 @@
 #include <sys/types.h>
 #include <ieeefp.h>
 
+#ifndef _SOFT_FLOAT
 fp_rnd_t
 fpgetround()
 {
@@ -51,3 +52,4 @@
 	__asm__("mffs %0" : "=f"(fpscr));
 	return ((fp_rnd_t)(fpscr & 0x3));
 }
+#endif

==== //depot/projects/e500/lib/libc/powerpc/gen/fpgetsticky.c#2 (text+ko) ====

@@ -45,6 +45,7 @@
 #include <sys/types.h>
 #include <ieeefp.h>
 
+#ifndef _SOFT_FLOAT
 #ifdef __weak_alias
 __weak_alias(fpgetsticky,_fpgetsticky)
 #endif
@@ -57,3 +58,4 @@
 	__asm__ __volatile("mffs %0" : "=f"(fpscr));
 	return ((fp_except_t)((fpscr >> 25) & 0x1f));
 }
+#endif

==== //depot/projects/e500/lib/libc/powerpc/gen/fpsetmask.c#2 (text+ko) ====

@@ -43,6 +43,7 @@
 #include <sys/types.h>
 #include <ieeefp.h>
 
+#ifndef _SOFT_FLOAT
 fp_except_t
 fpsetmask(fp_except_t mask)
 {
@@ -55,3 +56,4 @@
 	__asm__ __volatile("mtfsf 0xff,%0" :: "f"(fpscr));
 	return (old);
 }
+#endif

==== //depot/projects/e500/lib/libc/powerpc/gen/fpsetround.c#2 (text+ko) ====

@@ -43,6 +43,7 @@
 #include <sys/types.h>
 #include <ieeefp.h>
 
+#ifndef _SOFT_FLOAT
 fp_rnd_t
 fpsetround(fp_rnd_t rnd_dir)
 {
@@ -55,3 +56,4 @@
 	__asm__ __volatile("mtfsf 0xff,%0" :: "f"(fpscr));
 	return (old);
 }
+#endif

==== //depot/projects/e500/lib/libstand/Makefile#2 (text+ko) ====

@@ -66,7 +66,7 @@
 .PATH: ${.CURDIR}/../libc/quad
 SRCS+=	ashldi3.c ashrdi3.c
 .PATH: ${.CURDIR}/../libc/powerpc/gen
-SRCS+=	syncicache.c
+SRCS+=	eabi.c syncicache.c
 .endif
 
 # _setjmp/_longjmp

==== //depot/projects/e500/lib/msun/powerpc/fenv.h#2 (text+ko) ====

@@ -82,8 +82,13 @@
 #define	_ENABLE_MASK	((FE_DIVBYZERO | FE_INEXACT | FE_INVALID | \
 			 FE_OVERFLOW | FE_UNDERFLOW) >> _FPUSW_SHIFT)
 
+#ifndef _SOFT_FLOAT
 #define	__mffs(__env)	__asm __volatile("mffs %0" : "=f" (*(__env)))
 #define	__mtfsf(__env)	__asm __volatile("mtfsf 255,%0" : : "f" (__env))
+#else
+#define	__mffs(__env)
+#define	__mtfsf(__env)
+#endif
 
 union __fpscr {
 	double __d;

==== //depot/projects/e500/share/mk/bsd.cpu.mk#2 (text+ko) ====

@@ -109,6 +109,9 @@
 .  else
 _CPUCFLAGS = -mcpu=${CPUTYPE}
 .  endif
+. elif ${MACHINE_ARCH} == "powerpc"
+# XXX: This needs to be configurable. Use TARGET_USE_SOFTFLOAT?
+_CPUCFLAGS += -msoft-float
 . endif
 
 # Set up the list of CPU features based on the CPU type.  This is an

==== //depot/projects/e500/share/sendmail/Makefile#2 (text+ko) ====

@@ -4,8 +4,8 @@
 
 SENDMAIL_DIR=${.CURDIR}/../../contrib/sendmail
 CFDIR=	cf
-CFDIRS!=	(cd ${SENDMAIL_DIR}; find -L ${CFDIR} \( -name CVS -prune \) -o -type d -print)
-CFFILES!=	(cd ${SENDMAIL_DIR}; find -L ${CFDIR} \( -name CVS -prune \) -o -type f -print)
+CFDIRS!=	(cd ${SENDMAIL_DIR}; find -L ${CFDIR} \( -name .svn -prune \) -o -type d -print)
+CFFILES!=	(cd ${SENDMAIL_DIR}; find -L ${CFDIR} \( -name .svn -prune \) -o -type f -print)
 
 DDIR=	${DESTDIR}/usr/share/sendmail
 

==== //depot/projects/e500/sys/boot/Makefile#2 (text+ko) ====

@@ -17,6 +17,11 @@
 SUBDIR+=		ofw
 .endif
 
+# Build U-Boot library.
+.if ${MACHINE_ARCH} == "powerpc"
+SUBDIR+=		uboot
+.endif
+
 # Pick the machine-dependent subdir based on the target architecture.
 SUBDIR+=		${MACHINE:S/amd64/i386/:S/sun4v/sparc64/}
 

==== //depot/projects/e500/sys/boot/common/bootstrap.h#2 (text+ko) ====

@@ -233,13 +233,15 @@
 int  file_addmodule(struct preloaded_file *fp, char *modname, int version,
 	struct kernel_module **newmp);
 
-
 /* MI module loaders */
 #ifdef __elfN
 /* Relocation types. */
 #define ELF_RELOC_REL	1
 #define ELF_RELOC_RELA	2
 
+/* Relocation offset for some architectures */
+extern u_int64_t __elfN(relocation_offset);
+
 struct elf_file;
 typedef Elf_Addr (symaddr_fn)(struct elf_file *ef, Elf_Size symidx);
 

==== //depot/projects/e500/sys/boot/common/dev_net.c#2 (text+ko) ====

@@ -144,7 +144,6 @@
 		return (error);
 	    }
 	}
-	netdev_opens++;
     }
     netdev_opens++;
     f->f_devdata = &netdev_sock;
@@ -245,7 +244,8 @@
 	printf("net_open: bootparam/whoami RPC failed\n");
 	return (EIO);
     }
-    printf("net_open: client name: %s\n", hostname);
+    if (debug)
+        printf("net_open: client name: %s\n", hostname);
 
     /*
      * Ignore the gateway from whoami (unreliable).
@@ -259,10 +259,11 @@
     }
     if (smask) {
 	netmask = smask;
-	printf("net_open: subnet mask: %s\n", intoa(netmask));
+        if (debug)
+            printf("net_open: subnet mask: %s\n", intoa(netmask));
     }
-    if (gateip.s_addr)
-	printf("net_open: net gateway: %s\n", inet_ntoa(gateip));
+    if (gateip.s_addr && debug)
+        printf("net_open: net gateway: %s\n", inet_ntoa(gateip));
 
     /* Get the root server and pathname. */
     if (bp_getfile(sock, "root", &rootip, rootpath)) {
@@ -270,7 +271,7 @@
 	return (EIO);
     }
  exit:
-    /*  
+    /*
      * If present, strip the server's address off of the rootpath
      * before passing it along.  This allows us to be compatible with
      * the kernel's diskless (BOOTP_NFSROOT) booting conventions
@@ -285,8 +286,10 @@
 	    bcopy(&rootpath[i], &temp[0], strlen(&rootpath[i])+1);
 	    bcopy(&temp[0], &rootpath[0], strlen(&rootpath[i])+1);	    
     }
-    printf("net_open: server addr: %s\n", inet_ntoa(rootip));
-    printf("net_open: server path: %s\n", rootpath);	    
+    if (debug) {
+        printf("net_open: server addr: %s\n", inet_ntoa(rootip));
+        printf("net_open: server path: %s\n", rootpath);
+    }
 
     d = socktodesc(sock);
     sprintf(temp, "%6D", d->myea, ":");
@@ -303,5 +306,21 @@
 static void
 net_print(int verbose)
 {
-    return;
+	int i, d, cnt;
+	struct netif_driver *drv;
+
+	cnt = 0;
+	for (d = 0; netif_drivers[d]; d++) {
+		drv = netif_drivers[d];
+
+		for (i = 0; i < drv->netif_nifs; i++) {
+			printf("\t%s%d:", "net", cnt++);
+			if (verbose) {
+				printf(" (%s%d)", drv->netif_bname,
+					drv->netif_ifs[i].dif_unit);
+			}
+		}
+	}
+	printf("\n");
+	return;
 }

==== //depot/projects/e500/sys/boot/common/load_elf.c#2 (text+ko) ====

@@ -83,6 +83,8 @@
 const char	*__elfN(kerneltype) = "elf kernel";
 const char	*__elfN(moduletype) = "elf module";
 
+u_int64_t	__elfN(relocation_offset) = 0;
+
 /*
  * Attempt to load the file (file) as an ELF module.  It will be stored at
  * (dest), and a pointer to a module structure describing the loaded object
@@ -100,7 +102,7 @@
 
     fp = NULL;
     bzero(&ef, sizeof(struct elf_file));
-    
+
     /*
      * Open the image, read and validate the ELF header 
      */
@@ -266,9 +268,33 @@
 #else
 	off = - (off & 0xff000000u);	/* i386 relocates after locore */
 #endif
+#elif defined(__powerpc__)
+	/*
+	 * On the purely virtual memory machines like e500, the kernel is
+	 * linked against its final VA range, which is most often not
+	 * available at the loader stage, but only after kernel initializes
+	 * and completes its VM settings. In such cases we cannot use p_vaddr
+	 * field directly to load ELF segments, but put them at some
+	 * 'load-time' locations.
+	 */
+	if (off & 0xf0000000u) {
+	    off = -(off & 0xf0000000u);
+	    /*
+	     * FIXME allow for specifying the offset via loader env var -
+	     * hard code 0x01000000 for the moment - needs to be on 16MB
+	     * boundary!
+	     */
+	    off += 0x01000000;
+	    ehdr->e_entry += off;
+#ifdef ELF_VERBOSE
+	    printf("Converted entry 0x%08x\n", ehdr->e_entry);
+#endif
+	} else 
+	    off = 0;
 #else
 	off = 0;		/* other archs use direct mapped kernels */
 #endif
+	__elfN(relocation_offset) = off;
     }
     ef->off = off;
 

==== //depot/projects/e500/sys/boot/powerpc/Makefile#2 (text+ko) ====

@@ -1,5 +1,5 @@
 # $FreeBSD: src/sys/boot/powerpc/Makefile,v 1.1 2000/10/16 10:46:10 obrien Exp $
 
-SUBDIR=		loader
+SUBDIR=		ofw uboot
 
 .include <bsd.subdir.mk>

==== //depot/projects/e500/sys/conf/NOTES#2 (text+ko) ====

@@ -1739,6 +1739,11 @@
 # communications controllers.
 device		scc
 
+# Serial Communications Controller
+# Supports the Siemens SAB 82532 and Zilog Z8530 multi-channel
+# communications controllers.
+device		scc
+
 # PCI Universal Communications driver
 # Supports various multi port PCI I/O cards.
 device		puc

==== //depot/projects/e500/sys/conf/files#2 (text+ko) ====

@@ -867,6 +867,7 @@
 dev/puc/puc_pccard.c		optional puc pccard
 dev/puc/puc_pci.c		optional puc pci
 dev/puc/pucdata.c		optional puc pci
+dev/quicc/quicc_core.c		optional quicc
 dev/ral/rt2560.c		optional ral
 dev/ral/rt2661.c		optional ral
 dev/ral/if_ralrate.c		optional ral
@@ -888,8 +889,10 @@
 dev/sbsh/if_sbsh.c		optional sbsh
 dev/scc/scc_if.m		optional	scc
 dev/scc/scc_bfe_ebus.c		optional	scc ebus
+dev/scc/scc_bfe_quicc.c		optional	scc quicc
 dev/scc/scc_bfe_sbus.c		optional	scc fhc | scc sbus
 dev/scc/scc_core.c		optional	scc
+dev/scc/scc_dev_quicc.c		optional	scc
 dev/scc/scc_dev_sab82532.c	optional	scc
 dev/scc/scc_dev_z8530.c		optional	scc
 dev/scd/scd.c			optional scd isa
@@ -1051,6 +1054,7 @@
 dev/uart/uart_core.c		optional	uart
 dev/uart/uart_dbg.c		optional	uart gdb
 dev/uart/uart_dev_ns8250.c	optional	uart uart_ns8250
+dev/uart/uart_dev_quicc.c	optional	uart scc
 dev/uart/uart_dev_sab82532.c	optional	uart uart_sab82532
 dev/uart/uart_dev_sab82532.c	optional	uart scc
 dev/uart/uart_dev_z8530.c	optional	uart uart_z8530

==== //depot/projects/e500/sys/conf/files.powerpc#2 (text+ko) ====

@@ -25,65 +25,26 @@
 	clean		"opt_ah.h"
 #
 
+crypto/blowfish/bf_enc.c	optional	ipsec ipsec_esp
+crypto/des/des_enc.c		optional	ipsec ipsec_esp | netsmb
 dev/fb/fb.c			optional	sc
 dev/hwpmc/hwpmc_powerpc.c	optional	hwpmc
 dev/kbd/kbd.c			optional	sc
+dev/ofw/openfirm.c		optional	aim
+dev/ofw/ofw_bus_if.m		optional	aim
+dev/ofw/ofw_bus_subr.c		optional	aim
+dev/ofw/ofw_console.c		optional	aim
+dev/ofw/ofw_disk.c		optional	ofwd aim
+dev/powermac_nvram/powermac_nvram.c optional	powermac_nvram powermac
+dev/quicc/quicc_bfe_ocp.c	optional	quicc mpc85xx
+dev/scc/scc_bfe_macio.c		optional	scc powermac
 dev/syscons/scgfbrndr.c		optional	sc
 dev/syscons/scterm-sc.c		optional	sc
 dev/syscons/scvtb.c		optional	sc
+dev/tsec/if_tsec.c		optional	tsec
+dev/uart/uart_bus_ocp.c		optional	uart mpc85xx
 dev/uart/uart_cpu_powerpc.c	optional	uart
 kern/syscalls.c			optional	ktr
-powerpc/powerpc/atomic.S	standard
-powerpc/powerpc/autoconf.c	standard
-powerpc/powerpc/bcopy.c		standard
-powerpc/powerpc/busdma_machdep.c standard
-powerpc/powerpc/clock.c		standard
-powerpc/powerpc/copyinout.c	standard
-powerpc/powerpc/copystr.c	standard
-powerpc/powerpc/cpu.c		standard
-powerpc/powerpc/elf_machdep.c	standard
-powerpc/powerpc/fpu.c		standard
-powerpc/powerpc/fuswintr.c	standard
-powerpc/powerpc/gdb_machdep.c	optional	gdb
-powerpc/powerpc/in_cksum.c	optional	inet
-powerpc/powerpc/interrupt.c	standard
-powerpc/powerpc/intr_machdep.c	standard
-powerpc/powerpc/locore.S	standard	no-obj
-powerpc/powerpc/machdep.c	standard
-powerpc/powerpc/mmu_if.m	standard
-powerpc/powerpc/mmu_oea.c	standard
-powerpc/powerpc/nexus.c		standard
-powerpc/powerpc/ofwmagic.S	standard
-powerpc/powerpc/ofw_machdep.c	standard
-powerpc/powerpc/openpic.c	standard
-powerpc/powerpc/pic_if.m	standard
-powerpc/powerpc/pmap_dispatch.c	standard
-powerpc/powerpc/sc_machdep.c	optional	sc
-powerpc/powerpc/setjmp.S	standard
-powerpc/powerpc/sigcode.S	standard
-powerpc/powerpc/suswintr.c	standard
-powerpc/powerpc/syncicache.c	standard
-powerpc/powerpc/sys_machdep.c	standard
-powerpc/powerpc/swtch.S		standard
-powerpc/powerpc/trap.c		standard
-powerpc/powerpc/uio_machdep.c	standard
-powerpc/powerpc/uma_machdep.c	standard
-powerpc/powerpc/vm_machdep.c	standard
-
-powerpc/powerpc/db_disasm.c	optional	ddb
-powerpc/powerpc/db_interface.c	optional	ddb
-powerpc/powerpc/db_hwwatch.c	optional	ddb
-powerpc/powerpc/db_trace.c	optional	ddb
-
-crypto/blowfish/bf_enc.c	optional	ipsec ipsec_esp
-crypto/des/des_enc.c		optional	ipsec ipsec_esp | netsmb
-
-dev/ofw/openfirm.c		standard
-dev/ofw/ofw_bus_if.m		standard
-dev/ofw/ofw_bus_subr.c		standard
-dev/ofw/ofw_console.c		standard
-dev/ofw/ofw_disk.c		optional	ofwd
-
 libkern/ashldi3.c		standard
 libkern/ashrdi3.c		standard
 libkern/bcmp.c			standard
@@ -99,14 +60,39 @@
 libkern/ucmpdi2.c		standard
 libkern/udivdi3.c		standard
 libkern/umoddi3.c		standard
-
-powerpc/powerpc/mem.c		optional mem
-powerpc/powerpc/mp_machdep.c	optional smp
-
-powerpc/ofw/ofw_pci.c		optional	pci
-powerpc/ofw/ofw_pcib_pci.c	optional	pci
-powerpc/ofw/ofw_syscons.c	optional	sc
-
+powerpc/aim/clock.c		optional	aim
+powerpc/aim/copyinout.c		optional	aim
+powerpc/aim/interrupt.c		optional	aim
+powerpc/aim/locore.S		optional	aim no-obj
+powerpc/aim/machdep.c		optional	aim
+powerpc/aim/mem.c		optional	mem aim
+powerpc/aim/nexus.c		optional	aim
+powerpc/aim/ofw_machdep.c	optional	aim
+powerpc/aim/ofwmagic.S		optional	aim
+powerpc/aim/swtch.S		optional	aim
+powerpc/aim/trap.c		optional	aim
+powerpc/aim/uio_machdep.c	optional	aim
+powerpc/aim/uma_machdep.c	optional	aim
+powerpc/aim/vm_machdep.c	optional	aim
+powerpc/booke/clock.c		optional	e500
+powerpc/booke/copyinout.c	optional	e500
+powerpc/booke/interrupt.c	optional	e500
+powerpc/booke/locore.S		optional	e500 no-obj
+powerpc/booke/machdep.c		optional	e500
+powerpc/booke/mem.c		optional	mem e500
+powerpc/booke/pmap.c		optional	e500
+powerpc/booke/support.S		optional	e500
+powerpc/booke/swtch.S		optional	e500
+powerpc/booke/trap.c		optional	e500
+powerpc/booke/uio_machdep.c	optional	e500
+powerpc/booke/vm_machdep.c	optional	e500
+powerpc/mpc85xx/nexus.c		optional	mpc85xx
+powerpc/mpc85xx/ocpbus.c	optional	mpc85xx
+powerpc/mpc85xx/opic.c		optional	mpc85xx
+powerpc/mpc85xx/pci_ocp.c	optional	mpc85xx pci
+powerpc/ofw/ofw_pci.c		optional	pci aim
+powerpc/ofw/ofw_pcib_pci.c	optional	pci aim
+powerpc/ofw/ofw_syscons.c	optional	sc aim
 powerpc/powermac/ata_kauai.c	optional	powermac ata
 powerpc/powermac/ata_macio.c	optional	powermac ata
 powerpc/powermac/grackle.c	optional	powermac pci
@@ -115,12 +101,37 @@
 powerpc/powermac/openpic_macio.c optional	powermac pci
 powerpc/powermac/pswitch.c	optional	powermac pswitch
 powerpc/powermac/uninorth.c	optional	powermac pci
-
+powerpc/powerpc/atomic.S	standard
+powerpc/powerpc/autoconf.c	standard
+powerpc/powerpc/bcopy.c		standard
+powerpc/powerpc/bus_machdep.c	standard
+powerpc/powerpc/busdma_machdep.c standard
+powerpc/powerpc/copystr.c	standard
+powerpc/powerpc/cpu.c		standard
+powerpc/powerpc/db_disasm.c	optional	ddb
+powerpc/powerpc/db_interface.c	optional	ddb
+powerpc/powerpc/db_hwwatch.c	optional	ddb
+powerpc/powerpc/db_memrw.c	optional	ddb
+powerpc/powerpc/db_trace.c	optional	ddb
+powerpc/powerpc/elf_machdep.c	standard
+powerpc/powerpc/fpu.c		optional	aim
+powerpc/powerpc/fuswintr.c	standard
+powerpc/powerpc/gdb_machdep.c	optional	gdb
+powerpc/powerpc/in_cksum.c	optional	inet
+powerpc/powerpc/intr_machdep.c	standard
+powerpc/powerpc/mmu_if.m	optional	aim
+powerpc/powerpc/mmu_oea.c	optional	aim
+powerpc/powerpc/mp_machdep.c	optional	smp aim
+powerpc/powerpc/openpic.c	standard
+powerpc/powerpc/pic_if.m	standard
+powerpc/powerpc/pmap_dispatch.c	optional	aim
+powerpc/powerpc/sc_machdep.c	optional	sc
+powerpc/powerpc/setjmp.S	standard
+powerpc/powerpc/sigcode.S	standard
+powerpc/powerpc/suswintr.c	standard
+powerpc/powerpc/syncicache.c	standard
+powerpc/powerpc/sys_machdep.c	standard
 powerpc/psim/iobus.c 		optional psim
 powerpc/psim/ata_iobus.c	optional ata psim
 powerpc/psim/openpic_iobus.c	optional psim
 powerpc/psim/uart_iobus.c	optional uart psim
-
-dev/scc/scc_bfe_macio.c		optional	scc powermac
-
-dev/powermac_nvram/powermac_nvram.c optional	powermac powermac_nvram

==== //depot/projects/e500/sys/conf/ldscript.powerpc#2 (text+ko) ====

@@ -10,7 +10,22 @@
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = 0x00100000 + SIZEOF_HEADERS;
+
+  . = kernbase + SIZEOF_HEADERS;
+
+  /********************************************************/
+  /* FIXME: temporary location of text segment */
+  .text      :
+  {
+    *(.text)
+    /* .gnu.warning sections are handled specially by elf32.em.  */
+    *(.gnu.warning)
+    *(.gnu.linkonce.t*)
+  } =0
+  _etext = .;
+  PROVIDE (etext = .);
+  /********************************************************/
+
   .interp     : { *(.interp) 	}
   .hash          : { *(.hash)		}
   .dynsym        : { *(.dynsym)		}
@@ -37,15 +52,8 @@
   .rela.sbss     : { *(.rela.sbss)		}
   .rela.sdata2   : { *(.rela.sdata2)		}
   .rela.sbss2    : { *(.rela.sbss2)		}
-  .text      :
-  {
-    *(.text)
-    /* .gnu.warning sections are handled specially by elf32.em.  */
-    *(.gnu.warning)
-    *(.gnu.linkonce.t*)
-  } =0
-  _etext = .;
-  PROVIDE (etext = .);
+  
+  
   .init      : { *(.init)    } =0
   .fini      : { *(.fini)    } =0
   .rodata    : { *(.rodata) *(.gnu.linkonce.r*) }

==== //depot/projects/e500/sys/conf/options.powerpc#2 (text+ko) ====

@@ -1,7 +1,8 @@
 # $FreeBSD: src/sys/conf/options.powerpc,v 1.9 2004/06/25 13:44:34 grehan Exp $
 # Options specific to the powerpc platform kernels
 
-OEA			opt_global.h
+AIM			opt_global.h
+E500			opt_global.h
 IPKDB
 
 GFB_DEBUG		opt_gfb.h
@@ -10,6 +11,7 @@
 
 POWERMAC		opt_platform.h
 PSIM
+MPC85xx
 
 SC_OFWFB		opt_ofwfb.h
 

==== //depot/projects/e500/sys/dev/md/md.c#2 (text+ko) ====

@@ -1179,7 +1179,7 @@
 	sc->start = mdstart_preload;
 #ifdef MD_ROOT
 	if (sc->unit == 0)
-		rootdevnames[0] = "ufs:/dev/md0";
+		rootdevnames[0] = "cd9660:/dev/md0";
 #endif
 	mdinit(sc);
 }
@@ -1215,6 +1215,7 @@
 		ptr = *(u_char **)c;
 		c = preload_search_info(mod, MODINFO_SIZE);
 		len = *(size_t *)c;
+		ptr = pmap_mapdev((uintptr_t)ptr, len);
 		printf("%s%d: Preloaded image <%s> %d bytes at %p\n",
 		    MD_NAME, mdunits, name, len, ptr);
 		sx_xlock(&md_sx);

==== //depot/projects/e500/sys/dev/mii/ciphy.c#2 (text+ko) ====

@@ -34,7 +34,7 @@
 __FBSDID("$FreeBSD: src/sys/dev/mii/ciphy.c,v 1.8 2006/12/02 19:36:25 marius Exp $");
 
 /*
- * Driver for the Cicada CS8201 10/100/1000 copper PHY.
+ * Driver for the Cicada CS8201/CS8204 10/100/1000 copper PHY.
  */
 
 #include <sys/param.h>
@@ -91,6 +91,7 @@
 	MII_PHY_DESC(CICADA, CS8201),
 	MII_PHY_DESC(CICADA, CS8201A),
 	MII_PHY_DESC(CICADA, CS8201B),
+	MII_PHY_DESC(CICADA, CS8204),
 	MII_PHY_END
 };
 
@@ -360,6 +361,7 @@
 	speed = status & CIPHY_AUXCSR_SPEED;
 
 	switch (model) {
+	case MII_MODEL_CICADA_CS8204:
 	case MII_MODEL_CICADA_CS8201:
 
 		/* Turn off "aux mode" (whatever that means) */

==== //depot/projects/e500/sys/dev/mii/miidevs#2 (text+ko) ====

@@ -136,6 +136,7 @@
 
 /* Cicada Semiconductor PHYs (now owned by Vitesse?) */
 model CICADA CS8201		0x0001 Cicada CS8201 10/100/1000TX PHY
+model CICADA CS8204		0x0004 Cicada CS8204 10/100/1000TX PHY
 model CICADA CS8201A		0x0020 Cicada CS8201 10/100/1000TX PHY
 model CICADA CS8201B		0x0021 Cicada CS8201 10/100/1000TX PHY
 
@@ -206,6 +207,20 @@
 model MARVELL E1111		0x000c Marvell 88E1111 Gigabit PHY
 model MARVELL E1116		0x0021 Marvell 88E1116 Gigabit PHY
 model MARVELL E1118		0x0022 Marvell 88E1118 Gigabit PHY
+model MARVELL E1000_3		0x0003 Marvell 88E1000 Gigabit PHY
+model xxMARVELL E1011		0x0002 Marvell 88E1011 Gigabit PHY
+model xxMARVELL E1000_3		0x0003 Marvell 88E1000 Gigabit PHY
+model xxMARVELL E1000_5		0x0005 Marvell 88E1000 Gigabit PHY
+model xxMARVELL E1111		0x000c Marvell 88E1111 Gigabit PHY
+model MARVELL E1000S		0x0004 Marvell 88E1000S Gigabit PHY
+model MARVELL E1000_5		0x0005 Marvell 88E1000 Gigabit PHY
+model MARVELL E1000_6		0x0006 Marvell 88E1000 Gigabit PHY
+model MARVELL E3082		0x0008 Marvell 88E3082 10/100 Fast Ethernet PHY
+model MARVELL E1112		0x0009 Marvell 88E1112 Gigabit PHY
+model MARVELL E1149		0x000b Marvell 88E1149 Gigabit PHY
+model MARVELL E1111		0x000c Marvell 88E1111 Gigabit PHY
+model MARVELL E1116		0x0021 Marvell 88E1116 Gigabit PHY
+model MARVELL E1118		0x0022 Marvell 88E1118 Gigabit PHY
 model xxMARVELL E1000		0x0005 Marvell 88E1000 Gigabit PHY
 model xxMARVELL E1011		0x0002 Marvell 88E1011 Gigabit PHY
 model xxMARVELL E1000_3		0x0003 Marvell 88E1000 Gigabit PHY

==== //depot/projects/e500/sys/dev/scc/scc_bfe.h#2 (text) ====

@@ -76,7 +76,7 @@
 	int		m_probed:1;
 	int		m_sysdev:1;
 
-	driver_filter_t	*ih;
+	driver_intr_t	*ih;
 	serdev_intr_t	*ih_src[SCC_ISRCCNT];
 	void		*ih_arg;
 };
@@ -110,6 +110,7 @@
 	int		cl_range;
 };
 
+extern struct scc_class scc_quicc_class;
 extern struct scc_class scc_sab82532_class;
 extern struct scc_class scc_z8530_class;
 
@@ -139,7 +140,7 @@
 
 int scc_bfe_attach(device_t dev);
 int scc_bfe_detach(device_t dev);
-int scc_bfe_probe(device_t dev, u_int regshft, u_int rclk, u_int rid);
+int scc_bfe_probe(device_t dev, u_int, u_int);
 
 struct resource *scc_bus_alloc_resource(device_t, device_t, int, int *,
     u_long, u_long, u_long, u_int);
@@ -147,7 +148,7 @@
 int scc_bus_read_ivar(device_t, device_t, int, uintptr_t *);
 int scc_bus_release_resource(device_t, device_t, int, int, struct resource *);
 int scc_bus_setup_intr(device_t, device_t, struct resource *, int,
-    driver_filter_t *, void (*)(void *), void *, void **);
+    void (*)(void *), void *, void **);
 int scc_bus_teardown_intr(device_t, device_t, struct resource *, void *);
 
 #endif /* _DEV_SCC_BFE_H_ */

==== //depot/projects/e500/sys/dev/scc/scc_bfe_ebus.c#2 (text) ====

@@ -59,7 +59,7 @@
 	if (!strcmp(nm, "se") || !strcmp(cmpt, "sab82532")) {
 		device_set_desc(dev, "Siemens SAB 82532 dual channel SCC");
 		sc->sc_class = &scc_sab82532_class;
-		return (scc_bfe_probe(dev, EBUS_REGSHFT, EBUS_RCLK, 0));
+		return (scc_bfe_probe(dev, EBUS_REGSHFT, EBUS_RCLK));
 	}
 	return (ENXIO);
 }

==== //depot/projects/e500/sys/dev/scc/scc_bfe_macio.c#2 (text) ====

@@ -56,7 +56,7 @@
 	if (!strcmp(nm, "escc")) {
 		device_set_desc(dev, "Zilog Z8530 dual channel SCC");
 		sc->sc_class = &scc_z8530_class;
-		return (scc_bfe_probe(dev, MACIO_REGSHFT, MACIO_RCLK, 0));
+		return (scc_bfe_probe(dev, MACIO_REGSHFT, MACIO_RCLK));
 	}
 	return (ENXIO);
 }

==== //depot/projects/e500/sys/dev/scc/scc_bfe_sbus.c#2 (text) ====

@@ -56,7 +56,7 @@
 	if (!strcmp(nm, "zs")) {
 		device_set_desc(dev, "Zilog Z8530 dual channel SCC");
 		sc->sc_class = &scc_z8530_class;
-		return (scc_bfe_probe(dev, SBUS_REGSHFT, SBUS_RCLK, 0));
+		return (scc_bfe_probe(dev, SBUS_REGSHFT, SBUS_RCLK));
 	}
 	return (ENXIO);
 }

==== //depot/projects/e500/sys/dev/scc/scc_bus.h#2 (text) ====

@@ -42,6 +42,7 @@
 /* Hardware class -- the SCC type. */
 #define	SCC_CLASS_SAB82532	0
 #define	SCC_CLASS_Z8530		1
+#define	SCC_CLASS_QUICC		2
 
 /* The possible modes supported by the SCC. */
 #define	SCC_MODE_ASYNC		0x01

==== //depot/projects/e500/sys/dev/scc/scc_core.c#2 (text) ====

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list