<bslsk05>
twitter: <ToAruOS> I have put together a preview build of ToaruOS for ARMv8. It's still experimental, and only for QEMU's "-m virt", but it's got Doom. <github.com/klange/toaruos… https://t.co/xIE3AmORXX>
<geist>
yay
mctpyt has joined #osdev
srjek has quit [Ping timeout: 240 seconds]
mctpyt has quit [Ping timeout: 240 seconds]
<klange>
the fpu instructions I'm using in my "plasma" demo are so fast on the M1 that it just flickers patterns instead of visually morphing (the demo intentionally runs a thread in a constant loop to burn CPU)
<zid>
heh
<zid>
I'm going to have the same problem if I ever run my os on hw, it currently emulates zelda at approx realtime by.. virtue of qemu being slow
<geist>
the ramdisk just ends up somewhere. lemme see where it ends up. for fuchsia we're basically loading a boot shim with -kernel and them a single image in the -initrd slot that has the kernel + initial filesystem in it
<geist>
but not using the fw_cfg feature
<geist>
i *think* we read the location of the initrd out of the FDT or its hard coded. i can't find the code anymore since it's been rewritten by other people
<geist>
also looks like a nice way to get to the ACPI bits if wanted, since if there's no UEFI bios nothig will otherwise pull it out and set it up
<geist>
the FDT doesn't seem to come in through this interface though
<geist>
ah yeah we do. found the code in the boot shim that does it. finds it in the /chosen key of the FDT
<klange>
I have no entry in /chosen
<klange>
Are you doing Linux boot in that stub?
<geist>
yah we must be doing that
<geist>
enough to think it's linux, yeah
<klange>
I think for raw ELF it just silently ignores it
<geist>
the node is "linux,initrd-start" it seems
<klange>
I got a bootargs, stdout-path, and kaslr-seed, but -initrd is nowhere to be found
<klange>
at least they give me my -append
<geist>
yah
<geist>
anyway, good to know
[itchyjunk] has quit [Remote host closed the connection]
masoudd has joined #osdev
ElectronApps has joined #osdev
Maxime has joined #osdev
ElectronApps has quit [Remote host closed the connection]
<Maxime>
Hey there
<Maxime>
I'm trying to build libgcc with no red zone, something i'[ve done a bunch of times before
<Maxime>
But I think something changed in the gcc build system
<klange>
after much annoyance, I have a toolchain on macos... had to hunt down some patches to build for arm host, and that was a pain to find because of course all the bug talk is about host=target m1 gcc builds that are _still_ not a thing
<klange>
thankfully I still don't really poke toolchain stuff much, so now that it's out of the way I can go back to not caring
gxt has quit [Remote host closed the connection]
nyah has joined #osdev
gxt has joined #osdev
zaquest has joined #osdev
sdfgsdfg has quit [Quit: ayo yoyo ayo yoyo hololo, hololo.]
dude12312414 has joined #osdev
srjek has joined #osdev
Dreg has joined #osdev
k8yun has joined #osdev
gwizon has joined #osdev
gwizon has quit [Ping timeout: 256 seconds]
mahmutov has joined #osdev
Mutabah has quit [Ping timeout: 250 seconds]
Mutabah has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
srjek has quit [Ping timeout: 240 seconds]
dennis95 has quit [Quit: Leaving]
elastic_dog has quit [Ping timeout: 240 seconds]
elastic_dog has joined #osdev
MrBonkers has quit [Quit: ZNC 1.7.5+deb4 - https://znc.in]
vdamewood has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
mahmutov has quit [Ping timeout: 240 seconds]
MrBonkers has joined #osdev
masoudd has quit [Quit: Leaving]
srjek has joined #osdev
gwizon has joined #osdev
Dreg has quit [Read error: Connection reset by peer]
Dreg has joined #osdev
<geist>
yah i haven't been able to build for arm host either,b ut been using older x86 prebuilt toolchains in the interim
<geist>
since i assume at some point someone will fix it so that it builds
<geist>
gcc+binutils thatis
gwizon has quit [Quit: Lost terminal]
<geist>
huh, noticed on apt get on an arm ubuntu machine there are kernels with -64k in them. *thats* how you select 64k pages on linux arm
<geist>
i was vaguely wondering if it was a command line option or whatnot, but hadn't really tried to see
<geist>
but naw, it's a linux compile option i guess
<geist>
kinda makes sense actually because the kernel most likely needs to be compiled with the native page size, probably
<geist>
due to ELF layout issues, etc
<raggi>
Does the haiku syscall interface require user space register save?
<geist>
i wouldn't think so if it follows the newos model, unless they changed it
<geist>
the haiku folks over on OFTC at #haiku might kow off the top of their head though, why do you ask?
<raggi>
Yeah. The reason I ask is I'm reviewing some libc patches and seeing a whole bunch of code dedicated to register saving which raised my eyebrow
<gog>
the registers saved/on the stack of the process/is required for syscall
<gog>
haiku help in the form of a haiku
<geist>
ah. well it's not necessarily a bad model: have user space dump all the registers that aren't part of the syscall and then the contract with user and kernel is that kernel can trash/zero anythig o the way back
* raggi
chuckles
<raggi>
Yeah, it certainly opens space for some optimizations, but also opens up some nasty mistakes too
<geist>
i cant offhand think of a particularly good or bad reason to do that
<geist>
yah, it definitely means you'll need to be more careful about zeroing things out on the way out of the kernel
<raggi>
I remember thinking about it quite a bit when Go did caller save in their first abi
<geist>
which would be more annoying for an arch with a crapto of regs
<raggi>
And on the way into the kernel, potentially
<raggi>
You wouldn't want to accidentally read random junk from user space which feels more risky
<geist>
yah though that's kinda what happens anywya with callee saved (the callee being the kernel) in this case
<geist>
but i guess it matters how args are passed. i was thinking that args are still passed in regs, it's just the regs that dont participate in arg passing that are saved user side
<geist>
in that case it's not much different re: passing garbage to the kernel. it's still garbage in for the non arg regs
<raggi>
True
<raggi>
There's some bad joke in here about being like openssl and dumping all that data into the entropy pool
<geist>
in any of those cases if the kernel is paranoid about extra junk beig passed it has no real choice but to zero out unused regs on the way in after saving
[itchyjunk] has quit [Read error: Connection reset by peer]
GeDaMo has quit [Remote host closed the connection]