Re: 64 bit powerpc

"Peter J. Philipp" <[email protected]> Fri, 27 Jul 2018 11:36:13 +0200
Newsgroups gmane.os.openbsd.ppc
Message-ID <[email protected]>
BTW I'm actively looking for PowerPC64 literature.  I don't mean the 
.pdf's provided by IBM but a real book.  If you know of any send me the 
ISBN, sometimes these books hide under names that aren't really leading 
toward "powerpc".

I have in the last 2 weeks bought one book off Amazon.  It's 32-bit 
PowerPC specific called "Newnes PowerPC Programming Pocket Book" by 
Steve Heath.  Great pocket book!  I love that he has 2 pages in the 
appendix covering 64 Bit PowerPC!  What's astonishing is that he covers 
the basics of 64 bit powerpc and the book is from 1995!  I don't mind 
buying this because I'm taking the 32 bit powerpc arch and pretty well 
hacking on it to make it 64-bit.  I don't know if my approach is 
orthodox, but when I saw FreeBSD's code it dawned on me I could do this.

Another book I have is Computer Organization and Design Risc-V edition 
by Hennessy and Patterson.  In the index in the back of the book they 
describe that PowerPC is covered in Appendix D section which this book 
is missing (doh!).  Well I can't always get lucky *grin*.

Regards,
-peter

On 07/27/18 10:44, Peter J. Philipp wrote:
> On Fri, Jul 27, 2018 at 10:12:30AM +0200, Matthias Freitag wrote:
>> nice, i have two spare G5 Powermacs at home that i will test this on!
> awesome!  While building the cross-compiler this week I realised I really
> need to get the cross-includes complete meaning I have to get aim64 arch
> completed.  I think powerpc64 is completely in place.  This will possibly
> go into next week (when I hope it's cooler).
>
> The idea is sorta like macppc on powerpc where the hierarchy is:
>
> 	        Architecture Hierarchies in OpenBSD
>
>   socppc         macppc  I want it to be:   aim64        power
>      \             /                           \          /
>       \           /                             \        /
>        \         /                               \      /
>          powerpc                                 powerpc64
>
> aim64 will solely be G5 Macs (PowerPC 970 based), power would be IBM Power.
> AIM stands for Apple, IBM, Motorola which formed the AIM Alliance in the 90's.
>
> I'll put a new snapshot of powerpc64 and aim64 from /usr/src/sys/arch out
> soon, then hopefully you'll be able to make a cross-includes (which I tested
> last night).  One hint to do that is to do it in a vmm on amd64, that way if
> you mess up the system by mistyping you don't have to reinstall a possibly
> valuable system.  A vmm is disposable.
>
> Regards,
> -peter
>
>> On Fri, 20 Jul 2018 at 16:58, Peter J. Philipp <[email protected]> wrote:
>>
>>> On Sun, Jul 15, 2018 at 06:02:22PM +0200, Peter J. Philipp wrote:
>>>>>> 60% of the work is in pmap.c, 20% of the work in trap.c, and 20%
>>>>>> of the work is elsewhere.
>>> Hi,
>>>
>>> I've been working hard at this most of the week and I'm at a point now
>>> where
>>> I'm sick of eyeballing the code and doing theoretical changes.  I need a
>>> compiler to do a second look for me.  Although this is the core powerpc64
>>> stuff, there is still the macppc stuff to port and I'll call those aim64.
>>>
>>> For a snapshot of what I've done:
>>>
>>> http://centroid.eu/private/powerpc64.tgz
>>>
>>> For the CVS repo:
>>>
>>> http://centroid.eu/cgi-bin/cvsweb/powerpc64/
>>>
>>> And look for aim64 which will have a path such as:
>>>
>>> http://centroid.eu/cgi-bin/cvsweb/aim64/
>>>
>>> There is still lots of hurdles but when I finish the aim64 stuff, I'll be
>>> looking for two things.
>>>
>>> 1) A cross-compiler with powerpc64 support
>>> 2) a 64-bit loader (like ofwboot)
>>>
>>> If you know an easier way to get a 64 bit loader other than hacking on
>>> ofwboot
>>> let me know.  Or if there is no easier way perhaps someone wants to help me
>>> with this?  Working on a 64 bit loader would be awesome then I have to do
>>> less
>>> work and we meet in the middle.
>>>
>>> I know the code as is won't compile, but I'm willing to give it a pass and
>>> work on fixing the errors that the compiler gives me.  Given that, booting
>>> a
>>> first kernel will likely panic() it at boot, if it doesn't panic then I'm
>>> extremely lucky.  Or it's gonna be really slow as I screwed up on the
>>> Segment
>>> Lookaside Buffer or TLB cache or something.  I'd like to see the day :-).
>>>
>>> Now I want to give everyone who worked on this code before me mad props!
>>> The
>>> code was pretty much almost 64 bit ready and I did a bit of cutting out,
>>> and
>>> pulling stuff in from FreeBSD and comparing with the PEM guide from IBM.
>>> Thanks so far!  Also thanks for FreeBSD who trailblazed my efforts and
>>> gave me
>>> somethign to work with.
>>>
>>> Here is a list of things that I did a visual inspection on and possibly
>>> changes.  What's not checked needs immediate attention still.
>>>
>>>
>>> file                            first pass (eyes only)  second pass
>>> (compiler)
>>>
>>> -------------------------------+-----------------------+-----------------------
>>> powerpc64/bus_dma.c                     X
>>> powerpc64/bus_space.c                   X
>>> powerpc64/copystr.c                     X
>>> powerpc64/cpu_subr.c                    X
>>> powerpc64/fpu.c                         X
>>> powerpc64/genassym.cf                   X
>>> powerpc64/in_cksum.c                    X
>>> powerpc64/intr.c                        X
>>> powerpc64/lock_machdep.c                X
>>> powerpc64/pmap.c                        X
>>> powerpc64/process_machdep.c             X
>>> powerpc64/setjmp.S
>>> powerpc64/softintr.c                    X
>>> powerpc64/sys_machdep.c                 X
>>> powerpc64/trap.c
>>> powerpc64/vm_machdep.c
>>> powerpc64/copyinout.c                   X
>>> powerpc64/slb.c                         X
>>>
>>> ddb/db_disasm.c                         X
>>> ddb/db_interface.c                      X
>>> ddb/db_memrw.c                          X
>>> ddb/db_trace.c                          X
>>>
>>> include/*.h                             X
>>>
>>> Best Regards,
>>> -peter
>>>
>>>