VOGONS


Reply 20 of 34, by yottatsa

User metadata
Rank Newbie
Rank
Newbie
Paul_V wrote on 2022-12-11, 21:40:

I've been able to track down the software used to flash Vortex86DX internal BIOS through JTAG port.
Also, found another datasheet, which is more comprehensive in terms of register control and functions (including L1\L2 cache control)

May I ask you for details (maybe on email)? I'm trying to figure out how to connect it with OpenOCD, and so far it detects 20 taps with ever changing IDs. Seems like either I fried something, or it didn't reset the board properly.

Also, have you tried SPIFLASH.EXE or XFLASH.EXE? At least last one should be able to upload/download the firmware from even SX.

Reply 22 of 34, by yottatsa

User metadata
Rank Newbie
Rank
Newbie

Based on the documents that Paul_v is gladly shared, DM&P has a tablet computer appliance of sorts running Linux to use with their JTAG. Based on this, I'm not sure it'll be possible to find their official tool. :<

Reply 23 of 34, by Paul_V

User metadata
Rank Member
Rank
Member
yottatsa wrote on 2022-12-17, 13:51:

Based on the documents that Paul_v is gladly shared, DM&P has a tablet computer appliance of sorts running Linux to use with their JTAG. Based on this, I'm not sure it'll be possible to find their official tool. :<

"I'm gonna go build my own theme park, with blackjack..." (c) Bender

My XILINX Parallel Cable III clone kind of works now all of a sudden (ECP mode) . IDK, maybe it was some faulty solder joint.

After examining more closely, I found out that the program specifically searches for MX25L2005 flash chip (RDID C2 20 12)
But my SoC has MX25L1605 (RDID C2 20 15), which is read sucesfully, but does not match the coded value.
The hardware part of the puzzle is more or less solved.

UPD:
Went the "quick&dirty" way, manually replacing the RDID hex value it wants.
The cable is working fine. The chip is detected, erased and programmed, but verifying fails and SoC is unable to boot the BIOS.
This is not surprising, given the different flash block structure and address range the code just gets corrupted. I'll try to dig deeper in the disassembled code to fix that.
Interestingly, a full 16Mbit chip dump passes the write and verify, but does not boot. I suppose only first 256KB are written\checked
(I do not exclude a chance of bricking device completely, as I also tried changing chip address ranges. Who knows, what could have been erased 0_o)

Anybody familiar with assembler and interested in helping reverse-engineer the code, please PM me 😀

MX25L1605:
16,777,216 x 1 bit structure; (16Mbit)
32 Equal Sectors with 64K byte each

MX25L2005:
2,097,152 x 1 bit structure; (2Mbit)
64 Equal Sectors with 4K byte each or
4 Equal Blocks with 64K byte each

Reply 24 of 34, by yottatsa

User metadata
Rank Newbie
Rank
Newbie
Paul_V wrote on 2022-12-11, 21:40:

I've been able to track down the software used to flash Vortex86DX internal BIOS through JTAG port.
Also, found another datasheet, which is more comprehensive in terms of register control and functions (including L1\L2 cache control)

Finally found the jflash.exe somewhere on DM&P's ftp (PM me with your email/other contacts, since I can't reply in DM yet)!

Reply 25 of 34, by Paul_V

User metadata
Rank Member
Rank
Member
yottatsa wrote on 2022-12-23, 01:26:
Paul_V wrote on 2022-12-11, 21:40:

I've been able to track down the software used to flash Vortex86DX internal BIOS through JTAG port.
Also, found another datasheet, which is more comprehensive in terms of register control and functions (including L1\L2 cache control)

Finally found the jflash.exe somewhere on DM&P's ftp (PM me with your email/other contacts, since I can't reply in DM yet)!

Well, I'll be... Christmas came early! 😀
This version of jflash did the trick. It still failed to verify the BIOS file it flashed, but the board booted fine and I can always reflash it from DOS just in case.
Much appreciated, yottatsa!

Reply 26 of 34, by yottatsa

User metadata
Rank Newbie
Rank
Newbie

tl;dr I flashed my board, too, with Xilinx DLC7 cable.

Here are the utilities that Paul and I discovered. Please note that VirusTotal thinks that JFLASH.EXE is a virus.

Last edited by yottatsa on 2023-01-01, 15:56. Edited 1 time in total.

Reply 27 of 34, by Paul_V

User metadata
Rank Member
Rank
Member
yottatsa wrote on 2022-12-30, 23:23:

tl;dr I flashed my board, too, with Xilinx DLC7 cable.

Hi! Glad this worked out for you. Thanks for the feedback.
---------------------------------------------

Now, back to some more underclocking shenanigans:
After countless benchmarks, BIOS mods and tests I think I got the culprit, which prevents running some speed sensitive games properly.
The results I got over time were so erratic, I could not even tell if the were accurate at all. Below is the example to get the idea how erratic a simple TSC check can be with different utilities.
Errdata.png

