#Zinnia
1 messages ยท Page 31 of 1
maybe it's better now idk
speaking of, go would be funny
what minecraft versions do you support?
@marsh holly
@sick flax
go would probably be more useful than zig rn
astral ran up to 1.20 and gtnh
now I get fucked for minimum wage 8+ hours a day
zig is just c with an unstable abi
arsen was working on that once
oh that's great then
yes but thats serenityos
has ganoo emacs been ported yet?
whats that

cross compile pain
bsd emacs where
hats off to yall tbh
I don't think BSD existed when gnu emacs started
but still
just built it on managarm 5head
pay me full time for work on <insert os here>
but is there anything other than gnu emacs
and I will
i cant be arsed to stare at autotools garbage and messing with cross compilations
wdym
yeah
but none that are as comprehensive
microemacs, xemacs
vs code?
mlibc is pretty much fully self hosting too
yeah
at this point the only thing preventing astral from compiling a distro of itself is kernel instability and speed โ ๏ธ
afaik linus torvalds uses his own fork of microemacs to this day
i think if we can get it upstreamed it might be a viable alternative to musl
musl? don't think too low little bro we are going to pass glibc
no in terms of distro compat
since most software that has been patched to work with musl likely also fixes correctness bugs for mlibc
https://linux.die.net/man/1/zile apparently this is a thing too lol
Zile is a lightweight Emacs clone that provides a subset of Emacs's functionality suitable for basic editing.
from GNU
yeah mlibc is musl but better
trvth
i would totally use an mlibc gentoo
managarm/linux
@near tartan there's also this https://github.com/emacs-ng/emacs-ng
but I think it's dead
damn
also rust emacs
funny
chop chop
fym
talk is cheap
Iirc @median forge is getting close to that
but iirc that's also linux source compatible?
Not their new kernel
They are using mlibc
They did gobject bullshit too
They have rust ported now and other gnome bullshit
They just need more shit to get the full DE working
i do actually
Damn
https://github.com/Mathewnd/psutils @near tartan chop chop add yourself
there's also guile emacs that aims to replace the elisp interpreter with gnu guile
yeah, would've been cool if emacs was written with scheme in mind from the start
schemacs
emacscheme
gnome screen recording is so fucking bad bruh
i am hooking it up to lightdm
it works under root as you can see
but it ropes when ran as user
lmaoo same issue as managarm
Linked list
Not Shrek in 640x480, upvote denied
Or you become the next serenity os
nah im not like that
Logs are public you know
I'm not ๐
smh no originality tho
see, zinnia is the prime example that you can do the most stupid shit implementation ever and can still run impressive software
everyone runs KDE...
you've seen my scheduler code lol
running windows desktop is the next thing
nah seriously this is pretty cool
ty
when I get there I wanna do stuff a bit differently, maybe try using gentoo's portage instead lol
i'd love to do more robust/correct impls, but i just half ass everything lol
if i did linux source compat i'd 100% use portage
you don't need source compat
I don't think so
it should be fairly portable
they ran it on freebsd ๐คทโโ๏ธ
yeah
i mean they also ran it on gnu turd
but I mean it shouldn't be as bad as porting e.g systemd
anyway I'm mostly interested in running it on the host instead
like, to replace jinx or xbstrap
i guess
I kind of want to do that eventually when I get to the point where astral can compile a distro of itself
just to flex
W
I think it'd be neat to use as a replacement for jinx and xbstrap since it has a gazillion recipes
obviously you'd need patches still
gotta complete the gentoo larp from using openrc
nah you gotta use sysvinit to do the 90s unix thing
s6
I wanted to do that originally but I sasw zinnia tried porting openrc and I decided to be a copying little shit
then marvin chickened out

