kategorie: A600, Sprzęt
[#1] ACA620 i fragmentacja pamięci
Chciałem dziś odpalić emulator Maka na 600-etce a tu kicha - na karcie ACA620, mimo teoretycznie dostępnych 11MB FAST pamięć, nawet bez sekwencji startowej, już na samym początku jest poszatkowana jak szwajcarski ser na kilkanaście bloków o wielkości od ~0.25 do 2MB, przez co użycie emulatora jest praktycznie niemożliwe. Maksymalny rozmiar pamięci, jaki udało mi się zaalokować to niecałe 2MB
Jest na to jakieś rozwiązanie? Czy to samo występuje w innych kartach od Jensa?



Ostatnia aktualizacja: 05.10.2013 21:16:58 przez _arti
[#2] Re: ACA620 i fragmentacja pamięci

@_arti, post #1

Nie mam ACA620, tylko ACA630 i tam nie ma takiego problemu.

Poza tym, mam nieodparte wrażenie, że ACA620 ma pamięć alokowaną w jakiś większych fragmentach niż 2MB. Odpal maszynę bez startup-sequence (ale uruchom acatune) i zobacz co powie komenda avail, jest w wyniku tego polecenia kolumna, która mówi o tym jaki maksymalnej wielkości blok pamięci można zaalokować.

Najlepiej wklej wynik tego polecenia i komendy ShowConfig.

Ja raczej podejrzewam, że to jakieś oprogramowanie odpalane przy starcie fragmentuje Ci pamięć...

Ostatnia aktualizacja: 06.10.2013 00:55:59 przez strim_
[#3] Re: ACA620 i fragmentacja pamięci

@strim_, post #2

Ja raczej podejrzewam, że to jakieś oprogramowanie odpalane przy starcie fragmentuje Ci pamięć...


Filesystem??

@arti

Pyknij 'avail flush all' i zobacz co wypluje. Jak strim podal, walnij log. OK
[#4] Re: ACA620 i fragmentacja pamięci

@Lokaty, post #3

Zaraz po odpaleniu bez s-s i po dodaniu pamięci przez ACATune, największy wolny blok to ok. 3.9Mb, co nie zmienia faktu, że emulatory dalej pokazują poszatkowaną pamięć (Fusion) albo pozwalają zaalokować maksymalnie 2.8Mb (ShapeShifter). Samo ACATune wyswietla info, ze dodaje pamięć FAST poszatkowaną na bloki - 512Kb tu, 1Mb tam, inny 1Mb gdzie indziej, 4Mb jeszcze pod innym adresem itd.

Po załadowaniu systemu zaś, zostaje już tylko 3.4Mb ciągłego bloku, choć In-use jest tylko 2. Filesytem, jaki mam na karcie CF, to FFS z 3.1 i PFS3-68000.
[#5] Re: ACA620 i fragmentacja pamięci

@_arti, post #4

Po załadowaniu systemu zaś, zostaje już tylko 3.4Mb ciągłego bloku, choć In-use jest tylko 2. Filesytem, jaki mam na karcie CF, to FFS z 3.1 i PFS3-68000.


W tym wypadku "tak se strzeliłem". Możliwe, że acatune coś "sra" w systemie.
Moja propozycja - przygotuj sobie bootowalną dyskietkę z ADOSem i acatune, FFSem, do tego prosty s-s odpalający acatune, a po tym avail. Jeżeli masz ROM 3.x to możesz się pokusić o sprawdzenie tego samego układu z FFS DirCache i International (czy jak to tam szło...). Odpalasz z wyłączonymi wszystkimi partycjami i sprawdzasz.

EDIT:
Jeżeli test "padnie" to wal do Jensa, może on wytłumaczy sprawę. Być może w acatune użył jakiegoś triku.


Ostatnia aktualizacja: 06.10.2013 13:42:06 przez Lokaty
[#6] Re: ACA620 i fragmentacja pamięci

@_arti, post #4

Jeśli wkleisz jednak wynik działania ACATune i ShowConfiga po jego uruchomieniu, to może coś da się z tego wywnioskować :P...
[#7] Re: ACA620 i fragmentacja pamięci

@_arti, post #1

Z tego co pamiętam polecenie avail flush defragmentuje pamięć. Na Aminecie było coś jeszcze do defragmentacji RAMu.
[#8] Re: ACA620 i fragmentacja pamięci

@tom256, post #7

Można poszukać polecenia flush, ja takie kiedyś miałem w katalogu C i robiło swoje, przy okazji odzyskiwało pamięć która już powinna być zwolniona.
[#9] Re: ACA620 i fragmentacja pamięci

@strim_, post #6

Postaram się dziś zrobić te screenshoty ale coś już mam! Mianowicie ACA rezerwuje pamięć w następujących blokach:
  • 0x20.0000 to 0x5f.ffff (4M using autoconfig)
    0x60.0000 to 0x9f.ffff (4M random access)
    0xa8.0000 to 0xb7.ffff (1M)
    0xc0.0000 to 0xcf.ffff (1M will be added by all Kickstart ROMs)
    0xd0.0000 to 0xd7.ffff (512k)
    0xea.0000 to 0xef.ffff (384k)


Zaś na pytanie "Would it be possible to change the registration of the two 4MB blocks into one 8MB block?" Toni Wilen napisał mi coś takiego, cytuję:

No. Exec allocates supervisor/interrupt stack from end of highest priority memory that is available early enough (slow ram, any autoconfig ram, any supported mainboard ram. "unfortunately" autoconfig fast ram has higher priority than slow ram) and it can't be relocated after allocation.

Two solutions:

- Simple rom hack that makes "slow ram" (which isn't slow on aca620) higher priority than autoconfig fast ram. End of 2M region becomes unused (most likely whole region becomes unused) at boot which would allow merging.
- some way to disable autoconfig and add whole 4M ram manually after boot.


Czy ktoś wie, jak taki ROM przygotować?




Ostatnia aktualizacja: 08.10.2013 10:27:51 przez _arti
[#10] Re: ACA620 i fragmentacja pamięci

@_arti, post #9

Beznadziejnie to jest zrobione. Lepiej jak by był blok 8MB i jakimś poleceniem 4MB PCMCIA by się odblokowywało.

Czemu pytasz o rom?
[#11] Re: ACA620 i fragmentacja pamięci

@11111olo, post #10

Tu raczej nie chodzi o PCMCIA a bardziej o zachowanie kompatybilności z grami i programami, które mogą olewać wszystko to, co jest powyżej standardowego 1Mb Amigi.

Czemu pytam o ROM?
Simple rom hack that makes "slow ram" (which isn't slow on aca620) higher priority than autoconfig fast ram


Ostatnia aktualizacja: 08.10.2013 15:28:47 przez _arti
[#12] Re: ACA620 i fragmentacja pamięci

@_arti, post #11

Jak to takie proste to niech podeśle Ci rom lub poda link jak to zrobić ;)
[#13] Re: ACA620 i fragmentacja pamięci

@11111olo, post #12

Nawet nie śmiałbym pytać Tonniego o tak trywialną (z jego puktu widzenia) rzecz ;) Pokłony mu bije, że zechciał wogóle poświecić czas i mi odpowiedział. Chyba napiszę jeszcze bezpośrednio do Jesna i zapytam, co on o tym myśli wogóle. Może jako autor karty, zna jeszcze jakiś trick...
[#14] Re: ACA620 i fragmentacja pamięci

@_arti, post #13

Dostałem odpowiedź od Jesna - w skrócie - problem znany i nic nie da się z tym aktualnie zrobić. Rozwiązaniem byłoby napisanie programu w stylu MergeMem, z kickstartu 1.x ale nie ma kto tego zrobić... także, sprzedam ACA620 ;)
[#15] Re: ACA620 i fragmentacja pamięci

@_arti, post #14

A da radę odpalić ACA620 bez ACATune i sprawdzić czy jest jakaś pamięć?
Gdyby nie było, spróbować ADDMEM od $200000 do $9FFFFF.
Trochę to bez sensu ale spróbować można.
[#16] Re: ACA620 i fragmentacja pamięci

@bogumil, post #15

Na starcie jest 4Mb, również poszatkowane.
[#17] Re: ACA620 i fragmentacja pamięci

@_arti, post #16

Możesz sprawdzić co dokładnie jest bez ACATune?
Ile i od jakiego do jakiego adresu?
[#18] Re: ACA620 i fragmentacja pamięci

@_arti, post #9

Czy ktoś wie, jak taki ROM przygotować?


Zdaje się, że w pakiecie BlizKicka jest narzędzie do tego. Jednak na tym moja pomoc się kończy. Jeżeli masz dostatecznie dużo oporu to znajdziesz rozwiązanie. :)
[#19] Re: ACA620 i fragmentacja pamięci

@bogumil, post #17

Chyba mogę ale to jutro. Dziś nocka pełna roboty :/
[#20] Re: ACA620 i fragmentacja pamięci

@_arti, post #19

Podejrzewam, że przy starcie będzie 4MB Fastu od $200000 i pewnie 1MB Slow.
Możesz spróbować dodać pamięć z najwyższym priorytetem w jakimś wolnym adresie ( oprócz następnych 4MB Fastu od adresu $600000 ) za pomocą ADDMEM.
I wtedy być może 4MB Fastu nie będzie miało najwyższego priorytetu.
Tylko jak powiększyć blok z 4 do 8MB Fastu od $200000?
Tego nie wiem.
A Jens nie może zmienić ustawień na samej karcie, by przy starcie było 8MB Fastu od $200000 w jednym bloku?
[#21] Re: ACA620 i fragmentacja pamięci

@bogumil, post #20

Może, ale to wymaga znów wgrania firmware, a do CPLD nie udostępnia, bo nie można go zaktualizować programowo tylko przez JTAG, dodatkowo musiałby wydać nowsza wersję ACA.
Taka aktualizacja wymaga więc wysłania ponownie karty do producenta, a na to raczej Jens nie pójdzie tak długo jak firmware działa stabilnie.

Ostatnia aktualizacja: 08.10.2013 22:56:21 przez rafgc
[#22] Re: ACA620 i fragmentacja pamięci

@_arti, post #14

szkoda jedynie, że na stronie Vesalii nie ma jakiegokolwiek zastrzeżenia dotyczącego współpracy z SS. To trochę nabijanie klientów w butelkę, skoro "znają problem".
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