Combined results from several benchmarks gave me the view, that HWInfo on WinXP by far is the most consistent.
Below is the chart with results I got. The tests were performed on default 800Mhz and hardware strap underclocked 500Mhz SoC.
1) I cannot tell, if the clock frequency measurements are correct, but they are consistent with benchmark results at least. Frequency division in this case looks something like "DIv_Freq=CPU_Freq*(n/32)"
(with n being 3\5\8\11\12\14\16\32) and is not a straightforward division by 3/4/5...etc
2) Disabling L1 cache practically disables any frequency division beyond D/2. This is the reason some speed sensitive games cannot run properly. I get same result under DOS
I cannot explain the reasons behind this, whether it's a bug or hardware peculiarity.
Wonder if DX3 will act the same way.

P.S. I'm planning on editing my previous posts to remove obsolete or misleading info and consolidating it in my first post.

Last edited by Paul_V on 2023-01-19, 08:01. Edited 1 time in total.

Reply 28 of 34, by Paul_V

User metadata
Rank Member
Rank
Member

EBOX-3350 with Vortex86DX2 proved to be even more stubborn.
Clock division seem to affect performance even less and disabling L1 Cache throws clock division entirely out of the window.

UPD:
I just remembered, that PCI clock on VDX defaults at 33,3(3) Mhz, but there is a strap to run it at 66,6(6).
I did not check PCI clock on EBOX-3350DX2 and cannot now, since I it has been borrowed from a colleague.

Last edited by Paul_V on 2023-01-08, 17:23. Edited 1 time in total.

Reply 29 of 34, by rasteri

User metadata
Rank Oldbie
Rank
Oldbie

I'm gonna do some testing on the DX3 fairly soon. Hopefully we can get it underclocked too.

Reply 30 of 34, by Paul_V

User metadata
Rank Member
Rank
Member

Got an answer from ICOP, regarding L1 and divider on DX\DX2 (and probably MX too). Not an encouraging one.
Quote:
"It's the hardware limitation due to internal PLL (Phase-Locked Loops) design mechanism, the L1 cache must enabled in order to make internal variable clock divider work."

Still in the process of clarification about DX3.
Quote:
"The structure of VDX3, VDX2 and VDX is the same, so yes, the L1 cache is required for PLL"

rasteri wrote on 2023-01-08, 15:24:

I'm gonna do some testing on the DX3 fairly soon. Hopefully we can get it underclocked too.

Thank you again for all your efforts.
I have checked all my previous benchmarks and looks like DX3 is able to downclock a little more than DX. (60 for DX3 in Topbench compared to 65 for DX)
DX has DDR power saving feature, lowering it's score down to 48, but it works more like a bottleneck, rather than downclock. Not very stable.

Reply 31 of 34, by ofteax

User metadata
Rank Newbie
Rank
Newbie
Paul_V wrote on 2021-12-29, 17:13:

1) BIOS

I've been using BIOSMP.exe utility from DM&P to flash and dump SoC BIOS with no issues so far.

Can you send me the BIOSMP.exe download link?
I couldn't find it anywhere

Reply 32 of 34, by PC Hoarder Patrol

User metadata
Rank l33t
Rank
l33t
ofteax wrote on 2024-05-12, 10:31:
Paul_V wrote on 2021-12-29, 17:13:

1) BIOS

I've been using BIOSMP.exe utility from DM&P to flash and dump SoC BIOS with no issues so far.

Can you send me the BIOSMP.exe download link?
I couldn't find it anywhere

Welcome to Vogons 😀

The attachment BIOSMP.zip is no longer available

Reply 33 of 34, by andrei.belov

User metadata
Rank Newbie
Rank
Newbie
yottatsa wrote on 2022-12-17, 13:51:

Based on the documents that Paul_v is gladly shared, DM&P has a tablet computer appliance of sorts running Linux to use with their JTAG. Based on this, I'm not sure it'll be possible to find their official tool. :<

I'm still hoping that there is a chance to acquire some control over my Vortex86 (I'm trying to amend the coreboot for SOM-128-EX to enable PCIe-PCE bridge interrupts support via PIRq).

Is there any chance I could have my hands on these documents to shed some light on this?

The only thing that is popping up on the Internet:

JTAG interface (built-in)
6-pin connector for MICE function
Windows version debugging software
Specific cable between JTAG connector and printer port (for remote PC)

Thank you!

Reply 34 of 34, by Paul_V

User metadata
Rank Member
Rank
Member
andrei.belov wrote on Yesterday, 03:31:
I'm still hoping that there is a chance to acquire some control over my Vortex86 (I'm trying to amend the coreboot for SOM-128-E […]
Show full quote
yottatsa wrote on 2022-12-17, 13:51:

Based on the documents that Paul_v is gladly shared, DM&P has a tablet computer appliance of sorts running Linux to use with their JTAG. Based on this, I'm not sure it'll be possible to find their official tool. :<

I'm still hoping that there is a chance to acquire some control over my Vortex86 (I'm trying to amend the coreboot for SOM-128-EX to enable PCIe-PCE bridge interrupts support via PIRq).

Is there any chance I could have my hands on these documents to shed some light on this?

Thank you!

Hi, sent you a PM.