IRC channel logs

2023-11-28.log

back to list of logs

<rickmasters>there are several ways to give Fiwix more storage space to build with but they're just not easy to do.
<stikonas>well, unifying linux tarballs gives us quite a bit already
<stikonas>those tarballs were huge...
<stikonas>and there are some other ways we could save some storage
<stikonas>some of them are not too hard
<stikonas>e.g. one could delete unrelated arch directories from stage0-posix
<stikonas>could probably save a few MiB
<GoogulatorMobile>Modifying CHS access to LBA is why I'm interested in a higher-level version of builder-hex0
<stikonas>well, right now we basically have only hex2 version of builder-hex0
<GoogulatorMobile>Most 15-to-25YO boards don't really support CHS for anything serious
<stikonas>and I think rickmaster manualy inspects diff between binaries after modification
<stikonas>but it's not really writing hex0 directly
<GoogulatorMobile>hex2 is probably good enough
<stikonas>yeah, hex2 is not too bad
<GoogulatorMobile>easy to get from assembly to hex2
<stikonas>especially on x86
<GoogulatorMobile>& assembly is the language of choice for interfacing with 16-bit BIOS anyway
<stikonas>it's a bit different for riscv64 where you still have to do some horrible transformations for immediate constants
<stikonas>well, M0 is probably the nicest thing for this
<stikonas>but for now we don't have that
<rickmasters>GoogulatorMobile: Did you need to increase any ram drives to build a bigger kernel? I didn't find that in your playground branch.
<rickmasters>Nor did I see linux tar ball unification but maybe I'm missing something...
<GoogulatorMobile>It's not yet in playground
<GoogulatorMobile>It's in the "birthday" patch from 11/18
<GoogulatorMobile>fossy: I noticed the builder-hex0 stage 2 in live-bootstrap doesn't match the one in ironmeld/builder-hex0
<GoogulatorMobile>Is it simply an older version, or is it modified?
<oriansj>well a hex2 bootloading stage could be potentially crammed in 510 bytes but it'll require some creativity.
<oriansj>then builder-hex0 could just be a hex2 program loaded/assembled and then run
<fossy>GoogulatorMobile: unsure, rickmasters put that there
<rickmasters>GoogulatorMobile: The one in live-bootstrap is just a few commits behind
<rickmasters>GoogulatorMobile: the one in ironmeld has cosmetic changes and supports an 'f' command to flush to disk.
<stikonas>oriansj: I wasn't thinking about hex2 bootloading stage, I was thinking more of the hex0 bootloading stage that loads secondary larger loader that then loads builder-hex0
<stikonas>basically follow stage0-posix stuff
<rickmasters>GoogulatorMobile: The flush allows writing to disk and then booting fiwix off disk but we ended up not using that method.
<stikonas>just make each program a "kernel"
<stikonas>well, up to a point where we have good enough language for proper builder-hex0
<rickmasters>GoogulatorMobile: If you're going to make a change that is needed for live-bootstrap I'd recommend using the latest ironmeld version as a base.
<rickmasters>GoogulatorMobile: arguably we should be using a git submodule
<stikonas>yeah, git submodule sounds right for this thing
<stikonas>some people don't like them, but we arleady use them anyway
<rickmasters>stikonas: the downside is that it pulls in a lot of code, docs, utils and cruft that is not needed for live-bootstrap
<stikonas>oh, indeed...
<stikonas>and that blows up our already constrained size
<rickmasters>stikonas: but it probably makes sense as it can mislead someone into working on an out-of-date version.
<rickmasters>I mean not having a submodule can be misleading
<stikonas>yeah...
<stikonas>there should be at least another readme file
<stikonas>if we do't have submodule
<stikonas>well, the whole thing not counting .git is 400K
<rickmasters>manually copying over to this repo made more sense when I thought I would be the only one doing it...
<stikonas>hmm, I haven't looked at your repo in a while
<stikonas>what's the difference between builder-hex0.hex0 and builder-hex0-x86-stage2.hex0
<rickmasters>see DEVELOP.md, the build-hex0 is the original one with no stages
<stikonas>oh I see
<rickmasters>both builder-hex0-x86-stage2.hex0 and builder-hex0.hex0 come from the same hex2 file, they are just "compiled" with different starting addresses
<rickmasters>in other words, the builder-hex0 is relocatable to two different addresses depending on whether it was loaded by stage1 or not.
<rickmasters>At the beginning of the kernel_main it detects whether it is already loaded by stage1 or needs to load itself.
<rickmasters>At the beginning of internalshell it detects where source should be read from the disk depending on how the kernel was loaded.
<rickmasters>stikonas: you said the git submodule "blows up our already constrained size" but it only affect the live-bootstrap checkout footprint,
<stikonas>oh, perhaps I was wrong
<rickmasters>those files wouldn't be loaded into memory or anything
<stikonas> I didn't remember what rootfs.py does with that directory
<stikonas>yeah, that's good
<rickmasters>sysa.py:create_builder_hex0_disk_image() pulls the specific files into the disk image
<rickmasters>GoogulatorMobile: thanks, found your birthday patch. Happy Birthday! (belated)
<rickmasters>Stepping away. i'll be back tomorrow.
<fossy> https://matrix.org/blog/2023/11/28/shutting-down-bridge-to-libera-chat/ fwiw
<matrix_bridge><Andrius Štikonas> well, that was kind of expected
<matrix_bridge><Andrius Štikonas> given how bridge shutdown happened a few months ago
<stikonas>they were given some very short notice to bring down the bridge back then
<stikonas>and communication coming from libera and EMS were fairly different
<stikonas>which meant there were some serious differences
<fossy>yeah, not unexpected
<stikonas>well, I do run heisenbridge on this room...
<stikonas>but it's on residential connection
<stikonas>so don't expect it to be 100% reliable