Poster | Thread |
terminills
| |
Proposed Bounties. Posted on 21-Dec-2024 14:46:06
| | [ #1 ] |
|
|
|
AROS Core Developer |
Joined: 8-Mar-2003 Posts: 1493
From: Unknown | | |
|
| Here's a list of bounties I plan on adjusting and then submitting.
First EMU68 Bounty. (This one is set in stone as it was written with the help of mschulz).
Porting Emu68 to EFI Overview This bounty focuses solely on adapting Emu68 to function as an EFI binary executable, laying the foundation for future work to enable AmigaOS/AROS 68K to boot natively on ARM hardware. Since EFI handles hardware abstraction via its protocols, the scope of this bounty is limited to making Emu68 compliant with the EFI standard and ensuring basic ACPI table parsing for future use.
Objectives 1. Adapt Emu68 to function as a compliant EFI binary executable. 2. Implement basic support for: ACPI Table Parsing: Convert Little Endian ACPI data to Big Endian for compatibility with 68K environments. 3. Lay the groundwork for AmigaOS and AROS integration in subsequent phases.
Last edited by terminills on 21-Dec-2024 at 05:38 PM.
_________________ Support AROS sponsor a developer.
"AROS is prolly illegal ~ Evert Carton" intentionally quoted out of context for dramatic effect |
|
Status: Offline |
|
|
terminills
| |
Re: Proposed Bounties. Posted on 21-Dec-2024 14:46:40
| | [ #2 ] |
|
|
|
AROS Core Developer |
Joined: 8-Mar-2003 Posts: 1493
From: Unknown | | |
|
| AROS Bounties
Bounty 1: Develop a GOP-Based Graphics HIDD Driver
Overview (Technical): Implement framebuffer graphics support for EFI systems using the EFI_GRAPHICS_OUTPUT_PROTOCOL (GOP). This driver enables AROS to render graphics through the GOP’s static framebuffer, providing essential display functionality.
Key Objectives (Technical):
Pre-Boot Phase:
Automatically select the best available resolution using GOP before boot services terminate.
Optional: Allow users to select a resolution via the Early Startup Control menu.
Runtime Phase:
Develop a HIDD driver to use the static framebuffer provided by GOP for rendering after ExitBootServices.
Ensure compatibility with AROS’s graphics subsystem.
Fallback and Compatibility:
Use the VESA ROM driver as a reference for structure.
Provide fallback options for systems without GOP support.
Capabilities (Practical):
Enables AROS to display graphics on modern UEFI-based systems using GOP.
Similar to what VESA driver provides on PCs
Provides automatic resolution selection or the option for manual configuration during boot.
Offers basic graphics functionality for systems lacking legacy BIOS modes.
Bounty 2: Transition EFI Input Support to AROS Input.device
Overview (Technical): Enable seamless input device functionality by transitioning from EFI input protocols during the pre-boot phase to AROS's input.device during runtime.
Key Objectives (Technical):
Use EFI_SIMPLE_TEXT_INPUT_PROTOCOL for keyboard input and EFI_SIMPLE_POINTER_PROTOCOL for mouse input during the pre-boot phase.
Ensure a smooth transition to AROS’s input.device post-boot.
Capabilities (Practical):
Ensures full keyboard and mouse functionality during boot and runtime.
Enables a smooth transition from pre-boot input handling to AROS’s native input system.
Bounty 3: Expand and Refine EFI ACPI Table Handling
Overview (Technical): Enhance AROS’s ability to parse and utilize EFI-provided ACPI tables for hardware abstraction and initialization.
Key Features (Technical):
Parse and convert ACPI tables into a format usable by AROS.
Validate ACPI-driven hardware discovery and initialization.
Capabilities (Practical):
Allows AROS to detect and utilize hardware like storage devices, network cards, and USB ports.
Improves hardware compatibility with modern systems by leveraging ACPI.
Bounty 4: Implement EFI Storage Access for Kernel Loading
Overview (Technical): Enable AROS to load its kernel and boot files from EFI-compliant storage devices. This focuses on integrating EFI storage protocols to support kernel loading in both GRUB-based and direct EFI boot scenarios.
Key Features (Technical):
Add support for EFI_BLOCK_IO_PROTOCOL and EFI_SIMPLE_FILE_SYSTEM_PROTOCOL.
Validate kernel and file loading from block-oriented devices.
Ensure compatibility with GRUB.
Capabilities (Practical):
Enables AROS to boot directly from modern storage devices like SSDs or USB drives.
Supports both UEFI-native and GRUB-based boot setups.
Bounty 5: Enhance AROS Bootloader for EFI Systems
Overview (Technical): Focus on broader enhancements to the AROS bootloader, leveraging EFI system features for advanced boot scenarios.
Key Features (Technical):
Integrate EFI system table and memory map handling.
Add support for EFI_DEVICE_PATH_PROTOCOL for locating devices.
Leverage GOP for display initialization during boot.
Capabilities (Practical):
Improves bootloader performance and compatibility on EFI-based systems.
Provides better hardware support during boot, enhancing the user experience.
Bounty 6: AROS Pre-Boot Networking with UEFI
Overview (Technical): Enable pre-boot networking capabilities using EFI_SIMPLE_NETWORK_PROTOCOL, supporting PXE boot and network-based kernel loading.
Key Features (Technical):
Add support for EFI_SIMPLE_NETWORK_PROTOCOL in the AROS bootloader.
Enable PXE boot functionality.
Add tools for diagnosing network connectivity during pre-boot.
Capabilities (Practical):
Enables network booting, allowing AROS to be loaded directly over a network.
Adds pre-boot networking diagnostics for troubleshooting and improved reliability.
Bounty 7: Cross-Architecture EFI Compatibility
Overview (Technical): Extend AROS’s EFI implementation to support multiple architectures, such as ARM and MC68K.
Key Features (Technical):
Adapt EFI protocols for cross-platform compatibility.
Validate EFI functionality on ARM, MC68K, and x86 platforms.
Capabilities (Practical):
Broadens AROS’s compatibility with modern hardware architectures, including ARM and retro-inspired 68K systems.
Ensures AROS can run on diverse hardware platforms.
Bounty 8: Implement Secure Boot Compatibility
Overview (Technical): Adapt AROS to work with EFI Secure Boot to ensure compatibility with modern security standards.
Key Features (Technical):
Add support for authenticated boot processes using signed kernels.
Validate Secure Boot workflow on EFI platforms.
Capabilities (Practical):
Enables AROS to boot securely on systems with Secure Boot enabled.
Ensures compatibility with security requirements on modern PCs.
Bounty 9: Develop a Modular EFI Management Framework
Overview (Technical): Create a centralized framework within AROS to manage EFI interactions and diagnostics.
Key Features (Technical):
Provide tools for accessing EFI protocols (storage, graphics, input, networking).
Implement diagnostics for troubleshooting EFI-related issues.
Capabilities (Practical):
Simplifies managing EFI features on AROS systems.
Provides tools for diagnosing EFI hardware and improving system stability.
Last edited by terminills on 21-Dec-2024 at 06:43 PM. Last edited by terminills on 21-Dec-2024 at 06:09 PM. Last edited by terminills on 21-Dec-2024 at 05:58 PM. Last edited by terminills on 21-Dec-2024 at 05:33 PM. Last edited by terminills on 21-Dec-2024 at 05:19 PM. Last edited by terminills on 21-Dec-2024 at 05:13 PM. Last edited by terminills on 21-Dec-2024 at 04:56 PM. Last edited by terminills on 21-Dec-2024 at 04:55 PM. Last edited by terminills on 21-Dec-2024 at 04:52 PM. Last edited by terminills on 21-Dec-2024 at 04:40 PM. Last edited by terminills on 21-Dec-2024 at 04:35 PM. Last edited by terminills on 21-Dec-2024 at 04:18 PM. Last edited by terminills on 21-Dec-2024 at 04:15 PM.
_________________ Support AROS sponsor a developer.
"AROS is prolly illegal ~ Evert Carton" intentionally quoted out of context for dramatic effect |
|
Status: Offline |
|
|
terminills
| |
Re: Proposed Bounties. Posted on 21-Dec-2024 14:48:09
| | [ #3 ] |
|
|
|
AROS Core Developer |
Joined: 8-Mar-2003 Posts: 1493
From: Unknown | | |
|
| @terminills
This isn't AROS specific but rather AmigaOS but I didn't want to separate it from the rest.
AmigaOS Boot Implementation for EFI-Based "MC68K" Machine
Overview:
This bounty focuses on the development of a secondary 68K bootloader to enable AmigaOS 68K to boot on an EFI-based "MC68K" machine. The bootloader will be designed to initialize hardware via EFI, emulate missing hardware components like CIA chips and display, and then transition control to the AmigaOS kernel. The bootloader will utilize the Emu68 platform to provide hardware abstraction and initialization.
Key Objectives:
ACPI Table Handling:
Parse and utilize Big Endian ACPI tables (converted in Bounty 1) to extract hardware information such as USB, PCI, networking, and storage. Provide hardware details to the AmigaOS environment through accessible memory structures or standard tables. Ensure efficient integration with EFI protocols for seamless hardware initialization. Development of a Secondary Boot Program:
Create a standalone 68K bootloader program that: Loads the AmigaOS ROM from an EFI-compliant storage device using EFI_BLOCK_IO_PROTOCOL and EFI_SIMPLE_FILE_SYSTEM_PROTOCOL via Emu68. Initializes basic system state, including memory mapping, hardware detection, and CIA chip emulation. Uses EFI-provided input protocols (keyboard/mouse) for interaction during boot, if required. Transitions control to the loaded AmigaOS kernel. ROM Loading and Initialization:
Implement a ROM loading mechanism to: Locate and load the AmigaOS ROM file from storage. Set up a compatible memory environment for AmigaOS execution. Use EFI-provided framebuffer graphics (via GOP) to display basic output during boot. Initialize key hardware interfaces such as storage, input, and display for AmigaOS compatibility. Emulation of Missing Hardware:
CIA Chip Emulation:
Emulate the missing CIA chips within the bootloader. The CIA chips are responsible for essential hardware interactions like keyboard input, timers, and other system-level I/O tasks. This emulation must mimic the behavior of the original CIA chips to ensure compatibility with AmigaOS. Display Support:
Emulate display support for AmigaOS, either by: Using the GOP framebuffer for basic display output. Optionally simulating Amiga-native graphics modes (PAL/NTSC) by: Emulating graphics.library functionality in the bootloader to present the framebuffer as a native mode. Creating a minimal P96 GOP driver for direct rendering. AmigaOS Transition:
Finalize hardware initialization and transfer control to the AmigaOS kernel, ensuring that: The kernel has access to hardware details provided by EFI protocols. A pre-initialized environment for storage, input, and graphics is set up. Document the handoff mechanism for compatibility with AmigaOS expectations. Compatibility Testing:
Test the bootloader and overall environment using real Amiga applications, particularly Deluxe Music 2.0, to verify hardware compatibility and proper operation. Identify and resolve any issues related to hardware initialization or emulation (e.g., CIA chip behavior, input handling, display modes).
Deliverables:
68K Bootloader Program:
A secondary bootloader program running under Emu68 capable of: Loading and initializing the AmigaOS ROM. Performing essential hardware initialization, including CIA chip emulation and display emulation. Transitioning control to the AmigaOS kernel. Graphics Output:
GOP-based framebuffer graphics support during boot. Optional support for simulated Amiga-native modes via graphics.library emulation or a P96 GOP driver. Hardware Abstraction:
Initialization of storage, input, and graphics hardware using EFI protocols. Accessible tables or structures for AmigaOS to use initialized hardware. Emulation of CIA Chips and Display:
Emulation of CIA chip functionality in the bootloader. Display emulation through GOP framebuffer or simulated Amiga-native modes. Testing and Compatibility:
Verification of the bootloader functionality using Deluxe Music 2.0 and other critical Amiga applications to ensure compatibility and correct operation. Resolution of any issues identified during testing. Documentation:
Detailed documentation covering: Bootloader functionality and setup. ROM loading and hardware initialization processes. Mechanism for CIA chip emulation and display emulation. Transitioning control to the AmigaOS kernel. Compatibility considerations and testing procedures. Last edited by terminills on 22-Dec-2024 at 01:15 AM. Last edited by terminills on 21-Dec-2024 at 05:49 PM.
_________________ Support AROS sponsor a developer.
"AROS is prolly illegal ~ Evert Carton" intentionally quoted out of context for dramatic effect |
|
Status: Offline |
|
|
OlafS25
| |
Re: Proposed Bounties. Posted on 21-Dec-2024 16:27:47
| | [ #4 ] |
|
|
|
Elite Member |
Joined: 12-May-2010 Posts: 6449
From: Unknown | | |
|
| @terminills
Aros 68k or AmigaOS running on ARM-Hardware with only emu68 as layer would give unbeatable cheap and powerful hardware. Nice new toys |
|
Status: Offline |
|
|
pixie
| |
Re: Proposed Bounties. Posted on 21-Dec-2024 20:03:48
| | [ #5 ] |
|
|
|
Elite Member |
Joined: 10-Mar-2003 Posts: 3385
From: Figueira da Foz - Portugal | | |
|
| |
Status: Offline |
|
|
terminills
| |
Re: Proposed Bounties. Posted on 22-Dec-2024 0:09:37
| | [ #6 ] |
|
|
|
AROS Core Developer |
Joined: 8-Mar-2003 Posts: 1493
From: Unknown | | |
|
| @pixie
I have this.
but I'm looking into upgrading to this. _________________ Support AROS sponsor a developer.
"AROS is prolly illegal ~ Evert Carton" intentionally quoted out of context for dramatic effect |
|
Status: Offline |
|
|
Hammer
| |
Re: Proposed Bounties. Posted on 22-Dec-2024 0:54:47
| | [ #7 ] |
|
|
|
Elite Member |
Joined: 9-Mar-2003 Posts: 6044
From: Australia | | |
|
| @terminills
The DraCo method requires CIA chips and extra ROM to patch KickStart 3.1 ROM.
UEFI Emu68 would need to patch KickStart 3.x ROM for missing CIA and display.
I use Deluxe Music 2.0 as one of the test apps against the so-called Amiga wannabes. Last edited by Hammer on 22-Dec-2024 at 01:01 AM. Last edited by Hammer on 22-Dec-2024 at 12:55 AM.
_________________ Amiga 1200 (rev 1D1, KS 3.2, PiStorm32/RPi CM4/Emu68) Amiga 500 (rev 6A, ECS, KS 3.2, PiStorm/RPi 4B/Emu68) Ryzen 9 7950X, DDR5-6000 64 GB RAM, GeForce RTX 4080 16 GB |
|
Status: Offline |
|
|
terminills
| |
Re: Proposed Bounties. Posted on 22-Dec-2024 1:17:18
| | [ #8 ] |
|
|
|
AROS Core Developer |
Joined: 8-Mar-2003 Posts: 1493
From: Unknown | | |
|
| @Hammer
EMU68 isn't going to be expanded for that purpose. That's the purpose of a secondary bootloader. I will however adjust the AmigaOS bounty accordingly. AROS however has no need for CIA emulation or to patch the Kickstart ROM. That's the point of separating the bounties as much as possible.
Last edited by terminills on 22-Dec-2024 at 01:17 AM.
_________________ Support AROS sponsor a developer.
"AROS is prolly illegal ~ Evert Carton" intentionally quoted out of context for dramatic effect |
|
Status: Offline |
|
|
agami
| |
Re: Proposed Bounties. Posted on 22-Dec-2024 10:22:40
| | [ #9 ] |
|
|
|
Super Member |
Joined: 30-Jun-2008 Posts: 1855
From: Melbourne, Australia | | |
|
| @terminills
Love the list.
Are you planning to run the AROS bounties sequentially or in parallel?
_________________ All the way, with 68k |
|
Status: Offline |
|
|