![]() ![]() | ![]() |
File: [local] / sys / arch / sh / include / sh_opcode.h (download)
Revision 1.1.1.1 (vendor branch), Tue Mar 4 16:08:58 2008 UTC (16 years, 5 months ago) by nbrk
Import of OpenBSD 4.2 release kernel tree with initial code to support Jornada 720/728, StrongARM 1110-based handheld PC. At this point kernel roots on NFS and boots into vfs_mountroot() and traps. What is supported: - glass console, Jornada framebuffer (jfb) works in 16bpp direct color mode (needs some palette tweaks for non black/white/blue colors, i think) - saic, SA11x0 interrupt controller (needs cleanup) - sacom, SA11x0 UART (supported only as boot console for now) - SA11x0 GPIO controller fully supported (but can't handle multiple interrupt handlers on one gpio pin) - sassp, SSP port on SA11x0 that attaches spibus - Jornada microcontroller (jmcu) to control kbd, battery, etc throught the SPI bus (wskbd attaches on jmcu, but not tested) - tod functions seem work - initial code for SA-1111 (chip companion) : this is TODO Next important steps, i think: - gpio and intc on sa1111 - pcmcia support for sa11x0 (and sa1111 help logic) - REAL root on nfs when we have PCMCIA support (we may use any of supported pccard NICs) - root on wd0! (using already supported PCMCIA-ATA) |
/* $OpenBSD: sh_opcode.h,v 1.1.1.1 2006/10/06 21:02:55 miod Exp $ */ /* $NetBSD: sh_opcode.h,v 1.3 2002/04/28 17:10:36 uch Exp $ */ typedef union { unsigned word; #if _BYTE_ORDER == BIG_ENDIAN struct { unsigned op: 16; } oType; struct { unsigned op1: 4; unsigned n: 4; unsigned op2: 8; } nType; struct { unsigned op1: 4; unsigned m: 4; unsigned op2: 8; } mType; struct { unsigned op1: 4; unsigned n: 4; unsigned m: 4; unsigned op2: 4; } nmType; struct { unsigned op: 8; unsigned m: 4; unsigned d: 4; } mdType; struct { unsigned op: 8; unsigned n: 4; unsigned d: 4; } nd4Type; struct { unsigned op: 4; unsigned n: 4; unsigned m: 4; unsigned d: 4; } nmdType; struct { unsigned op: 8; unsigned d: 8; } dType; struct { unsigned op: 4; unsigned d: 12; } d12Type; struct { unsigned op: 4; unsigned n: 4; unsigned d: 8; } nd8Type; struct { unsigned op: 8; unsigned i: 8; } iType; struct { unsigned op: 4; unsigned n: 4; unsigned i: 8; } niType; #endif #if _BYTE_ORDER == LITTLE_ENDIAN struct { unsigned op: 16; } oType; struct { unsigned op2: 8; unsigned n: 4; unsigned op1: 4; } nType; struct { unsigned op2: 8; unsigned m: 4; unsigned op1: 4; } mType; struct { unsigned op2: 4; unsigned m: 4; unsigned n: 4; unsigned op1: 4; } nmType; struct { unsigned d: 4; unsigned m: 4; unsigned op: 8; } mdType; struct { unsigned d: 4; unsigned n: 4; unsigned op: 8; } nd4Type; struct { unsigned d: 4; unsigned m: 4; unsigned n: 4; unsigned op: 4; } nmdType; struct { unsigned d: 8; unsigned op: 8; } dType; struct { unsigned d: 12; unsigned op: 4; } d12Type; struct { unsigned d: 8; unsigned n: 4; unsigned op: 4; } nd8Type; struct { unsigned i: 8; unsigned op: 8; } iType; struct { unsigned i: 8; unsigned n: 4; unsigned op: 4; } niType; #endif } InstFmt; #define OP_BF 0x8b #define OP_BFS 0x8f #define OP_BT 0x89 #define OP_BTS 0x8d #define OP_BRA 0xa #define OP_BSR 0xb #define OP1_BRAF 0x0 #define OP2_BRAF 0x23 #define OP1_BSRF 0x0 #define OP2_BSRF 0x03 #define OP1_JMP 0x4 #define OP2_JMP 0x2b #define OP1_JSR 0x4 #define OP2_JSR 0x0b #define OP_RTS 0xffff