English Amiga Board


Go Back   English Amiga Board > Support > support.Hardware > Hardware mods

 
 
Thread Tools
Old 16 August 2013, 17:37   #341
majsta
www.majsta.com
 
majsta's Avatar
 
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
Thank you Toni. I noticed that with 0000 memory can be detected but for some reason can't be autoconfigured. If I use settings in register to add for example 32MB everything works fine.Lets look that part of the code now.
Quote:
WHEN "000001" => autoconfig_data2 <= "0001"; -- 64KB (extended to 32MB in reg 08)
WHEN "000100" => autoconfig_data2 <= "0000";
.
.
.
So here in register 02 we add 0001 to support 32MB and in register 08 we stay with 0000.

Like I said don't work with 2 autoconfig boards added(with different serial number!). Another thing since ZorroIII can be configured in ZorroII configuration space this is not the potential problem. Maybe problem can be related somehow to registers 44 or 48 only that was left to investigate.
majsta is offline  
Old 16 August 2013, 19:37   #342
majsta
www.majsta.com
 
majsta's Avatar
 
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
In the process of solving problem I had to play a little

[ Show youtube player ]
majsta is offline  
Old 16 August 2013, 19:48   #343
robinsonb5
Registered User
 
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 1,153
Quote:
Originally Posted by majsta View Post
Thank you Toni. I noticed that with 0000 memory can be detected but for some reason can't be autoconfigured. If I use settings in register to add for example 32MB everything works fine.Lets look that part of the code now.
I'm a bit confused by what you mean when you say "can be detected but for some reason can't be autoconfigured."

What exactly happens?
Does Workbench show the right amount of memory?
Does SysInfo detect the "board", and show the right amount of memory?
Does the system crash when you try and use the memory?

I wonder if there's still a problem with the address decoding, or maybe even the SDRAM controller?
robinsonb5 is offline  
Old 16 August 2013, 19:51   #344
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,504
Include full output of tools/showconfig
Toni Wilen is online now  
Old 16 August 2013, 19:52   #345
majsta
www.majsta.com
 
majsta's Avatar
 
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
My English sucks
1. Workbench show 64MB
2. Sysinfo detects board but with 0K of memory
3. System crashes when I want to do something since there is no memory there
Yes I m confused too
majsta is offline  
Old 16 August 2013, 19:55   #346
lukassid
Registered User
 
lukassid's Avatar
 
Join Date: Oct 2012
Location: Surrey
Posts: 390
http://youtu.be/ZB0lB_br6xI
Cool. Faster than ACA620 but not yet ACA630/30. Project progressing very nicely. Well done!
lukassid is offline  
Old 16 August 2013, 20:33   #347
kipper2k
Registered User
 
Join Date: Sep 2006
Location: Thunder Bay, Canada
Posts: 4,323
Quote:
Originally Posted by lukassid View Post
http://youtu.be/ZB0lB_br6xI
Cool. Faster than ACA620 but not yet ACA630/30. Project progressing very nicely. Well done!
yah, huge price difference too
kipper2k is offline  
Old 17 August 2013, 00:26   #348
tnt23
Registered User
 
tnt23's Avatar
 
Join Date: Feb 2008
Location: Saint-Petersburg / Russia
Posts: 324
majsta, in your code I don't see lower half of ER_FLAGS register being set:

Code:
CASE cpu_addr(6 downto 1) IS
WHEN "000000" => autoconfig_data2 <= "1010";	--	Zorro-III card, add mem, no ROM
WHEN "000001" => autoconfig_data2 <= "0010";	--	128KB (extended to 64MB in reg 08)

WHEN "000100" => autoconfig_data2 <= "0000";	--	Logical size matches physical size
Don't you need a compliment clause? Something like
Code:
WHEN "000101" => autoconfig_data2 <= "0000";
Here's how 64M config looks for my board. ER_TYPE is 1010 0010 and ER_FLAGS is 1011 0000.
Note the data for ER_TYPE must not be inverted.

