I spend a bit of time dissecting the #sunpci driver in #ghidra.
-
I spend a bit of time dissecting the #sunpci driver in #ghidra. And I can now boot the SunPCi from my own code! Using the #solaris driver still.
Some terrifying conclusions:
The windowed output in the SunPCi userspace application comes from repeatedly read()ing the /dev/sunpcidrv0 node. That just returns some raw video data and mode information.
Userspace contains a VGA emulator itself. Whenever it doesn't understand something it just switches to the external VGA.
-
I spend a bit of time dissecting the #sunpci driver in #ghidra. And I can now boot the SunPCi from my own code! Using the #solaris driver still.
Some terrifying conclusions:
The windowed output in the SunPCi userspace application comes from repeatedly read()ing the /dev/sunpcidrv0 node. That just returns some raw video data and mode information.
Userspace contains a VGA emulator itself. Whenever it doesn't understand something it just switches to the external VGA.
Also note in the above screenshot that the "Award Modular BIOS" screen does not have the normal logo. But there's still SPACE for a logo.
The fact that the #sunpci did not show the Award logo bothered me from the start.
The reason for this is obvious now. The "Fake text mode" that the SunPCi application implements simply doesn't have support for the weird mixed text/graphics mode that the BIOS wants to use!
-
Also note in the above screenshot that the "Award Modular BIOS" screen does not have the normal logo. But there's still SPACE for a logo.
The fact that the #sunpci did not show the Award logo bothered me from the start.
The reason for this is obvious now. The "Fake text mode" that the SunPCi application implements simply doesn't have support for the weird mixed text/graphics mode that the BIOS wants to use!
@hp I always wondered what it means specifically that the BIOS is modular.