Module Name: src Committed By: riz Date: Mon Apr 9 18:08:32 UTC 2012
Modified Files: src/sys/arch/x68k/stand [netbsd-6]: Makefile src/sys/arch/x68k/stand/mboot [netbsd-6]: Makefile mboot.c Log Message: Pull up following revision(s) (requested by isaki in ticket #171): sys/arch/x68k/stand/mboot/mboot.c: revision 1.10 sys/arch/x68k/stand/mboot/Makefile: revision 1.16 sys/arch/x68k/stand/Makefile: revision 1.9 Use common library libiocs.a. suggested by tsutsui@. o Originally, mboot had an IOCS_S_READEXT() inline function but its expansion corrupted (from somewhere after branching netbsd-5). This solves PR#46293 by using the common library. This problem was reported by Y.Sugahara at NetBSD booth at Open Source Conference (OSC) 2012 Ehime in March. o As a side effect, it also correct the different problem that IOCS_S_READ() calls _S_READEXT not _S_READ. Should be pulled up to netbsd-6. mboot now depends on libiocs. noticed by tsutsui@. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.8.162.1 src/sys/arch/x68k/stand/Makefile cvs rdiff -u -r1.15 -r1.15.20.1 src/sys/arch/x68k/stand/mboot/Makefile cvs rdiff -u -r1.9 -r1.9.8.1 src/sys/arch/x68k/stand/mboot/mboot.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/x68k/stand/Makefile diff -u src/sys/arch/x68k/stand/Makefile:1.8 src/sys/arch/x68k/stand/Makefile:1.8.162.1 --- src/sys/arch/x68k/stand/Makefile:1.8 Sun Jan 27 01:07:00 2002 +++ src/sys/arch/x68k/stand/Makefile Mon Apr 9 18:08:32 2012 @@ -1,6 +1,6 @@ -# $NetBSD: Makefile,v 1.8 2002/01/27 01:07:00 minoura Exp $ +# $NetBSD: Makefile,v 1.8.162.1 2012/04/09 18:08:32 riz Exp $ -SUBDIR= mboot newdisk aout2hux libdos libiocs .WAIT loadbsd # common -SUBDIR+= libsa .WAIT boot boot_ufs boot_ustar installboot +SUBDIR= newdisk aout2hux libdos libiocs .WAIT loadbsd # common +SUBDIR+= libsa .WAIT mboot boot boot_ufs boot_ustar installboot .include <bsd.subdir.mk> Index: src/sys/arch/x68k/stand/mboot/Makefile diff -u src/sys/arch/x68k/stand/mboot/Makefile:1.15 src/sys/arch/x68k/stand/mboot/Makefile:1.15.20.1 --- src/sys/arch/x68k/stand/mboot/Makefile:1.15 Mon Jan 12 07:56:31 2009 +++ src/sys/arch/x68k/stand/mboot/Makefile Mon Apr 9 18:08:31 2012 @@ -1,4 +1,7 @@ -# $NetBSD: Makefile,v 1.15 2009/01/12 07:56:31 tsutsui Exp $ +# $NetBSD: Makefile,v 1.15.20.1 2012/04/09 18:08:31 riz Exp $ + +NOMAN= # defined +.include <bsd.own.mk> BOOT= mboot VERSION= 0.1 @@ -10,7 +13,6 @@ TEXTSZ= 1024 PROG= ${BOOT} BINDIR= /usr/mdec BINMODE= 444 -NOMAN= # defined STRIPFLAG= STRIP?= /usr/bin/strip @@ -20,17 +22,19 @@ KERN!= cd ${.CURDIR}/../../../..; pwd CPPFLAGS+= -D_STANDALONE CPPFLAGS+= -nostdinc -I${KERN} -I${.CURDIR} -I. -#CPPFLAGS+= -I${.CURDIR}/../libiocs +CPPFLAGS+= -I${.CURDIR}/../libiocs CPPFLAGS+= -DTEXTADDR="0x${TEXT}" CPPFLAGS+= -DBOOT=\"${BOOT}\" -DBOOT_VERS=\"${VERSION}\" CFLAGS= -Wno-main -Os -m68000 LINKFLAGS= -N -static -Ttext ${TEXT} +LIBIOCS!= cd ${.CURDIR}/../libiocs && ${PRINTOBJDIR} +LDLIBS+= ${LIBIOCS}/libiocs.a .include "../Makefile.booters" realall: ${PROG} -${BOOT}: ${OBJS} +${BOOT}: ${OBJS} ${LDLIBS} ${_MKTARGET_LINK} ${LD} ${LINKFLAGS} -o ${BOOT}.x ${OBJS} ${LDLIBS} # ${STRIP} ${BOOT}.x Index: src/sys/arch/x68k/stand/mboot/mboot.c diff -u src/sys/arch/x68k/stand/mboot/mboot.c:1.9 src/sys/arch/x68k/stand/mboot/mboot.c:1.9.8.1 --- src/sys/arch/x68k/stand/mboot/mboot.c:1.9 Sat Oct 1 15:59:01 2011 +++ src/sys/arch/x68k/stand/mboot/mboot.c Mon Apr 9 18:08:31 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: mboot.c,v 1.9 2011/10/01 15:59:01 chs Exp $ */ +/* $NetBSD: mboot.c,v 1.9.8.1 2012/04/09 18:08:31 riz Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -32,105 +32,14 @@ #include <sys/types.h> #include <machine/disklabel.h> -int bootmain(int); - -struct iocs_readcap { - unsigned long block; - unsigned long size; -}; -static inline int -IOCS_BITSNS (int row) -{ - register unsigned int reg_d0 __asm ("%d0"); - - __asm volatile ("movel %1,%%d1\n\t" - "movel #0x04,%0\n\t" - "trap #15" - : "=d" (reg_d0) - : "ri" ((int) row) - : "%d1"); - - return reg_d0; -} -static inline void -IOCS_B_PRINT (const char *str) -{ - __asm volatile ("moval %0,%%a1\n\t" - "movel #0x21,%%d0\n\t" - "trap #15\n\t" - : - : "a" ((int) str) - : "%a1", "%d0"); - return; -} -static inline int -IOCS_S_READCAP (int id, struct iocs_readcap *cap) -{ - register int reg_d0 __asm ("%d0"); +#include "iocs.h" - __asm volatile ("moveml %%d4,%%sp@-\n\t" - "movel %2,%%d4\n\t" - "moval %3,%%a1\n\t" - "movel #0x25,%%d1\n\t" - "movel #0xf5,%%d0\n\t" - "trap #15\n\t" - "moveml %%sp@+,%%d4" - : "=d" (reg_d0), "=m" (*cap) - : "ri" (id), "g" ((int) cap) - : "%d1", "%a1"); - - return reg_d0; -} -static inline int -IOCS_S_READ (int pos, int blk, int id, int size, void *buf) -{ - register int reg_d0 __asm ("%d0"); - - __asm volatile ("moveml %%d3-%%d5,%%sp@-\n\t" - "movel %2,%%d2\n\t" - "movel %3,%%d3\n\t" - "movel %4,%%d4\n\t" - "movel %5,%%d5\n\t" - "moval %6,%%a1\n\t" - "movel #0x26,%%d1\n\t" - "movel #0xf5,%%d0\n\t" - "trap #15\n\t" - "moveml %%sp@+,%%d3-%%d5" - : "=d" (reg_d0), "=m" (*(char*) buf) - : "ri" (pos), "ri" (blk), "ri" (id), "ri" (size), "g" ((int) buf) - : "%d1", "%d2", "%a1"); - - return reg_d0; -} - -static inline int -IOCS_S_READEXT (int pos, int blk, int id, int size, void *buf) -{ - register int reg_d0 __asm ("%d0"); - - __asm volatile ("moveml %%d3-%%d5,%%sp@-\n\t" - "movel %2,%%d2\n\t" - "movel %3,%%d3\n\t" - "movel %4,%%d4\n\t" - "movel %5,%%d5\n\t" - "moval %6,%%a1\n\t" - "movel #0x26,%%d1\n\t" - "movel #0xf5,%%d0\n\t" - "trap #15\n\t" - "moveml %%sp@+,%%d3-%%d5" - : "=d" (reg_d0), "=m" (*(char*) buf) - : "ri" (pos), "ri" (blk), "ri" (id), "ri" (size), "g" ((int) buf) - : "%d1", "%d2", "%a1"); - - return reg_d0; -} +int bootmain(int); #define PART_BOOTABLE 0 #define PART_UNUSED 1 #define PART_INUSE 2 - - int bootmain(int scsiid) {