Search logs:

channel logs for 2004 - 2010 are archived at http://tunes.org/~nef/logs/old/ ·· can't be searched

#osdev2 = #osdev @ Libera from 23may2021 to present

#osdev @ OPN/FreeNode from 3apr2001 to 23may2021

all other channels are on OPN/FreeNode from 2004 to present


http://bespin.org/~qz/search/?view=1&c=osdev2&y=23&m=1&d=6

Friday, 6 January 2023

01:55:00 <glenda64> Does anybody know of a (preemptive, not RTOS) OS that can run with very little RAM/ROM and is usable over a serial console?
01:55:00 <glenda64> "Very little" meaning 128K of RAM and 8M of ROM
01:58:00 <heat> probably geist's littlekernel
02:01:00 <geist> Yeah that should be useful. Depends on what you want to do with it
02:02:00 <glenda64> It's an emulator project. That is a good suggestion, thank you
02:03:00 <heat> geist, btw quick question: what am I supposed to do wrt IO ranges when configuring the bus on platforms where I have no IO ports?
02:04:00 <heat> my test device is a virtio-net-pci (I know I know, there are mmio variants for these devices)
02:05:00 <heat> context: PCIe bus configuration
02:06:00 <heat> are these just permanently unusable?
02:09:00 <geist> Yeah I think so
02:09:00 <geist> Or.. actually they’re emulated by a device-specific mechanism
02:09:00 <geist> In the case of qemu-virt for arm (and i think riscv) the id ports end up mapped in a 64k mmio region
02:10:00 <geist> But that’s outside the PCI’s configuration knowledge, it just carves up IO as anything else, and it’s up to the individual drivers to know that if it had an IO bar it needs to use the mmio window instead of an instruction
02:10:00 <heat> hrm, is that one of those device tree range things?
02:10:00 <geist> Yah possibly
02:11:00 <geist> I just hard coded it per platform in LK, but it worked iirc
02:14:00 <heat> I see
02:15:00 <heat> that's a fun hack isn't it
03:20:00 <ornx> is there an easy way to get ovmf to automatically boot FS0:\EFI\BOOTX64.EFI without prompting me? (in qemu)
03:21:00 <heat> you need to supply OVMF_VARS too
03:22:00 <heat> instead of doing -bios OVMF.fd, you do -device if=pflash,format=raw,unit=0,file=OVMF_CODE.fd -device if=pflash,format=raw,unit=1,OVMF_VARS.fd
03:22:00 <ornx> that's what i have, but it still drops me to the shell
03:22:00 <ornx> is there a variable i can set via setvar?
03:23:00 <heat> thats odd
03:23:00 <heat> what's FS0 on?
03:23:00 <zid> cocaine, sometimes a little speed
03:23:00 <heat> wait, of course
03:24:00 <heat> it should be at \EFI\BOOT\BOOTX64.EFI
03:24:00 <zid> maybe that's why he wants the override :P
03:24:00 <ornx> raw image, created like this https://pastebin.com/vjL70z77
03:24:00 <bslsk05> ​pastebin.com: # build targetsboot.elf: kernel.c boot.S i686-elf-gcc -m32 -I. -nostartfil - Pastebin.com
03:25:00 <ornx> ahhhh
03:25:00 <ornx> i'll try that path, although ironically i got the path i currently have from my host system lol
03:26:00 <ornx> that did it
03:26:00 <ornx> tyvm
03:27:00 <heat> np
03:28:00 <zid> heat tell me how to change it though
03:29:00 <heat> zid, you need to add a boot order var to your efi vars
03:29:00 <zid> I mean that's what I figured, but how
03:29:00 <heat> in lunix or efi?
03:30:00 <zid> isn't it the same? I set a var
03:30:00 <zid> with certain name and semantics
03:30:00 <zid> secret name and secret semantics
03:30:00 <clever> under linux, run `efibootmgr -v` and read its man page
03:30:00 <clever> BootOrder is the primary var
03:31:00 <clever> there are multiple entries, that describe each os you can boot, and then BootOrder sets the order it tries each in
03:31:00 <heat> I don't think you can easily, trivially create a boot order entry manually
03:31:00 <clever> -c | --create create new variable bootnum and add to bootorder
03:31:00 <clever> what does this do then?
03:31:00 <heat> that's not manually
03:32:00 <heat> i mean creating a variable by hand
03:32:00 <clever> ah yeah, ive not looked at how these are encoded internally
03:32:00 <heat> https://i.imgur.com/dC5WuVp.png
03:33:00 <zid> oh no, ucs2
03:33:00 <zid> I give up
03:34:00 <ornx> why is EFI full of windows-isms? the FOO:\ convention, the PE executable format, and... utf-16?
03:34:00 <zid> I wonder.
03:34:00 <zid> Might be because microsoft was on the board?
03:35:00 <heat> EFI was joint-developed by microsoft
03:35:00 <heat> by actual NT people
03:35:00 <heat> hence UCS2, PE, Wintel coding style, GUIDs everywhere, shitty object-oriented programming
03:35:00 <heat> \
03:38:00 <moon-child> oh it's ucs2? That's even worse
03:38:00 <moon-child> I thought it was utf16
03:38:00 <heat> how would that be better????
03:39:00 <heat> BootOrder𓂺
03:41:00 <corecode> is that a penis unicode character?
03:41:00 <heat> yes
03:42:00 <corecode> how
03:42:00 <heat> yes
03:44:00 <corecode> yey hieroglyphs
03:45:00 <zid> isn't the only difference between usc2 and utf16 what you do with surrogate pairs
03:45:00 <heat> no
03:45:00 <heat> ucs-2 is fixed width for instance
03:45:00 <zid> I don't care for the concept of either so I couldn't comment which is better/worse
03:46:00 <zid> ucs-2 is fixed width because of surrogate pairs
03:46:00 <zid> "these two 16bit chars are one codepoint"
03:46:00 <heat> ok yes
10:22:00 <ddevault> less hacky https://git.sr.ht/~sircmpwn/helios/tree/master/item/boot/%2Baarch64/el.ha
10:22:00 <bslsk05> ​git.sr.ht: ~sircmpwn/helios: boot/+aarch64/el.ha - sourcehut git
11:15:00 <kaichiuchi> hi
11:18:00 <Ermine> Hi
11:19:00 <bxh7> hi
11:22:00 <moon-child> hi
11:25:00 <pog> prr
11:26:00 <Ermine> pog: may I pet you
11:26:00 <pog> yes
11:27:00 * Ermine pets gog
12:38:00 * vdamewood gives pog a fishy
12:52:00 * pog snif fishy
12:52:00 * pog chomp fishy
13:32:00 <Ermine> Our cat doesn't prr when it gets petted by me :(
13:37:00 <pog> aw
13:45:00 <FireFly> aww
13:46:00 <Freja> Ermine: _oof_
13:48:00 <kaichiuchi> i’m bored
13:48:00 <pog> i'm working
13:48:00 <pog> i shouldn't be bored but this project drags on when i thought i was done
13:48:00 <pog> and it's friday afternoon and i'm drowsy
13:49:00 <Freja> i was working but now im waiting for a bugfix PR which blocks the main tihng im working on
13:49:00 <Freja> and also it's fridya
13:51:00 <FireFly> yesterday was effectively friday for me
13:51:00 <pog> psure my boss is off drinking he said he was takinga  long lunch and it's a holiday in spain today
13:51:00 <FireFly> yay living in the religious part of this country :p
13:51:00 <FireFly> (it's epiphany or something, public holiday anyway)
13:51:00 <pog> yes
13:52:00 <Freja> i thought its the $n kings day or some shit
13:52:00 <FireFly> oh idk, maybe
13:52:00 <Freja> idk im not religious
13:52:00 <FireFly> same
13:52:00 <FireFly> all I know is I get a random day in the first week of the year off
13:52:00 <Freja> unless you count paganism as a religion
13:52:00 <FireFly> and I'm not complaining
13:53:00 <FireFly> Freja: belated happy winter solstice :p
13:53:00 <Freja> FireFly: is it a holiday in bayern
13:53:00 <FireFly> ye
13:53:00 <Freja> lucky
13:53:00 <Freja> im working
13:53:00 <FireFly> lucky, but also made it "fun" yesterday due to the CircleCI troubles
13:53:00 <Freja> but tbh i prefer to live in a good secular (ok sorta protestantish) northern germany
13:54:00 <FireFly> also
13:54:00 <FireFly> Freja: hey it's your day
13:54:00 <FireFly> (friday)
13:54:00 <Freja> yeah that's why i /nicked like this
13:54:00 <Freja> :D
13:54:00 <FireFly> aha
13:54:00 <Freja> :3
13:54:00 <Freja> happy my day
13:55:00 <FireFly> tomorrow it's time for /nick Saturnus? :p
13:55:00 <FireFly> well if going by english day names
13:55:00 <Freja> if i was goin by english i should technically be Frigg rn
13:55:00 <FireFly> oh fair
13:55:00 <Freja> fredag is derived from Freyja
13:55:00 <Freja> but friday comes from Frigg apparently
13:56:00 <FireFly> isn't it just different latinisation of the same name?
13:56:00 <FireFly> I'm not sure
13:56:00 <Freja> i thought it's a different AEsir but im not 100% sure honestly
13:57:00 <FireFly> wiktionary for sv:fredag says "From Old Norse frjádagr, from late Proto-West Germanic *Frījā dag (“day of Frigg”), a Germanic calque of the Latin dies Veneris (“friday”)." at least
13:57:00 <Freja> some sources appear to claim they're one and hte same
13:57:00 <FireFly> mm
13:57:00 * FireFly shrugs
13:57:00 <FireFly> either way :p
13:57:00 <Freja> https://www.reddit.com/r/Norse/comments/baurvl/is_freya_and_frigga_the_same_god/
13:57:00 <bslsk05> ​www.reddit.com: Is Freya and Frigga the same god? : Norse
13:57:00 * Freja is enjoying how far away from OSdev topics we've veered
13:58:00 <FireFly> oops
13:58:00 <Freja> :D
13:58:00 <FireFly> open source deity development
13:58:00 <Freja> :3
13:58:00 <FireFly> oh I guess different? hm
13:59:00 <FireFly> I'd quote something from sv wikipedia, but, swedish
13:59:00 <FireFly> but apparetly there's a poem in the edda where freja is defending frigg, which uh
14:00:00 <FireFly> implies difference D:
14:00:00 <FireFly> D*
14:00:00 <FireFly> :D*
14:00:00 <Freja> mm okay
14:00:00 <FireFly> anyway I should stop veering further offtopic :p
14:00:00 <Freja> ok but first let me just quickly mention that i have a copy of gaiman's retelling of the norse myths
14:32:00 <FireFly> neat
14:32:00 <FireFly> :o
14:36:00 <kaichiuchi> data structures are fun sometimes
14:37:00 <pog> what's your favorite data structure
14:37:00 <pog> i'm partial to binary trees
14:44:00 <kaichiuchi> somehow i like hash tables
14:45:00 <kaichiuchi> partly because people get too hung up on big O and think O(1) and that’s the end of it
14:45:00 <kaichiuchi> hash tables are extremely useful until your implementation has the keys far apart
14:45:00 <kaichiuchi> and then your cache explodes
14:46:00 <kaichiuchi> i get really upset when people just look at big O and don’t think anything else of it
14:51:00 <pog> hash tables are cool
14:52:00 <pog> but yeah the expected complexity of an algorithm doesn't tell the whole story about whether it's the right one for the job
14:53:00 <pog> you can have small time complexity but as a consequence exponentially inflate the amount of memory you need
14:53:00 <kaichiuchi> the problem is people in mass numbers think that
14:53:00 <FireFly> my standard answer to that question is always xor-linked lists
14:53:00 <kaichiuchi> then get annoyed when i bring up caches or branch prediction or ‘x’
14:54:00 <kaichiuchi> “PREMATURE OPTIMIZATION!!!!!”
14:54:00 <FireFly> though more seriously I think any balanced binary trees implemented in a way that packs them in a flat array are cute
14:54:00 <Freja> the great SWAGGINZZZ used huge hash tables to break RNG on nethack.alt.org and ascend nethack 3.6.1 in 7 minutes and 17 seconds
14:54:00 <FireFly> (heaps, fenwick trees, etc)
14:54:00 <Freja> so I also love hash tables just for that
14:57:00 <FireFly> what's your least favourite data structures? :p
14:57:00 <GeDaMo> https://algorithmica.org/en/eytzinger
14:57:00 <bslsk05> ​algorithmica.org: Eytzinger Binary Search - Algorithmica
14:57:00 <FireFly> like, I feel like most have some elegance and beauty to them, so why not switch it around instead
14:58:00 <Freja> FireFly: arrays are pretty cursed
14:58:00 <Freja> just regular unordered arrays
14:58:00 <Freja> or nd ones
14:58:00 <FireFly> hmm
14:58:00 <FireFly> I dunno about that
14:58:00 <Freja> im kidding :P
14:58:00 <FireFly> :p
14:58:00 <FireFly> fair
14:58:00 <Freja> idk any bad data structures
14:58:00 <Freja> ok linked lists are kinda cursed
14:59:00 <pog> linked lists packed into an array where the link isn't a pointer but an index
14:59:00 <pog> i actually like those tho
14:59:00 <Freja> yea but do you like cursed things
14:59:00 <pog> yes
14:59:00 <Freja> i fucken knew it
15:00:00 <kaichiuchi> linked lists are pretty bad, yeah
15:00:00 <pog> i actually use that kind of linked list in my page frame allocator
15:00:00 <Freja> pog: cursed
15:00:00 <pog> well, ok, the array contains the elements for any number of lists
15:00:00 <FireFly> that kind of linked list is quite useful often tbh
15:00:00 <Freja> fair
15:01:00 <Freja> idk i don't do low level code anymore im a python girl now
15:01:00 <FireFly> but yeah classic linked lists like, (pointer to value, pointer to next) allocated all over are pretty bad
15:01:00 <pog> currently i have three for pages in low, conventional and >4GiB
15:01:00 <pog> but every element is in the array
15:01:00 <pog> and in order of address
15:01:00 <pog> so i can also look up pages real quick by address
15:02:00 <Freja> i just trust the runtime and gc and reassign any symbol i want at runtime because that's how we roll
15:02:00 <pog> i'm going to also use this technique for my thread table
15:02:00 <Freja> can I just put a Python runtime in a kernel so I can write an OS in Python
15:03:00 <pog> unununium
15:03:00 <FireFly> netbsd lets you write kernel code in lua, so why not
15:03:00 <Freja> :o
15:03:00 <pog> unununium was an attempt to make a kernel that was partially implemented in python
15:03:00 <Freja> huh
15:03:00 <FireFly> oh huh
15:04:00 <pog> or rather an experiment, not attempt
15:04:00 <Freja> did they at least attempt the experiment
15:04:00 <pog> yes
15:04:00 <Freja> ;o
15:33:00 <GeDaMo> https://github.com/ers35/luakernel
15:33:00 <bslsk05> ​ers35/luakernel - Lua + SQLite + musl libc running on x86. (18 forks/248 stargazers/CC0-1.0)
16:12:00 <kaichiuchi> guys perforce is fucking STUPID
16:14:00 <kaichiuchi> i can’t do anything like bisecting
16:15:00 <kaichiuchi> “it worked in this version but not in this one”, simple, git bisect
16:15:00 * pog bisects
16:15:00 <kaichiuchi> can’t do anything like that on perforce
16:15:00 * kaichiuchi cries
16:15:00 * pog meow   |          meow
16:28:00 <Freja> kaichiuchi: rip
16:31:00 <kaichiuchi> i can’t believe people actually buy this garbage
16:32:00 <Ermine> kaichiuchi: its apparently Enterprise(tm)
16:33:00 <kaichiuchi> the rest of the company uses git
16:33:00 <kaichiuchi> except our project
16:33:00 <kaichiuchi> :(
16:33:00 <Ermine> How so? :/
16:37:00 <kaichiuchi> before there was light, before there was god, there was perforce
16:37:00 <kaichiuchi> a horribly destructive amoral force that should’ve been killed by git
16:37:00 <kaichiuchi> yet, hardliners remain
16:37:00 <pog> i've never used it
16:37:00 <kaichiuchi> be grateful
16:38:00 <kaichiuchi> it’s a stupid centralized thing that could’ve only originated in california
16:38:00 <pog> oof
16:38:00 <pog> i used to use svn
16:39:00 <pog> and i was resistant to learning git because it seemed complicated
16:39:00 <pog> but now i'm git all the way
16:39:00 <kaichiuchi> centralized repositories are almost always the wrong choice
16:39:00 <pog> yeh
16:39:00 <pog> hell i taught my boss some git tricks recently
16:39:00 <pog> he uses gitkraken to do devops
16:40:00 <pog> he says he doesn't feel like a real programmer sometimes because he never uses the command line
16:41:00 <kaichiuchi> yeah my boss is a mechanical engineer by trade
16:41:00 <kaichiuchi> acknowledges that he doesn’t know jack shit about programming so he learns by us
16:41:00 <kaichiuchi> humble guy
16:42:00 <kaichiuchi> right now he’s learning cmake and hates it deeply
16:42:00 <kaichiuchi> he’s on the right track then
16:53:00 <Ermine> why tf he is a boss
16:54:00 <kaichiuchi> it’s complicated
16:54:00 <kaichiuchi> i’d have to say he’s pretty effective at management
16:54:00 <kaichiuchi> it’s a different type of style here
16:56:00 <Ermine> well
16:57:00 <kaichiuchi> the programming reviews go through seniors
18:29:00 <heat> linked lists are great
18:29:00 <heat> very space efficient and simple
18:29:00 <heat> you can embed them into anything
18:30:00 * gog embeds a linked list into heat
18:30:00 <heat> struct heat { u32 bazinga; struct list_head node; };
18:31:00 <Ermine> This list is linked? Give me the link then
18:31:00 <kaichiuchi> heat: foot
18:31:00 <heat> foot
18:31:00 <gog> foot
18:32:00 <Ermine> feet
18:32:00 <heat> found the fetishist
18:32:00 <Ermine> Oh I though there's a local club
18:32:00 <kaichiuchi> said no one ever but macros aren’t the worst thing in the world
18:33:00 <kaichiuchi> they’re pretty fucking bad but gcc makes some of them okay
18:33:00 <heat> macros are great and cheap
18:34:00 <Ermine> akshually
18:34:00 <kaichiuchi> i hate the “side effects” bullshit people say particularly using min/max as an example
18:34:00 <heat> consider this: #define PHYS_TO_VIRT(phys) ((void *) ((unsigned long) (phys) + PHYS_BASE))
18:34:00 <kaichiuchi> if someone does max(i++, j)
18:34:00 <kaichiuchi> you should be smacked
18:34:00 <Ermine> don't do that
18:35:00 <kaichiuchi> heat: you could make that into a function
18:35:00 <heat> vs: template <typename Type> Type *phys_to_virt(unsigned long phys) { return (Type *) (phys + PHYS_BASE); }
18:35:00 <Ermine> POB
18:35:00 <heat> why would you?
18:35:00 <Ermine> POV you are writing c++
18:35:00 <heat> this is trivially inlineable
18:35:00 <kaichiuchi> oh I see
18:35:00 <kaichiuchi> I didn’t read the whole thing
18:36:00 <heat> (PHYS_BASE can be a global variable or a constant, doesn't matter too much)
18:36:00 <Ermine> Don't mix increments with anything else
18:36:00 <kaichiuchi> I try to be very very careful with macros
18:36:00 <heat> the template is pretty and great but you're just spending compile-time for free
18:36:00 <Ermine> I spent too many time at decoding a single line in skalibs recently!
18:36:00 <Ermine> while (len && i++)
18:37:00 <kaichiuchi> some macros are just plain awful and there’s no denying it though
18:37:00 <heat> you get virtually nothing for the template
18:37:00 <heat> Ermine, man, skalibs also has stupidly clever code?
18:37:00 <kaichiuchi> wtf us skalibs
18:37:00 <Ermine> heat: not as much as musl
18:37:00 <kaichiuchi> some skate park?
18:38:00 <Ermine> this line was replaced fortunately
18:38:00 <heat> https://github.com/skarnet/skalibs/blob/ee2aeefa170b9806e719723f94ba933c90a9ae8b/src/libstddjb/siovec_trunc.c
18:38:00 <bslsk05> ​github.com: skalibs/siovec_trunc.c at ee2aeefa170b9806e719723f94ba933c90a9ae8b · skarnet/skalibs · GitHub
18:38:00 <heat> hard skip lmao
18:38:00 <Ermine> kaichiuchi: https://skarnet.org/software/skalibs
18:38:00 <bslsk05> ​skarnet.org: skalibs: a C library for system programming
18:38:00 <heat> yeah it has no comments
18:39:00 <kaichiuchi> unrelated
18:39:00 <Ermine> I submitted a doc page
18:39:00 <Ermine> I've
18:39:00 <kaichiuchi> but how did DOS programs handle GUI stuff
18:39:00 <kaichiuchi> there probably almost certainly wasn’t a GUI thing
18:39:00 <heat> VGA framebuffer go brr
18:39:00 <kaichiuchi> API
18:39:00 <Ermine> heat is right
18:39:00 <kaichiuchi> right
18:40:00 <Ermine> DOS is basically BIOS but there's int 21h which is not as capable as BIOS
18:40:00 <kaichiuchi> i’m having fun writing ANSI C again
18:40:00 <kaichiuchi> come to daddy kaichiuchi
18:41:00 <heat> sus
18:41:00 <kaichiuchi> shut up
18:42:00 <kaichiuchi> :(
18:42:00 <heat> wanna contribute to my os
18:42:00 <kaichiuchi> maybe
18:42:00 <kaichiuchi> always looking to add something cool on my resume
18:42:00 <Ermine> pretty sus-compliant
18:43:00 <Ermine> sus unix specification
18:43:00 <heat> amogus unix
18:43:00 <kaichiuchi> “i rm -rf’d an OS making it infinitely better”
18:43:00 <heat> "i graverobbed kaichiuchi"
18:46:00 <Ermine> So
18:49:00 <kaichiuchi> but seriously
18:50:00 <Ermine> Why do you want to program under DOS?
18:50:00 <kaichiuchi> there’s something strangely primal about something from before i was born compiling my shit
18:50:00 <kaichiuchi> Ermine: porting game boy emulator to 486
18:50:00 <Ermine> Hey, Linux still support 486
18:51:00 <Ermine> supports
18:52:00 <kaichiuchi> i don’t think it would actually boot
18:53:00 <kaichiuchi> also google says it doesn’t anymore
18:54:00 <Ermine> gentoo maybe will. But ok
18:56:00 <kaichiuchi> Ermine: man come on you don’t think it would be the coolest shit ever to have a game boy emulator running at full speed on some of the worst hardware ever
18:56:00 <kaichiuchi> :(
18:57:00 <Ermine> having it running would be cool shit already
18:59:00 <kaichiuchi> there is someone who wrote one in 1990 in full assembly
18:59:00 <kaichiuchi> works mostly fine
19:00:00 <kaichiuchi> but i’m willing to make a bet that a modern compiler can generate better code than a 100% assembly written program in the 90s
19:00:00 <kaichiuchi> that wording was botched but you get it
19:00:00 <Ermine> Yeah
19:01:00 <heat> i don't think they've dropped 486 yet
19:01:00 <heat> they did drop 386
19:02:00 <kaichiuchi> i think the real straight up performance issues are going to come from audio handling
19:02:00 <Ermine> heat: I think literally everybody enable various MMX/SSE stuff which isn't available on 486
19:02:00 <kaichiuchi> there’s almost certainly not enough RAM for a JIT
19:02:00 <Ermine> Well, MMX no more
19:03:00 <heat> doesn't matter, linux itself doesn't require a pentium
19:03:00 <kaichiuchi> well maybe there’s enough
19:03:00 <heat> the kernel
19:03:00 <kaichiuchi> 32MB of ram in some cases
19:03:00 <kaichiuchi> i would expect that the generated functions would be fairly tiny
19:03:00 <Ermine> kaichiuchi: guy tried to run Gentoo, audio works more or less with bare alsa as long as nobody talks with other daemons on the same system
19:04:00 <kaichiuchi> i see
19:04:00 <zid> sounds like oss rather than alsa
19:05:00 <kaichiuchi> and honestly I don’t know how clever I can be with Z80 -> x86
19:05:00 <Ermine> they used alsamixer
19:06:00 <kaichiuchi> how many gprs are on x86?
19:06:00 <kaichiuchi> 8
19:07:00 <kaichiuchi> there are 8 8-bit GPRs on x86
19:07:00 <kaichiuchi> er
19:07:00 <kaichiuchi> z80*
19:08:00 <kaichiuchi> so I think I have an idea on how to do this…
19:10:00 <heat> jit time?
19:10:00 <kaichiuchi> no not even remotely close to that yet
19:10:00 <kaichiuchi> first I just want to get it working
20:05:00 <ddevault> anyone have an rpi3 or rpi4 they can send my way on short notice?
20:05:00 <heat> lol
20:05:00 <heat> want some gold bars too?
20:05:00 <heat> :P
20:05:00 <ddevault> well, I'll send it back when I'm done lol
20:05:00 <ddevault> my backpack was stolen off of a train on new years with my rpi4 in it
20:06:00 <heat> aw :(
20:06:00 <ddevault> planned to use it for a talk at FOSDEM in february, still need to finish porting to it
20:06:00 <ddevault> so I need one ASAP
20:06:00 <heat> do you not have rpi400 nearby?
20:06:00 <heat> I think those are the only ones they're making right now
20:06:00 <ddevault> maybe I can find one
20:07:00 <ddevault> I also found a source for rpi3 500 MiB at an extortionate price but the lead time is alarming given my timeframe
20:07:00 <heat> rpi4 are absolutely unobtanium
20:07:00 <heat> also rpi zero 2 w are a thing
20:07:00 <ddevault> rpi400 all sold out
20:07:00 <heat> cheap af and are basically AIUI rpi3
20:07:00 <ddevault> maybe that'd work
20:09:00 <ornx> on x86 with EFI you still get a framebuffer at 0xA0000, right?
20:09:00 <ddevault> if you're using EFI you should set up a framebuffer with GOP
20:09:00 <ornx> won't it be gone after you exit EFI boot services though?
20:09:00 <heat> ornx, probably, but I don't think you're VGA enabled at that point
20:09:00 <heat> no
20:09:00 <ddevault> yeah it'll still work after EFI's gone
20:09:00 <ornx> ahh i see
20:10:00 <zid> you might be in the wrong video mode, but the vga card is still snooping those addresses for pixels om nom
20:10:00 <heat> (some?) traditional GPUs invariably still have legacy VGA support
20:10:00 <zid> no matter what you do really
20:10:00 <ddevault> rpi0 also out of stock everywhere -_-
20:10:00 <ddevault> gdi
20:10:00 <heat> zid, but do they work when you're not in a VGA video mode?
20:10:00 <zid> it's just whether it bothers to draw them
20:10:00 <zid> which means mode setting ega/cga/vga etc
20:11:00 <ddevault> woot friend agreed to mail theirs to me
20:11:00 <heat> noice
20:11:00 <ddevault> rpi3 though so I have to rejigger my port a bit
20:12:00 <ddevault> and subtract another few days from the time I have to prepare for FOSDEM
20:12:00 <heat> are you talking about your project at FOSDEM?
20:12:00 <ddevault> wheeeee
20:12:00 <ddevault> yeah, I hope so
20:12:00 <ddevault> doing a talk about hare moreso than helios
20:12:00 <ddevault> the idea is to present the slidedeck from helios and midway through the talk reveal that the whole thing is running from a device running only Hare code
20:12:00 <Ermine> Tfw when they are still posting invitations to Minix ML
20:12:00 <ddevault> lame fallback involves booting linux and showing my PDF :(
20:13:00 <heat> ddevault, that would be fucking nuts
20:14:00 <ddevault> aarch64 port of helios is about 70% done in qemu
20:14:00 <Ermine> On long-term side, seems like Quartz64 is not out of stock (though they are more expensive)
20:14:00 <heat> if things fail just boot helios on qemu aarch64
20:14:00 <ddevault> need to do the last 30%, port userspace, test and verify everything on real hardware (<= the problem), and then write a little GPU driver and stuff all my slides as images in the initramfs
20:16:00 <Ermine> Hopefully Netherlands post service is fast and reliable enough
20:16:00 <ddevault> if I do manage it, it'll make for a nice slide to brag about porting the kernel to aarch64 inside of 2 months
20:17:00 <ddevault> fallback is "forget about porting your kernel, just write a new kernel whose job is just to render a slidedeck in EL1", but I'm all in on doing it properly at this point
20:22:00 <heat> also you're technically lying
20:22:00 <heat> tianocore is C and still present
20:22:00 <heat> :))
20:22:00 <heat> harefi when?
20:23:00 <Ermine> ?
20:23:00 <ddevault> once I exit efi boot services it's not :)
20:23:00 <ddevault> in any case firmware doesn't count
20:24:00 <heat> yes it is?
20:24:00 <heat> runtime services are very much still there
20:24:00 <Ermine> ah, I've got the pun
20:24:00 <ddevault> not necessarily
20:24:00 <ddevault> the code is in RAM but I'm not setting it aside, it'll be overwritten
20:24:00 <ddevault> and I'm not going to call into it anyway
20:25:00 <ddevault> not even planning on using GOP
20:26:00 <Ermine> do you plan to load graphics driver asap?
20:26:00 <heat> you probably still get things in secure world and shit
20:26:00 <ddevault> Ermine: well, once userspace is up, yeah, probably the first thing I'll do
20:26:00 <ddevault> maybe serial port first
20:27:00 <ddevault> it's only like 50 lines of code to get a framebuffer going over HDMI on rpi
20:27:00 <ddevault> which is why I chose the platform
20:28:00 <zid> tianocore made of chinese
20:29:00 <GeDaMo> I read that as cheese :|
20:29:00 <zid> chinese cheese
20:29:00 <klys> I read that as tianocore made one of those
20:29:00 <zid> sweet dreams, actually
20:29:00 <heat> actually a great chunk of tianocore devs are chinese
20:29:00 <heat> so you're not wrong are you
20:30:00 <klys> .theo
20:30:00 <zid> heat can I have $4.95/mo
20:30:00 <heat> for wat
20:30:00 <zid> j-novel club membership, my pirates are being slow and skipping stuff
20:30:00 <heat> no
20:31:00 <zid> mig beanie
20:31:00 <gog> i'll give you 4.95 a month
20:32:00 <mjg> onlyfans
20:32:00 <gog> that's where i get the 4.95
20:32:00 <mjg> posting pictures of failed printfi mplementations
20:32:00 <zid> hot
20:32:00 <zid> I'll trade you a pic you can post to onlyfans
20:33:00 <gog> my implementation of printf does work tho :|
20:33:00 <zid> same
20:33:00 <ddevault> I had to overhaul my build system to get printf into the bootloader for the ARM port
20:33:00 <gog> although i think i have some bugfuxes in my experimental branch that i need to cherry pick
20:34:00 <heat> mjg, send me a picture of your pipe()
20:34:00 <mjg> heat: it isu nmapped
20:35:00 <mjg> dick().unwrap()
20:35:00 <mjg> for you roosters out there
20:35:00 <heat> RUST MOMENT
20:36:00 <zid> gog: send username/pw to my charged up account kth
20:39:00 <gog> gog:gog
20:39:00 <ddevault> http://bash.org/?10171
20:39:00 <bslsk05> ​bash.org: QDB: Quote #10171
20:39:00 <zid> it doesn't work
20:40:00 <gog> weird it was working yesterday
20:41:00 <heat> why is it coredumping in the middle of sleep
20:41:00 <heat> makes no sense
20:41:00 <zid> you tell em heat
20:41:00 <heat> 𓂺
20:41:00 <heat> 𓂺𓂺𓂺𓂺𓂺𓂺𓂺𓂺𓂺𓂺𓂺
20:41:00 <Ermine> unsafe stuff
20:42:00 <moon-child> 𓂺 RUST 𓂺 RUST 𓂺 RUST𓂺 RUST 𓂺 RUST 𓂺 RUST𓂺 RUST 𓂺 RUST 𓂺 RUST𓂺 RUST 𓂺 RUST 𓂺 RUST𓂺 RUST 𓂺 RUST 𓂺 RUST𓂺
20:42:00 <gog> lmao
20:42:00 <zid> I keep trying to get heat pregnant, no luck so far
20:42:00 <gog> my favorite unicode character
20:42:00 <heat> 𓂺-rs
20:43:00 <gog> i'm pregnant
20:43:00 <Ermine> Rectangle?
20:43:00 <zid> gog: pregnanat!?
20:43:00 <gog> pomegranate
20:43:00 <zid> how babby is form?
20:43:00 * Ermine panics
20:43:00 <gog> how girl get pregnat
20:44:00 <heat> thru 𓂺
20:44:00 <heat> ?
20:44:00 <zid> https://www.youtube.com/watch?v=EShUeudtaFg
20:44:00 <bslsk05> ​'how is prangent formed' by J.T. Sexkik (00:02:00)
20:47:00 <gog> pregananant
20:47:00 <gog> i lied i'm not pregnant :(
20:47:00 <zid> I'd just buy one if I wanted one
20:47:00 <zid> getting pergnet sounds unfun
20:47:00 <zid> I mean, getting pergnet is okay
20:47:00 <zid> being pergnat less so
20:47:00 <gog> pregonte
20:48:00 <zid> PREGONTE
20:48:00 <zid> PREGONTÉ
20:48:00 <gog> i'm sad
20:48:00 <zid> is it because you're broody
20:48:00 <gog> :<
20:48:00 <zid> find some moss to hug
20:48:00 <gog> it's illegal to touch the moss
20:49:00 <zid> It's illegal for me to hug random people's children too
20:49:00 <zid> I was going to say touch but heat might get the wrong idea
20:50:00 <gog> :|
20:50:00 <heat> :|
20:50:00 <Ermine> touch moss
20:50:00 <zid> touch moss you nerd
20:50:00 <gog> lmao log off and touch moss
20:50:00 <Ermine> touch: moss: operation not permitted
20:50:00 <zid> gog: go climb a tre- oh wait
20:51:00 <gog> what's a tre-
20:51:00 <zid> shouldn't climb trees when you're gregnat
20:51:00 <klys> latin?
20:51:00 <heat> gog no like my gifs
20:51:00 <heat> fuck gog
20:51:00 <gog> noo i do like them
20:51:00 <gog> what
20:51:00 <heat> fog for short
20:51:00 <gog> :<
20:52:00 <heat> have u noticed that gog = g o g = g(g(x))
20:52:00 <heat> just sayin
20:52:00 <zid> no
20:52:00 <zid> just sayin things about heat
20:52:00 <gog> yes
20:53:00 <gog> g ° g
20:53:00 <heat> gºg
20:53:00 <gog> g of g
20:53:00 <heat> ªªªªººªªººªº
20:53:00 <zid> if gog is good old games, then gog is good ol girl
20:53:00 <zid> that makes you sound like an aged horse
20:53:00 <gog> i'm an old mare
20:53:00 <zid> knackered nag
20:53:00 <gog> yes
20:53:00 <zid> moldy mare
20:54:00 <klys> glenda64, do you work
20:54:00 <zid> yea glenda
20:54:00 <heat> ‏bazinga
20:54:00 <heat> aw shit this doesn't work does it
20:54:00 <heat> right to left is a lie
20:54:00 <heat> klys, glenda64 is not the glenda bot
20:55:00 <klys> ah.
20:55:00 <heat> it's a real person
20:55:00 <zid> when are we upgrading to heat64
20:55:00 <gog> we're not
20:55:00 <gog> we don't need bazinga in 64 bits
20:56:00 <zid> Let's upgrade him to 4 bit first
20:56:00 <kof123> right to left worked fine. if you have a worse irc client than me you got problems :D
20:57:00 <_FILE_OFFSET_BIT> this doesn't take the full name :(
20:57:00 <zid> Just outright quits
20:57:00 <heat> it crashed lmao
20:57:00 <klys> < glenda> If some of you people keep insisting on having backwards compatibitity with the stone age,
20:57:00 <klys> we'll have stone tools forever.
20:57:00 <zid> Potion seller, this client cannot handle my strongest usernames
20:57:00 <heat> klys, kinda want to install glenda now and serve it out of my rpi
21:29:00 <heat> optimal pci bus resource allocation is kind of nuts isn't it
21:40:00 <zid> disregard optimal
21:40:00 <zid> obtain vram
21:41:00 <heat> yeah I don't know how optimal I need to be
21:41:00 <heat> is PCI resource allocation that tight?
21:41:00 <zid> every device gets its own gigabyte
21:41:00 <heat> can I be wasteful?
21:42:00 <zid> shifted around by bus,device,subfunc,bar
21:42:00 <zid> shouldn't take more than a couple TB
21:42:00 <heat> the problem here is that every bridge gets its own subrange and then devices need to allocate from there
21:42:00 <heat> my first idea was to get a window of $size bytes aligned by $largest_alignment
21:43:00 <heat> since every size is a power of 2, things Just Work
21:43:00 <heat> but I'll leave gaps
21:45:00 <heat> zid, can you give me your lspci -vv?
21:45:00 <heat> it should have more things as a Xeon
22:56:00 <zid> heat: Not unless you port lspci to windows
22:57:00 <zid> oh maybe there is one
22:57:00 <heat> lspci works for windows btw
22:57:00 <heat> https://git.kernel.org/pub/scm/utils/pciutils/pciutils.git/tree/README
22:57:00 <bslsk05> ​git.kernel.org: README - pciutils/pciutils.git - The PCI Utilities - development tree
22:57:00 <zid> https://gist.github.com/zid/493fc5bdb18969eab69f86e787511873
22:57:00 <bslsk05> ​gist.github.com: lspci-winhost.txt · GitHub
22:58:00 <zid> windows will allocate stuff differently to linux but whatever right
22:58:00 <heat> windows will not allocate stuff, neither will linux
22:58:00 <heat> mr firmware takes care of everything in PC
22:58:00 <zid> I meant the bar addresses and stuff
22:58:00 <zid> there's certainly some runtime frobbing of those, even if only by drivers
22:59:00 <heat> afaik only when resizing BARs
22:59:00 <zid> https://gist.github.com/zid/2b14b8d0735e6a1db54b4babb1fd034e I need a longer list, should I add some more pci-e bridges
22:59:00 <bslsk05> ​gist.github.com: lspci-nov.txt · GitHub
22:59:00 <heat> which your GPU doesn't do
22:59:00 <heat> zid, thanks btw
22:59:00 <zid> what happened to bus 2 through 5? :(
23:00:00 <heat> they're probably there but hidden
23:01:00 <heat> intel chipsets frequently have devices that can be hidden and immediately stop responding to PCI config space accesses
23:01:00 <heat> i know mine has a DRAM one that does that
23:02:00 <zid> https://cdn.discordapp.com/attachments/417023075348119556/1061057053029826611/image.png I like this view that windows has
23:02:00 <zid> sorted list of all the stolen phys addresses
23:03:00 <heat> that makes no sense
23:03:00 <heat> your GPU isn't taking up the whole of PCI MMIO space
23:03:00 <heat> but that view seems to imply that
23:04:00 <zid> as in none of region 0 1 3 5 cover A000+?
23:05:00 <heat> no, I mean that it's implying the 1050 is using 0xc0000000 - 0xfbffffff
23:05:00 <zid> it is
23:05:00 <heat> which is the whole of your PCI host bridge range
23:05:00 <zid> along with the root port
23:05:00 <heat> it is not
23:05:00 <zid> https://cdn.discordapp.com/attachments/417023075348119556/1061058037072277574/image.png
23:05:00 <heat> then your NIC wouldn't have MMIO
23:06:00 <heat> yes, what I'm saying is that it makes no sense
23:06:00 <heat> the root port using it makes sense from a hierarchical POV, but the GPU bit seems confused
23:07:00 <zid> 0xFB400000-0xFB41FFFF Intel(R) 82579V Gigabit Network Connection OK
23:07:00 <zid> 0xFB448000-0xFB448FFF Intel(R) 82579V Gigabit Network Connection OK
23:07:00 <zid> wanted to count the 0s
23:07:00 <zid> FB400000 okay so that's 8 digits right
23:07:00 <zid> 0xC0000000-0xFBFFFFFF NVIDIA GeForce GTX 1050 Ti OK
23:08:00 <zid> C0000000 also 8
23:08:00 <zid> MAGIC
23:09:00 <heat> window bork
23:10:00 <heat> also btw you don't need a BAR down in the VGA space to decode VGA
23:10:00 <epony> shouldn't it be called GeoForus or something
23:11:00 <epony> TorusChorus
23:11:00 <heat> it's "VGA Palette Snoop Enable"
23:22:00 <zid> lazy
23:23:00 <zid> is it my network card making my graphics card all snowy then
23:23:00 <zid> that's be funny
23:23:00 <\Test_User> more fun if your gpu starts sending network packets
23:24:00 <zid> (It's 100% the monitor)
23:28:00 <zid> I have more chili, my netflix is watching an australian guy flame spraying
23:31:00 <gog> netflix and chili eh
23:31:00 <zid> would you like to hear about flame spraying gog
23:31:00 <gog> sure
23:32:00 <zid> cast iron is bad to weld, and if you do it likes to form bits of hardened steel
23:32:00 <zid> so instead, you blast it with a flamethrower then drop iron filings onto it and they melt
23:32:00 <gog> neat
23:42:00 <heat> heat
23:43:00 <epony> beat
23:43:00 <zid> zid
23:44:00 <epony> 8eat
23:44:00 <epony> Beat
23:44:00 <epony> the incremental addition to the small n letter to convert it the a B
23:44:00 <epony> since Deat is not a word yet™
23:45:00 <gog> Deat
23:45:00 <moon-child> pog
23:45:00 <heat> goog
23:45:00 <epony> dood
23:45:00 <epony> boob
23:46:00 <epony> poop
23:46:00 <epony> 6oo6
23:46:00 <epony> 9oo9
23:47:00 <epony> ⁹00⁹
23:48:00 <jimbzy> Welding cast iron is annoying, but doable. I'd rather braze it whenever possible.
23:48:00 <epony> ₆00₆
23:48:00 <epony> and, of course GOOG
23:49:00 <epony> that's how you make the ultimate passive cooler for your silent PC
23:49:00 <epony> welding cast iron
23:49:00 <heat> brazinga
23:49:00 <epony> pershing
23:50:00 <epony> durango
23:50:00 <epony> badunga
23:52:00 <epony> ROTONDA
23:53:00 <epony> to you, it appears there are no other "players"
23:54:00 <epony> that's how it looks when you imagine that Microsoft does not exist
23:57:00 <epony> and you can not get the mandatory Mikidepia reference too https://en.wikipedia.org/wiki/Sphere_of_influence#Corporations
23:57:00 <bslsk05> ​en.wikipedia.org: Sphere of influence - Wikipedia
23:57:00 <epony> because it does not carry the section title
23:58:00 <epony> ^ "For example, the software company Microsoft has a large sphere of influence in the market of operating systems; any entity wishing to sell a software product may weigh up compatibility with Microsoft's products as part of a marketing plan."
23:59:00 <epony> no shit, institutionalisation support for capitalism monopolies and international cartels seated in the imperial colony