On 16/10/2026 23:11, [email protected] wrote:
October 13, 2026 at 5:12 PM, "Michael Kelly" <[email protected]
mailto:[email protected]?to=%22Michael%20Kelly%22%20%3Cmike%40weatherwax.co.uk%3E >
wrote:
I have a working prototype with an embedded font of size 8x14 which adds an
array of 1344 bytes if the characters 32-128 have bitmaps and characters
outside this range show as '?'. It's obviously even smaller with 8x8 but it
didn't look too good although it was perfectly readable. I'm now starting to
progress it to something that can be merged.
Perhaps this is an unhelpful tip, but maybe it'll help...
I personally am a fan of OpenBSD's spleen font. Again, maybe it's not
helpful...
https://github.com/fcambus/spleen
It's possible that it could be although the font used by gnumach during
early boot is only really for presenting boot debug and so on. It gets
replaced by the font used by the Hurd console or whatever other
graphical interface is configured.
Here is a brief listing of the current issues with my UEFI development.
1) I've finally managed to get a partial boot of gnumach on my 2
hardware platforms. They are both asserting in the vm_page loading phase
suggesting there is something wrong in the page transfer from biosmem.
This is the next job on the list.
2) I spent a number of days debugging grub as both hardware platforms
were failing to boot at all. It was a bit tricky to debug having no
serial console for either but eventually I determined that neither
platform was launching gnumach at all. Debugging grub was tricky because
it has to disable the frame buffer and freeze memory allocations at a
certain point but I eventually determined that it was launching gnumach
with the wrong starting address.
I've not worked out precisely why it behaves this way but I believe the
underlying cause is that the memory for the default starting address is
actually still in use within the UEFI. Grub allocates a different memory
address but doesn't report that it has done so even though gnumach is
not relocatable. I'll return to this later but in the mean time I've
worked around it by building gnumach with '--with-_START_MAP=0x1200000'.
I'm not suggesting this is a permanent solution, but will changing this
have any other side effects that I'm not aware of?
3) There are issues mapping the frame buffer in early boot. Both
hardware platforms have an address outside that mapped by gnumach and at
this stage of the boot mapping the buffer using the interfaces available
does not work. For the moment I have simply cobbled a fixed mapping for
my purpose in the boothdr.S page table and later in the kernel page
table (pmap). Initially it is identity mapped but later I mapped it at
0xfffffffe00000000. Possibly I should have identity mapped it here too
although I don't believe that address space is in use. I emphasise that
this is just a temporary local hack to progress boot to a point where I
have a machine I can work with.
I don't think there is a problem mapping it 'properly' once the memory
management is up and running (eg. at console init) but that is too late
for debugging on my hardware. What I'd like to achieve is the capability
to present debug immediately but done properly. This would be a
comparable option to the 'immediate console'.
Mike.