Welcome, Guest. Please login or register.

Author Topic: Bounty Suggestion  (Read 1835 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline TerminillsTopic starter

  • Grand Conspirator
  • Hero Member
  • *****
  • Join Date: Jan 2003
  • Posts: 594
  • Country: 00
  • Thanked: 2 times
Bounty Suggestion
« on: January 01, 2025, 07:25:11 PM »
Porting Emu68 to EFI

Overview

This project is focused on adapting Emu68 to function in an EFI environment by splitting it into two distinct applications: a loader and the emulator itself. The loader will handle EFI compliance and initialization, while Emu68 will operate as a standalone 68K emulator. Additionally, a test program will be developed to validate ACPI data under Emu68.

Objectives

Develop an EFI Loader.

Create a compliant EFI application responsible for initializing and loading Emu68.

Ensure the loader handles hardware abstraction and passes necessary configuration data to Emu68.

Implement Basic Support for ACPI Table Parsing.

Parse ACPI tables provided by EFI.

Convert Little Endian ACPI data to Big Endian for compatibility with the 68K environment.

Split Emu68 and Loader into Two Applications.

Develop a standalone EFI loader to initialize and load Emu68.

Keep Emu68 focused solely on emulation tasks, with no direct hardware initialization.

Develop a Test Program for ACPI Data Validation.

Create a 68K-compatible program that runs under Emu68.

Validate ACPI table parsing and endian conversion.

Ensure compatibility and correctness of ACPI data for future use by AmigaOS/AROS.

Implementation Plan

Step 1: Develop an EFI Loader

Loader Responsibilities:

Create a standalone EFI loader responsible for:

Locating and loading the Emu68 binary.

Setting up the execution environment, including memory allocation and passing necessary configuration data to Emu68.

Use EFI protocols to handle hardware abstraction, such as accessing ACPI tables.

Basic System Initialization:

Ensure the loader initializes system resources like memory and storage using EFI services.

Set up a mechanism to pass ACPI and other hardware details to Emu68.

Debugging Support:

Include debug outputs in the loader to verify the correct setup of the execution environment.

Step 2: Refactor Emu68 for EFI Integration

Standalone Emulator:

Remove any bare-metal initialization tasks from Emu68, delegating these to the loader.

Ensure Emu68 operates solely as a 68K emulator, relying on the loader for execution context and data.

ACPI Table Parsing in Emu68:

Add support for parsing ACPI tables passed by the loader.

Implement endian conversion for compatibility with the 68K environment.

Ensure parsed ACPI data can be utilized by future AmigaOS/AROS 68K integration.

Execution Environment:

Verify Emu68 functions correctly within the environment established by the loader.

Step 3: Develop a Test Program for ACPI Validation

68K Test Program:

Create a test program compatible with Emu68 to validate ACPI data parsing and endian conversion.

Include routines to check the integrity and correctness of ACPI tables.

Integration Testing:

Run the test program under Emu68 in the EFI environment.

Log results for debugging and verification.

Deliverables

A standalone EFI loader application.

A refactored Emu68 emulator.

A 68K test program for ACPI validation.

Documentation for:

EFI loader and Emu68 integration.

ACPI table parsing and endian conversion routines.

Test program usage and expected outputs.
Support AROS sponsor a developer.

edited by mod: this has been addressed