Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add preliminary Sun4/25 support #8691

Merged
merged 4 commits into from Oct 17, 2021
Merged

Add preliminary Sun4/25 support #8691

merged 4 commits into from Oct 17, 2021

Commits on Oct 12, 2021

  1. Add preliminary Sun4/25 support

    I've succesfully dumped the boot ROM of my SPARCstation ELC and added
    preliminary support for it to MAME based on the existing Sun4 work.
    
    This patch manages to get the ELC emulation to get to the Open Firmware
    prompt, but booting any OS media (eg Solaris/SunOS/NetBSD) results in an
    illegal instruction error on the OF prompt.
    
    The emulation passes the boot diagnostics:
    
    m_cache_tag_shift 3
    m_page_mask 000003ff
    m_seg_entry_shift 0000000a
    m_seg_entry_mask 0000003f
    m_page_entry_mask 0000ffff
    m_cache_mask 00003fff
    
    EPROM Checksum Test
    Power-Up State Test
    Context Register Bit Test
    Context Register Addressing Test
    Segment Map RAM MATS Pattern Test, Context 00000000
    Segment Map RAM MATS Pattern Test, Context 00000001
    Segment Map RAM MATS Pattern Test, Context 00000002
    Segment Map RAM MATS Pattern Test, Context 00000003
    Segment Map RAM MATS Pattern Test, Context 00000004
    Segment Map RAM MATS Pattern Test, Context 00000005
    Segment Map RAM MATS Pattern Test, Context 00000006
    Segment Map RAM MATS Pattern Test, Context 00000007
    Page Map RAM MATS Pattern Test
    Limit 0 Register Test
    Counter Interrupt Level 10 Test
    Limit 1 Register Test
    Counter Interrupt Level 14 Test
    Synchronous Error Reg Test
    Synchronous Error Virtual Address Reg Test
    Asynchronous Error Reg Test
    Asynchronous Error Virtual Address Reg Test
    Asynchronous Error Data Reg1 Test
    Asynchronous Error Data Reg2 Test
    System Enable Register Bit Test
    Cache Data RAM MATS Pattern Test
    Cache Tag RAM MATS Pattern Test
    PTE Access Bit Test
    PTE Modify Bit Test
    PTE Write-Protect Bit Test
    PTE Write-Invalid Bit Test
    PTE Read-Invalid Bit Test
    PTE Type 2 Space Bit Test
    PTE Type 3 Space Bit Test
    Synchronous Timeout Test
    Asynchronous Timeout Test
    **** 16 MegaBytes Found in Address Range 0x00000000 to 0x00ffffff ****
    **** 16 MegaBytes Found in Address Range 0x01000000 to 0x01ffffff ****
    **** 16 MegaBytes Found in Address Range 0x02000000 to 0x02ffffff ****
    **** 16 MegaBytes Found in Address Range 0x03000000 to 0x03ffffff ****
    DRAM Word MATS Pattern Test (0x00fe0000 - 0x01000000)
    Parity/Memory Control Registers Bit Test
    36-bit SIMM Parity Test
    33-bit SIMM Parity Test
    Interrupt Register Test
    Software Interrupt Level 1 Test
    Software Interrupt Level 4 Test
    Software Interrupt Level 6 Test
    NVRAM Access Test
    TOD Clock Oscillator Running
    TOD Registers Test
    Cache Statistics Bit Update Test
    Cache Doubleword-Alignment Read Miss Test
    Cache TAG Comparator Read Miss Test
    Cache Non-Cacheable Read Miss Test
    Cache Read Miss Parity Test
    Cache Doubleword-Alignment Read Hit Test
    Cache Byte-Alignment Read Hit Test
    Cache Read Hit Context Test
    Cache Read Hit MMU Invalid Test
    Cache Doubleword-Alignment Write Hit Test
    Cache TAG Comparator Write Hit Test
    Cache Write Hit Context Test
    Cache Write Hit/Miss (Cacheable) Test
    Cache Write Hit/Miss (Non-Cacheable) Test
    Cache Write Miss Test
    Software Context Flush Test
    Software Segment Flush Test
    Software Page Flush Test
    Hardware Context Flush Test
    Hardware Segment Flush Test
    Hardware Page Flush Test
    Unconditional Block Flush Test
    FPU Misaligned Register Pair Test
    FPU Single-Precision Test
    Single-Precision FPU Exception (Invalid Result) Test
    Single-Precision FPU Exception (Overflow) Test
    Single-Precision FPU Exception (Underflow) Test
    Single-Precision FPU Exception (Divide-by-0) Test
    Single-Precision FPU Exception (Inexact Result) Test
    Single-Precision FPU Exception and Timeout Test
    Single-Precision FPU Exception and Data-Access Trap Test
    Single-Precision FPU Exception and Misalignment Test
    Single-Precision FPU Exception and Asynchronous Trap Test
    FPU Double-Precision Test
    Double-Precision FPU Exception (Invalid Result) Test
    Double-Precision FPU Exception (Overflow) Test
    Double-Precision FPU Exception (Underflow) Test
    Double-Precision FPU Exception (Divide-by-0) Test
    Double-Precision FPU Exception (Inexact Result) Test
    Double-Precision FPU Exception and Timeout Test
    Double-Precision FPU Exception and Data-Access Trap Test
    Double-Precision FPU Exception and Misalignment Test
    Double-Precision FPU Exception and Asynchronous Trap Test
    Setting Segment Map
    Setting RAM Parity Mode
     Mode set to 36-bit
    Sizing Memory
    Mapping ROM
    Mapping RAM
    Can't find keyboard table for keyboard layout code 21
    Using USA keyboard table
    Probing /sbus@1,f8000000 at 0,0  dma esp sd st le
    Probing /sbus@1,f8000000 at 1,0  Nothing there
    Probing /sbus@1,f8000000 at 2,0  Nothing there
    Probing /sbus@1,f8000000 at 3,0  bwtwo
    friedkiwi committed Oct 12, 2021
    Copy the full SHA
    adb6329 View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2021

  1. Undo local change for upstream merging.

    I had to make this local change to support current MSVC breaking the
    build. Removed it to separate it from the sun4/25 support PR.
    friedkiwi committed Oct 14, 2021
    Copy the full SHA
    41959a6 View commit details
    Browse the repository at this point in the history

Commits on Oct 15, 2021

  1. Update indentation

    Update indentation as requested by @cuavas during the PR review.
    friedkiwi committed Oct 15, 2021
    Copy the full SHA
    87a946c View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2021

  1. sun4.cpp: Correct indendation.

    cuavas committed Oct 17, 2021
    Copy the full SHA
    6320a3a View commit details
    Browse the repository at this point in the history