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