![]() | Logo by DaveyD (anonymous IP: 216.73.216.123,2462) | |||||||||||||
| ||||||||||||||
Audio (348) Datatype (51) Demo (205) Development (618) Document (24) Driver (101) Emulation (154) Game (1033) Graphics (513) Library (120) Network (238) Office (67) Utility (947) Video (73) Total files: 4492 Full index file Recent index file
Amigans.net Aminet IntuitionBase Hyperion Entertainment A-Eon Amiga Future
Support the site
|
pa6t_eth.device is AmigaOS 4 SANA-II onboard Ethernet driver for the AmigaOne X1000 (PA6T-1682M integrated MAC, Vitesse VSC8221 PHY) version: 1.1 (23.03.2026) Developed entirely from Linux source written by Olof Johansson, as no hardware documentation exists for the PA6T-1682M in public. To find out and debug issues a CFE bare-metal driver was written (no AmigaOS 4, no Linux, nothing, just CFE on run), which only receives Ethernet packets and reads/writes to DMA. Also for testing and debugging purposes the Linux driver was moved out of the kernel as a module, then the module was stripped down to the basics, then the module was replaced by a standalone simple binary and that all together with the CFE version showed all the issues and differences between Linux and AmigaOS 4 states and the way how it all works. Driver features: - 1 Gbps full duplex - Used combo of DMA, MAC (OS4's ReadConfigLong/WriteConfigLong) and IOB (direct ECAM access) onboard devices. - Interrupts with batch processing up to 64 packets per wakeup (currently only RX path is interrupt driven). IRQ handler itself also uses direct ECAM access to DMA because of IRQ context. - All errata based workarounds found in Linux version (errata 5971, PKTHDRCNT reset, etc.) - Current transfer speed (local network download): ~27 MB/s which is ~22% of 1 Gbps wire speed. TODO: - Add interrupt driven TX channel + pre-allocated buffers - Re-use RX buffers - Disable promiscuous mode (so not catch whole traffic in the network) - Auto-discover free RX/TX channels instead of hardcoded rx1,tx1 - Remove diagnostic crash hunter - Replace internal Roadshow's copy functions by own AltiVec based replacement - ENV variables with minimal set (choose between internal and external copy functions, speed, duplex, MTU, etc.) (c) kas1e 2026 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Copyright © 2004-2026 by Björn Hagström All Rights Reserved |