English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 19 October 2018, 16:52   #241
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Which test number? (I never do any extra work when there is no need..)

EDIT: Try winuae.7z because I yesterday found one bug that used wrong size but oddly enough no unix-like OS cared..

Last edited by Toni Wilen; 19 October 2018 at 17:00.
Toni Wilen is offline  
Old 19 October 2018, 16:55   #242
plasmab
Banned
 
plasmab's Avatar
 
Join Date: Sep 2016
Location: UK
Posts: 2,917
Quote:
Originally Posted by Toni Wilen View Post
Which test number? (I never do any extra work when there is no need..)


maximise work not done
plasmab is offline  
Old 19 October 2018, 17:22   #243
Wepl
Moderator
 
Wepl's Avatar
 
Join Date: Nov 2001
Location: Germany
Posts: 866
winuae.7z works
Wepl is offline  
Old 19 October 2018, 20:33   #244
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Great. I am still wondering how anything could have ever worked with that bug..

Could you also test MOVES? Does SSW FC bits also modify MOVES's retried access?

It probably does but MOVES is a special kind of instruction (only one that can do memory accesses using different FC mode) so there could be differences.
Toni Wilen is offline  
Old 19 October 2018, 20:53   #245
Wepl
Moderator
 
Wepl's Avatar
 
Join Date: Nov 2001
Location: Germany
Posts: 866
Quote:
Originally Posted by Toni Wilen View Post
Great. I am still wondering how anything could have ever worked with that bug..
for virtual memory the operand size is not relevant I think
Quote:
Originally Posted by Toni Wilen View Post
Could you also test MOVES? Does SSW FC bits also modify MOVES's retried access?

It probably does but MOVES is a special kind of instruction (only one that can do memory accesses using different FC mode) so there could be differences.
If the test works, extending it to moves will be simple.
It's a bit difficult to test this under whdload because of the exception handler in whdload. It makes some things invisible. Still trying.
Wepl is offline  
Old 20 October 2018, 00:01   #246
Wepl
Moderator
 
Wepl's Avatar
 
Join Date: Nov 2001
Location: Germany
Posts: 866
I have added 4 tests to check supervisor protection.

4105 move from user mode, faults
4106 as above but with fix in af which replaces fc in ssw and retries
4107 moves with sfc=1 mode, faults
4108 as above but with fix in af which replaces fc in ssw and retries

First 3 tests succeed with latest WinUAE beta. Last hangs.
Not yet tried on real hw.

see http://whdload.de/whdload/Harddisk-WHDLoad-Test.zip
Wepl is offline  
Old 20 October 2018, 09:54   #247
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Thanks!

It seems to work correctly except MOVES which didn't expect to get retried this way and always uses original FC.

Next step is to test it using real hardware (I have 68030 boards but first I need to transfer the test which is always boring ) because if MOVES does not support FC modification, I don't need to fix it but simply skip MOVES special retry and generate bus error again.
Toni Wilen is offline  
Old 20 October 2018, 12:04   #248
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Tested on real hardware. 4105-4107 works identically.

Quote:
Originally Posted by Wepl View Post
4108 as above but with fix in af which replaces fc in ssw and retries
This returns:

34108 -> FAILED expected OK got EXCEPTION
Exception "Illegal Instruction" ($10)
at $20200 occured.

Weird..

EDIT: I added MOVES SSW FC modification support and now I get same illegal instruction exception (bug in this test?). So I guess this confirms MOVES is also affected

Last edited by Toni Wilen; 20 October 2018 at 12:44.
Toni Wilen is offline  
Old 20 October 2018, 22:04   #249
Wepl
Moderator
 
Wepl's Avatar
 
Join Date: Nov 2001
Location: Germany
Posts: 866
Yes this was bad test code ("jmp (a0)" instead rts).
If you want updated please let me know.
Wepl is offline  
Old 21 October 2018, 14:02   #250
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
That fix isn't important but could you do some more tests:

Fill the target address with some pattern
Supervisor protect it.
Write long in user mode (with different data pattern than already in memory)
In access fault handler change SSW FC to supervisor and ALSO change SSW size to byte and then retry it.
Check target memory by comparing written data with original data. Did it write long or only byte?

If only byte was written: same test using read. If you use someting like move.l (a0),d0 prefill d0 with some pattern, then change SSW FC and size again. Did D0 change completely or did only byte part change?
Toni Wilen is offline  
Old 23 October 2018, 10:16   #251
Wepl
Moderator
 
Wepl's Avatar
 
Join Date: Nov 2001
Location: Germany
Posts: 866
I've added both tests:
4109 write
4110 read
Not tested on real hw yet. I'm unsure if 4109 is correct because adjustment of data because size change l->b.
In WinUAE 4109 fails and 4110 succeeds.
You only need to exchange the qa.asm (see lines 3000ff). Full zip is nevertheless updated too.
Attached Files
File Type: zip qa.zip (17.6 KB, 241 views)
Wepl is offline  
Old 23 October 2018, 18:24   #252
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Quote:
Originally Posted by Wepl View Post
I've added both tests:
4109 write
4110 read
Not tested on real hw yet. I'm unsure if 4109 is correct because adjustment of data because size change l->b.
In WinUAE 4109 fails and 4110 succeeds.
You only need to exchange the qa.asm (see lines 3000ff). Full zip is nevertheless updated too.
Is it possible to see what data was actually written or read? To confirm what real hardware does.

