<zid>
I need to check which way around the 16/32 goes
<zid>
okay, the other way
<zid>
just need to wait for the reaaaaly slow cache server in front of this webserver to update
<heat>
i wonder, do I need a 32-bit lret to drop to compat mode?
<zid>
I added the word "default" after 32bit
<heat>
dis my segment: 0x00CF9A000000FFFF
<zid>
just to make it more clear that it's a random flag and not "is this a 64bit descriptor"
<zid>
and added a "long mode" bit
<heat>
which is a totally valid 32-bit cs
<zid>
4K Granularity
<zid>
Compatibility mode
<zid>
16-bit Default
<zid>
Unavailable
<zid>
I need to selectively print things based on which other bits are set really
<zid>
afaik L = 1, D = 0 is illegal etc
<zid>
err D = 1
[itchyjunk] has quit [Ping timeout: 248 seconds]
[itchyjunk] has joined #osdev
dutch has quit [Quit: WeeChat 3.8]
zarock has quit [Ping timeout: 250 seconds]
zarock has joined #osdev
dutch has joined #osdev
<heat>
i fucked the segment calculations...
<heat>
... if I drop into compat and then back, what happens to the upper half of regs?
<heat>
zeroed?
<Mutabah>
Only if they're loaded I think?
<heat>
they're preserved
<zid>
funky
<zid>
I'd have assumed they just made the upperzero part built into the 32bit mov circuitry
<heat>
wait, I didn't check that
<Mutabah>
IMO, if you move into the register, the upper part is zeroed
<heat>
yes, they're zeroed yeah
<heat>
when moving
<zid>
okay phe
<zid>
sanity established
<heat>
i was expecting them to drop the whole 32-bit state unconditionally
<heat>
upper 32-bit that is
<Mutabah>
That would require special handling
<heat>
dropping down to 32-bit, just to enable 57, and then coming back to 64-bit, is nasty
<heat>
top 10 least favourite functions i've ever written
<geist>
yah sounds nasty, i was pondering exactly that the otehr day
<geist>
or if there was some sort of super clever hack one could do where you switch from 57 to 48 instantly, but still have a pge table that kinda works
<geist>
enough to either continue or take some sort of fault which then lets you recover
<heat>
it's completely illegal to toggle the CR4.LA57 bit
<heat>
just GPs there
<geist>
possbly that: set the IDT such that when it instantly fails
<geist>
oh. well okay
<heat>
there's no funny VBAR trick here :(
<Mutabah>
I assume you're using a bootloader that puts you directly into long mode?
<heat>
i'm writing code for EFI handoff boot protocols (this time, specifically multiboot 2)
<geist>
so basically toggling la57 while the mmu is enabled GPs?
<geist>
and since you have to have mmu enabled in 64bit mode...
<heat>
yep, while you're in long mode
<heat>
(EFER.LMA)
<heat>
A logical processor is in IA-32e mode whenever CR0.PG = 1 and IA32_EFER.LME = 1. This fact is reported in IA32_EFER.LMA[bit 10]. Software cannot set this bit directly; it
<heat>
is always the logical-AND of CR0.PG and IA32_EFER.LME.
<heat>
because of the firmware fuckery going on, you also need to allow PML5 being pre-enabled already
<heat>
yay!
<heat>
if you're wondering, OVMF drops you in 48-bit
<zid>
Hmmm to rewind to an older save in fucking.. dollet dream, or carry on with two dead galbadian soldiers..
<zid>
I think someone's going to have to get murdered
heat has quit [Read error: Connection reset by peer]
smeso has quit [Quit: smeso]
Andrew is now known as AndrewYu
smeso has joined #osdev
corank has quit [Remote host closed the connection]
corank has joined #osdev
<heat_>
nothing more gangsta than running code at the wrong base address
heat_ is now known as heat
<heat>
annoying bit: i have a bunch of boot code under a special section with vaddr = physical base. i can't do cross-section pcrel addressing without things blowing up completely
<heat>
the special sections doesn't get me anything, now that my kernel is relocatable in physical memory
heat has quit [Ping timeout: 240 seconds]
terminalpusher has joined #osdev
vdamewood has joined #osdev
slidercrank has joined #osdev
elastic_dog has quit [Read error: Connection reset by peer]
elastic_dog has joined #osdev
slidercrank has quit [Ping timeout: 264 seconds]
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
potash has joined #osdev
slidercrank has joined #osdev
goliath has joined #osdev
Matt|home has joined #osdev
Burgundy has joined #osdev
k4m1_ is now known as k4m1
bliminse has quit [Quit: leaving]
bauen1 has quit [Ping timeout: 256 seconds]
bliminse has joined #osdev
corank has quit [Remote host closed the connection]
corank has joined #osdev
danilogondolfo has joined #osdev
Ali_A has joined #osdev
GeDaMo has joined #osdev
bauen1 has joined #osdev
Ali_A has quit [Quit: Client closed]
nyah has joined #osdev
bauen1 has quit [Ping timeout: 268 seconds]
bauen1 has joined #osdev
heat has joined #osdev
gog has joined #osdev
bauen1 has quit [Ping timeout: 265 seconds]
bauen1 has joined #osdev
bauen1 has quit [Ping timeout: 240 seconds]
sortie has quit [Ping timeout: 246 seconds]
foudfou has quit [Remote host closed the connection]
foudfou_ has joined #osdev
bauen1 has joined #osdev
terminalpusher has quit [Remote host closed the connection]
awita has joined #osdev
bauen1 has quit [Ping timeout: 240 seconds]
dayimproper has joined #osdev
sortie has joined #osdev
awita has quit [Ping timeout: 240 seconds]
dayimproper has quit [Quit: Konversation terminated!]
Left_Turn has joined #osdev
bradd has quit [Ping timeout: 256 seconds]
bauen1 has joined #osdev
joe9 has joined #osdev
danilogondolfo has quit [Ping timeout: 256 seconds]
dude12312414 has joined #osdev
awita has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
goliath has quit [Quit: SIGSEGV]
slidercrank has quit [Ping timeout: 246 seconds]
Left_Turn has quit [Remote host closed the connection]
Left_Turn has joined #osdev
goliath has joined #osdev
<mcrod>
hi
<heat>
hi
<gog>
hi
<Ermine>
hi
<Ermine>
gog: may I pet you
<gog>
yes
* Ermine
pets gog
<heat>
hi
* gog
prr
slidercrank has joined #osdev
xenos1984 has quit [Ping timeout: 248 seconds]
xenos1984 has joined #osdev
joe9 has quit [Quit: leaving]
ZipCPU_ has joined #osdev
ZipCPU has quit [Ping timeout: 260 seconds]
ZipCPU_ is now known as ZipCPU
gog has quit [Quit: Konversation terminated!]
xenos1984 has quit [Ping timeout: 240 seconds]
ZipCPU has quit [Ping timeout: 240 seconds]
FreeFull has quit [Quit: Rebooting]
xenos1984 has joined #osdev
FreeFull has joined #osdev
gog has joined #osdev
<gog>
hi
<Ermine>
hi again
<gog>
i'm home
<Ermine>
That's cool
<zid>
are you final fantasy 8
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
xenos1984 has quit [Ping timeout: 240 seconds]
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
awita has quit [Ping timeout: 240 seconds]
<gog>
i am balamb garden
<zid>
I am galbadia
xenos1984 has joined #osdev
<gog>
quistis is goals
<zid>
failed instructor, clings to the nihilist?
<zid>
or just "whips animals for fun"
<gog>
the former
alpha2023 has quit [Read error: Connection reset by peer]
bas1l is now known as basil
alpha2023 has joined #osdev
goliath has quit [Quit: SIGSEGV]
dutch has quit [Quit: WeeChat 3.8]
Brnocrist has quit [Remote host closed the connection]
Brnocrist has joined #osdev
dutch has joined #osdev
goliath has joined #osdev
awita has joined #osdev
awita has quit [Remote host closed the connection]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
scaleww has joined #osdev
dutch has quit [Quit: WeeChat 3.8]
Burgundy has quit [Ping timeout: 240 seconds]
joe9 has joined #osdev
dutch has joined #osdev
<Ermine>
Do I understand correctly that initial environment of UEFI app images is listed in 'Handoff state' sections in Overview chapter? Or are there any additional sections on this topic?
<zid>
The elemental rule has spread throughout this region! *alt-f4*
<heat>
no problem ermie
dude12312414 has joined #osdev
sebonirc has quit [Remote host closed the connection]
sebonirc has joined #osdev
gog has quit [Ping timeout: 264 seconds]
slidercrank has quit [Ping timeout: 250 seconds]
innegatives has joined #osdev
<innegatives>
I'm inspecting bootsector of PC DOS 2.0 and it has bunch of "arpl" instructions, now "arpl" was introduced with 286, which was in AT, which was supported in PC DOS 3.0, not 2.0. How come 2.0 has arpl instructions?
<zid>
sure it doesn't have a bunch of ?
<bnchs>
>"arpl" instructions
<bnchs>
this reminds me of an OS that was for m68000
<bnchs>
when later variants of the CPU introduced "move from CCR" instruction, the OS recommended it but the original m68k didn't support it
<bnchs>
so in the original m68k, the OS just checks if the instruction is a "move from CCR" instruction, and emulates it if it is
<bnchs>
in an illegal instruction trap
<bnchs>
could this be the same case?
<innegatives>
no idea what you are talking about
<bnchs>
the OS/bootloader can emulate instructions that aren't actuall ysupported in the CPU
gog has joined #osdev
<bnchs>
using the illegal instruction vector
<innegatives>
Oh, but how did arpl make its way into 2.0 when 286 didn't even exist?
deflated8837 has quit [Remote host closed the connection]
deflated8837 has joined #osdev
deflated8837 has quit [Remote host closed the connection]