[#1] Autoconfig
Wiem że amigowcy się tym szczycą bo jest lepsze od PnP.
Pewnie tak ale czy ktoś mógłby wytłumaczyć, najlepiej na przykładzie jak on powinien wyglądać?
W necie są opisy ale jest także w nich masa odnośników które odsyłają do kolejnych, i kolejnych, i kolejnych...

Nie wiem co można podać w autoconfigu ale na pewno dodanie ramu.

Mógłby to być przykład dodania ramu od $200000-400000 albo inny.
[#2] Re: Autoconfig

@11111olo, post #1

Jest coś takiego jak Amiga Hardware Reference Manual i tam są opisane dane w autoconfigu. Nie możesz sobie sam ustalać na sztywno jaki adres chcesz mieć przydzielony, ten adres przydziela system, ale można to przewidzieć np w przypadku pamięci w Z2.
[#3] Re: Autoconfig

@sanjyuubi, post #2

Patrzyłem na to ale nie wszystko rozumiem (czyli nie rozumiem) i już to czytałem.
Wiem że jak to ogarnąłeś to jest oczywiste ale nie dla mnie.

Chce Ci się coś bardziej wysilić czy tylko odsyłasz mnie do dokumentacji?

Ostatnia aktualizacja: 09.02.2014 19:53:56 przez 11111olo
[#4] Re: Autoconfig

@11111olo, post #3

Akurat tego tutaj nie ma, albo nie widzę. we.easyelectronics.ru/attachments/get/1691 - Appendix G

Nie powiedziałem, że to opanowałem, miałem tylko z tym do czynienia w stopniu wystarczającym do zgłoszenia 8MB lub 4MB RAM do systemu.

Ostatnia aktualizacja: 09.02.2014 20:08:22 przez sanjyuubi
[#5] Re: Autoconfig

@11111olo, post #3

Tu masz przykład minimalistycznego autoconfigu zastosowanego w ruskim ramie do A600:

assign low_addr={cpu_a6,cpu_a5,cpu_a4,cpu_a3,cpu_a2,cpu_a1};

	// autoconfig data forming
	always @*
	begin
		case( low_addr )
		6'b000000: // $00
			datout <= 4'b1110;
		6'b000001: // $02
			datout <= 4'b0000; // 0111 for 4mb, 0000 for 8mb
		6'b000010: // $04
			datout <= 4'hE;
		6'b000011: // $06
			datout <= 4'hE;

		6'b000100: // $08
			datout <= 4'h3;
		6'b000101: // $0a
			datout <= 4'hF;

		6'b001000: // $10
			datout <= 4'hE;
		6'b001001: // $12
			datout <= 4'hE;

		6'b001010: // $14
			datout <= 4'hE;
		6'b001011: // $16
			datout <= 4'hE;

		6'b100000: // $40
			datout <= 4'b0000;
		6'b100001: // $42
			datout <= 4'b0000;

		default:
			datout <= 4'b1111;
		endcase
	end

	// out autoconfig data





Ostatnia aktualizacja: 09.02.2014 20:51:31 przez sanjyuubi
[#6] Re: Autoconfig

@11111olo, post #3

Folder ZORRO EXPANSION BUS, folder AUTOCONFIG (TM) i tam masz opisane jak działa to dla ZORROII/III. Musisz się wczytać i zobaczyć które adresy są odczytywane a które zapisywane.
Ogólnie masz 4 bity, które informują system o tym czy jest to ZORROII czy ZORROIII ( tego jeszcze nie przetestowałem ), wielkość pamięci do zarezerwowania, adresy opcionalnego ROMu.
Ruski ram jest dobrym przykładem, jest jeszcze opis dla ZorroRAM w sieci.
Musisz niestety potestować. Nie bardzo wiem co więcej można dodać ponad to co tam jest.
Aha, możesz dodać ram ponad adresy ZORROII/III, tylko nie wiem czy to będzie działać ( zobacz moje testy w graffiti ).
[#7] Re: Autoconfig

@bogumil, post #6

Muszę się wczytać

Ogólnie rozumiem co piszesz ale czy te adresy sam narzucam czy robi to komputer?

sanjyuubi

To co napisałeś jest w VHDL albo ABEL a ja tego w ogóle nie rozumiem dlatego chcę wiedzieć jak to działa ale opisane słowami.

W opisie autoconfigu jest mowa o sygnałach / CFGINn i / CFGOUTn.
One są na magistrali zorro II ale w a500 czy A1200 nie ma tych sygnałów więc jak to działa?

Ostatnia aktualizacja: 09.02.2014 22:06:33 przez 11111olo
[#8] Re: Autoconfig

@sanjyuubi, post #5

Już wiem o co chodzi i jak się wybiera 256k-8MB.
Ale jak wybrać że chcę aby pamięć była np. od $C00000?
[#9] Re: Autoconfig

@11111olo, post #8

Nie możesz wybrać adresu początku bloku, ten jest jest przydzielany przez system ( $44-$4A przy autoconfigu). W ruskim ramie jest to wyłączone oraz brak jest obsługi CFGINn/CFGOUTn ( n to kolejny slot zorrro tak w skrócie ) i dlatego są np. problemy z CDTV i tym rozszerzeniem. Do tej pory nie wiem na jakiej zasadzie działa pętla z powtarzaniem odczytu autoconfigu, jedynie po testach mogę powiedzieć, że jest 127 powtórzeń odczytu kolejnych "kart zorro". CFGIN/CFGOUT w amigach bez slotów zorro trzeba zaimplementować, jeśli ma to być pełny autoconfig.
Tyle wiem po testach.
[#10] Re: Autoconfig

@bogumil, post #9

Jak się nie da wybrać to troszkę to nie jest fajne ale jak coś ma być automatycznie to by temu przeczyło.

Załóżmy że będę chciał dodawać po 1MB ramu. Komputer będzie dodawał to od $200000, $300000... $900000.
Wykonam to 8 razy i mam 8MB (wiem że można raz). Co będzie jak będę chciał ponownie dodać 1MB ramu? Gdzie się doda ( o ile się doda) i dlaczego akurat tam?
[#11] Re: Autoconfig

@11111olo, post #8

$C00000-D7FFFF jest wykrywane automatycznie przez kickstart.
[#12] Re: Autoconfig

@11111olo, post #7

To jest Verilog. Jak nie rozumiesz to w czym tworzysz wsad do CPLD? Rysujesz schematy?


Linie configIN configOUT są przeznaczone dla amig ze slotami, sloty są połączone tymi liniami w łańcuch, linia configOUT łączy się z linią configIN następnej karty. W danej chwili odpowiada tylko karta, która ma aktywny sygnał configIN, po skonfigurowaniu karty przestaje on odpowiadać i aktywuje sygnał configOUT, cykl zaczyna się od początku, dla kolejnej karty.
[#13] Re: Autoconfig

@sanjyuubi, post #11

Jeśli tak to wystarczy podłączyć 1,5MB ramu statycznego z dekoderem tego adresu i będzie widoczny.
Czy jednak nie wystarczy?

Kod po dłuższej chwili rozumiem jednak nie umiem pisać dla CPLD dlatego rysuję schematy które są przynajmniej 2x bardziej optymalne.

Nie napisałeś gdzie doda się kolejny 1MB ramu jeśli jest zajęty obszar $20000-9fffff.
[#14] Re: Autoconfig

@11111olo, post #13

08 0A 108 7 This was originally an indicator to place
-- (er_Flags) the card in the 8 megabyte Zorro II space,
when set, or anywhere it'll fit, if
cleared. Under the Zorro III spec, this is
set to indicate that the board is basically
a memory device, cleared to indicate that
the board is basically an I/O device.

Tutaj możesz jedynie wpływać na preferencje, czy chcesz aby kickstart sam wybierał wolny obszar, czy preferujesz obszar 8MB jako pierwszy. Nawet jeśli podasz auto to kickstart i tak doda ci tą pamięć w obszarze tych 8MB, chyba, że będzie mniejsza niż 512k, wtedy kickstart preferuje obszar 0xE90000-0xEf0000 (tak mi pisał Toni Willen). Jest to nawet logiczne, bo karty I/O mają zazwyczaj takie małe przestrzenie adresów i raczej nie są przydzielane w przestrzeni 8MB.

Nie napisałeś gdzie doda się kolejny 1MB ramu jeśli jest zajęty obszar $20000-9fffff.

Może się okazać, że się doda w tym samym obszarze i będzie jakiś konflikt, albo przydzieli adres, ale nie dołączy do pamięci (coś takiego można też forsować z autoconfigu - REG 0, bit 5) pamiętam że jak się tym bawiłem i miałem coś źle zrobione, to miałem potem 4 takie same wpisy na liście BOARDS w sysinfo. Żeby dowiedzieć jak to działa dokładnie, trzeba się nauczyć assemblera i zdeassemblować procedurę za to odpowiadającą, ja przynajmniej nie widziałem takiego opisu, może ktoś inny widział.

Jeśli tak to wystarczy podłączyć 1,5MB ramu statycznego z dekoderem tego adresu i będzie widoczny.
Czy jednak nie wystarczy?


W A600 wystarczy, a A500 był jakiś problem, który miał Phibrizzo, ale nie wiem na czym polegała jego natura. Bynajmniej ten RAM pod klapką w A500, który oryginalnie jest mapowany pod $C00000 jako SLOW, nie ma żadnego modułu autoconfig. Gdyby miał, to znalazłbyś go na liście BOARDS w sysinfo albo wywołując showconfig, a tak nie jest.


Ostatnia aktualizacja: 10.02.2014 13:18:27 przez sanjyuubi
[#15] Re: Autoconfig

@sanjyuubi, post #4

Mam takie pytanie odnośnie tego:
Remember that an nibbles except S00/02 and $40/42 will actually appear
inverted from the values in the above Table. For example, a "must be 0"
nibble will appear as $F, and flags and hex values will also be inverted
(i.e. a value of $1 will read as $E, etc).

z tego co rozumiem to tylko w $00/02 i $40/42 tam gdzie 1 to wstawiam 1, a w całej reszcie jak jest np. "Reserved, must be 00" to wstawiam 11 lub "must be 11" to wstawiam 00?
[#16] Re: Autoconfig

@panti1801, post #15

Tak, wszystkie rejestry prócz tych wyróżnionych mają zanegowane wartości.
[#17] Re: Autoconfig

@sanjyuubi, post #16

A da się jakoś zczytać autoconfig?
[#18] Re: Autoconfig

@11111olo, post #17

Da, ale zależy z czego.
[#19] Re: Autoconfig

@sanjyuubi, post #18

Mam jedną kartę do a1200 która ma 9MB. Ten dodatkowy 1MB jest od $C00000.
[#20] Re: Autoconfig

@11111olo, post #19

Ten dodatkowy 1MB jest wykrywany automatycznie, spójrz na listę BOARDS w sysyinfo, będzie tam karta 8MB.

Aby zczytać autoconfig, w przypadku karty z configIN wystarczy odpiąć ten pin i utrzymać go w stanie nieaktywnym, wtedy można sobie spokojnie przeglądać cały autoconfig w pamięci, bo karta nie zniknie. Natomiast jeżeli jest to układ zamknięty, to sprawa się komplikuje, bo musiałbyś w jakiś sposób zapobiec czytaniu autoconfigu z karty, np poprzez odczepienie jednej linii danych z układu który realizuje autoconfig, albo zablokować zapis do rejestrów autoconfigu.

Ostatnia aktualizacja: 10.02.2014 18:39:29 przez sanjyuubi
[#21] Re: Autoconfig

@sanjyuubi, post #5

Kwestię Autoconfigu chcę rozwiązać podłączając, poprzez dekoder na $E80000, pamięć eprom/flash z wgraną konfigurajcą, pytanie czy wystarczy coś takiego Amidze?

Mam jeszcze jedno pytanie odbiegające trochę od tematu, czy przy sterowaniu fastem trzeba brać pod uwagę przebieg na pinie AS z MC68k? Na schemacie A600 widzę, że jest podciągnięty tylko do Vcc.
[#22] Re: Autoconfig

@panti1801, post #21

No na podstawie AS generujesz CAS i RAS (w fastach kippera bazujących na nedopc) więc nie widzę innej możliwości - po to ten sygnał jest.
[#23] Re: Autoconfig

@abcdef, post #22

Czyli na podstawie tego muszę wygenerować RAS i CAS takt po pojawieniu się stanu niskiego na AS (i oczywiście przy adresach $200000-$9FFFFF) czy mogę to zrobić odrazu jak tylko AS przejdzie w stan niski?

Ostatnia aktualizacja: 12.02.2014 20:28:00 przez panti1801
[#24] Re: Autoconfig

@panti1801, post #23

Co ty chcesz w ogóle zrobić?

Procesor, gdy wystawia AS to rozpoczyna cykl na szynie, potem wystawia UDS, LDS wskazując, które bajty z szyny chce czytać.

RAS i CAS nie można wystawić w tym samym momencie, najpierw jest podawane RAS, potem adres wiersza z multipleksera jest zmieniany na adres kolumny i dopiero CAS.

Zainteresuj się ruskim fastem do A600 i działaniem asynchronicznych pamięci DRAM.

Ostatnia aktualizacja: 12.02.2014 21:17:36 przez sanjyuubi
[#25] Re: Autoconfig

@sanjyuubi, post #24

Właśnie na podstawie tego ruskiego fastu próbuję zrobić swój pozbywając się układu programowalnego, obniży to koszty i ułatwi jego budowę. Rozwiązałem już kwestię dekodera adresu, autoconfig i wystawianie RAS, pozostał mi tylko timing tego wszystkiego i będę mógł sprawdzic czy moje rozwiązanie zda egzamin.

W skrócie ma wyglądać to tak, po przekroczeniu $200000 dekoder generuje sygnał RASx (0-3, wybór jednej z czterech kości RAM), LDS i UDS pobieram bezpośrednio z procesora, dopiero po odebraniu niskiego AS podaje sygnał RASx i wtedy trwa cykl zapisu\odczytu, aż do wysokiego AS.
[#26] Re: Autoconfig

@panti1801, post #25

Jakie koszty chcesz obniżyć?

Wsad do ruskiego ramu zajmuje mniej niż 32 makrocele w CPLD altery, EPM3032 kosztuje w kamami.pl 10zł (EPM3064 - 12zł), XC9536 PLCC kosztuje 6zł (VQFP - 8zł, a XC9572 - 14zł), biorąc pod uwagę elastyczność CPLD, ilość zajmowanego miejsca i możliwość poprawienia logiki od ręki, nie ma co się zastanawiać, chyba, że robisz to dla sztuki. Będziesz miał sieczkę ścieżek na płytce, co nie koniecznie może wpłynąć dobrze na stabilność układu, a i płytka będzie też pewnie większa, co podniesie koszty. Nie wiem czy dla tych 5zł się to opłaca.

Ale jeśli ci zależy, to był podobny fast 8MB do A500, poszukaj na Aminecie, mi akurat teraz aminet nie działa.

Aha, musisz jeszcze zbudować układ odświeżający pamięć.

Ostatnia aktualizacja: 13.02.2014 12:19:47 przez sanjyuubi
[#27] Re: Autoconfig

@sanjyuubi, post #26

Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem