Contact us
My MEN
You are logged off
Log in




Supported Operating System
Windows® 2000 (MDIS4™/2004 only)
Windows® XP
Windows® Vista™ 32-bit
Windows® Vista™ 64-bit (MDIS5™ only)
Windows® 7 32-bit (MDIS5™ only)
Windows® 7 64-bit (MDIS5™ only)
Supported IP Cores
MEN's 16Z034_GPIO IP Core
Supported MEN Boards
P598, P599, P699
MM1
Included
13Z017-06 (source code)
Features
8-bit general purpose I/O
Data direction programmable for every I/O port
State of output port pins readable
Ability to generate interrupts on rising, falling or both edges on port
Every port can work in open drain mode
Hardware debouncing possible for every port
Included Documentation
HTML Documentation
Notes
Requires MDIS4™ or MDIS5™ system package
MDIS5™ 32-bit drivers are compatible to the MDIS4™ drivers, but must not be mixed with MDIS4™ drivers on one target system.
================================================================================
===== History of MDIS5 Windows Driver Package 13Z017-70 rev. 1.24.2.17
===== 2012-08-10 built from - MDIS5 LL-Driver 13Z017-06 rev. 1.24 (=Release-1.23)
===== - MDIS5 Windows references rev. 2.17
================================================================================
-----[ 2012-08-08 : references Revision 2.17 ]-----
=== Libraries ===
R:1. USR_OSS: UOS_KeyWait consumes too much CPU time
2. MK: BSOD 0x8E with EXCEPTION_CODE 0xc0000047 (semaphore max count exceeded)
3. MK: must not call BBIS driver's IrqEnable with masked IRQ
4. MK: prevent concurrent BBIS/LL-Drv. IrqEnable calls
5. MK: support required for chameleon FPGAs with mixed i/o and mem mapped units
6. MK: sub device list not save for concurrent execution
7. MK: M_read/M_write calls from MDIS4 applications not suppported by mistake
8. OSS: workaround in OSS_SemWait() required for SMB2 lib
9. OSS: prevent spin-lock dead-looks
M:1. USR_OSS: delay added to provide CPU time to other threads
2. MK: error handling improved to prevent release of not claimed semaphore
3.a) MK: disabling BBIS IRQ no longer with masked IRQ
b) MK: MK_REVISION set to MDIS_MKREV_2
4. MK: enable BBIS IRQ with claimed semaphore
5. MK: use newer BBIS_CFGINFO_ADDRSPACE prior BBIS_BRDINFO_ADDRSPACE
6. MK: sub device list protected with semaphore
7. MK: support MDIS4 IOCTLs for MDIS4 applications
8.a) OSS: OSS_SemWait: IRQL = DISPATCH_LEVEL: skip waiting
b) OSS: OSS_SemWait: IRQL > DISPATCH_LEVEL: skip KeWaitForSingleObject(), return ERR_OSS
9. OSS: use WDF spin-locks and restrict usage to IRQL <= DISPATCH_LEVEL
-----[ 2011-11-16 : 13Z017-06 Release-1.23 ]-----
R: 1.) Interrupts for GPIO 4-7 did not work with Z34/Z37 core
A preprocessor string comparison did not work.
Driver always compiled as Z127 model with 32 bit registers.
M: 1.) Replace string comparison with driver switch from Makefile.
-----[ 2011-09-12 : 13Z017-06 Release-1.22 ]-----
R: Compiler error, if MWRITE_D32 macro is a compound statement
M: Embed macro in braces
-----[ 2011-07-27 : 13Z017-06 Release-1.21 ]-----
R: problems with internal IRQ latency test tool
M: driver and z127_irqlat revised
-----[ 2011-07-08 : 13Z017-06 Release-1.20 ]-----
R: internal test tools required for 16G215-01 design test
M: internal test tools modified/added
-----[ 2011-03-28 : 13Z017-06 Release-1.19 ]-----
R: g215_190029_et.c: shift is not 64-bit safe
M: U_INT32_OR_64 cast added
-----[ 2011-03-28 : 13Z017-06 Release-1.18 ]-----
R:1. new io variants
2. new tool
3. z17_io.c: error in usage information
M:1. io variants added
2. z127_io added
3. description fixed
-----[ 2010-12-08 : references Revision 2.16 ]-----
====== Based on Windows MDIS5 System Package 13MD05-70 Rev. 1.3 ======
--- Libraries ---
R:1. Power Management support
2. MDIS_API: new MK error codes ERR_MK_SLEEP_ILLHDL, ERR_MK_SLEEP_LOCKED
3. MDIS_API: revision string is empty for M_MK_BLK_REV_ID
4. USR_OSS: signal handling update
5. OSS: signal events stay in signal list after exit on XP SP3
6. OSS: spin lock support functions required for Chameleon BBIS
7. SMB2: DBGWRT failed with zero data pointer
M:1.a) USR_SLEEP library added
b) MK: adapted for Power Management
2. MDIS_API: supports new error code description
3. MDIS_API: string generation fixed
4.a) USR_OSS: SigUnMask removed in UOS_SigWait
b) USR_OSS: terminates no longer signal thread on queue overrun
c) USR_OSS: queue size increased
5. OSS: added close of event for XP SP3
6. OSS: OSS_SpinLockXxx functions added
7. SMB2: fixed debug message
-----[ 2010-11-05 : references Revision 2.15 ]-----
APB5:
R: 1. prevent native file check-in if win-pkg fileset was already checked-in
2. bug: building internal win-pkg if swmodule attribut internal=false set
3. APB5 script error if xml specifies os/notos tag or one sw module is
specified multiple times
4. sometimes, win-pkg zip was checked-in as ascii file
M: 1. dont't ask to check-in native files if win-pkg fileset was checked-in
2. bug fixed: building internal win-pkg only if internal=true set
3. script fixed
4. win-pkg zip check-in fixed
BUILD:
R: missing libraries for executables with the use of API DLLs
M: added libraries to TMPL_TARGETLIBS for API DLLs version
-----[ 2010-11-03 : references Revision 2.14 ]-----
Windows driver package generation (BUILD, APB5):
R:1. new mdiswiz.exe version available
2. internal files not needed for public distribution
M:1. using mdiswiz.exe rev. 1.3
2. removed category public from internal files
SW Modules:
R:1. MDIS_API: new MK error codes ERR_MK_SLEEP_ILLHDL, ERR_MK_SLEEP_LOCKED
2. MK: IRP processing must be synchronized with power management
3. OSS: signal events stay in signal list after exit on XP SP3
4. USR_OSS: SigUnMask at the end of UOS_SigWait incorrect
5. USR_OSS: Queue overrun leads to exit thread, no further signals delivered
M:1. MDIS_API: new built to support new error code description
2.a) MK: block sleep until all IRPs in progress are finished
b) MK: begin no new IRP after system indicates to enter a sleep state
3. OSS: added close of event for XP SP3
4. USR_OSS: SigUnMask removed in UOS_SigWait
5.a) USR_OSS: removed closing thread on queue overrun
b) USR_OSS: queue size increased
-----[ 2010-09-27 : references Revision 2.13 ]-----
R:1. MK: MkDevListGet/SetCtxt() declared for paged segment but PAGED_CODE
missing
2. MK: PREfast warnings for some DBGTRC
3. MK: preventing power state change in kernel mode not supported any more,
user mode application is responsible for
4. MK: support for power management
5. MDIS_API: Revision string is empty for M_MK_BLK_REV_ID
6. SMB2: DBGWRT failed with zero data pointer
M:1. MK: PAGED_CODE added
2. MK: some DBGTRC fixed
3. MK: removed preventing system state change while path opened
4.a) close open ll handle when power state change to sleep mode
b) changed return code for illegal handle
5. MDIS_API: Fixed string generation
6. SMB2: fixed debug message
-----[ 2010-07-26 : references Revision 2.12 ]-----
Windows driver package generation (APB5):
R: WEBART logging doesn't work
M: WEBART logging fixed
-----[ 2010-07-23 : references Revision 2.11 ]-----
Windows driver package generation (APB5):
M:1. 13MD05-70 released
2. new mdiswiz version with fixes in pkg2inf5
3. build environment changed
R:1. use revision from 13MD05-70 as major PRODUCTVERSION
2.a) inf files: mcvs date/revision info in inf header replaced with creation
date and mdiswiz pkg2inf revision
b) inf files: ExcludeFromSelect removed
c) inf files: models without autoid use 'XXX[_SW]&NO_AUTOID'
3. create embedded signature in 64-bit free and checked drivers
SW Modules:
R:1. smb2.lib - 16Z001_SMB: terminate bit could be set if status is polled
before an abort operation finishes
2. smb2_io.lib - ICH SMB: sometimes wasting time during transfer
M:1. smb2.lib - 16Z001_SMB: add max. 500 ms wait time after starting an abort
operation
2. smb2_io.lib - ICH SMB: LocWaitBusyReady function fixed
-----[ 2010-06-11 : references Revision 2.10 ]-----
R:1. mk.lib: check for invalid interrupt object was buggy
2. mk.lib: new address mode MDIS_MA_BB_INFO_PTR
M:1. mk.lib: check for invalid interrupt object removed
2. mk.lib: support for new address mode MDIS_MA_BB_INFO_PTR
-----[ 2010-05-07 : references Revision 2.9 ]-----
R:1. low-level drivers that use new MDIS_MA_BB_INFO_PTR feature
requires chameleon.h (e.g. Z88 driver)
2. support embedded signature for 64-bit free and checked drivers
M:1.a) chameleon.h added
b) chameleon lib documentation added
2. sign all built 64-bit .sys files
-----[ 2010-04-14 : references Revision 2.8 ]-----
R: swapping variant of PLD library required for M72 driver
M: pld_sw.lib added
-----[ 2010-04-14 : references Revision 2.7 ]-----
R:1. VME4WIN for MDIS5 supported
2. mdiswiz support for new busif SMBus required
M:1.a) mk : added check for invalid interrupt object
b) oss: adapted VME KM interface access
2. replaced Qt3 based mdiswiz by Qt4 based mdiswiz
-----[ 2009-11-09 : references Revision 2.6 ]-----
R:1. APB5: missing check for unsupported setup/build options
2. APB5: .cat file was not timestamped
3. OSS_IrqRestore decreases IRQL that was not increased by current context
4. OSS_SigRemove ZwClose leads to BSOD at Windows XP
M:1. setup/build option check improved
2. /t added to signtool sign
3. Changed order to reset irqmasked
4. Added check for os version
-----[ 2009-10-30 : references Revision 2.5 ]-----
R: OSS lib: Mapped io address is zero
M: OSS lib: Fixed set virtAddr to physAddr at IO addr space
-----[ 2009-10-28 : references Revision 2.4 ]-----
R:1. MK lib: new BBIS bus type OSS_BUSTYPE_SMB handled as error
2. OSS lib: no interrupt spinlock release at last call of OSS_IrqRestore
M:1. MK: BBIS bus type check removed (to be open minded for future bus types)
2. OSS: Removed restting irqmasked at OSS_IrqMaskR
-----[ 2009-10-23 : references Revision 2.3 ]-----
R:1. MkInitExit and MkEvtDeviceD0EntryPostInterruptsEnabled must be nonpageable
2. OSS lib: irqmasked bit not cleared after releasing interrupt spinlock
M:1. MK lib: Fixed to be nonpageable
2. OSS lib: Fixed to reset irqmasked at OSS_IrqRestore
-----[ 2009-10-20 : references Revision 2.2 ]-----
R:1. Releasing interrupt spinlock that had not been masked by OSS_IrqMaskR leads
to lowering IRQL in ISR
2. Fixed OSS Libraray OSS_IRQ_HANDLE
M:1. Fixed releasing interrupt spinlock just when masked before in OSS library
2. Recompilation of MK library
-----[ 2009-10-12 : references Revision 2.1 ]-----
Initial Revision
-----[ 2009-09-02 : 13Z017-06 Release-1.17 ]-----
13z01706.xml:
R: Porting to MDIS5
M: fixed description for MDIS5
-----[ 2009-08-06 : 13Z017-06 Release-1.16 ]-----
R: reference files were delivered with driver package
M: a) added category noref to upfile to differentiate between reference and non-reference files
b) reference files were removed from driver package
-----[ 2009-08-03 : 13Z017-06 Release-1.15 ]-----
R: cosmetics in HTML documentation
M: fixed files.html and rebuilded documentation
-----[ 2009-08-03 : 13Z017-06 Release-1.14 ]-----
R: no support for 32 bit Z127_GPIO IP core
M: a) added driver variant z17_z127
b) added model 16Z127_GPIO
-----[ 2009-07-10 : 13Z017-06 Release-1.13 ]-----
R: 1.Porting to MDIS5
2. Ensure backward compatibility to MDIS4 for Linux
M: 1. changes according to MDIS5 Porting Guide
2. added defines for data types INT32_OR_64 and MDIS_PATH
-----[ 2009-04-17 : 13Z017-06 Release-1.12 ]-----
File /_CVS_/COM/DRIVERS/MDIS_LL/Z017/DRIVER/COM/z17_drv.c RCS 1.3 -> RCS 1.4
R: no 64 Bit support
M: changed set/getstat to support 64 Bit
File /_CVS_/COM/DRIVERS/MDIS_LL/Z017/EXAMPLE/Z17_SIMP/COM/z17_simp.c RCS 1.3 -> RCS 1.4
R: stack overflow at signalHandler call for Windows
M: Fixed calling convention for UOS_SigInit
File /_CVS_/COM/DRIVERS/MDIS_LL/Z017/TOOLS/Z17_IO/COM/z17_io.c RCS 1.2 -> RCS 1.3
included to remove warning about implicitely defined func. atoi()
File /_CVS_/COM/PACKAGE_DESC/13z01706.xml RCS 1.12 -> RCS 1.13
R: 1. device was not found in WIN environments (name did not match)
2. XML knows CHAM V2 dev ID as well now
3. missing new 16Z037 model
M: 1. add mandatory 16 as begin of HWNAME (match with chameleon.h string)
2. add chamv2id as autoid
3. added new model 16Z037
-----[ 2008-02-28 : 13Z017-06 Release-1.11 ]-----
Checkin to update references
-----[ 2007-10-23 : 13Z017-06 Release-1.10 ]-----
z17_ec0400_1.dsc
Added
z17_em09_ec06.dsc
Added
-----[ 2007-08-21 : 13Z017-06 Release-1.9 ]-----
Checkin to update references
-----[ 2007-06-06 : 13Z017-06 Release-1.8 ]-----
z17_drv.c:
added
+ getstat code Z17_IRQ_LAST_REQUEST
z17_simp.c:
added
+ getstat code Z17_IRQ_LAST_REQUEST
+ program try to fire interrupts without external loopback
z17_io.c:
removed
- unused variable warning
z17_drv.h:
added
+ getstat code Z17_IRQ_LAST_REQUEST
+ set/getstat value documentation
-----[ 2006-08-18 : 13Z017-06 Release-1.7 ]-----
Minor changes
-----[ 2006-08-02 : 13Z017-06 Release-1.6 ]-----
- z17_io tool added
-----[ 2006-06-08 : 13Z017-06 Release-1.5 ]-----
changed ADDRSPACE_SIZE to 32 (real size is reported by Chameleon BBIS now)
-----[ 2006-02-22 : 13Z017-06 Release-1.4 ]-----
Minor changes in
dbg.h
fixed: C++ comments did not work with OS9 Ultra-C compiler
mdis_api.h
added M_BB_GET_SMBHDL for SMB2 MDIS support
oss.h
changed OSS_VME_DM/OSS_VME_AM docu from single-line style to common style
added OSS_GetSmbHdl(), OSS_SetSmbHdl() prototype
-----[ 2005-08-02 : 13Z017-06 Release-1.3 ]-----
added z17_f8.dsc
-----[ 2005-07-27 : 13Z017-06 Release-1.2 ]-----
13z01706.xml: using now chameleon unit name 16Z034_GPIO as
-----[ 2005-04-27 : 13Z017-06 Release-1.1 ]-----
1) added example for EC04-00 buttons
2) input interrupts now working in m17_simp.c
-----[ 2004-06-18 : 13Z017-06 Release-1.0 ]-----
Initial Revision

| Article No. | Description | More |
| 13MD05-70 | MDIS5™ System Package (MEN) for Windows® | Download Details |
| 13M000-06 | MDIS4™/2004 System Package (MEN) for Windows® 2000/XP/Embedded XP and Vista 32-bit This product has been discontinued and is no longer maintained. |
Download Details |
| 13Z017-70 | MDIS4™/2004 / MDIS5™ Windows® driver (MEN) for 16Z034_GPIO devices Requires a compatible MDIS™ system package |
Download Details |

| Article No. | Description | More |
| 13Z017-06 | MDIS5™ low-level driver sources (MEN) for 16Z034_GPIO and 16Z037_GPIO Requires an MDIS4™/2004 or MDIS5™ system package |
Download Details |
