Hacker News new | comments | ask | show | jobs | submit login
Freestanding “Hello World” for OpenPower (github.com)
11 points by andreiw on June 2, 2015 | hide | past | web | favorite | 8 comments

Power8 and OpenPOWER has seen some mentions on HN, but not a whole lot of focus has been made on the software aspect of the platform.

I became intrigued because OpenPOWER finally makes little-endian PowerPC a first-class ecosystem. I decided to tinker around with getting some little-endian code running freestanding (i.e. as a “kernel”). Today the test environment is the Power8 Functional Simulator (http://www-304.ibm.com/support/customercare/sas/f/pwrfs/home...) and the skiboot firmware (https://github.com/open-power/skiboot).

The current result is https://github.com/andreiw/ppc64le_hello

The code hopefully answers some of the most basic questions that can arise while targeting or porting system software to PowerPC64 LE. In most cases I traded complexity for simplicity/crappiness, as it’s just a demo (and too long of a demo, I suppose).

Maybe some crazy guys will resurrect the Power(PC) port of ReactOS now ;-) (the original port was BE, which sort of defeated the purpose).

Pardon my ignorance on the subject but is there any reason to prefer little endian POWER over big endian?

The hearsay is that Power8 and GPUs seem like a convenient marriage as far as HPC in the data center goes, and GPUs are little endian. And although part of the problems are solvable at the driver level, no one wants to spend time making all of the existing userspace GPU stuff endian clean. But maybe that's just rumors.

From a personal perspective, I think no one will ever willingly bother investing into converting code to become endian safe. Especially so when dealing with complex (or systems) software. It's a real shame that in the 21st century we can't settle on something so basic as byte order.

It makes porting non-endian-aware software much easier. If you've written software that, for example, serialises data to disk, or sends and receives it over the network, and you haven't specifically coded for it, you can get a bit of a shock when you change endians.

Cool! I work at IBM with POWER, so I'm trying to get that to run on real hardware now --- I'll let you know how I go.

Wow, neat! Looking forward to hearing back. Fortunately, with the exception of a single use of SIM_WRITE_CONSOLE_CODE (main.c:L356), no other callthru facilities are used.

It does at least boot to Hello OPAL and the menu. Having some trouble interacting with it, but that could equally be IPMI. Will do a blog post and send you the link :)

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact