Aros/Platforms/PPC support

From Wikibooks, open books for an open world
< Aros
Jump to: navigation, search
Navbar for the Aros wikibook
Aros User Docs
Aros User Docs
Aros User FAQs
Aros x86 Installing
Aros User Applications
Aros User DOS Shell
Aros/User/AmigaLegacy
Aros Dev Docs
Aros Developer Docs
Porting Software from AmigaOS/SDL
For SDL Beginners
For Zune Beginners
Zune .MUI Private Classes
Zune .MCC Shared Classes
Aros Developer BuildSystem
Specific platforms
68k Support
PPC Power Architecture Support
Android support
Linux and FreeBSD Support
Windows Mingw and MacOSX Support
Aros x86 Audio/Video Support
Aros x86 Network Support
Aros x86 Complete System HCL
Aros Poseidon USB Support
x86-64 Support
misc
Aros Public License


Contents

[edit] PPC Native Environment

darwin-ppc-system - shouldn't say the PPC version runs on all MacOSX versions. 10.6.x (Snow Leopard) and newer have the Rosetta utility removed from them and run only darwin-i386-system Intel versions of AROS.

efika-chrp-ppc-boot-iso for Efika 5200B.

sam440-ppc-boot-iso for SAM 440ep

linux-ppc-system for PowerPC hosted linux.



[edit] PPC Compatible Drivers

The following specific chipsets and drivers are also available -:

IDE Controllers:


SATA Controllers:


GFX Chipsets:


Audio Chipsets:


Network Adaptors:



[edit] Reference

trunk/AROS/rom/dos. Make it conditional on AROS_STACK_GROWS_DOWNWARDS ? (although on all archs it currently seems to grow downwards) Is SP_OFFSET actually used, otherwise maybe best to remove it?

AFAIR SP_OFFSET is needed e.g. on PowerPC architectures.



[edit] Hosted

After attempts to use configure and various config files to generate makefiles in a graceful build approach, and having the config break on missing tools or failure to navigate the source code tree, I found possible solution by copying .h include directory tree from ./Development/include/<many directories> down to "each" functional file directory.

And, yes, "gcc -I/<include path> -c..." or "gcc -I../../..<etc>" was also attempted but failed (not sure why nested .h's can not seem to navigate/reuse the -I<include> passed to cc1).

That said, there is issue of which stdio.h structure to use, and when to use native OS stdio or hosted AROS stdio, because:

AROS FILE struct def:

#ifndef __typedef_FILE
#   define __typedef_FILE
    /* I need a named struct for FILE, so that I can use it in wchar.h> */
    typedef struct __sFILE
    {
    int fd;
    int flags;
    } FILE;

#   define _STDIO_EOF    0x0001L
#   define _STDIO_ERROR  0x0002L
#   define _STDIO_WRITE  0x0004L
#   define _STDIO_READ   0x0008L
#   define _STDIO_RDWR   _STDIO_WRITE | _STDIO_READ
#   define _STDIO_APPEND 0x0010L
#endif

while Darwin (using Mac OS X 10.5.8 for host) has following structure:

typedef    struct __sFILE {
    unsigned char *_p;    /* current position in (some) buffer */
    int    _r;        /* read space left for getc() */
    int    _w;        /* write space left for putc() */
    short    _flags;        /* flags, below; this FILE is free if 0 */
    short    _file;        /* fileno, if Unix descriptor, else -1 */
    struct    __sbuf _bf;    /* the buffer (at least 1 byte, if !NULL) */
    int    _lbfsize;    /* 0 or -_bf._size, for inline putc */

    /* operations */
    void    *_cookie;    /* cookie passed to io functions */
    int    (*_close)(void *);
    int    (*_read) (void *, char *, int);
    fpos_t    (*_seek) (void *, fpos_t, int);
    int    (*_write)(void *, const char *, int);

    /* separate buffer for long sequences of ungetc() */
    struct    __sbuf _ub;    /* ungetc buffer */
    struct __sFILEX *_extra; /* additions to FILE to not break ABI */
    int    _ur;        /* saved _r when _r is counting ungetc data */

    /* tricks to meet minimum requirements even when malloc() fails */
    unsigned char _ubuf[3];    /* guarantee an ungetc() buffer */
    unsigned char _nbuf[1];    /* guarantee a getc() buffer */

    /* separate buffer for fgetln() when line crosses buffer boundary */
    struct    __sbuf _lb;    /* buffer for fgetln() */

    /* Unix stdio files get aligned to block boundaries on fseek() */
    int    _blksize;    /* stat.st_blksize (may be != _bf._size) */
    fpos_t    _offset;    /* current lseek offset (see WARNING) */
} FILE;

Possibly explains the segment violation error on executing existing ppc binaries (from April 2011 build) which never successfully opens files, loads kernel modules and beyond "bus error":

./AROSBootstrap -c /Users/.../AROS-20110408-darwin-ppc-system/boot/AROSBootstrap.conf

Bus error

    • Note: required full filename path.



[edit] KNOWN WORKING HARDWARE

The following hardware has been tested with AROS and no issues have been found. If you have encountered differently please update this information. Read the old blog of M Schulz and his new one. An Aros Exec thread has been started.


[edit] KNOWN PROBLEMATIC HARDWARE

The following hardware should work, or is partially supported.


[edit] NOT WORKING HARDWARE

The following hardware does not work at all in AROS presently.

Personal tools
Namespaces
Variants
Actions
Navigation
Community
Toolbox
Sister projects
Print/export