Commit Graph

6 Commits

Author SHA1 Message Date
Elliot Nunn 6902f7dc5b Cleanly separate Wedge logic from wrapper
Now there is one Wedge() for both environments. Wedge.c has a clearer
interface with the wrapper, and #includes a sensible set of headers. The
hand-rolled libc functions have been separated out, and memcpy() is no
longer used for overlapping ranges.
2018-01-14 10:03:41 +08:00
Elliot Nunn 7c5857f00b Hardcode info record location for dry run
At dry-run time, the NanoKernel is not asked for the location of HWInfo.
The pointer block at 5FFFEFC0 is used instead. The location of
ConfigInfo was already hardcoded.

This neatens things up considerably, but will cause the dry-run Wedge to
crash on a machine with a Wedged address space. If the
NKLocateInfoRecord code can be cleaned up a bit, then it might be
restored.
2018-01-14 10:01:50 +08:00
Elliot Nunn 3fab004b24 Add function to BAT-allocate 256MB from the RAM banks 2018-01-13 19:22:50 +08:00
Elliot Nunn a6e365fcc2 Dump C code into Wedge log 2017-11-21 12:25:50 +08:00
Elliot Nunn f778eef47f Suppress MrC warnings 2017-11-21 12:25:06 +08:00
Elliot Nunn 95df455703 Add the Wedge
The Wedge is a C program that, when inserted into a PowerPC ROM, runs
just before the NanoKernel. This is very early in the boot process. The
Wedge takes this opportunity to rearrange the MacOS address space and
make more than 1.5 GB RAM available to applications. Some serious
problems remain with this approach, so a "proper" solution to the 1.5 GB
RAM limit will take more work.

This code was ripped out of the old CDG5 build system and refactored. It
it more appropriate to keep the Wedge separate from the real OS code.
2017-11-19 22:33:41 +08:00