idk what dinit is but openrc is pretty nice
there's also runit
ime, openrc has a good balance of UX and minimalism
fast, lightweight, socket based, easy to port (even encouraged), 2 real distros that use it
runit is very fast but has no UX
it works very similarly to systemd, but with like 10% of the featureset
chimera and artix use it
and gentoo has recipes for it
s6 is also a thing
@marsh holly why
everybody loves systemd
similar != is systemd
average gentoo wiki W
I once made a tool that unified backend init systems to work systemd style for basic commands
I probably should clean that up some more tbh
I've always liked openrc
once I did lfs but openrc instead of sysvinit and it was fun
I think openrc is best if you want something non-systemd but dont want to mess around too much
since it's the most mainstream non-systemd init system
that much is true
but if you're making your own distro/OS anyway, might as well use dinit or whatever else you want
but honestly, the second you stray from systemd, all gloves are off anyways at that point
you're pretty much on your own for everything
Oh the video is new too, thats really impressive tbh, crazy how u dont have to have a million loc to do it
i think it's putting too much stuff under one project, with 0 alternatives and a gnome like approach to implementation
ty
i have 44k rn
i mean, not so different from GNU
GNU is a project comprising of many subprojects
but it's not one package
systemd is the same kinda thing
tho i don't like gnu for other reasons
is systemd all in one package?
pretty much
even udev is part of systemd
I think some distros package things like systemd-boot externally
well it probably counted the bindgen'd stuff โ ๏ธ
might be a rust thing
yes but they all come from that one repo
I'm at like almost 40k lines of C code
14kloc nothingburger
i think what systemd solves is good, but they could at least try to make it more portable with other permutations that aren't gcc/linux/glibc
I wouldn't
(which poettering received)
suckless is such a larp holy shuit
i use libudev-devd from freebsd to drive my libinput
probably before suckless
but same line of thought
and so far it works flawlessly
I'm gonna have a linux compat layer but I'll probably also try doing my own stack
doesn't sound that fun to me to endlessly port linux stuff
I don't really care about porting the shinniest new DE or whatever
I want astral to have a specific look and feel and not just generic linux larp #1000000
by stack I mean like display server, WM, etc
Linux compat sadly implies very deranged api crap I'd rather just not deal with
Using some syscalls to capture and redirect things to a shared library sitting inside the address space and accelerating some things like signals and fork by emulating them in kernel
like epoll 
I'm fine with my small subset of linux+bsd apis
most apis can be implemented in terms of other (saner) APIs
like epoll can be implemented with kqueue
as kqueue is more powerful
yeah but then it's more work to implement
yeah if I ever implement epoll I will do it with kqueue
i have no real need for kqueue
worth it if that means you run a gazillion apps
I have also thought of implementing dee arr emm for eventual 3d accel
i agree that kqueue the better interface

my drm impl is about 3k lines now
without accel
if I were to implement drm I would probably spend a while learning how it works with 3d accel to do it with that in mind out of the box
i need to continue the b580 driver
because I have no reason to implement drm otherwise
modesetting?
how is that modeset broski
I'd do virtiogpu before a real gpu
yeah but no accel
for the record nobody has managed to get working 3d accel yet
Jesus fucking Christ
leo has tried but failed
just sloperate it 
@finite grail had mentioned trying that with the amdgpu shit 
can you guys just not think about that for like 3 years so I can do it in secret
and beat you to the punch
see you in 2032
I am trailing behind already
rewri
it just does a lot of bad things which can run stuff
in C
L
if you complain I make you rewrite it in ada
I'll replace all my syscalls with io uring
I'm not a zig shill but I like that it's C but it allows me to do more modern language stuff
I'd probably use C if I were to start again however
"claude rewrite in C make no mistake"
i don't hate zig, but I don't see it as an alternative to C/Rust
I don't htink you can put rust on the same level as C
it's more of a C++ alternative
yeah
whereas zig is more on the C level
Zig has some things I dislike
imo it's the only C replacement/modern C that actually has a chance to succeed at doing so
make it a C microkernel with lua JITed servers
Along with some rust stuff
I really don't know but
They just put me off
I really like C, JavaScript typescript go and crap
make a c microkernel with managarm abi compat
pain
\s/c/zig/
also
since all zig OSes suck
I can claim to be the first one not to suck and actually do stuff
which is instant aura
same but in rust
by suck I mean, there is none that runs a proper userspace afaik
man "linux-compatible kernel written in zig" is gonna make numbers on HN lol
HN bait 101
redux mogs zinnia
redox couldn't run x11 up until a few months ago
and relibc is bad
look at the os-test score bruh
almost down there with minix
It's called relibc because they need to restart it
Scrap it
Rewrite it from scratch
can someone spam the N word to hide it
sec imma try
๐

