Port-amiga archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

New MNT ZZ9000 driver for firmware V1.13 (retry)



Hello Amiga NetBSD nerds,


Please find the driver uuencoded below, or as attachment.
You can apply it to netbsd-current in its src folder via this command:
"git apply ZZ9K_2023-04-01_359837.patch”  


I spend since Christmas the last few weekend enhancing my NetBSD driver for the MNT ZZ9000 Zorro card. It was formerly known as mntzz which I released 3 year ago. Since then, the ZZ9000 had several firmware updates which changed some hardware interface details rendering the former driver non functional in some aspects. Also the audio card plug-in ZZ9000AX became available from MNT Research which a bought at the time of its release. Considering the major rewrite of the driver in some areas I decided to rename it to zz9k(9). The driver consists of several sub-drivers each addressing different functionality of the MNT ZZ9000 & ZZ9000AX combo card. In WSCONS kernel config file you will find this section:

zz9k* at zbus? # MNT ZZ9000
zzfb* at zz9k? # Framebuffer
options ZZFB_CONSOLE # Console on ZZ9000
#zz* at zz9k? # Ethernet (experimental)
#zzax* at zz9k? # MNT ZZ9000AX (not functional yet)
#audio* at zzax? # Audio on ZZ9000AX
#zzusb* at zz9k? # USB (not implemented yet) 

zz9k* is the main card driver and need to be enabled if any of the sub-driver is enabled. zz9k on its own is not very useful, it only provides a common zz9kbus for the other sub-drivers to connect to, so only enable it if one of the zz9k sub-drivers are enabled.
zzfb* represents the graphics driver for the boot console and the dumb framebuffer for X11 based on WSCONS. ZZFB_CONSOLE option enables the ZZ9000 to become the boot console. I consider this driver mature, see below for more details.
zz* represents the ethernet interface of the ZZ9000. It basically works but I consider it experimental, see below for details.
zzax* represents the ZZ9000AX audio card driver, audio* attaches to it to provide audio output and input functionality. The driver is not functional yet, see below for details.
zzusb*  represents the ZZ9000AX usb driver. It’s not implemented yet and probably never will, see below for details.


Comments:

zzfb:

I adapted the console and framebuffer driver based on WSCONS to the current  firmware v1.13 and greatly enhanced its functionality. Now, 32 bpp, 16 ppp, 15 bpp and 8 bit LUT are fully supported in various resolutions in console mode as well as in X11 dumb-fb mode. The colors are now presented correctly in each mode (e.g. 8-bit LUT X11 was not working right before). WSCONS kernel config file options are fully supported now. For example I prefer the console to have black letters on white background, so I can now add this in WSCONS kernel config file and it will work as expected:

options WS_KERNEL_FG=WSCOL_BLACK
options WS_KERNEL_BG=WSCOL_LIGHT_WHITE
options WS_DEFAULT_FG=WSCOL_BLACK
options WS_DEFAULT_BG=WSCOL_LIGHT_WHITE
options WSDISPLAY_CUSTOM_OUTPUT

The resolution is currently hardcoded to 1280x720 8bpp for the console and to 1280x720 16bpp for the gfx and dumbfb (X11 uses dumbfb). If you want to change the resolution and adapt it to your specific monitor, take a look in the zz9k_fb.c source code and find the following lines that you can manipulate:
#define ZZFB_SET_CON_MODE ZZ9K_MODE_1280x720 /* Console */
#define ZZFB_SET_CON_BPP ZZ9K_COLOR_8BIT
#define ZZFB_SET_GFX_MODE ZZ9K_MODE_1280x720 /* raw FB */
#define ZZFB_SET_GFX_BPP ZZ9K_COLOR_16BIT
#define ZZFB_SET_DFB_MODE ZZ9K_MODE_1280x720 /* X11 */
#define ZZFB_SET_DFB_BPP ZZ9K_COLOR_16BIT

You can find the available resolution and color modes in the header file zz9kreg.h

Note: I fixed a dependency between wscons and grf amiga drivers in ./amiga/amiga/conf.h
Before the fix, it was not possible to build a kernel with a wscons only driver without adding another driver which uses grf(4). Now it is.
You can now disable all gfx cards, even the amiga native one, and only enable the zz9k_fb. This can reduce the kernel size drastically.


zz*:

The ethernet driver needed a little rewrite, as the interrupt handling on the ZZ9000 changed sometime between firmware v1.6 and v1.13.
However, the ethernet throughput is currently very slow around 70 KByte/s and I don’t know why. There is not much to the driver, it’s very stupid and simple, just getting eth packets as mbuf from the queue and putting into the transmit buffer of the ZZ9000 and vice-versa. I also experience kernel dumps from time to time due to some MMU table issues. Therefore I consider the zz* driver to be experimental and it’s not enabled as default until I figure out what’s going on.

As the MAC address is not stored permanently in the card, it will use its default address. This should not impose any problem unless two ZZ9000 will be used in the same LAN. Please configure the desired link address for the zz0 interface in rc.conf or in the /etc/ifconfig.zz0 file, to avoid a MAC address collision.


zzax:

The audio driver for the ZZ9000AX is not functional yet and is therefore disabled as default. I did not have time to finish it, I guess about half of it is finished. I started to implement the audio output first but I also plan to add audio input later. I don’t fully understand the hardware interface to the ZZ9000AX yet, so more investigation from my side is needed. However my free time is limited and unfortunately I cannot dedicate all my free time to this project, so please have patience, It may take a long time until I can finish it. 

Please contact me, if you feel you would like to take responsibility to finish the audio driver for me.

The current driver prints some debug messages which help me to understand the initialization, configuration, play/stop/record and de-init sequence of the audio(4) and audio(9) driver. 


zzusb:

The usb drive is not implemented yet and probably never will. The ZZ9000 does not expose the USB port, there is only an interface for a mass storage device, but it does not support hot-swap of USB-Sticks. So in its current form the USB port on the ZZ9000 is useless. zzusb currently only implements a skeleton driver for future additions. 


Final words:
I tested various Amiga setups with Z2, with Z3, with and without ZZ9000 to make sure that my changes work and do not break anything else with NetBSD.
But I can only test so much. So please provide me feedback if you encounter any issue or if you need help with the driver.
Any feedback positive or negative is welcome.




The zz9k(9) driver:

begin 644 ZZ9K_2023-04-01_359837.tgz
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
M!;P8.5A)4*7NK/7=%;]'?S/)V[2Y(2*Z?+`VPK2O:Q]K]4\U%Z.JX@localhost</-GY-J
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
`
end


Attachment: ZZ9K_2023-04-01_359837.tgz
Description: Binary data




Home | Main Index | Thread Index | Old Index