klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
nick64 has quit [Quit: Connection closed for inactivity]
fwg has joined #osdev
<klange> Not that that is a surprise, I switched to this source port for the x86-64 build specifically because it was more portable than the prboom builds I was using previously.
<klange> hm, what audio options do I have...
<klange> I'm pretty sure I can just give this an AC'97.
<klange> I would have to bake the module into the kernel as I haven't actually implemented module relocations yet, but I have no reason to think it wouldn't work?
<klange> oh right I have no idea how it's going to delivery the interrupt for the DMA queue...
rustyy has quit [Quit: leaving]
rustyy has joined #osdev
ElectronApps has joined #osdev
gruetze_ is now known as gruetzkopf
thinkpol has quit [Remote host closed the connection]
thinkpol has joined #osdev
c2a1 has joined #osdev
<c2a1> Can one theoretically synchronize a video frame with the refresh rate of one's monitor using vga or vbe
<c2a1> What do video drivers for radeon and intel cards do diff
<c2a1> *differently if not
<Mutabah> I don't think VBE (VESA BIOS Extensions) supports a vsync interrupt
<Mutabah> but iirc base VGA does have that ability
<c2a1> Huh. Vsync is the name, that sounds familiar
* c2a1 reads
<Mutabah> Modern video cards likely expose something similar, and probably also support hardware double-buffering
<c2a1> Vga does? So I can do tear free windows on windows 98?
<c2a1> How is vsync accomplished usually
<klange> double buffering and a flip signal
<Mutabah> OR, do all your rendering during vblank
<c2a1> Does the video card communicate with the monitor in some way to determine the monitor refresh rate?
<Mutabah> The video card sends a signal at a given framerate
<Mutabah> e.g. 60Hz, the monitor deals with what it's given
<Mutabah> (although, there is a channel for the montor to communicate what modes [refresh and resolution] it supports)
<c2a1> Rendering during vblank sounds slow. Is that why a lot of software doesnt use it
<Mutabah> It's not slow, it's just constrained
<c2a1> Constrained how?
<moon-child> supposing your frame rate is lower than the monitor's refresh rate
<Mutabah> Well, you only have around 5-10% of total CPU time for rendering
<Mutabah> this is why double-buffering exists
<c2a1> So if anything in software(say for instance, the scheduler) causes rendering to be out of pace with 60hz things mess up
<Mutabah> While the video card is transmitting the previous frame, you're rendering into the new one. then you swap what buffer the video card sends during vblank
<Mutabah> Important note about video interfaces: They're still based on CRT timing
<moon-child> and crt colour correction!
<c2a1> Interesting. What interfaces do you mean?
<Mutabah> VGA, DVI, HDMI, DisplayPort, ...
<Mutabah> (Really modern DP supports a variable frame-rate, but pretty sure the encoded signal is still based around CRT timings)
<c2a1> Wow
<Mutabah> DVI and HDMI (same wire protocol) are just digital versions of VGA, and VGA is designed to drive a three-gun CRT
<klange> In the beginning, there was film. You had a bunch of individual frames and you had to swap them out repeatedly, and we did that with flashing lights and fast reels.
<Mutabah> so there's pauses between each scanline, and a longer pause after each "field" (frame) for the electron gun to rese
<klange> And then television was invented, and it worked by scanning a beam across a CRT repeatedly.
<klange> And for a very long time we literally encoded electronic motion pictures by recording the signals that went to that beam.
<c2a1> I've read a bit about that
<c2a1> Had no idea hdmi was still based on that
<clever> Mutabah: yeah, dvi/hdmi so closely follow crt timings, that you could convert it to analog vga with as little as 1 or 2 pixels of lag added, and just keep the timings unchanged
<c2a1> klange: i'm guessing you mean vhs
<klange> I don't just mean vhs.
<clever> but something like hdmi to composite, may need a scaler, and buffering at least a few scanlines, and if the fps is different, whole frames
<klange> But literally "video". "Video" is TV format recordings.
<klange> It's only very recently with digital video that it has meant anything other than that.
<Griwes> fun fact, the blanking intervals is how you communicate the resolution
<Griwes> and digital screens happen to *also* have good tolerances
<clever> Griwes: how does that really work?
<c2a1> Huh. I need to reread how that looks on an oscilloscope because i'm having trouble visualizing that
<Griwes> I've once accidentally set one of my screens (still using it, maybe even the one IRC is on right now) to... 1281x721
<Griwes> because of an off-by-one
<Mutabah> Ben Eater (on youtube) did a wonderful video sequence on how VGA works
<Griwes> and it happily accepted that as a valid resolution lol
<clever> for a purely analog setup, i imagine you would just tune a sawtooth waveform to match the hsync and vsync rates
<clever> and then just trace it out with the electron beam
<clever> you dont care about resolution
<c2a1> Griwes: how is that possible
<clever> c2a1: if you lack a data-valid signal, then there is no real difference between the front/back porch and the active area
<Griwes> well, for digital, the microcontroller of the screen just locks onto the pixel clock in the signal
<clever> the front/back porch are basically just overscan, areas where sync isnt active, but the image isnt visible
<Griwes> and calculates the resolution from the lengths of the blanking intervals
<Griwes> and clearly it was easier to make it do the calculations on the fly rather than hard-code a list of supported resolutions
<clever> Griwes: i can see that being possible for hdmi/dvi, but there is no real clear pixel clock on vga
<c2a1> What is overscan used for today mainly
<Griwes> oh. I didn't mention it was hdmi, did I ;p
<clever> c2a1: for hdmi, the encoding on the wire has a kind of data-valid flag, a pixel can either contain a 6bit int, or a 24bit int, the 6bit mode is used for all blanking periods, and 2 bits are hsync/vsync, in 24bit mode, thats just the raw rgb888 color
<clever> so there is no real overscan, the monitor knows exactly which pixels have image data
<clever> but there is still a front/back porch, between the sync pulse, and the image data
<zid> also fun fact, horizontal resolution in CRT land is a complete lie
<clever> yeah
<clever> its just dumping the analog rgb right into the electron guns
<clever> and you can change the signal however fast you want
<zid> It's an analogue sample that just gets sampled a bunch of times, you can use as much bw in that analogue signal as you like to add a bunch of detail
<clever> or as slow as you want
<zid> s/sample/signal
<zid> so you need precisely 0 different software/hardware to do 128392329x480 as 640x480, you just need a nicer piece of glass to project it onto :P
<clever> but in terms of output hw, something like the rpi, measures the hsync hfront and bback periods in terms of pixel counts
<clever> and all of them, including hactive, are 16bit counters
<clever> but the 2d scaler core only has 12bit fields for width/height
<Mutabah> zid: Well, colour CRTs have "pixels" (indivudal colour cells)
<zid> hence "nicer piece of glass"
<clever> so you have a hard limit of 4095x4095 for your max res
<zid> but they actually don't, they have an aperture grill
<zid> which is like a scren on a microwave
<zid> the actual phosphor tends to be continuous
<zid> oscilloscopes don't tend to have pixels like that, which i why they're kinda blurry and glowy
<clever> Griwes: but what are the rules, about how the blanking interval declares the resolution? cant an hdmi display just count the pixels?
<c2a1> Leaded glass or am I wrong
<zid> yea leaded glass usually
<zid> for radiation and stiffness
<clever> zid: oscilloscopes are also monochrome, no grid to break up "pixels"
<zid> but yea, vsync is a pita on a PC
<Griwes> clever, it can... and it's probably what the microcontroller did in that case
<c2a1> Didn't the inventor of the microwave discover its food preparation uses by experimenting with a device that lacked it(or a cage thing)
<c2a1> *oven
<clever> Griwes: but there are a lot of modern displays, that absolutely crap their pants, if you get the timing off by even 1 pixel
<zid> microwave transmitter dishes were common and well known to heat things up as far as I know
<zid> getting them *small* enough is the issue for ovens
<clever> Griwes: for example, 1366x768 displays, often have an odd number in one of the horizontal timing params
<zid> interlaced modes also have a required off by one
<clever> Griwes: but the pi4 is operating in a ddr mode, 2 pixels per clock, and can never do an odd number!
<clever> Griwes: and if you use the wrong timings, the display just doesnt show anything
<zid> you have to hold the sync for half a scanline 'too long' to offset the odd field
<clever> zid: from what i remember, ntsc just has the vsync being held for more scanlines?
<c2a1> How well documented are the pis peripherals
<zid> as opposed to?
<Griwes> clever, yes, which is why I was really impressed by the screen I had when I figured out why the image is fscked ;p
<clever> c2a1: depends on which peripheral your asking about
<zid> ntsc and pal are pretty different, timings wise
<c2a1> x86 peripherals. Like storage/video/etc.
<clever> Griwes: oh, and i mis-configured my vga output when i was driving a crt many months ago
<clever> Griwes: i had configured the hw for interlaced mode, but fed undefined data into the odd field
<c2a1> sata vs sdhc interface(whatever the pi 4 uses). Vga vs videocore.
<clever> so you got one frame of the right length and timing, and then one frame that was 3 seconds long, lol
<clever> the status led on my crt, just blinked on&off in sync with that
<clever> it got 2 vsync at the right distance, turned on, wait no its not valid, turned off, lol
<zid> They're both 15kHz but it's all spaced out completely differently
<clever> c2a1: the pi4 has no sata controllers
<c2a1> I know
<c2a1> I was comparing apples to oranges in yalls books maybe
<clever> c2a1: the SD 2 main SD interfaces are following the sdhci specs, so just pick up the official SD docs
nyah has quit [Ping timeout: 250 seconds]
<clever> c2a1: the video output hw has no official docs, but does have linux source, and ive been writing docs for them, and simpler example code
<c2a1> clever: I am way too slow to look at those and understand it lol but maybe I'll try
<clever> zid: hmmm, that reminds me, how does hsync and vsync differ, on a composite signal?
<clever> zid: this might be why the composite generator on the rpi ignores the timing parameters configured in the normal place, because the normal place doesnt support long pulses like that
<c2a1> clever: I wouldn't even want to look at that because I'm iffy on the gpl
<zid> you just.. hold sync for like.. 30 lines rather than 4 us
<clever> zid: ah, so its more of a combined sync, and the length is the axis
<c2a1> I don't know exactly what qualifies as fair use for example code so I steer clear of most of it
<zid> that original diagram shows it
<zid> the pink/blue bar at the left is the sync/porch stuff for the line
<zid> 2 microsecond pulses vs 30 microsecond pulses, the right combo makes the display do the right things to the aiming of the gun via 'magic' :p
<clever> c2a1: the rpi's 2d core is basically made up of 3 layers, the first is a sprite/scaler core, the 2nd is generating all of the timings, and the 3rd converts the digital signal into something you can pass out of the system
<klange> something I'm going to have to look at soon
<klange> now that all the basics are in place, it's time to get this running on real hardware
<clever> but some outputs like composite, seem to ignore the timing from the 2nd layer, (possibly because of the wonky sync pulse lenghts), and just expects each frame to have the right number of pixels
<clever> zid: oh right, have you seen the insanity behind secam?
sdfgsdfg has joined #osdev
<zid> nah never looked at secam
<zid> never owned or cared about a device that used it
pretty_dumm_guy has quit [Quit: WeeChat 3.4]
<zid> doesn't look too insane
<zid> just a different way of solving the same problem, but starting from the weird 819 line signals not the 625 / 576 ones
<zid> PAL60 is the one true format
<clever> zid: from what ive read, it solves a lot of the color problems of ntsc/pal
<zid> ntsc is the one with color problems
<zid> pal's just.. fine
<clever> with ntsc (and i think pal), the color is encoded as 3 signals at once
<clever> the low freq absolute value is the luma, like a dc offset
<zid> all three are systems for adding colour to monochrome
<clever> then you have phase offset and the ac amplitude, for the 2 color signals
<zid> so they get to re-use the luma and just hue shift it
<clever> but secam, only has 1 color signal per scanline, so there is less noise corruption
<clever> and it alternates between which of the 2 signals its sending, so each scanline only has half the color component
<clever> and both scanlines have the same colors
<clever> similar to yuv420
<zid> no dot crawl
<zid> but you can 'see' the colour in the monochrome luma afaik
<zid> so edges tend to be shitty
<clever> i thought dot crawl was when a digital display samples a digital signal but isnt using the right pixel clock?
<clever> so some pixels are sampled at the cross-over between 2 pixels
<clever> ah, yeah, thats very different from the dot-crawl i was thinking of
<zid> It's just crappy demodulation I think, the low freq colours overlap the high freq luma
<clever> yeah
<zid> you can solve it in both systems by just.. not using composite video
<clever> i have a perfect example of that
<zid> composite is ass, who knew
<bslsk05> ​imgur.com: Imgur: The magic of the Internet
<clever> top is an lcd hdtv, bottom is a crt, both are the same composite signal
<clever> the high freq black/white stripes start to turn blue
<clever> and red
<zid> jpeg irl
<clever> but that crt case, also went thru an rf encoder and onto channel 3
<klange> jpeg is basically analog encoded digitally
<clever> while the lcd case, was composite right into the display
<klange> so it makes sense it has the same problems analog video had
<clever> i also have a more whacky case, https://imgur.com/a/PlY5YIy
<bslsk05> ​imgur.com: Imgur: The magic of the Internet
<clever> this was supposed to just be 3 solid bars, of red, green, and blue
<klange> i had a monitor where if you sent the right signal to it - just displayed the right image - it would shut off
<clever> but, i intentionally mis-configured the source, so the color reference frequency was wrong
<clever> that tv doesnt care, and keeps going by what it thinks the color freq is
<clever> and the 2 drift out of phase, causing that rainbow
<clever> and that reveals, that the tint adjustment knob on the tv, is just a phase adjustment
<clever> but another display, just ignores that color signal entirely, because it knows the color burst is wrong
<geist> klange: re: the TCG for arm being a little quicker, i'm not too surprised. i have experienced a bit of the same thing with riscv. i think architectures that are simpler than x86 get translated a bit nicer
<geist> oh there's also the multithreaded TCG for arm
smeso has quit [Quit: smeso]
<klange> While it's still very much "in progress", I think I will merge my aarch64 branch into master later today.
<klange> I've verified the little changes I've made outside of the arch stuff hasn't broken x86-64.
<klange> I did make an ABI change of switching x86-64 to data-after-pointer for TLS as part of fixing a bug in my linker, though.
<klange> There are a handful of little userspace changes in this diff, mostly a couple of dumb places where I used a `char` when I wanted an `int` and the signedness difference alerted me to this.
<klange> I need to get my CI builders set up with the aarch64 toolchain, as well, so I can have them spit out ready-to-run bootstub/kernel/ramdisk archives.
<klange> Shouldn't be too hard.
<klange> gcc keeps throwing a warning at me in one of my libs because I have a small bitpacked struct and the abi for them changed in 9.1? which I don't care about! I've never built this code for this target on anything before gcc10!
smeso has joined #osdev
srjek has joined #osdev
<klange> with the vmmouse, qemu hides the cursor... with virtio-tablet it does not... does the latter support handing a cursor sprite to the host, I wonder...
<klange> my compositor has some support for that as I implemented it for virtualbox
[itchyjunk] has quit [Remote host closed the connection]
immibis has joined #osdev
mahmutov has joined #osdev
mahmutov has quit [Ping timeout: 256 seconds]
<moon-child> on amd64 linux, how do I tell the kernel to set segment bases?
<zid> there's an ioctl thing I think
<zid> WRFSBASE
<zid> is erm
<zid> arch_prctl
<zid> ARCH_SET_FS
<moon-child> ah thanks!
<moon-child> (and looks like there is also _SET_GS, which is what I actually want--don't want to fuck up TLS)
<zid> huh that's the opposite of what I'd wanna do
<zid> I can't think of a use for gs, but I can at least understand wanting to change thread
<moon-child> thinking about using memory protection for gc barriers
<moon-child> use an alt segment to access a mirrored version of memory without protections, for when you're writing stuff that's not a pointer (or pointer to stack/oldspace)
ChanServ has quit [*.net *.split]
Vercas has quit [*.net *.split]
gxt has quit [*.net *.split]
c2a1 has quit [*.net *.split]
dennisschagt_ has quit [*.net *.split]
manawyrm has quit [*.net *.split]
g1n has quit [*.net *.split]
simpl_e has quit [*.net *.split]
amj has quit [*.net *.split]
j00ru has quit [*.net *.split]
koolazer has quit [*.net *.split]
k4m1 has quit [*.net *.split]
particleflux has quit [*.net *.split]
mrkajetanp has quit [*.net *.split]
bleb has quit [*.net *.split]
m5zs7k has quit [*.net *.split]
Benjojo has quit [*.net *.split]
srjek has quit [*.net *.split]
JanC has quit [*.net *.split]
gruetzkopf has quit [*.net *.split]
Brnocrist has quit [*.net *.split]
lg has quit [*.net *.split]
ert has quit [*.net *.split]
energizer has quit [*.net *.split]
merry has quit [*.net *.split]
graphitemaster has quit [*.net *.split]
cultpony has quit [*.net *.split]
Patater has quit [*.net *.split]
seds has quit [*.net *.split]
kanzure has quit [*.net *.split]
Amanieu has quit [*.net *.split]
smeso has quit [*.net *.split]
dormito has quit [*.net *.split]
sham1 has quit [*.net *.split]
blockhead has quit [*.net *.split]
immibis has quit [*.net *.split]
tomaw has quit [*.net *.split]
orthoplex64 has quit [*.net *.split]
phr3ak has quit [*.net *.split]
MiningMarsh has quit [*.net *.split]
PyR3X has quit [*.net *.split]
klys has quit [*.net *.split]
klange has quit [*.net *.split]
moon-child has quit [*.net *.split]
sprock has quit [*.net *.split]
fkrauthan has quit [*.net *.split]
acidx has quit [*.net *.split]
JerryXia1 has quit [*.net *.split]
meisaka has quit [*.net *.split]
ebb has quit [*.net *.split]
mniip has quit [*.net *.split]
LittleFox has quit [*.net *.split]
woky has quit [*.net *.split]
rustyy has quit [*.net *.split]
thinkpol has quit [*.net *.split]
fwg has quit [*.net *.split]
LostFrog has quit [*.net *.split]
xenos1984 has quit [*.net *.split]
Irvise_ has quit [*.net *.split]
catern has quit [*.net *.split]
tenshi has quit [*.net *.split]
ZipCPU has quit [*.net *.split]
kkd has quit [*.net *.split]
XgF has quit [*.net *.split]
dragestil has quit [*.net *.split]
Stary has quit [*.net *.split]
mxshift has quit [*.net *.split]
HeTo has quit [*.net *.split]
paulbarker has quit [*.net *.split]
LambdaComplex has quit [*.net *.split]
kleinweby has quit [*.net *.split]
onering has quit [*.net *.split]
vancz has quit [*.net *.split]
epony has quit [*.net *.split]
valerius_ has quit [*.net *.split]
flx- has quit [*.net *.split]
Clockface has quit [*.net *.split]
Teukka has quit [*.net *.split]
Terlisimo has quit [*.net *.split]
ggherdov has quit [*.net *.split]
Bitweasil has quit [*.net *.split]
tom5760 has quit [*.net *.split]
ElementW_ has quit [*.net *.split]
wolfshappen has quit [*.net *.split]
ccx has quit [*.net *.split]
kori has quit [*.net *.split]
dh` has quit [*.net *.split]
eschaton has quit [*.net *.split]
remexre has quit [*.net *.split]
ecs has quit [*.net *.split]
cheapie has quit [*.net *.split]
terrorjack has quit [*.net *.split]
V has quit [*.net *.split]
Celelibi has quit [*.net *.split]
hbag has quit [*.net *.split]
teroshan has quit [*.net *.split]
sahibatko has quit [*.net *.split]
cln has quit [*.net *.split]
janemba has quit [*.net *.split]
gdd has quit [*.net *.split]
aejsmith has quit [*.net *.split]
jstoker has quit [*.net *.split]
doppler has quit [*.net *.split]
amine has quit [*.net *.split]
rorx has quit [*.net *.split]
nur has quit [*.net *.split]
mlombard has quit [*.net *.split]
alpha2023 has quit [*.net *.split]
stux|away has quit [*.net *.split]
j`ey has quit [*.net *.split]
nickster has quit [*.net *.split]
mcfrdy has quit [*.net *.split]
Emil has quit [*.net *.split]
ElectronApps has quit [*.net *.split]
brynet has quit [*.net *.split]
puck has quit [*.net *.split]
nopenope[m] has quit [*.net *.split]
kingoffrance has quit [*.net *.split]
freakazoid333 has quit [*.net *.split]
Raito_Bezarius has quit [*.net *.split]
pie_ has quit [*.net *.split]
SanchayanMaity has quit [*.net *.split]
geist has quit [*.net *.split]
friedy10- has quit [*.net *.split]
tds has quit [*.net *.split]
Ermine has quit [*.net *.split]
ornitorrincos has quit [*.net *.split]
paulusASol has quit [*.net *.split]
junon has quit [*.net *.split]
Reinhilde has quit [*.net *.split]
sauce has quit [*.net *.split]
hl has quit [*.net *.split]
pounce has quit [*.net *.split]
mats1 has quit [*.net *.split]
jimbzy has quit [*.net *.split]
snickerbockers has quit [*.net *.split]
DanDan has quit [*.net *.split]
buffet has quit [*.net *.split]
alexander has quit [*.net *.split]
grange_c has quit [*.net *.split]
nj0rd has quit [*.net *.split]
DonRichie has quit [*.net *.split]
FireFly has quit [*.net *.split]
amazigh has quit [*.net *.split]
brenns10 has quit [*.net *.split]
andreas303 has quit [*.net *.split]
clever has quit [*.net *.split]
asymptotically has quit [*.net *.split]
ravish0007 has quit [*.net *.split]
enyc has quit [*.net *.split]
lanodan has quit [*.net *.split]
k0valski18 has quit [*.net *.split]
Geertiebear has quit [*.net *.split]
night has quit [*.net *.split]
skipwich has quit [*.net *.split]
jjuran has quit [*.net *.split]
gorgonical has quit [*.net *.split]
scaramanga has quit [*.net *.split]
warlock has quit [*.net *.split]
MrBonkers has quit [*.net *.split]
CompanionCube has quit [*.net *.split]
corecode has quit [*.net *.split]
nanovad has quit [*.net *.split]
jeaye has quit [*.net *.split]
netbsduser has quit [*.net *.split]
kaichiuchu has quit [*.net *.split]
gmodena has quit [*.net *.split]
bauen1 has quit [*.net *.split]
froggey has quit [*.net *.split]
basil has quit [*.net *.split]
eryjus has quit [*.net *.split]
mavhq has quit [*.net *.split]
bxh7 has quit [*.net *.split]
pieguy128 has quit [*.net *.split]
wgrant has quit [*.net *.split]
bgs has quit [*.net *.split]
ThinkT510 has quit [*.net *.split]
Griwes has quit [*.net *.split]
zid has quit [*.net *.split]
bradd has quit [*.net *.split]
scoobydoo has quit [*.net *.split]
joe9 has quit [*.net *.split]
Mikaku has quit [*.net *.split]
les_ has quit [*.net *.split]
Piraty has quit [*.net *.split]
andrewrk has quit [*.net *.split]
Affliction has quit [*.net *.split]
duckworld has quit [*.net *.split]
nanovad has joined #osdev
CompanionCube has joined #osdev
jeaye has joined #osdev
corecode has joined #osdev
dormito has joined #osdev
Vercas has joined #osdev
mrkajetanp has joined #osdev
JerryXia1 has joined #osdev
c2a1 has joined #osdev
ElectronApps has joined #osdev
srjek has joined #osdev
thinkpol has joined #osdev
fwg has joined #osdev
rustyy has joined #osdev
blockhead has joined #osdev
puck has joined #osdev
LostFrog has joined #osdev
xenos1984 has joined #osdev
paulusASol has joined #osdev
hbag has joined #osdev
nopenope[m] has joined #osdev
junon has joined #osdev
catern has joined #osdev
gruetzkopf has joined #osdev
tomaw has joined #osdev
Raito_Bezarius has joined #osdev
dennisschagt_ has joined #osdev
terrorjack has joined #osdev
remexre has joined #osdev
cheapie has joined #osdev
ecs has joined #osdev
teroshan has joined #osdev
epony has joined #osdev
V has joined #osdev
Celelibi has joined #osdev
sahibatko has joined #osdev
MiningMarsh has joined #osdev
cln has joined #osdev
orthoplex64 has joined #osdev
manawyrm has joined #osdev
jstoker has joined #osdev
tenshi has joined #osdev
aejsmith has joined #osdev
kingoffrance has joined #osdev
ert has joined #osdev
g1n has joined #osdev
Clockface has joined #osdev
Brnocrist has joined #osdev
freakazoid333 has joined #osdev
gdd has joined #osdev
simpl_e has joined #osdev
ZipCPU has joined #osdev
janemba has joined #osdev
valerius_ has joined #osdev
flx- has joined #osdev
koolazer has joined #osdev
lg has joined #osdev
amj has joined #osdev
doppler has joined #osdev
kkd has joined #osdev
amine has joined #osdev
j00ru has joined #osdev
Teukka has joined #osdev
rorx has joined #osdev
nur has joined #osdev
alpha2023 has joined #osdev
PyR3X has joined #osdev
Terlisimo has joined #osdev
mlombard has joined #osdev
ChanServ has joined #osdev
moon-child has joined #osdev
ggherdov has joined #osdev
klys has joined #osdev
klange has joined #osdev
stux|away has joined #osdev
Bitweasil has joined #osdev
gxt has joined #osdev
tom5760 has joined #osdev
ElementW_ has joined #osdev
wolfshappen has joined #osdev
Reinhilde has joined #osdev
kori has joined #osdev
kaichiuchu has joined #osdev
gmodena has joined #osdev
gorgonical has joined #osdev
warlock has joined #osdev
jjuran has joined #osdev
MrBonkers has joined #osdev
scaramanga has joined #osdev
phr3ak has joined #osdev
m3a has joined #osdev
night has joined #osdev
acidx has joined #osdev
friedy10- has joined #osdev
XgF has joined #osdev
dragestil has joined #osdev
DanDan has joined #osdev
sprock has joined #osdev
fkrauthan has joined #osdev
LambdaComplex has joined #osdev
pie_ has joined #osdev
ebb has joined #osdev
hl has joined #osdev
sauce has joined #osdev
pounce has joined #osdev
jimbzy has joined #osdev
snickerbockers has joined #osdev
mats1 has joined #osdev
alexander has joined #osdev
grange_c has joined #osdev
buffet has joined #osdev
geist has joined #osdev
DonRichie has joined #osdev
nj0rd has joined #osdev
amazigh has joined #osdev
FireFly has joined #osdev
meisaka has joined #osdev
brenns10 has joined #osdev
clever has joined #osdev
ravish0007 has joined #osdev
andreas303 has joined #osdev
asymptotically has joined #osdev
woky has joined #osdev
LittleFox has joined #osdev
mniip has joined #osdev
Benjojo has joined #osdev
m5zs7k has joined #osdev
bleb has joined #osdev
enyc has joined #osdev
Amanieu has joined #osdev
kanzure has joined #osdev
cultpony has joined #osdev
graphitemaster has joined #osdev
merry has joined #osdev
Patater has joined #osdev
seds has joined #osdev
paulbarker has joined #osdev
HeTo has joined #osdev
Stary has joined #osdev
vancz has joined #osdev
mxshift has joined #osdev
onering has joined #osdev
Emil has joined #osdev
nickster has joined #osdev
kleinweby has joined #osdev
mcfrdy has joined #osdev
j`ey has joined #osdev
eschaton has joined #osdev
dh` has joined #osdev
ccx has joined #osdev
ornitorrincos has joined #osdev
tds has joined #osdev
Ermine has joined #osdev
particleflux has joined #osdev
SanchayanMaity has joined #osdev
k4m1 has joined #osdev
skipwich has joined #osdev
energizer has joined #osdev
immibis has joined #osdev
k0valski18 has joined #osdev
Geertiebear has joined #osdev
brynet has joined #osdev
lanodan has joined #osdev
JanC has joined #osdev
Irvise_ has joined #osdev
netbsduser has joined #osdev
<geist> also if it's a new enough cpu you can use the wrgsbase instruction directly
eryjus has joined #osdev
pieguy128 has joined #osdev
bxh7 has joined #osdev
basil has joined #osdev
froggey has joined #osdev
bauen1 has joined #osdev
wgrant has joined #osdev
bgs has joined #osdev
scoobydoo has joined #osdev
ThinkT510 has joined #osdev
joe9 has joined #osdev
les_ has joined #osdev
Mikaku has joined #osdev
andrewrk has joined #osdev
Piraty has joined #osdev
mavhq has joined #osdev
zid has joined #osdev
Griwes has joined #osdev
bradd has joined #osdev
duckworld has joined #osdev
Affliction has joined #osdev
phr3ak has quit [Ping timeout: 256 seconds]
phr3ak has joined #osdev
dormito has quit [Ping timeout: 256 seconds]
dormito has joined #osdev
sdfgsdfg has quit [Quit: ayo yoyo ayo yoyo hololo, hololo.]
<moon-child> geist: huh, cool, didn't realise that was a thing
<moon-child> '#GP(0) If the source register contains a non-canonical address' ehhhh stupid
<moon-child> why can't I have a non-canonical base and then offset enough to get into canonical territory?
<zid> My guess: because it needs +0 to be valid in case of rsp using it or something
<zid> rather than having to check a bunch of corner cases at push time
rustyy has quit [Quit: leaving]
rustyy has joined #osdev
sham1 has joined #osdev
sdfgsdfg has joined #osdev
srjek has quit [Ping timeout: 245 seconds]
gorgonical has quit [Read error: Connection reset by peer]
<moon-child> zid: when is rsp 0 though?
gorgonical has joined #osdev
<moon-child> (and, given rsp is not 0, you could easily have rsp + canonical gsbase = noncanonical address)
<zid> it might not be rsp it could be a bunch of things, but it just seems easiest to do some proactive checks if it removes them from a hotpath
<moon-child> I just mean, when do you ever access address 0? Pretty much never
<moon-child> and you always have to check whether stuff is canonical. And besides, checking whether something is in some fixed range is _really easy_ to do in hardware
<zid> okay fine my idea is tenuous
<zid> is that what you wanted, you big bully? :(
<zid> If I cry it's your fault
<moon-child> dw I know you secretly like it
<moon-child> (probably, you don't even check if stuff is canonical, you just happen to not find it mapped anywhere)
<zid> well it does need the check, because it's a separate exception
<moon-child> oh right
<zid> my guess for why (you'll love this bit I guess)
<zid> is that because those wires don't physically exist, you can't really do the math, you just fake it
<zid> you and and nand all the top bits together before it goes anywhere else that might try to do maffs
<moon-child> :<
<moon-child> thanks, i hate it
gorgonical has quit [Ping timeout: 250 seconds]
dennis95 has joined #osdev
gorgonical has joined #osdev
<geist> wooot, full pci bus bar allocation and assignment
<geist> this was a lot more work than i thought, but i also wanted to do a proper implementation
<kazinsal> :toot:
<geist> moon-child: re: the #GP that's also the same thing if you manually write to the FSGSbase MSRs
<kazinsal> this on rv64?
<geist> arm, but rv64 as well
<geist> basically any system where there was no firmware to pre-initialize it
<geist> i have a fantastically complicated bus set up with a huge pile of switches so it gives it everything to try, including 32 and 64bit prefetchable stuff nested under a few busses
<kazinsal> gotcha
<bslsk05> ​IRCCloud pastebin | Raw link: https://irccloud.com/pastebin/raw/NtWe86ZI
<geist> now i need to implement msi allocation on ARM (and figure out how to do it on riscv) and will be fully functional
<kazinsal> interesting. how does the I/O space stuff work on non-x86, or do you just parse and ignore it ?
<geist> oh no it works. so the FDT has a field that says 'iospace M:N is mapped at address X'
<geist> basiaclly has 3 fields: base io address, base mmio, and length
<kazinsal> oh dang, that's handy
<geist> in the case of arm-virt machine its mapped 64k below 0x4000.0000
<geist> haven't wired that up yet either, but if i have some sort of pci_io_read/pci_io_write routine can just indirect through that
dormito has quit [Quit: WeeChat 3.3]
<geist> in the common case, of course, all the devices are jsut blatted out on the root bus, and no bridges involved, so it's pretty trivial there
<geist> it was all the allocation of bridges and whatnot athat took the time, and organizing the code such that it was natural
<kazinsal> right, makes sense
<kazinsal> kinda wish I still had the drive to do osdev stuff
<geist> for some reason this specific thing has been eating at me for a long time. always wanted to do it, but just never got the energy to
<kazinsal> more recently I've been more enjoying just kind of explaining stuff in the osdev field than actually doing any systems research and development stuff
<geist> indeed
<kazinsal> kinda came around the same time as the realization that even though I was developing something incredibly specific and focused it still wasn't going to be "disruptive" in a sense, and I kinda also enjoy teaching
<kazinsal> would it be fun as hell to sell network appliances running my OS project? sure. is it possible? technically. is it even a one in a million shot of being a realistic goal? nope
<geist> woot, works on riscv too. the ahci driver just came up
<kazinsal> nice
<j`ey> kazinsal: why cant you just run it on your own appliances and still enjoy doing it that way?
irl25519 has joined #osdev
<kazinsal> storage is another one of those things I wouldn't mind taking a crack at. did a bit of reading a while ago about some of the tech behind NetApp's storage systems and there's some neat stuff in there
<kazinsal> three different erasure codes being used in the RAID that underlays any given aggregate of disks so you can lose three physical disks and still keep trucking, custom filesystem that integrates with the triple erasure coded RAID and the snapshotting system and ensures that blocks can be allocated as fast as possible whenever needed so the OS can "write anywhere" whenever needed
<kazinsal> having seen some of the wonders of it in person (once recovered a bitlockered share by just rolling it back with volume shadow copies that were being taken by the NetApp OS and were made immutable so the crypto didn't even get the opportunity to write to them) it's all sorts of neat to think about how to implement
<kazinsal> but someone else has done it better, with much more time, money, manpower, and drive than I have
<kazinsal> so I'm somewhat content with just... being an osdev sherpa of sorts
<geist> that;s how i am most of the time but sometimes i get a burst of energy
vinleod has joined #osdev
vinleod is now known as vdamewood
gog has joined #osdev
<vdamewood> Can't move. Meownir is on my lap.
<zid> I made you a crappy screensaver to watch if you like
<vdamewood> Alas, uname -mrs: Darwin 21.3.0 x86_64
heat has joined #osdev
<vdamewood> Oh, good. She moved. Now I can feed myself.
<kazinsal> reminds me, I should fiddle around with compiling stuff on my M1 air
<vdamewood> I'm envious.
<FireFly> no need to be envious; you have a cat in lap
<vdamewood> I told my friend to get an M1 air. I'm not sure how much she uses.
<FireFly> (or well, had moments ago)
<vdamewood> FireFly: She'll be back.
<FireFly> sounds comfy
<vdamewood> Besides, now she's on the arm rest.
<zid> is.. darwine still a thing
<zid> or whatever it was called
<FireFly> the arm rest.. that's where you'd keep the M1 otherwise,
<vdamewood> zid: Technically yes, but that's the uname from macOS.
<vdamewood> FireFly: Exactly.
<vdamewood> Apple still offers the Darwin source for download.
<heat> no you'd keep the M1 on the aarch64 rest
<heat> rolls off the tongue
<kazinsal> as an official cat whisperer I should either get a cat or a catgirl
<vdamewood> Oh, kitty stopped rumbling.
<gog> had to evict neighbor cat this morning as she was treating our potted plant like a chew toy again
<zid> We adopted a neighbour cat once I miss him
GeDaMo has joined #osdev
<zid> he never came back one day
<gog> :<
<vdamewood> I had a kitty that went missing for months.
<vdamewood> Then one day, another kitty started meowing out the window, and there was missing kitty.
<gog> kitties will do that sometimes. my sister had one a long time ago that went missing for nearly a year
<vdamewood> That kitty ended up staying with us until she moved on to kitty heaven.
<kazinsal> yep, they'll just show up after a while with a mild case of some feline virus but otherwise none the worse for wear
<zid> I also have a picture of current cats
<zid> non dead ones
<vdamewood> I had another kitty go missing when my stupid cousin left the door open while we were adjusting to a new home.
<zid> would you like to see that one instead
<kazinsal> https://i.imgur.com/KopXbkg.jpg -- my mother's cat
<vdamewood> We found the kitty after several months, and she died a month later.
<kazinsal> he is a silly
<gog> https://i.imgur.com/6NnZ6CZ.mp4 neighbor cat makin' biscuits
<bslsk05> ​'Imgur' by [idk] (--:--:--)
<vdamewood> That cat is very kneedy.
heat has quit [Ping timeout: 252 seconds]
<zid> no okay
<gog> zid: show us the kitties
<zid> amazing pic imo
<gog> :o babies
<zid> we have the big one and the.. center one
<FireFly> cats
<GeDaMo> The big cat looks like it has a lot of legs :|
<zid> she was sister's cat but she moved house and we ended up with her, and we'd already taken baby
<vdamewood> zid: That picture sucks.
<zid> yea it's someone's phone from 10 years ago
<kazinsal> https://i.imgur.com/Oyrhn61.jpg -- ozzy would like to know what this funny thing in his face is
<vdamewood> No, I mean literally. The kittens are hungry.
irl25519 has quit [Quit: irl25519]
<zid> got a picture of.. my late father, a small houseplant, a friend in a mankini
<vdamewood> And the small houseplant thinks "Oh, no. Not again."
<vdamewood> Did it come with the can/pot?
<zid> ye
<zid> It was a pre-order bonus for OoT3D in parts of europe
* kazinsal considers growing some weed in a Great Deku Tree labeled planter...
<zid> I still have the tin
<vdamewood> You're supposed to plant a new one like the game.
dormito has joined #osdev
<gog> we got our houseplant as a wedding gift. it's still alive shockingly
<zid> someone else must be looking after it
<gog> probably because it ain't me
pretty_dumm_guy has joined #osdev
m5zs7k has quit [Ping timeout: 260 seconds]
m5zs7k has joined #osdev
vin has quit [Quit: WeeChat 2.8]
xenos1984 has quit [Remote host closed the connection]
xenos1984 has joined #osdev
c2a1 has quit [Ping timeout: 260 seconds]
m3a has quit [Quit: leaving]
<g1n> hello
<klange> got signal delivery working, fixed up my strace, figured out single-stepping, and now my debugger works too
<gog> you're making fast progress on this port
<gog> speaks to the quality of toaru :)
sdfgsdfg has quit [Quit: ayo yoyo ayo yoyo hololo, hololo.]
* vdamewood gives gog a fishy
* gog chomps fishy
sdfgsdfg has joined #osdev
ElectronApps has quit [Quit: Leaving]
ElectronApps has joined #osdev
ElectronApps has quit [Remote host closed the connection]
ekathva has joined #osdev
heat has joined #osdev
sdfgsdfg has quit [Quit: ayo yoyo ayo yoyo hololo, hololo.]
<heat> as an fyi for something that has been said a few hours back: fsgsbase depends on the kernel and is still relatively new in linux
wootehfoot has joined #osdev
<heat> since linux 5.9 as far as I can tell
wgrant has quit [Ping timeout: 256 seconds]
<zid> I don'#t even have it
<heat> pre-ivybridge moment
<zid> :D
<zid> sandy is just the best microarch intel ever made, sue me
<heat> do you even have erms?
<zid> I have some ahhs but no erms
<zid> what's an erms
<zid> oh fast string ops
<heat> speedi rep movsb boi
<zid> no sadly :(
<zid> it is rep_good though
<heat> delet cpu
<zid> so you need to rep mosvq
<zid> and emit the alignment instructions yourself
<heat> in terms of memcpy i am a strong believer in rep movsb and inshallah
<zid> I think sse is fastest on mine
wgrant has joined #osdev
<zid> and it's faster than skylake because.. you can't buy a skylake cpu that doesn't suck that isn't a xeon
pieguy128 has quit [Ping timeout: 256 seconds]
pieguy128 has joined #osdev
<gog> nice
c2a1 has joined #osdev
<j`ey> klange: psci?
<klange> psci
<heat> pci
<klange> it seems like the locks elsewhere are working
<gog> i like that command line switch, --really
<j`ey> klange: default rpi fw doesnt have rspci
<j`ey> err psci
<klange> j`ey: this is just for virt, I know the startup process on rpi is... special
<j`ey> you can build trusted firmware for rpi and get psci though :)
<c2a1> I had an idea earlier
<c2a1> A file system that also has database/version control features built in
blockhead has quit []
<klange> gog: it's to prevent curious users poking at everything in /bin from accidentally starting replacement daemons
<gog> klange: ah nice
<c2a1> Like a cross between git, x*fs, and sql/zos datasets
<c2a1> Do I sound high
<heat> no
<kingoffrance> no, ask the ghost about vms
<c2a1> What ghost
<gog> c2a1: nah WinFS was supposed to have somethng similar
<gog> before it became vaporware
<gog> iirc microsoft is trying to rework that idea
<kingoffrance> the geist ghost
<gog> make it more conventional but still have the database thing
<kingoffrance> you highlighted him, not me
<c2a1> Vms had just extension like numbers for versions didn't it?
<c2a1> It had no tracking features
<c2a1> Think about the potential performance benfits
<c2a1> *benefits
wgrant has quit [Ping timeout: 256 seconds]
gorgonical has quit [Ping timeout: 256 seconds]
gorgonical has joined #osdev
wgrant has joined #osdev
<c2a1> I think nothing like that has been tried because it strays away from the posix/unix/vms tradition of doing things. And would probably be difficult to implement for any os that uses that design type
<gog> i think for most applications it could just be a transparent abstraction, that they only deal with the latest version of a file
<gog> but there could be an additional interface for applications that want to know about it
pieguy128 has quit [Ping timeout: 250 seconds]
nyah has joined #osdev
pieguy128 has joined #osdev
<GeDaMo> c2a1: I suggested SQLite as a file system a while back
xenos1984 has quit [Read error: Connection reset by peer]
<GeDaMo> Although it occurred to me later that memapping might not be possible if SQLite can't give you the page numbers
zaquest has joined #osdev
dude12312414 has joined #osdev
xenos1984 has joined #osdev
dormito has quit [Ping timeout: 256 seconds]
pieguy128 has quit [Ping timeout: 256 seconds]
mahmutov has joined #osdev
<heat> GeDaMo, map the page cache onto sqlite?
<heat> it's not the underlying fs which should be able to be mmaped, it's the page cache that needs to map onto the filesystem
<GeDaMo> No, I was thinking mapping individual files (blobs) into memory
<GeDaMo> And I was suggesting using SQLite as the filesystem, no underlying FS
<heat> yes, your underlying fs would be sqlitefs :)
<heat> in a relatively vanilla design all your filesystem reads/writes end up on ->read_page() and ->write_page()
<GeDaMo> But if a file is a blob, can SQLite give me the disk page numbers in order to map it to memory?
<heat> why do you need to map back to disk?
<heat> read it onto memory and give it to the kernel
dormito has joined #osdev
<GeDaMo> Hmmm ...
<heat> probably super doable through fuse
<heat> (or inside the kernel if you pulled in sqlite D:)
pieguy128 has joined #osdev
<heat> for linux, the "every page in the page cache maps to a disk block" concept is only a concept for filesystems that opt in to it
<heat> if your read_page or write_page implementations need to do non trivial things, you can simply replace the implementation
wootehfoot has quit [Ping timeout: 256 seconds]
<GeDaMo> That's interesting
<heat> the page -> disk block thing is just one of the many backends in linux
fwg has quit [Ping timeout: 252 seconds]
<bslsk05> ​elixir.bootlin.com: mpage.c - fs/mpage.c - Linux source code (v5.16.5) - Bootlin
fwg has joined #osdev
pieguy128 has quit [Ping timeout: 256 seconds]
pieguy128 has joined #osdev
pieguy128 has quit [Ping timeout: 256 seconds]
dequbed has joined #osdev
hodbogi has joined #osdev
<bauen1> i was pretty sure that somebody had already put sqlite in the kernel as at somepoint, somebody made some x86 code to glue together musl, sqlite, lua on x86: https://github.com/ers35/luakernel
<bslsk05> ​ers35/luakernel - Lua + SQLite + musl libc running on x86. (18 forks/241 stargazers/CC0-1.0)
<gog> part of me feels itchy about having sqlite in a kernel
<gog> but idk if it's really that bad
<hodbogi> Hmm. Musl vs Newlib, what's the real tradeoff here, should I consider playing with musl, having only played with newlib/glibc/smallerC's libc?
<gog> windows has its registry stuff in the executive sooo
<gog> idk
<bauen1> musl is quite easy to port if you're going for a syscall interface very similiar to linux, and its code is much cleaner / easier to understand than newlib
ekathva has quit [Ping timeout: 250 seconds]
<GeDaMo> bauen1: neat :)
<hodbogi> Maybe I will play with musl then
<hodbogi> I could care less about Linux system call interfaces but nonetheless it may be worth it.
wootehfoot has joined #osdev
<GeDaMo> gog: SQLite does a /lot/ of testing, I'd trust it over any code I wrote :P
<gog> yeah the code itself is probably fine
<heat> hodbogi, musl is very high quality compared to newlib/glibc
<gog> and afaik it's not very much code
<gog> wouldn't bloat a kernel too bad
pieguy128 has joined #osdev
<heat> newlib is full of crap code and glibc is bloated and full of crap code
<gog> glibc is a monster
<heat> musl just lacks a few features (locales and some details in nss, + a few other things of course)
<hodbogi> I've been playing with SmallerC's libc lately
<heat> never heard of it
<gog> dietlibc
<gog> although idk about the relative quality of dietlibc
<gog> never dug into it
<hodbogi> SmallerC is a single pass C compiler that can generate 16 bit assembly
<bslsk05> ​www.etalabs.net: Comparison of C/POSIX standard library implementations for Linux
<hodbogi> Another thing I like about SmallerC is that when generating 32 bit assembly I can set it up to convert the nasm output with fasm using n2f.
<hodbogi> it's a built in option for the compiler
<hodbogi> I like fasm a lot.
<heat> oh also musl is statically linkable
<heat> glibc really isn't
<hodbogi> Yeah that's handy
<hodbogi> Though I thought that glibc just made an announcement that they were moving all of their modules into the main library
<hodbogi> I read a changelog from Slackware that they were refusing to update glibc because it was going to break everything.
pieguy128 has quit [Ping timeout: 245 seconds]
<heat> i haven't heard of that
<heat> but it definitely sounds like a step in the right direction
<heat> musl also has all modules in libc.(a/so)
<heat> libm.a, libdl.a, libcrypt.a are stubs and ld-musl.so is a symlink to libc.so
<j`ey> is pthreads part of it too?
<heat> yup
<heat> and the only difference between libc.a and .so is that libc.a doesn't include the dynamic linker
<heat> because it's broken to dlopen() shared libraries
crm has joined #osdev
orthoplex64 has quit [Ping timeout: 256 seconds]
pieguy128 has joined #osdev
orthoplex64 has joined #osdev
crm has quit [Ping timeout: 250 seconds]
pieguy128 has quit [Ping timeout: 256 seconds]
Oli has joined #osdev
pieguy128 has joined #osdev
pieguy128 has quit [Ping timeout: 252 seconds]
pieguy128 has joined #osdev
pieguy128 has quit [Ping timeout: 256 seconds]
pieguy128 has joined #osdev
blockhead has joined #osdev
<c2a1> How good is musl at implementing the C standards compared to glibc
<c2a1> Why is glibc bloated? Less features?
pieguy128 has quit [Ping timeout: 256 seconds]
<c2a1> I love this channel because I can't imagine finding the answers to some of these questions on google
<GeDaMo> There's a #musl channel
<heat> c2a1, glibc is bloated because it's 1) huge 2) requires shared libraries 3) supports *everything* and almost every linux arch
pieguy128 has joined #osdev
<heat> you get huge binaries and the code is less than ideal
xenos1984 has quit [Read error: Connection reset by peer]
<heat> musl has most of POSIX implemented except a few things + some GNU extensions
pieguy128 has quit [Ping timeout: 256 seconds]
dude12312414 has quit [Remote host closed the connection]
dude12312414 has joined #osdev
<c2a1> How often are those extensions used I wonder
<gog> also glibc just has all the feature test macros since decades for features that are possibly irrelevant now
pieguy128 has joined #osdev
xenos1984 has joined #osdev
<heat> plenty of stuff was gnu extensions before being POSIX
<heat> like fmemopen() for example
<heat> quick example for a GNU extension: fopencookie(), which lets you define your own custom FILE stream
fwg has quit [Quit: .oO( zzZzZzz ...]
terminalpusher has joined #osdev
dennis95 has quit [Quit: Leaving]
srjek has joined #osdev
terminalpusher has quit [Remote host closed the connection]
terminalpusher has joined #osdev
<g1n> hello one more time, seems i finally detect memory correctly :)
ekathva has joined #osdev
<g1n> seems there were 2 problems: i wasn't pushing eax and ebx and paging wasn't setupped correctly
terminalpusher has quit [Remote host closed the connection]
<Bitweasil> Hm. Is there a way to tell gcc to *not* use vector registers?
<Bitweasil> ARMv8, it's initializing a bunch of memory with q0 registers.
<heat> yes
<heat> try -mgeneral-regs-only
<Bitweasil> Do you happen to know the incantation?
pieguy128 has quit [Ping timeout: 256 seconds]
<heat> that will kill any floating point you're doing though
<Bitweasil> Ah, thanks! Looks like I have to disable floating point in my printf, but that's fine.
<Bitweasil> I don't support them anyway.
pieguy128 has joined #osdev
<heat> for arm + riscv I believe you always have the option of using soft fp
<Bitweasil> Perfect, that did *exactly* what I needed, thanks!
<Bitweasil> (useful if you don't have FP register save/restore implemented too, I assume?)
<j`ey> welll you still have to save FP if userspace uses it!
<Bitweasil> Sure, but q0-q7 are being used to clear stack space, which isn't really *required,* just faster.
[itchyjunk] has joined #osdev
fwg has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
srjek has quit [Ping timeout: 260 seconds]
<heat> Bitweasil, codegen does what codegen can :) it uses simd registers because it knows you have them
<Bitweasil> Yeah, it's a sane bet, just wrong in this case.
<Bitweasil> Working on getting C binaries behaving in the emulator in a userspace emulation mode.
hodbogi has quit [Ping timeout: 252 seconds]
* geist yawns
<geist> yay people hacking on arm and riscv again
<geist> sometimes we go through these dark ages where it's just x86 all the time
k0valski18 has quit [Ping timeout: 240 seconds]
dude12312414 has joined #osdev
<gog> maybe i should try my hand
<gog> since it's what the cool kids are up to lately
fwg has quit [Quit: so long and thanks for all the fish.]
ssiyad has joined #osdev
<geist> us cool retro folks love 68k. do it!
<heat> i feel like I should throw this ext2 driver out
<heat> it has given me enough grief that it's probably broken in multiple aspects
<gog> mmm
<vdamewood> Pff, I want to write for the 6502 or the 65C816
<gog> 68k before or after the MMU was integrated?
<geist> oooh good question!
<Bitweasil> Yeah, screw ext, go FAT12. ;)
<Bitweasil> Oh man, now I wish I still had my SE/30s.
<Bitweasil> 68030 of fury.
<geist> nah go retro and use only ProDOS volumes
<Bitweasil> Or my Powerbook 500s.
<geist> or even DOS 3.3
<geist> yah ikeep an eye out for SE/30s on craigslist or whatot, but they're pricey
<gog> been watching adrian black's series about his TRS80 Model 2 with CP/M
<geist> a coveted model
<heat> theoretically my edk2 ext4 driver is probably way less broken given it's actually being used by people
<heat> but alas, no write support :(
<geist> heh yeah, though that model 2 is i thnk running TRSDOS
<gog> oh right
<geist> which is apparently some sort of abomination
<gog> the last video ended a little sadly
<geist> indeed
<geist> trs80 model 16s are interesting, they're 68k based
<geist> i think a lot of folks apparently ran Xenix on them
<gog> wow there's an OS i haven't heard about in a minute
<geist> yah i've tried to do an install or two of it on a 386 a while back, since you can get disk images for it
<geist> but i didn't have enough ram i think (4MB)
<geist> at least for the versio i was trying to install
<geist> i guess i can give it another try since i've picked up a 486 since
<geist> i was vaguely interested in running a unix flavor for 286 that properly uses just 286 protected mode. i think some of the early 80s xenixes did that
<geist> but PC OSes from that era are extremely picky about hardware. so it's hard to find something they'll run on
<GeDaMo> I'm pretty sure there was a Xenix that ran on 8086
<c2a1> Hardcore
<c2a1> Isnt there an os for atmel microcontrollers
<c2a1> Femto. I was thinking of something else though
<bslsk05> ​dmitry.gr: Linux on an 8-bit micro? - Dmitry.GR
<c2a1> Someone ported 2.11BSD to some group of microcontrollers
<c2a1> That and 4.3BSF
<c2a1> *BSD
Affliction has quit [*.net *.split]
duckworld has quit [*.net *.split]
orthoplex64 has quit [*.net *.split]
wootehfoot has quit [*.net *.split]
gorgonical has quit [*.net *.split]
wgrant has quit [*.net *.split]
gog has quit [*.net *.split]
sham1 has quit [*.net *.split]
rustyy has quit [*.net *.split]
bauen1 has quit [*.net *.split]
froggey has quit [*.net *.split]
basil has quit [*.net *.split]
eryjus has quit [*.net *.split]
mavhq has quit [*.net *.split]
bxh7 has quit [*.net *.split]
ThinkT510 has quit [*.net *.split]
bgs has quit [*.net *.split]
zid has quit [*.net *.split]
Griwes has quit [*.net *.split]
bradd has quit [*.net *.split]
scoobydoo has quit [*.net *.split]
joe9 has quit [*.net *.split]
Mikaku has quit [*.net *.split]
les_ has quit [*.net *.split]
Piraty has quit [*.net *.split]
andrewrk has quit [*.net *.split]
ssiyad has quit [*.net *.split]
night has quit [*.net *.split]
skipwich has quit [*.net *.split]
jjuran has quit [*.net *.split]
warlock has quit [*.net *.split]
scaramanga has quit [*.net *.split]
MrBonkers has quit [*.net *.split]
CompanionCube has quit [*.net *.split]
corecode has quit [*.net *.split]
nanovad has quit [*.net *.split]
jeaye has quit [*.net *.split]
netbsduser has quit [*.net *.split]
kaichiuchu has quit [*.net *.split]
gmodena has quit [*.net *.split]
ChanServ has quit [*.net *.split]
gxt has quit [*.net *.split]
dude12312414 has quit [*.net *.split]
Vercas has quit [*.net *.split]
dormito has quit [*.net *.split]
phr3ak has quit [*.net *.split]
dennisschagt_ has quit [*.net *.split]
manawyrm has quit [*.net *.split]
g1n has quit [*.net *.split]
simpl_e has quit [*.net *.split]
amj has quit [*.net *.split]
koolazer has quit [*.net *.split]
j00ru has quit [*.net *.split]
mrkajetanp has quit [*.net *.split]
particleflux has quit [*.net *.split]
k4m1 has quit [*.net *.split]
bleb has quit [*.net *.split]
Benjojo has quit [*.net *.split]
ekathva has quit [*.net *.split]
xenos1984 has quit [*.net *.split]
heat has quit [*.net *.split]
pretty_dumm_guy has quit [*.net *.split]
vdamewood has quit [*.net *.split]
JanC has quit [*.net *.split]
gruetzkopf has quit [*.net *.split]
ert has quit [*.net *.split]
lg has quit [*.net *.split]
Brnocrist has quit [*.net *.split]
energizer has quit [*.net *.split]
Patater has quit [*.net *.split]
seds has quit [*.net *.split]
merry has quit [*.net *.split]
graphitemaster has quit [*.net *.split]
cultpony has quit [*.net *.split]
kanzure has quit [*.net *.split]
Amanieu has quit [*.net *.split]
pieguy128 has quit [*.net *.split]
mahmutov has quit [*.net *.split]
zaquest has quit [*.net *.split]
m5zs7k has quit [*.net *.split]
immibis has quit [*.net *.split]
tomaw has quit [*.net *.split]
MiningMarsh has quit [*.net *.split]
PyR3X has quit [*.net *.split]
klys has quit [*.net *.split]
acidx has quit [*.net *.split]
klange has quit [*.net *.split]
sprock has quit [*.net *.split]
moon-child has quit [*.net *.split]
fkrauthan has quit [*.net *.split]
JerryXia1 has quit [*.net *.split]
ebb has quit [*.net *.split]
meisaka has quit [*.net *.split]
mniip has quit [*.net *.split]
LittleFox has quit [*.net *.split]
woky has quit [*.net *.split]
[itchyjunk] has quit [*.net *.split]
Oli has quit [*.net *.split]
LostFrog has quit [*.net *.split]
thinkpol has quit [*.net *.split]
dragestil has quit [*.net *.split]
Irvise_ has quit [*.net *.split]
catern has quit [*.net *.split]
tenshi has quit [*.net *.split]
ZipCPU has quit [*.net *.split]
kkd has quit [*.net *.split]
XgF has quit [*.net *.split]
mxshift has quit [*.net *.split]
Stary has quit [*.net *.split]
paulbarker has quit [*.net *.split]
HeTo has quit [*.net *.split]
LambdaComplex has quit [*.net *.split]
kleinweby has quit [*.net *.split]
onering has quit [*.net *.split]
vancz has quit [*.net *.split]
epony has quit [*.net *.split]
valerius_ has quit [*.net *.split]
flx- has quit [*.net *.split]
Clockface has quit [*.net *.split]
Teukka has quit [*.net *.split]
Terlisimo has quit [*.net *.split]
ggherdov has quit [*.net *.split]
ccx has quit [*.net *.split]
Bitweasil has quit [*.net *.split]
tom5760 has quit [*.net *.split]
ElementW_ has quit [*.net *.split]
wolfshappen has quit [*.net *.split]
kori has quit [*.net *.split]
dh` has quit [*.net *.split]
eschaton has quit [*.net *.split]
V has quit [*.net *.split]
remexre has quit [*.net *.split]
ecs has quit [*.net *.split]
cheapie has quit [*.net *.split]
terrorjack has quit [*.net *.split]
Celelibi has quit [*.net *.split]
teroshan has quit [*.net *.split]
hbag has quit [*.net *.split]
sahibatko has quit [*.net *.split]
cln has quit [*.net *.split]
aejsmith has quit [*.net *.split]
jstoker has quit [*.net *.split]
janemba has quit [*.net *.split]
gdd has quit [*.net *.split]
doppler has quit [*.net *.split]
amine has quit [*.net *.split]
rorx has quit [*.net *.split]
nur has quit [*.net *.split]
mlombard has quit [*.net *.split]
alpha2023 has quit [*.net *.split]
stux|away has quit [*.net *.split]
j`ey has quit [*.net *.split]
nickster has quit [*.net *.split]
mcfrdy has quit [*.net *.split]
Emil has quit [*.net *.split]
nyah has quit [*.net *.split]
puck has quit [*.net *.split]
brynet has quit [*.net *.split]
nopenope[m] has quit [*.net *.split]
freakazoid333 has quit [*.net *.split]
Raito_Bezarius has quit [*.net *.split]
kingoffrance has quit [*.net *.split]
geist has quit [*.net *.split]
SanchayanMaity has quit [*.net *.split]
friedy10- has quit [*.net *.split]
pie_ has quit [*.net *.split]
tds has quit [*.net *.split]
Ermine has quit [*.net *.split]
ornitorrincos has quit [*.net *.split]
dequbed has quit [*.net *.split]
hl has quit [*.net *.split]
paulusASol has quit [*.net *.split]
junon has quit [*.net *.split]
Reinhilde has quit [*.net *.split]
sauce has quit [*.net *.split]
pounce has quit [*.net *.split]
mats1 has quit [*.net *.split]
jimbzy has quit [*.net *.split]
snickerbockers has quit [*.net *.split]
DanDan has quit [*.net *.split]
buffet has quit [*.net *.split]
alexander has quit [*.net *.split]
grange_c has quit [*.net *.split]
nj0rd has quit [*.net *.split]
DonRichie has quit [*.net *.split]
FireFly has quit [*.net *.split]
amazigh has quit [*.net *.split]
brenns10 has quit [*.net *.split]
andreas303 has quit [*.net *.split]
clever has quit [*.net *.split]
asymptotically has quit [*.net *.split]
ravish0007 has quit [*.net *.split]
lanodan has quit [*.net *.split]
enyc has quit [*.net *.split]
Geertiebear has quit [*.net *.split]
ElementW_ has joined #osdev
Mikaku has joined #osdev
tom5760 has joined #osdev
ggherdov has joined #osdev
Bitweasil has joined #osdev
Terlisimo has joined #osdev
Teukka has joined #osdev
valerius has joined #osdev
flx- has joined #osdev
Clockface has joined #osdev
epony has joined #osdev
Piraty has joined #osdev
les_ has joined #osdev
andrewrk has joined #osdev
joe9 has joined #osdev
scoobydoo has joined #osdev
zid has joined #osdev
Griwes has joined #osdev
bradd has joined #osdev
ThinkT510 has joined #osdev
bgs has joined #osdev
kori has joined #osdev
basil has joined #osdev
mavhq has joined #osdev
froggey has joined #osdev
bxh7 has joined #osdev
bauen1 has joined #osdev
rustyy has joined #osdev
sham1 has joined #osdev
gog has joined #osdev
gorgonical has joined #osdev
wgrant has joined #osdev
wootehfoot has joined #osdev
orthoplex64 has joined #osdev
Benjojo has joined #osdev
bleb has joined #osdev
particleflux has joined #osdev
eryjus has joined #osdev
mrkajetanp has joined #osdev
k4m1 has joined #osdev
amj has joined #osdev
koolazer has joined #osdev
j00ru has joined #osdev
simpl_e has joined #osdev
g1n has joined #osdev
manawyrm has joined #osdev
dennisschagt_ has joined #osdev
phr3ak has joined #osdev
dormito has joined #osdev
Geertiebear has joined #osdev
lanodan has joined #osdev
enyc has joined #osdev
asymptotically has joined #osdev
ravish0007 has joined #osdev
clever has joined #osdev
andreas303 has joined #osdev
brenns10 has joined #osdev
amazigh has joined #osdev
FireFly has joined #osdev
nj0rd has joined #osdev
DonRichie has joined #osdev
grange_c has joined #osdev
buffet has joined #osdev
snickerbockers has joined #osdev
catern has joined #osdev
pieguy128 has joined #osdev
alexander has joined #osdev
mats1 has joined #osdev
zaquest has joined #osdev
pounce has joined #osdev
jimbzy has joined #osdev
hl has joined #osdev
sauce has joined #osdev
DanDan has joined #osdev
Reinhilde has joined #osdev
paulbarker has joined #osdev
HeTo has joined #osdev
paulusASol has joined #osdev
mxshift has joined #osdev
Stary has joined #osdev
kkd has joined #osdev
dragestil has joined #osdev
junon has joined #osdev
ZipCPU has joined #osdev
XgF has joined #osdev
Irvise_ has joined #osdev
LostFrog has joined #osdev
Oli has joined #osdev
thinkpol has joined #osdev
[itchyjunk] has joined #osdev
gmodena has joined #osdev
kaichiuchu has joined #osdev
netbsduser has joined #osdev
jeaye has joined #osdev
corecode has joined #osdev
nanovad has joined #osdev
CompanionCube has joined #osdev
MrBonkers has joined #osdev
warlock has joined #osdev
jjuran has joined #osdev
scaramanga has joined #osdev
skipwich has joined #osdev
ssiyad has joined #osdev
night has joined #osdev
ornitorrincos has joined #osdev
Ermine has joined #osdev
SanchayanMaity has joined #osdev
tds has joined #osdev
geist has joined #osdev
pie_ has joined #osdev
Raito_Bezarius has joined #osdev
kingoffrance has joined #osdev
nopenope[m] has joined #osdev
brynet has joined #osdev
friedy10- has joined #osdev
nyah has joined #osdev
puck has joined #osdev
dequbed has joined #osdev
wolfshappen has joined #osdev
mniip has joined #osdev
vancz has joined #osdev
meisaka has joined #osdev
ebb has joined #osdev
JerryXia1 has joined #osdev
fkrauthan has joined #osdev
sprock has joined #osdev
klys has joined #osdev
klange has joined #osdev
acidx has joined #osdev
moon-child has joined #osdev
MiningMarsh has joined #osdev
PyR3X has joined #osdev
tomaw has joined #osdev
immibis has joined #osdev
m5zs7k has joined #osdev
onering has joined #osdev
mahmutov has joined #osdev
LambdaComplex has joined #osdev
LittleFox has joined #osdev
kleinweby has joined #osdev
tenshi has joined #osdev
epony has quit [Max SendQ exceeded]
Affliction has joined #osdev
duckworld has joined #osdev
paulusASol has quit [Ping timeout: 240 seconds]
valerius is now known as 068AAJ084
merry has joined #osdev
ert has joined #osdev
gruetzkopf has joined #osdev
xenos1984 has joined #osdev
energizer has joined #osdev
Brnocrist has joined #osdev
seds has joined #osdev
lg has joined #osdev
pretty_dumm_guy has joined #osdev
vdamewood has joined #osdev
JanC has joined #osdev
heat has joined #osdev
Patater has joined #osdev
Amanieu has joined #osdev
graphitemaster has joined #osdev
cultpony has joined #osdev
kanzure has joined #osdev
Vercas has joined #osdev
dude12312414 has joined #osdev
gxt has joined #osdev
ccx has joined #osdev
dh` has joined #osdev
eschaton has joined #osdev
junon has quit [Ping timeout: 240 seconds]
remexre has joined #osdev
hbag has joined #osdev
terrorjack has joined #osdev
V has joined #osdev
teroshan has joined #osdev
cln has joined #osdev
aejsmith has joined #osdev
jstoker has joined #osdev
gdd has joined #osdev
ecs has joined #osdev
cheapie has joined #osdev
nickster has joined #osdev
alpha2023 has joined #osdev
stux|away has joined #osdev
janemba has joined #osdev
nur has joined #osdev
mlombard has joined #osdev
doppler has joined #osdev
rorx has joined #osdev
amine has joined #osdev
Emil has joined #osdev
mcfrdy has joined #osdev
j`ey has joined #osdev
Celelibi has joined #osdev
sahibatko has joined #osdev
gdd has quit [Max SendQ exceeded]
Irvise_ has quit [Ping timeout: 252 seconds]
nopenope[m] has quit [Ping timeout: 250 seconds]
elastic_dog has quit [Read error: Connection reset by peer]
k0valski188 has joined #osdev
ChanServ has joined #osdev
woky has joined #osdev
dormito has quit [Quit: WeeChat 3.3]
gdd has joined #osdev
freakazoid333 has joined #osdev
GeDaMo has quit [Remote host closed the connection]
<catern> hi #osdev, what are some more words that are vaguely similar to "host" or "kernel"? (I am trying to name something which is hard-to-explain and "host" and "kernel" are two words I've come up with so far)
sdfgsdfg has joined #osdev
Irvise_ has joined #osdev
<moon-child> catern: it might be helpful if you said more about the thing you are trying to name
<catern> noooo I explicitly said it's hard-to-explain, I am really confident that won't help, I just want some vocabulary hints
<catern> if one of the words seems to fit then I will explain it
<heat> operating system :v
<catern> thank you, good start :)
<gog> platform
<gog> architecture
<gog> interface
<catern> (another one I thought of, like host: node)
<gog> ligma
<heat> what's ligma
<gog> lmao
<catern> who's steve jobs?
<heat> reminds me of the ma situation
<gog> what's ma situation?
<heat> MA BALLS
<heat> YOU FELL FOR THE OLDEST TRICK IN THE BOOK
<gog> lol
<moon-child> I actually lol'd
<gog> :'(
* moon-child slaps heat's balls around a bit with a large trout
<heat> ouch
<Matt|home> <catern> hi #osdev, what are some more words that are vaguely similar to "host" or "kernel"? (I am trying to name something which is hard-to-explain and "host" and "kernel" are two words I've come up with so far) <-- slightly sarcastic response: hostess, popcorn, four star general, entertainer
<heat> device
<heat> computer
<heat> beepboop
junon has joined #osdev
* gog beeps
<catern> heat: gog: thanks, lots of great words so far
<heat> haha gog go beeepboop
<gog> catern: yw :p
<gog> even though i got off the rails there
<gog> gotta get serious tho
* gog gets serious
<heat> cpu
<heat> board
<heat> firmware, bootloader
<heat> payload
nopenope[m] has joined #osdev
srjek has joined #osdev
<catern> good words, good words, although I'm more looking for "place where computation happens" (or "thing which manages hardware" or "thing which you can do operations on" I guess)
<j`ey> whats wrong with kernel?
<moon-child> '"thing which manages hardware"' driver?
<heat> virtual machine?
<moon-child> '"thing which you can do operations on"' capability? (or object?)
mahmutov has quit [Ping timeout: 256 seconds]
dormito has joined #osdev
c2a1 has quit [Remote host closed the connection]
c2a1 has joined #osdev
<catern> system
<klange> I always liked "execution unit".
<klange> But that can also mean "piece of thing being executed"...
<klange> "execution domain"
<moon-child> execution domain just sounds like thread
gog has quit [Quit: byee]
<moon-child> (though usually I think of it as 'concurrency domain')
<catern> context, thread, process
<catern> coroutine, task, fiber, fibril, tasklet, actor...
paulusASol has joined #osdev
c2a1 has quit [Ping timeout: 240 seconds]
<klange> cooked up a slightly better memcpy for arm than the naive byte-by-byte one and things are a good bit snappier
<klange> compositor still burns a lot of cpu time, but these alphablits are unoptimized while on x86 I had hand-written an SSE implementation https://klange.dev/s/Screenshot%20from%202022-02-03%2008-19-43.png
<heat> klange, have you looked at arm's implementations of the mem* functions?
<heat> they added a bunch to bionic and afaik most libc's use them
<klange> might be against my rules unless they're in an appendix of the ARM ARM
<heat> oh right