what should i port next (I'll probably continue working on usb mass storage kernel side)
half life?
codex
proper doom would be nice too, like gzdoom
codex cli is opensource and you have rust so unironically you could
become the first slop operator ready OS
isn't codex nodejs?
hell nah
fuck if I know
probably claude code told them to when they were using it to write codex
I use the vlanker to debug stupid shit for which I don't have the time to chase through 200 packages
if you don't you're ngmi
honestly porting stuff sounds like a really good use case for clankers
it is
yeah
but they produce still a lot of bullshit
like, to debug lightdm failures, claude literally started injecting its patches into my image via debugfs
can you not
but letting it review code is good for catching oversights
claude, fuck my wife make no mistakes
claude cuck ๐ญ
claude really be injecting shit into your porject
๐ญ๐ญ
i usually revert everything it generates
it's also filled with trash comments
i did use it to convert the yaml from xbstrap to jinx for the like 150 ish recipes that have no special build logic
it's just copy paste stuff, if you actually do this by hand you're just wasting time
I am not manually going through almost 300 packages
I would say no balls. But no actually fuck that shit
it's the most boring ass grunt work
that could technically be automated with a script, but you have a few variables here and there that are just not worth accounting for
so it's 100x easier to clank it
i don't use clanker for kernel features and everything it generates besides the occasional bugfix in my code is unusable trash
I think the most I have ever had it generate are like small functions
That are like mostly very simple
If it ever has to do anything large
It extensive
It grinds up
40 minutes of Claude to find and fix an elf parser but
๐ฅ
Claude can definitely write reasonably good code way faster that any programmer can
the problem is not so much individual code quality
it's more the high level picture, consistency and brevity
kde plasma 6.7 speedrun any% glitchless
That POS missed 3 fields in a UEFI struct and caused me 2 hours of debugging 
Everything was offsert
did you tell it to look at the online html spec?
Nope, probably should've told it to look at my local copy
i have in my global agents.md to never trust memory for specifications or details, always use web or local files
Yeah that's reasonable lol
Claude Opus does that by default afaict
it does not
i had to tell it multiple times (4.8)
and got hit with an "you're absolutely right"
classic
that was opus 4.8 max effort
Fwiw using max effort on tasks that need low intelligence is detrimental
effort is not a more = better dial
I essentially never use max effort
Effort controls how much the model talks to itself
If there is not a lot to reason about, then letting the model talk to itself to sort out directions is detrimental and will yield worse output
take one look at its codebase as compared to SMF and you will understand
this is an incredible achievement
ty
but it's mostly @sick flax achievement
he did the heavy lifting
Just be glad I found the not build time required but runtime absolutely hates you dependencies that were buried deep in logs
Saves you a good few hours of why shit ainโt working
Cuz configure also didnโt say anything, so that wouldnโt help you either
๐ much appreciated
real gaming but a lower res would probably help
is this 1280x800
yes
wayland will probably be even faster
but it's already nice, the performance is close to managarm's in STK
Ah
๐ญ

i am going to explode


Port it to M3 so I can run it
first get it to run on m2/m3
i thought you wanted to stop buying hardware :^)
i lied
i don't have one rn
based
u sold the m2 air?
to a friend
I wish you had M3 hardware
I really really want to run cool stuff on my M3
Maybe I should make my own OS for M3, but Iโm still working on the Windows 95 like project
Why not port your thing to m3 
M3s are only in MacBooks
So it's probably a bit pricy
Even used
I would have to port FreeDOS to M3
And Iโm not willing to do that
porting zinnia to arm isn't very far fetched ngl
Not bad tbh
Maybe I could if I loaded CSM onto UEFI
But even then all the BIOS calls are defined for x86
You'd probably have to make an entire new dos from scratch for arm
Yeah
And my OS is a 1990s larp anyway
It doesnโt make sense to make such an OS for modern hardware
Get a mac mini?
boring
Zoomers don't even save up to buy a house anymore they just buy their 23rd computer and stare at you like this
have you seen the fucking housing market here
I'm never owning a house bruh
That is ecactly what I am saying ๐
I cant wait to have a cs job
pure copium
at least not if you spend 1000โฌ on hw each month 
Bro owns every Thinkpad revision and 5 epycs
(i "own" 2 thinkpads and 5 epycs
okay 3 thinkpads
but one is from work

and the other is arm
also the epycs are dirt cheap in comparison
two of them literally cost 9โฌ
and what about the ram?
i got it for free
we don't use ddr4 anymore
it's all ddr5
so i got to take it home
Are you gonna use it for hwci?
ofc
Nice
just use the heat to boil water and spin a turbine
gomer
i'm going to improve dtb support, then i'll add a basic aarch64 port
when ia64 port
W rust
Yeah because its not a real language meant to be used in production 
neither is itanium
translating......................
translated -> "I am a lame x86cel"
i don't see astral running on arm or riscv
Because I dont have time
trvthnvke
If I could nolife during weekends astral probably wouldve been #1 os by now in the world
But I sadly have a life
๐ฅ
skill issue
ik ur kidding but it's funny that this literally doesn't make any meaningful difference
that's how expensive homes are
this
why? does LLVM not support it?
id be surprised if it didnt
It does make a difference by letting you save enough for a down payment
unless you're living / want a home in a crazy hcol area
rustc does not
Yeah in my area the equivalent dollar amount ($1138.68 USD) will get you the down payment for a home in a few years, and since a owned home is a long-term goal I think that's pretty acceptable
regardless, i don't even do that
sure i sometimes buy hardware
but i also sell it
for about the same price
it's maybe a net loss of 100โฌ
Did you all see slopinna?
https://github.com/BobTheZombie/Zinnia/pull/1
jesus christ
macbook has been acquired
Zinnia port to Apple Silicon?
until my macbook arrives I'll be taking a break from kernel dev and continue writing my wayland wm
Best of luck
what CPU?
M2
m3 has no u-boot support
should've gotten m5 and ported it to it instead 
๐
Wait how does Asahi boot then?
since when
m3 does shit differently
i watched a talk from a few months ago where things barely worked on m3
Oh okay
Canโt wait to try it
Zinnia will be the second OS here that runs on Apple Silicon ๐ค
The first one being @inner pagodaโs project
i assume it will be more stable unlike mine which panics if you look at it wrong
dam
well i prepared better DTB support
so that's the first step
i need to add an aarch64 port tho
i think userspace should already be fine
If Zinnia works I might kinda temporarily ditch my Windows 95 like project and develop an OS for my MacBook
my dev time has gone back into making the virtualizor for ant itself faster now tbh havent touched spore in a while
Unfortunately @zealous salmon was right, it is a really more complicated project than a regular OS
I doubt that tbh
Modern OSes are much more complex than windows 95
Not hobby OSes though
There are a lot of design considerations going into my Windows 95 like that simply wouldnโt have been a concern if I made a regular hobby OS
id say even hobby os'es are more complex than win 95 but not nt tbh
Meh, Windows 95 is a really complex fully 32-bit kernel
Most aren't
Yeah but you didn't specify hobby

Yeah when I said regular OS I was trying to say regular hobby OS
Obviously not a modern OS like Linux
win95 is more complicated than zinnia
I guess it depends but I'm sure someone here could make something like NT 3.1 with enough time, and that's more complex than win95
And not that good by modern standards
will
Iโd say both are similar to implement, with FAT being slightly easier
my current kernel uses my own thing called ext2+ in which it has dynamic inodes so I dont need to allocate 150mb of the disk to just making inodes
pretty neat
If you judge by currently implemented stuff, mintia is better than NT 3.1
well duh
But it's just so huge it's not comparable
NT 3.1 in particular did really weird stuff in some places
Yeah, but Iโm not that person 
i will never be as goated as will
I feel like ive seen some pretty complex oses here
but i will be running on apple silicon inshallah
with full desktop enviroments and gtk support
erm
By that standard my kernel is also better


It'd be like win7 level I guess in terms of what I implemented atm
well there you go
but that doesn't mean my kernel is good
it's pretty bad
it just works well enough to not crash and burn immediately
I mean the win95 source is pretty meh too
is that managarm
yes
everybody loves managarm
also this
Basically Iโm stuck with a lot of details that wouldnโt be relevant if I did a regular hobby OS, like how DOS and hardware can be virtualized, DOS driver interop, DOS application support, support for DOS interfaces and so on
fishix 3.0
Windows 95 is pretty complex in that regard
It also supports Win32 API
Also I have to work with ancient tools and old C standards
What is 2.0
zinnia pre rewrite
Out of curiosity what does it show in the KDE settings โabout this systemโ page
That would be so cool to see
Talking about this screen
i dont have that lol
I assume because you havenโt compiled it?
yes
I should try compiling it
probably a threadripper or smth
ryzen 9 9950x3d2
Intel Ultra 7 258V
i have started aarch64 support
i noticed that userspace is missing a few patches
to even build
so for now just kernel it is 
dtb support seems working very well
I'll make it work in qemu first
but i have a ton of outstanding patches that i need to upstream first
F
W
do u have rpi or something
then double F
how
Apple silicon hater detected
Opinion invalidated 
isnt its undocumented
it is documented by Asahi
linux is my documentation
u think broadcom crap is documented?
they have 0 docs
just say you're poor ๐ฅ
Must acquire everything
fr
qemu -M virt has acpi
is that what you're targeting
or smth else
i have actual arm ACPI hardware
fancy
but I'm developing against device tree arm
makes sense
;(
but the kernel does
just booting with limine works on a single cpu
I've done smp for aarch64 acpi on managarm
third llvm recompile of the day award ๐
"i am an unloveable chud and love israel"
glory to benjamin entanyahu
llvm pass complete
llvm compile... OK
llvm com [ERROR] Out of memory
i don't think that makes you run out of 512 gigs of ram
rumours of your penchant for expensive hardware are clearly not exaggerated
did you get it before the ai mania?
pls no

i can't sell the ram anyways because they're not legal for consumers
how
they don't have a CE certification
they're eng samples
that's why i got them in the first place
we don't use ddr4 at work anymore
so i got a few of the sticks
like 2?
ok fair
makes sense
How hard was the port? Mostly just page tables interrupts and some timers / other platform devices?
gic was probably the biggest part
i didn't do smp
page tables were ez
i already have abstract radix tree logic
Ah nice nice
but exceptions are weirddddd
How'd they do them?
gicv3?
yes
cool
loongarch when
i could
but that's even less documented
you would port astral to loong64 if the CCP sponsored you
step 1: go to china
step 2: get manual
step 3: spend 5 years learning chinese
step 4: impl loongarch64
step 5: profit
imo risc-v is the nicest isa to implement on the kernel side
actually
let me write ts to a usb
i am curious if this could possibly work on real hw
unironically been thinking about it
apparently it has software refilled tlb??? ๐ญ
its actually not that bad
atleast for CPU side things
only on a technicality
this is the ammount of support you need
.equiv tlbrsave, 0x8B
.equiv pgd, 0x1B
.global tlb_refill_handler
.balign 4096
tlb_refill_handler:
csrwr $t0, tlbrsave # save t0
csrrd $t0, pgd # get the faulting page table root
lddir $t0, $t0, 3 # walk page table level 4
lddir $t0, $t0, 2 # walk page table level 3
lddir $t0, $t0, 1 # walk page table level 2
ldpte $t0, 0 # load even entry from level 1
ldpte $t0, 1 # load odd entry from level 1
tlbfill # fill the tlb
csrrd $t0, tlbrsave # restore t0
ertn
thats it
You chunk the physical address of that into a CSR
And then use page tables like normal
the manual is pretty wel detailed and only has a few minor translation issues from what ive seen
and linux acts as docs for a fewww things 
YOOOOO
but yeah i would consider a loongarch port, there is a reason mint likes it,
imagine no time 
how would that change anything
isnt it just reading some system register
discovering the gic?
if !acpi { dtb() }
huh why would the boot time need the gic
i said that because i saw this
Ah fair, I guess for a few things I may have to special case it because my serial stuff looks at ACPI it's self verses the other way. Though maybe I should change that?
Isn't the GIC inside the ACPI tables too?
Fair
static DRIVER: Driver = Driver {
name: "gicv3",
compatible: &[b"arm,gic-v3"],
probe,
};
fn probe(node: &Node) -> EResult<()> {
let (gicd_phys, _) = reg_pair(node, 0).ok_or(Errno::EINVAL)?;
let (gicr_phys, _) = reg_pair(node, 1).ok_or(Errno::EINVAL)?;
let gicd = map_mmio(gicd_phys, 0x1_0000);
let gicr = map_mmio(gicr_phys, 0x2_0000);
GICD_BASE.store(gicd, Ordering::Relaxed);
GICR_BASE.store(gicr, Ordering::Relaxed);
GICR_PHYS.store(gicr_phys.value(), Ordering::Relaxed);
w32(gicd, GICD_CTLR, GICD_CTLR_ARE_NS);
wait_rwp(gicd);
w32(gicd, GICD_CTLR, GICD_CTLR_ARE_NS | GICD_CTLR_ENABLE_G1NS);
wait_rwp(gicd);
let waker = r32(gicr, GICR_WAKER) & !GICR_WAKER_PROCESSOR_SLEEP;
w32(gicr, GICR_WAKER, waker);
while r32(gicr, GICR_WAKER) & GICR_WAKER_CHILDREN_ASLEEP != 0 {
core::hint::spin_loop();
}
write_sysreg!(ICC_SRE_EL1, read_sysreg!(ICC_SRE_EL1) | 1);
isb();
if read_sysreg!(ICC_SRE_EL1) & 1 == 0 {
warn!("The system-register CPU interface did not enable");
return Err(Errno::ENODEV);
}
write_sysreg!(ICC_PMR_EL1, 0xFF); // Allow all priorities.
write_sysreg!(ICC_BPR1_EL1, 0);
write_sysreg!(ICC_IGRPEN1_EL1, 1);
isb();
Ok(())
}
#[initgraph::task(
name = "arch.aarch64.gic",
depends = [crate::device::dt::TREE_STAGE],
entails = [crate::arch::INIT_STAGE],
)]
pub fn GIC_STAGE() {
if let Err(err) = DRIVER.register() {
warn!("Failed to bring up the GICv3: {err:?}");
}
}
this is the probe for dtb
How good is this laptop as a daily driver btw
on windows it's decent
linux 7.1 is supposedly decent too
but it's full of qcom cancer
Unfortunate
other than that it's a usual T14s
Well usual on the outside ig 
yes
Completely bespoke weird soc
i'm doing aarch64 support mostly so i can do apple silicon
what gen
ah
Maybe ill try if you get yours to work
you have AS?
U probably map it incorrectly
Yes, m3 iirc
neat
it wont work yet
because asahi's u-boot only supports up to m2, but that's changing as we speak
works on x86 
Do you do ngnre etc
๐ค
I wonder wtf they change between gens that it breaks so much
well
apple silicon has its own set of exception levels
GL0-2
and everything newer than m3 has extra security features that stop m1n1 to act like a hypervisor
just why
How is that different from normal aarch64?
well aarch64 doesn't have those
Well it has normal el
yes and AS also has GLx on top
idfk what it does yet
but starting with M3 it plays a role
this is part of it iirc
asahi uses m1n1 as a hypervisor to track MMIO writes on macos
instead of just reversing the drivers
it's not as easy to do because the mac os drivers are c++ and spread all over
I see
there's a talk that's VERY interesting if you plan on doing osdev for AS
Show
Thanks
man i am getting quite bored of rust again tho
c29 rewrite 
Hey that's my kernel 
(I use defer)

