Archived
14
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
linux-2.6/arch/m68k/include/asm/mvme16xhw.h
Sam Ravnborg 49148020bc m68k,m68knommu: merge header files
Merge header files for m68k and m68knommu to the single location:

    arch/m68k/include/asm

The majority of this patch was the result of the
script that is included in the changelog below.

The script was originally written by Arnd Bergman and
exten by me to cover a few more files.

When the header files differed the script uses the following:

The original m68k file is named <file>_mm.h  [mm for memory manager]
The m68knommu file is named <file>_no.h [no for no memory manager]

The files uses the following include guard:

This include gaurd works as the m68knommu toolchain set
the __uClinux__ symbol - so this should work in userspace too.

Merging the header files for m68k and m68knommu exposes the
(unexpected?) ABI differences thus it is easier to actually
identify these and thus to fix them.

The commit has been build tested with both a m68k and
a m68knommu toolchain - with success.

The commit has also been tested with "make headers_check"
and this patch fixes make headers_check for m68knommu.

The script used:
TARGET=arch/m68k/include/asm
SOURCE=arch/m68knommu/include/asm

INCLUDE="cachectl.h errno.h fcntl.h hwtest.h ioctls.h ipcbuf.h \
linkage.h math-emu.h md.h mman.h movs.h msgbuf.h openprom.h \
oplib.h poll.h posix_types.h resource.h rtc.h sembuf.h shmbuf.h \
shm.h shmparam.h socket.h sockios.h spinlock.h statfs.h stat.h \
termbits.h termios.h tlb.h types.h user.h"

EQUAL="auxvec.h cputime.h device.h emergency-restart.h futex.h \
ioctl.h irq_regs.h kdebug.h local.h mutex.h percpu.h \
sections.h topology.h"

NOMUUFILES="anchor.h bootstd.h coldfire.h commproc.h dbg.h \
elia.h flat.h m5206sim.h m520xsim.h m523xsim.h m5249sim.h \
m5272sim.h m527xsim.h m528xsim.h m5307sim.h m532xsim.h \
m5407sim.h m68360_enet.h m68360.h m68360_pram.h m68360_quicc.h \
m68360_regs.h MC68328.h MC68332.h MC68EZ328.h MC68VZ328.h \
mcfcache.h mcfdma.h mcfmbus.h mcfne.h mcfpci.h mcfpit.h \
mcfsim.h mcfsmc.h mcftimer.h mcfuart.h mcfwdebug.h \
nettel.h quicc_simple.h smp.h"

FILES="atomic.h bitops.h bootinfo.h bug.h bugs.h byteorder.h cache.h \
cacheflush.h checksum.h current.h delay.h div64.h \
dma-mapping.h dma.h elf.h entry.h fb.h fpu.h hardirq.h hw_irq.h io.h \
irq.h kmap_types.h machdep.h mc146818rtc.h mmu.h mmu_context.h \
module.h page.h page_offset.h param.h pci.h pgalloc.h \
pgtable.h processor.h ptrace.h scatterlist.h segment.h \
setup.h sigcontext.h siginfo.h signal.h string.h system.h swab.h \
thread_info.h timex.h tlbflush.h traps.h uaccess.h ucontext.h \
unaligned.h unistd.h"

mergefile() {
	BASE=${1%.h}
	git mv ${SOURCE}/$1 ${TARGET}/${BASE}_no.h
	git mv ${TARGET}/$1 ${TARGET}/${BASE}_mm.h

cat << EOF > ${TARGET}/$1
EOF

	git add ${TARGET}/$1
}

set -e

mkdir -p ${TARGET}