Code:
case ({autocfg_reg, 2'b00})
				9'h000: 	rdata = ER_TYPE [7:4];
				9'h100: 	rdata = ER_TYPE [3:0];
				
				9'h004: 	rdata = ~(ER_PRODUCT [7:4]);
				9'h104: 	rdata = ~(ER_PRODUCT [3:0]);
				
				9'h008: 	rdata = ~(ER_FLAGS [7:4]);
				9'h108: 	rdata = ~(ER_FLAGS [3:0]);
tnt23 is offline  
Old 17 August 2013, 01:26   #349
robinsonb5
Registered User
 
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 1,153
Quote:
Originally Posted by tnt23 View Post
Don't you need a compliment clause? Something like
Code:
WHEN "000101" => autoconfig_data2 <= "0000";
It would be necessary, except that the autoconfig code starts with:
Code:
if sel_autoconfig2 = '1' then
autoconfig_data2 <= "1111";

CASE cpu_addr(6 downto 1) IS
...
So any registers that aren't caught by the case statement end up returning "1111", which is the correct value (after inversion) for the lower half of the Flags register, yes?
robinsonb5 is offline  
Old 17 August 2013, 08:20   #350
tnt23
Registered User
 
tnt23's Avatar
 
Join Date: Feb 2008
Location: Saint-Petersburg / Russia
Posts: 324
Quote:
Originally Posted by robinsonb5 View Post
It would be necessary, except that the autoconfig code starts with:
Code:
if sel_autoconfig2 = '1' then
autoconfig_data2 <= "1111";

CASE cpu_addr(6 downto 1) IS
...
So any registers that aren't caught by the case statement end up returning "1111", which is the correct value (after inversion) for the lower half of the Flags register, yes?
You're right, it just was not clear to me how the sel_autoconfig2 impacts the whole thing. And for the inversion, again it is not clear how and when it happens. Anyway, with or without it, 0000 or 1111 does not seem the right value for the upper half of ER_FLAGS to me. I would suggest giving 1011 (or 0100 inverted) a try, as this for sure works with my 64MB RAM board.
tnt23 is offline  
Old 17 August 2013, 08:51   #351
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,504
Quote:
Originally Posted by tnt23 View Post
You're right, it just was not clear to me how the sel_autoconfig2 impacts the whole thing. And for the inversion, again it is not clear how and when it happens. Anyway, with or without it, 0000 or 1111 does not seem the right value for the upper half of ER_FLAGS to me. I would suggest giving 1011 (or 0100 inverted) a try, as this for sure works with my 64MB RAM board.
1111 is correct (or 0000 inverted). I am quite sure this implementation ignores shutup option = bit 6 should be set. Also it does not really make any difference with Z3 boards, address space is large enough and AOS does not even check if huge Z3 board fits, it just crashes..
Toni Wilen is online now  
Old 17 August 2013, 10:29   #352
robinsonb5
Registered User
 
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 1,153
Quote:
Originally Posted by tnt23 View Post
You're right, it just was not clear to me how the sel_autoconfig2 impacts the whole thing. And for the inversion, again it is not clear how and when it happens.
Yeah, only seeing a small snippet and not the whole file can make it difficult to see what's going on. sel_autoconfig2 is just part of the address decoding, and is high when the CPU address is 0x00e8xxxx.

I've been playing with one of Majsta's Vampire 500 prototypes and a spare A500 motherboard for a few weeks now - but because it only has kickstart 1.3 I can only test Zorro II autoconfig on that particular machine. I think it's time to dismantle my A500+!
robinsonb5 is offline  
Old 17 August 2013, 11:50   #353
majsta
www.majsta.com
 
majsta's Avatar
 
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
@Toni Wilen Few days ago I have noticed that something is strange with that bit 6 and I agree with you. It seems when system crash and reboot board is not detected and for shore bit 6 needs to be set there. I m talking about bit 6 in 08 register.

@tnt23 yes I was also playing with 000101 and that should be 0A but I didn't find solution.

Maybe I m completely wrong but I assumed that register 08 needs to handle bits 7-4 and 0A 3-0. So for 08 we would have bit 7 set to indicate that there is ZorroIII memory device, bit 6 set to indicate that board can't be shut up by software, bit 5 set to indicate new memory size, and bit 4 set to indicate that there is Zorro III card in the system. So something like this, maybe.
08 1111
0A 0000
majsta is offline  
Old 17 August 2013, 14:03   #354
tnt23
Registered User
 
tnt23's Avatar
 
Join Date: Feb 2008
Location: Saint-Petersburg / Russia
Posts: 324
Stupid question it may be, but do you have registers 44 and 48 keeping high and low base address implemented? I mean, when the OS autoconfigures the card it first reads its config ROM, fills the ConfigDev structure and links that info into devices list. Then the card is assigned some address to which the card should respond from now on.

Could it be that the OS is able to read the ConfigDev structure and interpret card's flags like memory size etc, but unable to test and link the actual memory either because of 44/48 regs or other addressing issue?

Last edited by tnt23; 17 August 2013 at 14:08.
tnt23 is offline  
Old 17 August 2013, 14:48   #355
majsta
www.majsta.com
 
majsta's Avatar
 
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
I have 44 register on writing so all of this is strange.
majsta is offline  
Old 17 August 2013, 15:08   #356
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,504
I repeat: attach tools/showconfig board output. We need facts, not guesses.
Toni Wilen is online now  
Old 17 August 2013, 18:27   #357
robinsonb5
Registered User
 
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 1,153
Quote:
Originally Posted by Toni Wilen View Post
I repeat: attach tools/showconfig board output. We need facts, not guesses.
OK - so I opened up my A500+ and transplanted the Vampire 500 into it - where it worked like a charm (with 8 meg of Zorro II RAM) on the first attempt! (I did wonder whether the piggybacked Chip RAM mod I did to give the machine 2 meg of onboard chip RAM would cause problems, but no, it's fine.)

Anyhow, here's the output of ShowConfig, using the following ZIII Autoconfig code:
Code:
process(sysclk)
begin 
    -- Zorro III RAM (Up to 8 meg at 0x200000)
    autoconfig_data <= "1111";
    CASE cpu_addr(6 downto 1) IS
        WHEN "000000" => autoconfig_data <= "1010";        --Zorro-III card, add mem, no ROM
        WHEN "000001" => autoconfig_data <= "0010";        --64meg (with extension bit)
        WHEN "000100" => autoconfig_data <= "0000";        -- Extended 
        WHEN "001000" => autoconfig_data <= "1110";        -- 5016=Majsta
        WHEN "001001" => autoconfig_data <= "1100";        
        WHEN "001010" => autoconfig_data <= "0110";        
        WHEN "001011" => autoconfig_data <= "0111";        
        WHEN "010011" => autoconfig_data <= "1110";        --serial=1
        WHEN OTHERS => null;
    END CASE;
end process;


So that all looks good.
SysInfo does indeed report the board size as 0:


So then I ran a memory check, and got some failures:


Interestingly, I get a different failing address on the first run, then it's absolutely consistent thereafter. This behaviour is also absolutely consistent from cold-boot-to-cold-boot - which makes me think this is either a RAM Aliasing issue or a problem with the cache. The cache is a very likely culprit, actually, because this is using my Two-way cache from the Chameleon Minimig port, and that's only been tested to date with SDRAM chips up to 32 meg in size.

Interesting times!
Attached Thumbnails
Click image for larger version

Name:	DSC_7473.JPG
Views:	533
Size:	87.2 KB
ID:	36400   Click image for larger version

Name:	DSC_7475.JPG
Views:	487
Size:	62.9 KB
ID:	36401   Click image for larger version

Name:	DSC_7478.JPG
Views:	486
Size:	119.2 KB
ID:	36402  
robinsonb5 is offline  
Old 17 August 2013, 18:40   #358
majsta
www.majsta.com
 
majsta's Avatar
 
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
I don't know. It is most strange to me that everything is working when I add 64MB of ram. I didn't noticed any problems except sysinfo don't detect those memory. Games working etc...
Here are the pictures of showconfig for 32MB and for 64MB and sysinfo detecting 64MB.









hahah it seems that we posted in same time

But I will compile it without the cache now and see what happens. So we are on track it seems because we had the same result.

@robinsonb5 this has nothing to do with cache. I have just run compilation prepared without cache and the same situation. As I recall cache we are using is never tested with so much memory but in documentation says that can support up to 64MB.

Last edited by majsta; 17 August 2013 at 18:52.
majsta is offline  
Old 17 August 2013, 18:44   #359
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,504
Sysinfo simply don't support too large memory sizes. (You can see exact same in emulation. Sysinfo shouldn't be used, at least without double-checking with some other program)

Showconfig output says autoconfig is fine and memory region is properly added to memory list.
Toni Wilen is online now  
Old 17 August 2013, 18:48   #360
majsta
www.majsta.com
 
majsta's Avatar
 
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
Do you want to say that everything is fine and that is somehow connected to my problems running sysinfo on WinUAE where sysifo crashes when I add more FastRam?
majsta 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
Vampire 600 and floppy issues Firestone support.Hardware 15 22 March 2017 18:11
Vampire 600 more cores.. Turran support.Hardware 48 14 January 2015 17:39
Vampire 600 wierd issues Retro support.Other 4 05 September 2014 22:36
Vampire 600 troubles Viserion support.Hardware 21 10 December 2013 20:28
WTB: Amiga 600 Accelerator Gordon MarketPlace 4 21 February 2009 16:06

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 19:40.

Top

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