(I'd like to do some simple test program but creating full valid MMU table for 68030 is too painful..)
Toni Wilen is offline  
Old 23 October 2018, 20:47   #253
Wepl
Moderator
 
Wepl's Avatar
 
Join Date: Nov 2001
Location: Germany
Posts: 866
Yes. Use command tr instead t (tr 4109).
This will show whdload requester. Then click on Show Regs.
preinit memory value is $12345678
4109 written was $aabbccdd, d2=value afterwards
4110 d1 cleared, d1=value afterwards
Wepl is offline  
Old 23 October 2018, 21:23   #254
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Quote:
Originally Posted by Wepl View Post
4110 read
This seems to work identically on real hardware.

Quote:
Originally Posted by Wepl View Post
4109 write
I changed SFC to DFC. Now it does something but register dump shows D1 = $20592034 and D2 = $d2d22e0e which does not make any sense.. D1 was supposed to be original value ($aabbccdd) and D2 returned value. D0 = 1 which seems to be correct (value written to DFC). Does _failmsg change registers?

(btw, please, add leading zeros to register dump)
Toni Wilen is offline  
Old 23 October 2018, 23:41   #255
Wepl
Moderator
 
Wepl's Avatar
 
Join Date: Nov 2001
Location: Germany
Posts: 866
4109:
after correction sfc to dfc and changing the expected result to d2=aa345678 this works on my hardware
4110:
looks a bit strange, d1 contains 2078 after the read, I would expect 78 instead, either I have overseen something or the cpu is doing word transfer and leading 20 is some relict

Quote:
Originally Posted by Toni Wilen View Post
Does _failmsg change registers?
no
Quote:
Originally Posted by Toni Wilen View Post
(btw, please, add leading zeros to register dump)
why should I do?
Wepl is offline  
Old 27 October 2018, 17:25   #256
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Quote:
Originally Posted by Wepl View Post
4109:
after correction sfc to dfc and changing the expected result to d2=aa345678 this works on my hardware
4110:
looks a bit strange, d1 contains 2078 after the read, I would expect 78 instead, either I have overseen something or the cpu is doing word transfer and leading 20 is some relict
I'll try to make my own mini test program some day.. This is no important feature.

Quote:
why should I do?
Without leading zeros they look like decimal numbers and I always read hex numbers from left to right, can instantly see the magnitude of number by looking for first non-zero number
Toni Wilen is offline  
Old 28 October 2018, 18:16   #257
Wepl
Moderator
 
Wepl's Avatar
 
Join Date: Nov 2001
Location: Germany
Posts: 866
Quote:
Originally Posted by Toni Wilen View Post
Without leading zeros they look like decimal numbers and I always read hex numbers from left to right, can instantly see the magnitude of number by looking for first non-zero number
Ok I prefer it the current way.
Wepl is offline  
Old 29 October 2018, 13:23   #258
Tomislav
Registered User
 
Join Date: Aug 2014
Location: Zagreb / Croatia
Posts: 302
Or at least put $ (dollar) sign as prefix. It's ok if you write something for yourself your way, but when you write for others it's good to mark somehow that it is not decimal.
Tomislav is offline  
Old 24 November 2018, 21:05   #259
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
(from old post)

Quote:
68030:
- on write/rwm faults WinUAE throws the exception at the instruction which causes the fault (2,a7) instead of the next instruction which is reported on a real 68030, this is only a difference to the real hw, WHDLoad has not a problem with that because it doesn't use the reported pc for anything (check #3202-3, wrong message)
I did some real 68030 testing with enforcer and it seems (most?) instructions that end in write to memory have bus error stack frame PC pointing to following instruction. Even MOVEM to memory does it.

I'll probably emulate this after 4.1.0 is out.
Toni Wilen is offline  
Old 19 January 2019, 10:43   #260
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Quote:
Originally Posted by Toni Wilen View Post
I did some real 68030 testing with enforcer and it seems (most?) instructions that end in write to memory have bus error stack frame PC pointing to following instruction. Even MOVEM to memory does it.

I'll probably emulate this after 4.1.0 is out.
Implemented now.
Toni Wilen is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
68040 vs 68060 tesla support.Hardware 10 20 April 2013 19:13
68040 MMU jsr/bsr Toni Wilen Coders. General 5 28 April 2010 20:57
68060 fpu not available mmu not active amigarlz support.Hardware 6 18 March 2010 06:35
WTB: 68030 or 68040 accelerator for A2000 Shadowfire MarketPlace 2 19 September 2009 17:52
68030/mmu Support in WinUAE dkovacs request.UAE Wishlist 19 22 August 2005 14:42

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 08:11.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.18559 seconds with 16 queries