git mv include/asm-m68k/* ${TARGET}
rmdir include/asm-m68k

git rm ${SOURCE}/Kbuild
for F in $INCLUDE $EQUAL; do
	git rm ${SOURCE}/$F
done

for F in $NOMUUFILES; do
	git mv ${SOURCE}/$F ${TARGET}/$F
done

for F in $FILES ; do
	mergefile $F
done

rmdir arch/m68knommu/include/asm
rmdir arch/m68knommu/include

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
2009-01-16 21:58:10 +10:00

112 lines
2.5 KiB
C

#ifndef _M68K_MVME16xHW_H_
#define _M68K_MVME16xHW_H_
#include <asm/irq.h>
/* Board ID data structure - pointer to this retrieved from Bug by head.S */
/* Note, bytes 12 and 13 are board no in BCD (0162,0166,0167,0177,etc) */
extern long mvme_bdid_ptr;
typedef struct {
char bdid[4];
u_char rev, mth, day, yr;
u_short size, reserved;
u_short brdno;
char brdsuffix[2];
u_long options;
u_short clun, dlun, ctype, dnum;
u_long option2;
} t_bdid, *p_bdid;
typedef struct {
u_char ack_icr,
flt_icr,
sel_icr,
pe_icr,
bsy_icr,
spare1,
isr,
cr,
spare2,
spare3,
spare4,
data;
} MVMElp, *MVMElpPtr;
#define MVME_LPR_BASE 0xfff42030
#define mvmelp ((*(volatile MVMElpPtr)(MVME_LPR_BASE)))
typedef struct {
unsigned char
ctrl,
bcd_sec,
bcd_min,
bcd_hr,
bcd_dow,
bcd_dom,
bcd_mth,
bcd_year;
} MK48T08_t, *MK48T08ptr_t;
#define RTC_WRITE 0x80
#define RTC_READ 0x40
#define RTC_STOP 0x20
#define MVME_RTC_BASE 0xfffc1ff8
#define MVME_I596_BASE 0xfff46000
#define MVME_SCC_A_ADDR 0xfff45005
#define MVME_SCC_B_ADDR 0xfff45001
#define MVME_SCC_PCLK 10000000
#define MVME162_IRQ_TYPE_PRIO 0
#define MVME167_IRQ_PRN (IRQ_USER+20)
#define MVME16x_IRQ_I596 (IRQ_USER+23)
#define MVME16x_IRQ_SCSI (IRQ_USER+21)
#define MVME16x_IRQ_FLY (IRQ_USER+63)
#define MVME167_IRQ_SER_ERR (IRQ_USER+28)
#define MVME167_IRQ_SER_MODEM (IRQ_USER+29)
#define MVME167_IRQ_SER_TX (IRQ_USER+30)
#define MVME167_IRQ_SER_RX (IRQ_USER+31)
#define MVME16x_IRQ_TIMER (IRQ_USER+25)
#define MVME167_IRQ_ABORT (IRQ_USER+46)
#define MVME162_IRQ_ABORT (IRQ_USER+30)
/* SCC interrupts, for MVME162 */
#define MVME162_IRQ_SCC_BASE (IRQ_USER+0)
#define MVME162_IRQ_SCCB_TX (IRQ_USER+0)
#define MVME162_IRQ_SCCB_STAT (IRQ_USER+2)
#define MVME162_IRQ_SCCB_RX (IRQ_USER+4)
#define MVME162_IRQ_SCCB_SPCOND (IRQ_USER+6)
#define MVME162_IRQ_SCCA_TX (IRQ_USER+8)
#define MVME162_IRQ_SCCA_STAT (IRQ_USER+10)
#define MVME162_IRQ_SCCA_RX (IRQ_USER+12)
#define MVME162_IRQ_SCCA_SPCOND (IRQ_USER+14)
/* MVME162 version register */
#define MVME162_VERSION_REG 0xfff4202e
extern unsigned short mvme16x_config;
/* Lower 8 bits must match the revision register in the MC2 chip */
#define MVME16x_CONFIG_SPEED_32 0x0001
#define MVME16x_CONFIG_NO_VMECHIP2 0x0002
#define MVME16x_CONFIG_NO_SCSICHIP 0x0004
#define MVME16x_CONFIG_NO_ETHERNET 0x0008
#define MVME16x_CONFIG_GOT_FPU 0x0010
#define MVME16x_CONFIG_GOT_LP 0x0100
#define MVME16x_CONFIG_GOT_CD2401 0x0200
#define MVME16x_CONFIG_GOT_SCCA 0x0400
#define MVME16x_CONFIG_GOT_SCCB 0x0800
#endif