Schematic from Rodolphe...
2005 July 31. Rodolphe Czuba start a PCI extention project for the CT60, a board with a bridge PLX 9054 who is compatible with the PLX 9080 used on the MILAN.
Because in 2005 the TOS is a sort of graphical open firmware, the TOS must boot with the PCI main devices
(like screen, mouse and keyboard).
So I have planned two mains drivers inside the CT60 PCI TOS :
2006 January 26. There are lot of work for add PCI support (PCI BIOS, drivers, etc...) inside the TOS, nevertheless since some months I wait the hardware for test the Radeon driver (the main driver).
The PCI (X)BIOS is finished since 2005 August but not tested.
CTPCI hardware registers mapping (configuration and slots interrupts) are needed for finish this part.
Some specific PLX XBIOS calls (like dma_setbuffer, dma_buffoper, read_mailbox and write_mailbox) are added to the original PCI (X)BIOS calls. The PLX is also the first device of the PCI (X)BIOS so it's possible to install and use his interrupts and not only PCI slots.
The Radeon driver is finished to write since 2005 October but not tested.
In 2005 November a solution was found for test and debug the fVDI part and the TOS calls, the current alpha release works with a 65K x 640 x 480 Videl screen!
The fVDI driver is inside the TOS but can also be called by a latest version of fVDI installed inside the AUTO folder (radeon.sys). The fVDI implemention inside the TOS is reduced to the minimum code size, the TOS calls are rewrited but use always the original VDI variables and structures. So for example the true type fonts are unimplemented.
The accelerated hardware functions today are mouse, blitting (screen copy), lines, filling, and virtual screen. The XBIOS installed only by the TOS driver update screen functions (like Physbase, Vsetscreen, Vsetmode, Montype, Vgetsize, and Vsetrgb) and the new CT60CONF.CPX can set boot/default screen with 256 or 65K colors in :
The USB driver is in progress, but paused because it's better to wait the hard and finish the first driver.
We need free space for install the maximum of 3 PCI boards (4 now).
Personnaly I have planned to use these 3 boards :
The boards who wait the CTPCI...
Before the motherboard moved...
After 3 months without working (I need hardware), and at the beginning of April, Mark Duckworth send a mail about a donated Coldfire evaluation board for Atari developments, the M5484LITE. I was very interrested :-). This board has :
There are lot of work for run a TOS on a Coldfire, but it's a method for me to test the PCI bios and the Radeon driver. The second reason is for a contribution to the Atari community on the Atari Coldfire Project.
For the keyboard, it was easy to change Eiffel for replace the serial port by the CAN bus, for do this prototype I have installed on the FALCON a PIC18F242 (16 bits) who replace the PIC16F876 (14 bits), the CAN version exist only on the 18F familly, I have used a PIC18F258 for the M5484LITE.
For the TOS, I have rewrited the XBIOS with drivers for the serial port, the IKBD from CAN, the MFP chip with the GPT and SLT timers on the Coldfire, the flash parameters, etc...
The CF68KLIB used is the 68030 target, the MMU of the Coldfire is useful for protect the TOS copied in SDRAM. Like the CT60 we found the pseudo STRAM with the cache in writethrough, and the SDRAM with the cache in copyback.
2006 June 3. The TOS works until starting GEM, the CompactFlash is detected but writing his registers not works, the PCI bios works for configuration,
the VDI cannot be used because blitter hardware not exist, so we need to use the Radeon with fVDI, and an ATX power supply must be connected on the M5484LITE.
Now there are two targets, the ct60tos.bin and the firetos.hex.
The debug on the M5484LITE board and Eiffel 2.0 CAN version...
2006 June 28. After rebuild the PCI TOS with X86EMU added for init the Sapphire board correctly with his VGA Bios, the (X)BIOS works on the board with a screen
selected at 1024 x 768 x 65K colors and also in 256 colors.
The next step is to test the VDI inside the TOS, because actually the CompactFlash not works.
Le boot with the Sapphire (Radeon 7500) in 1024 x 768 x 65K and the M5484LITE board...
2006 August 18. After add a 2 MB ram-disk, a TFTP loader with a file list inside a TFTP.INF, because I had some problems with the GEMDOS and the Coldfire,
I have finally after some changes used BDOS (from Emutos). The desktop works below theses lines in 1280 x 1024 x 65K colors, sure there are always some bugs
(for example the state SELECTED inside the menus, the transparent graphic modes not accelerated actually, but the TOS works just quite enough.
As weel as I have tried with success Aniplayer (without sound ;-) ). The screen modes in 256 colors works also.
Actually I havn't tried fVDI and RADEON.SYS inside the AUTO folder. The fVDI part used here is inside the TOS and use his variables.
The next step ? Fix bugs and maybe try again on the CTPCI ?
2006 September 10. Set ram-disk size to 8 MB. Rewriting texts fonctions of fVDI in Coldfire opcodes. Modification of TOS for working in 16M colors, the color icons are displayed in monochrome. CT60CONF.CPX can select video modes in 256 / 65K / 16M colors for the boot and/or the file NEWDESK.INF. Kronos and Vdibench returns good results for the texts in 1280 x 1024 x 16M colors.
2006 October 6. Writing a desk accessory jpegsnap.acc (nothing worked before). Add a tftpsend directory on the desktop for send files to the TFTP server. Better speed for the SDRAM. MiNT tested with succes (the modifications are inside the M5484LITE.readme file).
2006 December 8. Finally the CompactFlash works, the driver inside the TOS can install until 14 partitions on the CompactFlash.
An IDE emulation is in progress. The protocoles XHDI and SCSIDRV are also inside the TOS.
Modification at the XBIOS video modecode for get different frequency (56, 60, 70, 85 Hz). Build a CPX for test all video modes.
Acceleration of the Radeon driver and the TOS VDI (based on fVDI).
The next step is to write an ethernet driver for MiNT, try NFS, and especially make DRM to the Radeon driver for get OpenGL hardware acceleration.
2006 December 28. Now I have a 2nd graphic board, a Sapphire Radeon 9250 128 MB - 64 bits.
VDI Texts (v_gtext, v_justified), lines (v_pline, v_bar), filling (v_bar, v_recfl), and copy (vrt_cpyfm, vro_cpyfm) are now at the maximum speed :-).
The TOS himself call the accelerated functions and bypass fVDI.
The driver is always compatible with fVDI, but backward compatibility seems broken since fVDI 1.14 (vwk structure).
Filling works also with user color patterns (vsf_updat), and text rotation works (vst_rotation) like the original TOS. This features actually not works inside fVDI.
This is the results with Kronos :
|Kronos test||Radeon 7500||Radeon 9250|
|VDI_CIRCLE||3943.662 (op/sec)||3943.662 (op/sec)|
|VDI_ARC||27164.179 (op/sec)||27164.179 (op/sec)|
|VDI_BAR||44250.000 (op/sec)||44250.000 (op/sec)|
|VDI_ELLARC||25200.000 (op/sec)||25200.000 (op/sec)|
|VDI_ELLIPSE||3582.090 (op/sec)||3582.090 (op/sec)|
|VDI_ELLPIE||637.168 (op/sec)||637.168 (op/sec)|
|VDI_PIESLICE||800.000 (op/sec)||802.974 (op/sec)|
|VDI_RBOX||19085.714 (op/sec)||19085.714 (op/sec)|
|VDI_PLINE||100756.219 (op/sec)||96280.000 (op/sec)|
|VDI_FILLAREA||1390.909 (op/sec)||1390.909 (op/sec)|
|VDI_GTEXT||15000.000 (op/sec)||15020.000 (op/sec)|
|VDI_JUSTIFIED||5914.191 (op/sec)||5973.333 (op/sec)|
|VDI_BLITTING||80881.188 (op/sec)||44346.000 (op/sec)|
There are little speed differences between the CT60-100 and the M5484LITE, so I think get the same results on the CTPCI.
2007 January 24. Integration of VIDIX inside the TOS with some new XBIOS functions beetween 400 and 417 :
2007 February. Suspended working on the Radeon board. We are in 2007, so why try to get analog TV on the Sapphire All-In-Wonder VE?
New plans for integration of a real time OS and a TCP/IP stack for add new Coldfire tools.
The choice is FreeRTOS and lwIP.
2007 March. Add an HTTP server, html pages are in flash memory.
Moved the PCI part of the TOS in flash compressed to LZ format. After decompress the TOS, now there are two parts :
2007 April. Add a TFTP and a FTP server using the internal 8 MB ram-disk.
Add a command line shell using the serial port (terminal) or a Telnet server.
Juin 2007. There are no real bus error (or Access Fault) on Coldfire like the MC68060, so unused zone are now protected by the MMU.
There are two stacks on the Coldfire V4e (Supervisor and User), so I make some changes inside the CF68KLIB for run himself in supervisor and run FreeRTOS tasks (TOS himself is a task) in user.
With this feature, I thing get more programs running under the CF68KLIB.
2007 July. Some plans for add an AC97 codec on the Coldfire PSC2.
To be continued...
2007 October. With GlueStick (socket BSD using lwIP), add the STiK functions and his cookie.
It's also possible to get, by a direct call, the functions of the TCP/IP stack with a 'SOCK' cookie :
2007 December. Try to add a VNC server.
2008 Jannuary. Add the M54455EVB target, the makefile can create three targets :
2008 May. Fix some bugs inside the TCP/IP stack.
2008 June. Add a new command for trace instructions handled by the CF68KLIB for easily found why some programs not like it.
Fix arbiter timeout (Access Fault simulation from an interrupt).
2008 July. Moved all FreeRTOS tasks in native Coldfire code excepted the TOS who runs under the CF68KLIB.
Add breakpoints commands for the TOS task of FreeRTOS.
When there are lot of consecutive crashs of the TOS, the task is killed for try to get an easy debug with with the command line shell of FreeRTOS.
Add a command for trace traps TOS calls.
2008 August. Try a PCI riser with the M5484LITE, unfortunately this model is just 5V compatible on his two user sockets.
Cut the I/O traces for solve the problem so the security is removed., because the Coldfire support only 3V3.
Some PCI boards can be inserted in all PCI slots but their PCI buffers are in 5V, for verify the board compatibility you can put the the board
in the M5484LITE slot because the ATX power put himself in security if the PCI board has his buffers in 5V (I/O pins).
Add an Ethernet Realtek RTL8139D PCI board with the Radeon board, and make some tests without success under MiNT (rtl8139 driver).
2008 September. Fix an Ethernet bug inside the FEC driver of the MCF548X.
Add a grafical display of the FreeRTOS tasks inside the HTTP server.
If the URL isn't found inside the flash memory pages, the HTTP server search the file in c:\html\.
Add USB Mass Storage on the MCF548X USB device, this feature uses the 8 MB ram-disk. The Coldfire v4e USB is a little bit bugged, but I have tried with success on iMac, Mac-Mini and also a Visiosat TVT 250 USB.
The best news, Rodolphe works again on the CTPCI!
2008 October. Boot possible on the ram-disk from a disk updated with USB Mass Storage device, this is the procedure :
2009 May. Since the beginning of this year, Mathias Wittau try that I join the new ACP project.
I have not really an interest in this technical choices (base FPGA too expensive for emulate the old Atari hardware, preference for the Videl, only one ethernet port when the Coldfire used has two ports, no CAN...),
and I must finish my work on the CTPCI, finaly I have presented my help. After all, it is possible that this is the single Atari Coldfire (so his name is COLDARI).
My fisrt objective is to add the AC97 sound to the Coldfire.
Add the COLDARI target, now the makefile can create four targets :
Beginning of the CTPCI debug! The prototype is finished, the tests can start.
The big endian and the little endian are inverted inside the PLX9054.
Fix device selection of the PLX9054 (for each slot), we must add 11, strange... this bridge is not really compatible with the PCI specifications.
Fredi Aschwanden send to me a CS4299 chip as audio codec for the AC97!
Writing AC97 driver based on the Linux sources for the codecs, however I must write totally the Coldfire part. The PSC of the Coldfire has an AC97 mode bit seems used by nothing on the net!
Only the the XBIOS part of the AC97 driver is easy to write, because I have already writed an audio driver for MagiC MAC and Aranym.
The DMA of the Coldfire will be used for transfer the AC97 frames but in a first time it's only the CPU and interrupts used for send and receive frames by the PSC fifo (who has 512 bytes on the Coldfire). An AC97 frame contains 256 bits (13 slots) either 13 words inside the fifo (52 bytes).
The tests on CTPCI are laborious, there are errors on PCI transfers.
Creation of tests for Rodolphe Czuba, the PCI BIOS is used.
Fix the device selection inside X86EMU, only the slot 3 could work! This was not a problem on the M5484LITE with his unique slot. With this modification X86EMU is faster, just two seconds for initialize the Radeon with his BIOS.
On the M5484LITE, installation of the audio codec AC97 CS4299, like you can see on this photo :
Rodolphe has fixed a big problem with clocks on the CTPCI. After his changes inside ABE and SDR, the CTPCI + CT60 works at 105 MHz!
Test of the instruction move16 on the CTPCI, and beginning of the PL9054 DMA tests. With the DMA, it's laborious again.
Separation of the PCI zone MEM in two zones prefetch or not.
Fix and add more features on the DMA PLX9054 transfers with chained DMA blocks if the block isn't contiguous.
On the M5484LITE, the Comm Bus is used for the transfers DMA <=> PCI, more than 100 MB/S with writing.
Beginning of AC97 audio driver tests, the reading of registers works but writing is not reliable. If the audio playback is started, nothing works, I see (with a command 'acpr' added to the debug) that some registers are put to the default value (like the sample frequency)!
2009 September. The PLX9054 has some limitations on his local PCI zones MEM and I/O who must be aligned with size and the same size, now the CT60 TOS has 3 targets :
2009 October. Now Mark Duckworth has an M5485EVB board, reorganization of the Radeon driver for multi-target graphic board, the M5485EVB has a FireEngine module more complete than the M5484LITE : the LynxEM+. Third parts now exists :
New integration of a PCI USB ohci/ehci driver, now the base of sources is u-BOOT.
I made the test on the M5484LITE with the USB NEC board using an D720101 who wait the CTPCI since 4 years. The PCI bus on the M5484LITE is at 50 MHz and the NEC specifications is for 33 MHz, but USB works !
The driver according to devices detected can add USB features to TOS like :
2010 January. Begin the AES replacement by MyAES (thanks to Olivier Landemarre !), add internal file selector and dialog box.
Incredible, I received the CTPCI !
ABE7 is really reliable ? By 3 times I got hard disk problems (with 2 times lot of a partition, the 1st was before the Radeon installed).
Because the PLX9054 bridge is more slower than the Coldfire V4e, add a cold reset detection for start only in this case the VGA BIOS X86.
Activation of monitors detection on the Radeon.
Fix the change screen dialog box under the TOS desktop.
Inverted interrupt enable inside PCI BIOS (because Rodolphe has put some hardware changes).
Local PLX9054 interrupts cannot work (hardware bug without solution).
Recuced Malloc usage.
Add local stacks for the VBL, VDI, Mouse, and Bconout 2/5 routines.
Fix yellow icons bug (vq_color, thanks to Olivier Landemarre).
Fix randon freeze with Radeon fifo on some functions of the VDI (v_gtext and vrt_cpyfm).
Try DMA (PLX9054), after an hardware update of the ABE chip, writing to the PCI zone works (Kronos displays 1500 MB/S), but reading freeze the machine. Reading disabled inside the driver (hardware bug).
Try interrupts on a network RTL8139D card + Milan driver under MiNT without success (thanks to Patrice Mandin, hardware bug).
Modification of the USB2 board in 3V3, thanks Rodolphe.
Try bus mastering with the generic USB2 NEC board in STRAM and the Radeon offscreen RAM without success (hardware bugs).
Removed the USB board and the network board who has finished by create parity errors and hide the Radeon, and after hide the CTPCI himself during PCI scan !
This is a TOS VDI comparison under Kronos :
|Kronos test||Radeon 9250 / CTPCI|
PCI 33 MHz / CPU 95 MHz
|Radeon 9250 / M5484LITE|
PCI 50 MHz / CPU 200 MHz
|VDI_CIRCLE||2352.941 (op/sec)||3943.662 (op/sec)|
|VDI_ARC||19900.990 (op/sec)||27164.179 (op/sec)|
|VDI_BAR||64477.612 (op/sec)||44250.000 (op/sec)|
|VDI_ELLARC||17700.000 (op/sec)||25200.000 (op/sec)|
|VDI_ELLIPSE||2142.857 (op/sec)||3582.090 (op/sec)|
|VDI_ELLPIE||455.696 (op/sec)||637.168 (op/sec)|
|VDI_PIESLICE||535.316 (op/sec)||802.974 (op/sec)|
|VDI_RBOX||15879.024 (op/sec)||19085.714 (op/sec)|
|VDI_PLINE||76866.995 (op/sec)||96280.000 (op/sec)|
|VDI_FILLAREA||823.318 (op/sec)||1390.909 (op/sec)|
|VDI_GTEXT||8840.000 (op/sec)||15020.000 (op/sec)|
|VDI_JUSTIFIED||8827.586 (op/sec)||5973.333 (op/sec)|
|VDI_BLITTING||39285.149 (op/sec)||44346.000 (op/sec)|
|Kronos test||Radeon 9250 / CTPCI|
PCI 33 MHz / CPU 95 MHz
TOS VDI 1920x1080x32
|Radeon 9250 / CTPCI|
PCI 33 MHz / CPU 95 MHz
|VDI_CIRCLE||2352.941 (op/sec)||1682.243 (op/sec)|
|VDI_ARC||19900.990 (op/sec)||10500.000 (op/sec)|
|VDI_BAR||64477.612 (op/sec)||56898.000 (op/sec)|
|VDI_ELLARC||17700.000 (op/sec)||9411.765 (op/sec)|
|VDI_ELLIPSE||2142.857 (op/sec)||1565.217 (op/sec)|
|VDI_ELLPIE||455.696 (op/sec)||390.244 (op/sec)|
|VDI_PIESLICE||535.316 (op/sec)||466.019 (op/sec)|
|VDI_RBOX||15879.024 (op/sec)||7375.610 (op/sec)|
|VDI_PLINE||76866.995 (op/sec)||69980.392 (op/sec)|
|VDI_FILLAREA||823.318 (op/sec)||703.448 (op/sec)|
|VDI_GTEXT||8840.000 (op/sec)||7880.000 (op/sec)|
|VDI_JUSTIFIED||8827.586 (op/sec)||9142.857 (op/sec)|
|VDI_BLITTING||39285.149 (op/sec)||37571.707 (op/sec)|
Modification of MAGXBOOT (internal and external), now MagiC 6.10/6.20 use the VDI and the XBIOS of TOS (only for the Radeon driver, so no USB actually).
Moving boot sources to the version 2.0. Now the patchs are not build with the compiler (original idea of Xavier Joubert) but when the boot start.
The patched TOS404 works only in SDRAM write protected by the PMMU, the orignial TOS404 is at the beginning of the flash.
This schematic of work is nearest than the Hades. This system is better for solve the licences problems.
It's possible to load separate files for the TOS404, the boot and the PCI drivers :
Direct access to the Radeon register, it's faster.
Add user clock divider parameter to 2 at 6 for the CTCM, this is a comparison with Kronos :
|Kronos test||Radeon 9250 / CTPCI|
PCI 31.66 MHz / CPU 95 MHz (/3)
|Radeon 9250 / CTPCI|
PCI 47.5 MHz / CPU 95 MHz (/2)
|Radeon 7500 / M5484LITE|
PCI 50 MHz / CPU 200 MHz
|VDI_CIRCLE||2469.136 (op/sec)||2469.136 (op/sec)||3750.000 (op/sec)|
|VDI_ARC||18916.256 (op/sec)||18916.256 (op/sec)||28656.716 (op/sec)|
|VDI_BAR||47304.000 (op/sec)||47477.228 (op/sec)||66882.000 (op/sec)|
|VDI_ELLARC||17227.723 (op/sec)||17227.723 (op/sec)||26100.000 (op/sec)|
|VDI_ELLIPSE||2253.521 (op/sec)||2253.521 (op/sec)||3396.226 (op/sec)|
|VDI_ELLPIE||472.131 (op/sec)||478.405 (op/sec)||620.690 (op/sec)|
|VDI_PIESLICE||566.929 (op/sec)||569.170 (op/sec)||779.783 (op/sec)|
|VDI_RBOX||16114.851 (op/sec)||16114.851 (op/sec)||16563.184 (op/sec)|
|VDI_PLINE||72676.617 (op/sec)||72676.617 (op/sec)||134460.000 (op/sec)|
|VDI_FILLAREA||900.000 (op/sec)||900.000 (op/sec)||1291.139 (op/sec)|
|VDI_GTEXT||8500.000 (op/sec)||8540.000 (op/sec)||15860.000 (op/sec)|
|VDI_JUSTIFIED||8296.296 (op/sec)||8334.884 (op/sec)||7255.061 (op/sec)|
|VDI_BLITTING||36611.765 (op/sec)||36611.765 (op/sec)||100362.000 (op/sec)|
|STRAM_READ||7.833 (MB/sec)||7.813 (MB/sec)||64.807 (MB/sec)|
|STRAM_WRITE||12.660 (MB/sec)||12.660 (MB/sec)||74.954 (MB/sec)|
|STRAM_MOVE||4.851 (MB/sec)||4.851 (MB/sec)||34.766 (MB/sec)|
|VIDEO_READ||5.870 (MB/sec)||7.078 (MB/sec)||37.038 (MB/sec)|
|VIDEO_WRITE||1530.998 (MB/sec)||1524.441 (MB/sec)||95.326 (MB/sec)|
|VIDEO_MOVE||1122.387 (MB/sec)||1122.387 (MB/sec)||2394.818 (MB/sec)|
Sure, if you want this feature, you need to put a wire for the PCI clock on the OUT1 output (pin1 of the DS1085) of the CTCM :
Try to decrease the PCI clock to 16 MMhz (/6) for an ultimate USB test, but without success because the CT60 create an exception during access to the PCI zones (timeout too short).
Rewrited CHGRES.PRG for MagiC.
SpeedoGDOS works but isn't stable (with/without CTPCI/Radeon there are cache problems, for example you get ramdom crashes with QED). For start it from the AUTO folder, you must disable the caches and enable again later. Add this feature inside the TOS.
Now TOS inside Vsetscreen check if the Radeon driver apply the real screen selected by the modecode, else update the modecode. You can see this feature with the 'Test' button inside VIDEOCNF.CPX.
NVDI 5.03 works with the default boot screen. You must rename all NVDIDR*.SYS files inside the NVDI folder (thanks to Claude Labelle).
Add XBIOS patch for NVDI, now TOS overwrite NVDI XBIOS by setting the XBRA '_PCI' to the top list when NVDI is found. The Result : NVDI 5.01 works and you can change screen and get list of screens with Vsetscreen!
Fix TOS for get NVDI working with MagiC and the new CHGRES.PRG.
Add flash parameter and an option inside CT60CONF.CPX for add a debug output inside video.log.
Add a 2nd CTPCI test before apply patches and copy TOS in SDRAM because later when the PCI BIOS start, the CTPCI seems always detected ???
Fixed VDI bugs with function v_fillarea (line), v_rfbox (user pattern), and v_locator (thanks to Claude Labelle).
Fixed the VDI function v_contourfill used by lot of graphics applications (Note : This function is not implemented inside fVDI).
Fix zero divide inside the clipping line routine.
Fix VDI function vrt_cpyfm in 65K colors.
Test for get working MagiC 6.20 / NVDI 5.
Now I wait the hardware problems fix for get working USB/Ethenet PCI boards...
I contacted Fredi for continue my work on the 4th target, the Firebee (old project code name Coldari) paused in January.
Because I have no PC, the idea is to load the TOS with dBUG like the M5484LITE. So the first step is to rebuild dBUG for the FIREBEE :
Rewrited the default filling routine of fVDI with native Coldfire code, now it's faster. Monitor detection works with I2C interface.
Build a PCI passive backplane with the riser PCI and the unused 4th slot of the CTPCI, lot of wires to solder...
The Radeon 9200 board connected to the Firebee...
Tried Floppy on the Firebee, reading works fine but not writing because the FPGA emulation is not complete for the AJAX controller of the FALCON.
Added SD-Card driver from Fredi sources.
Tried USB Mass Storage with OHCI and EHCI controllers of the NEC PCI chip on the Firebee. But USB sticks works only when the Radeon load the PCI BUS else I get timeout and unrecoverable PCI error like the M5484LITE.
Added some changes to BDOS for fix bug caused by 32KB clusters (2GB partitions).
If the BAS is installed, now it's possible to use ethernet without dBUG with some limitations (3 flash parameters used) :
We are in 2011, and there are no news for fix hardware problems on the CTPCI :-(
Removed Linux AC97 sources. Rewrited and tried AC97 Coldfire driver on the Firebee (enabled also for the M5484LITE) :
Fixed MP2 and MPEG Aniplayer playback for the Coldfire.
XBIOS Vsetscreen function tested all new modes for the Radeon board. Added and tried CMD_FILLMEM, CMD_COPYMEM, CMD_TEXTUREMEM and CMD_GETVERSION for XBIOS accel functions.
Added XBIOS Vsync function for the Radeon board.
Added rejection modes for clocks over 135 MHz who have heat isues with DVI on RV100 (Radeon 7000 boards).
VIDEOCNF.CPX, added video.cnf configuration file for XAAES.
Firebee target :
Added accel sub functions CMD_LINEMEM, CMD_CLIPMEM, and CMD_SYNCMEM to the XBIOS Vsetscreen (Radeon).
On Coldfire targets added plug and play support for USB using a FreeRTOS task. But there are a problem when I connect the mouse or the keyboard the 2nd time, the result is 'Device Not Responding' before start again the mouse/keyboard driver. Added a fix who works with the mouse but seems not works with my keyboard. The USB stack use U-Boot sources, it's easier to use than Linux but there are some limitations.
Fixed also lot of bugs inside XHDI drivers (IDE boot and SD-CARD/USB drivers).
2011 May. Firebee target :
Fixed an ugly bug with the VDI function vst_rotation on all targets.
Added sub function CMD_BLANK to the XBIOS Vsetscreen (Radeon), works also on Firebee with FPGA Videl ACP modes.
Added another boot menu and rescue features on the Firebee target :
Try to fix CT60 flash boot problems by reading until 4 times the TOS in flash if the CRC is bad, before apply the patches in SDRAM.
If the Supervidel is found, the TOS use the default Bconout routine who use the blitter.
Coldfire targets :
Fixed port 5 change on USB EHCI controller.
Added alert message from USB.
On Coldfire V4e targets, added 'DMAC' cookie for external usage of the DMA.
AC97 driver started again a 2nd time (2nd warn reset) if there are an error (Firebee).
Added MiNT patch for his TOS < 2.0 IKBD interrupt routine for get compatibility with TOS 4.04 for USB2 using Kbdvbase().
On the Firebee target and TOS started from 'TOS404 for MiNT' boot menu entry, the FEC driver is stopped and his task killed when 'MiNT' cookie detected.
On M5484LITE/FIREBEE enabled XLB PCI interrupt.
Inside the CF68KLIB, removed fix_predecrement/fix_postincrement when address error arrives with MOVE.B/W/L (An)+,
On the Firebee target, added 8 SCSI and 4 IDE device unselection via the CPX.
On the Firebee target, added fix for Device Errata 26, now USB Mass Storage works fine (PCI <=> Flexbus).
On the Firebee target, enabled XLB PCI interrupt, now abort create a level 7 interrupt redirected on access fault. So now access on unused spaces on PCI bus IO and MEM create an access fault.
2011 September. Added bus support inside the PCI BIOS, limits now are :
The PCI/PCIe adapter with the USB2 PCIe board connected to the Firebee...
Fixed invalid IDE call possible (wrong device) inside boot routine after SCSI drives detection (for example with ALT key I got crash).
This bug is very old, but since the CTPCI, the IDE routine is ready for a 2nd port and this 2nd port is not implemented in the current hardware so it's possible to get a crash (invalid access to a 2nd CTPCI IDE port).
On all targets, added ATAPI devices to SCSIDRV. FIREBEE and FALCON with CT60/CTPCI has IDE and IDE2 (IDE not compatible). SCSI cookie added before hard disk driver boot sequence.
Added SCSI CD driver for boot with Extendos CD-backups and ISO9660 CD driver for restore features with a popup menu during boot when a CD/DVD is found.
Added LZMA encoder/decoder for a better compression of the drivers.
On Firebee target, added 'PEXE' cookie, this value is a pointer who use a basepage as parameter on stack for try to patch Pure C program with an external OS.
Since January, Rodolphe work again on the CTPCI :-)
Added FreeRTOS on CT60/CTPCI target and the USB HUB task.
On CTPCI fixed PEND register bits test inverted, and finally revoved this test who can caused loop inside a PCI interrupt
Tried again, with the latest jedec file for the CTPCI (CTPCI_1L), the PCI/PCIe adapter and the USB2 PCIe board. It's better, interrupts works fine and the ethernet OZK RTL8139 driver runs, but I have freezes with ethernet and the USB Mass Storage (most of time when the DMA writes to the local RAM). Add delays loops seems reduce problems but slow down transfers, for example on USB you must replace the 1uS delay between two status register reading by a 10 mS delay, and for ethernet I used (just for test) an interrupt task with the OZK RTL8139 driver who add a delay after the interrupt. It's not a reliable solution for a final release (too hardware dependent).
2012 March. CT60/CTPCI target:
On CT60/CTPCI target, added workaround for freeze (seems a deadlock) with a new XBIOS function ctpci_dma_lock (from PCI BIOS) for hardware workaround (actually not ready, Rodolphe is busy with is job).
The XBIOS function is empty because I need infos from Rodolphe (a new CTPCI register).
On the CT60/CTPCI target the FEC driver is stopped and his task killed when 'MiNT' cookie detected.
Writed RTL8139 drivers XIF for MiNT and STX for Sting (TOS can use internal LwIP driver).
Rewrited conout routines in C for Videl or graphic card (planes or without planes, with or without accel routines from drivers part). TOS404 VT52 routines table at 0xE13268 used, theses routines use the A4 register as Line A pointer. Not used on Coldfire targets, there are a crash when screen changed.
Added 5 retry loops to IKBD keyboard test, must fix Firebee disabled interrupt keyboard problem (remember that you must disable IKBD interrupts when RJ11 is not connected for remove null bytes interrupts feature who slow down the CPU).
Fixed telnet server, added on CT60/CTPCI target.
Added IDE LBA 48 support (reduced to 32 bits for the XBIOS) on all targets excepted the M5484LITE (because the bugged equations inside the CPLD need 16 bits access on IDE registers).
I worked again on a VNC server solution (the idea was in 2007 December!), but not inside the TOS (not enough space).
His name is aVNCServ, this is the features :
On CT60/CTPCI target, added option for disable XHDI and SCSIDRV installed by the TOS (via CPX setting and flash CTPCI parameter).
2012 November. Added some features on the Firebee target :
Inside lwIP, replaced the semaphore used by select() by interrupts masked (faster).
Added the basic web server to the CT60 target, the idea is to update the flash with the TOS himself like the Firebee. Moved port used to 8080.
Fixed bug with US USB keyboard (not french or german), where shift_table and altgr_table are NULL.
2013 January. Firebee target :
2013 February. On the Firebee target, some fix again for use Emutos from the TOS boot :
Rodolphe actually have no time to continue on CTPCI.
Build official Aniplayer 2.23 for MP3 decoding on Firebee using V4e MAC instructions and also for use the VIDIX interface and play YUV videos output formats in fullscreen on the Radeon.
|TOS drivers||tos_drivers.lzh||1.01 2011 July 27||2756 KB||CTPCI/FIREBEE|