c23 microkernel*
if i were to rewrite i would probably do it 100% clanker free
because i did find myself debugging with AI because i didn't have the time to properly look into the issues
but that only solved the problem, i still don't know what went wrong or how to fix it
literal brain rot
i do that sometimes and 99% of the time i end up fixing it myself before the clanker knows what's going wrong
Truke
Any clanker code I have it make I always end up just refactoring the fuck out of it
same
Or it's so simple there really aren't many ways to do it
maybe claude 4.6 medium or whatever is just dumb but i dont pay for clankers
i did via work and i had a private sub for a month to try it out
ah
it's unfortunately good enough to do my job
but that just means more work for me to do with less time for each thing
@grave peak btw i used nGnRnE
didn't fix anything
Whats the quirk?
Some DesignWare IP configurations are synthesized with a minimum ATU window size of 64 KB.
apparently linux has an ecam "driver" vtable
Is there a driver where linux doesn't have a vtable 
linux is the oop os
tfw quirk table
I honestly wouldn't know how else to do this with quirks
wait so how does Asahi boot on M3?
Do you need to cc me on the most random shit imaginable ๐ญ
What do you even want me to say to this lol
Yeah you do abuse defer
async exceptions are approximately just MCEs from x86
async iirc just means it won't correspond directly to the instruction that caused the fault
e.g. if you do a posted write, the cpu moves on, and only after a while you get a bus error
ah
ah thatโs unfortunate
I wonder if I could get your OS to work on my Mac by using non-upstream / Asahi version?
probably
one funny thing that i need to solve is the DART iommu
because without it pcie never sees any ram
ram is above 0x800000000, but it's 32 bit pcie
didn't Managarm manage to enumerate PCI on this machine?
is this acpi or dtb?
ACPI
I think it did and it found an xhci
interesting crash handler log
that's from uboot (?)
i was about to ask how did you hook it up
interesting
i would've expected the kernel to catch it but its apple so
fwiw i think the kernel actually runs in EL1
you need to program the right value into spsr
etc
maybe that's why you're crashing when entering userspace :^)
ARM ELs are not transparent to the kernel
not even if VHE is on (which it is on apple)
could be
it worked in qemu :(
i copied most of the managram entry point
Managarm has some "if running in EL2"s
which you need if you want to support both EL2 and EL1
for example here when setting up a user mode register image: https://github.com/managarm/managarm/blob/master/kernel/thor/arch/arm/cpu.cpp#L63
you do not care about that
when do i need to care?
why did the asahi guy mention them
because they exist and they are important
i think that's the feature that apple uses to protect PTs from the kernel?
but not for osdev
how do u boot custom stuff on apple hw
asahi the kernel emulates efi?
why did u mention it lol
ah ok
typo
do they usually boot into the m1n1 thing?
m1n1 is a bootloader + hypervisor
what even is the apple boot sequence by default, what state does it leave m1n1 in
do u need to like hack it to get shit to boot
huh
the second one is a deep dive on XNU
it basically tells you where ram is, gives you cmdline, flags, framebuffer
sec
google says iboot is the apple bootloader
https://github.com/AsahiLinux/m1n1/blob/main/src/xnuboot.h this basically
or does it run from firmware directly
iboot is the bootloader, yes
and it runs from god knows where, but i think it can be updated by a firmware upgrade
but i might be wrong
i think iboot was written by @ geist
or he was part of the team that wrote it or so
yeah
lol
based
why lol?


