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=osdev&y=19&m=8&d=3

Saturday, 3 August 2019

00:46:13 <squaremelon> cortex a5 does not have tightly coupled memory, i researched the whole day if the debug interface would also be capable
00:46:33 <squaremelon> to upload the instruction stream bypassing the decoder, but it does not seem like it
00:47:02 <squaremelon> arm has interface for real time tracing of all the dsu instructions post-decode though
00:47:54 <squaremelon> it is rather silly on those in-order cores not to provide a bus or a set of wires to access issues trace buffers directly
00:48:21 <squaremelon> or in another words, i do not know very well how that interconnect is suppose to work either
00:52:54 <squaremelon> on fpga they can probably target any of the on-chip memory via interconnect, but i am not sure if that is the case with amba based asics
00:55:39 <squaremelon> I am entirely unsure how that trace interface and etm itm stuff is suppose to work on single-stepping
00:56:17 <squaremelon> they say it can seek or step backwards and forwards, but dunno if that works based of the trace buffer
02:54:03 <zid> Figure it out
02:58:06 <zid> You're 10-ply ain'tya bud
03:04:26 <Plazma> Alo Vera zed
03:04:29 <Plazma> Zid
03:05:01 <zid> very good first impression there
03:05:12 <zid> two words I didn't understand then you spelled my name wrong twice
03:07:02 <Matt|home> ... am i allowed to rage against x86 engineers? or is that frowned upon
03:07:11 <zid> depends if you're right or not
03:07:31 <Matt|home> i just learned the stupid 20-bit address space allocation trick with the segment registers and it made me legitimately angry..
03:07:35 <zid> If you say something stupid because you just don't understand the realities of designing and implementing a complex isa
03:07:49 <zid> trick?
03:07:53 <zid> space allocation?
03:08:05 <Matt|home> so... tell me if i have this correct or if im just misunderstanding..
03:09:19 <Matt|home> in real mode in x86, you have mandatory memory segmentation.. and to calculate the address of the currently executing instruction, because they utilize 20-bit address space, you have to first left shift the data in the code segment register, -then- add the ip register data to that to get the correct location
03:09:38 <Matt|home> just.. frustrated..
03:09:49 <zid> yes, that's trivial
03:09:51 <klys> in real mode: (translation: 8088/8086), segment registers are used for their 16-bit value; which is shifted left four bits and added to the offset.
03:10:04 <zid> the upper parts of the address are in the upper_half_of_address reg
03:10:21 <klys> that mechanism is one of the oldest compatibility layers of intel cpus.
03:10:34 <zid> Matt|home: Go on then, suggest something faster that uses less silicon
03:10:58 <zid> otherwise you don't get to shit on the intel engineers you're just whining about having to learn about a trivial addressing scheme
03:10:58 <Matt|home> i dunno gimme a trillion dollars and a team of engineers to work with im sure i can come up with something better -_-
03:11:31 <zid> they probably had 10 million, which is a staff of 25 people for a year if you're lucky
03:11:37 <klys> the thing you're talking about was devised in the 1970s.
03:11:44 <zid> and you have to do it on pieces of paper
03:11:44 <Matt|home> i thought klys was a bot..
03:11:53 <zid> and it takes 18 months to go from paper to a chip you can test
03:12:06 <Matt|home> klys - the only reason im frustrated is because it wasn't directly mentioned that it worked that way, i had to figure it out myself and it took me a long while and a lot of questions to figure it out :\
03:12:08 <zid> You have modern tools and modern ISAs to look at, you should beat them no problem if you true
03:12:10 <zid> try*
03:12:18 <zid> That's b ecause you didn't just read the documentation
03:12:21 <zid> where it is very clearly spelled out
03:12:45 <zid> guessing isn't a great way to learn quickly
03:13:26 <zid> figure 20-1. fwiw
03:13:38 <zid> the chapter marked 8086
03:14:24 <zid> https://cdn.discordapp.com/attachments/417023075348119556/607048585170780170/unknown.png
03:14:43 <zid> First bullet-point in the first chapter
03:14:57 <Matt|home> i want to take whoever wrote that paragraph and dunk their head in a toilet.
03:15:10 <zid> because you can't read?
03:15:27 <Matt|home> sure why not.
03:15:40 <zid> not sure we can blame intel for you not being able to read
03:17:41 <bcos_> It's a little worse than you think - more like "21-bit physical address = (segment << 4 + offset) & ~A20_gate"
03:17:56 <bcos_> Matt|home: ^
03:17:56 <Matt|home> ;_;
03:18:00 <zid> 21 now?
03:18:04 <bcos_> Yes
03:18:09 <zid> we gained a bit, neat
03:18:12 <Matt|home> yeah that reminds me where the hell are the other 4 bits stored.. i mean i don't really care im just curious
03:18:14 <zid> how'd we manage that
03:18:21 <zid> what other 4 bits
03:18:48 <bcos_> If you enable A20, 0xFFFF:0xFFFFF = 0x10FFEF
03:19:03 <Matt|home> when you left shift the cs register you're adding 4 bits. it's a sixteen bit register. where are the other 4 stored
03:19:11 <zid> what
03:19:16 <bcos_> (for modern CPUs, assuming nobody actually cares about real 8086 chips)
03:19:17 <zid> you think *math* means registers get bigger?
03:19:23 <klys> the other four apre presumed zero.
03:19:24 <Matt|home> ... no...
03:19:30 <klys> the other four are presumed zero.
03:19:31 <Matt|home> thank you klys.
03:19:39 <zid> The *20 bit address* is formed from segment<<4 + offset
03:19:44 <zid> that doesn't make segment bigger, wtf
03:20:30 <ybyourmom> About to set up my own mail server over the next few weeks
03:20:40 <zid> I did that once, nobody would accept emails from me
03:20:40 <ybyourmom> Getting tired of gmail's 2FA always trying to lock me out
03:20:43 <zid> so I biined it
03:20:48 <zid> I don't have 2fa on my gmail, easier
03:21:00 <ybyourmom> How do you turn it off?
03:21:05 <zid> Unlike everybody else they haven't bothered to force it
03:21:10 <zid> idk, I just pressed no when they asked
03:21:28 <klys> if setting up one's own mail server, one may want to start by looking over certbot / letsencrypt.
03:21:35 <ybyourmom> When you go traveling, do you have dificulty logging in?
03:21:43 <zid> no
03:21:55 <zid> mainly because I don't travel or log out though
03:22:01 <ybyourmom> ...
03:22:05 <zid> I put my password in, it asks me to turn 2fa on, I say no
03:22:11 <zid> if I use a new device
03:22:16 * ybyourmom can't wait until you travel
07:19:39 <squaremelon> zid: I did not find the info this time, i have couple of methods for arm in-order cores, but i want to be more invasive there too. So I am going to need to test this hw, element14.com gives vouchers for free azure sphere,
07:27:52 <squaremelon> this particular hw is mediate mt3620 SOC, primary in-order core is a7 with neon included and such
07:40:02 <squaremelon> aside from debugging facilities for this SOC , i am also interested about NEON queues 16entry there, and also return stack of branch prediction, what i kind of thumb and ARM state it stores in the prefetch unit.
10:04:59 <squaremelon> does anyone know if the qualcomm relicensed ARM cores are with their in-house fabricated modifications, or just usual ones?
13:19:51 <squaremelon> most arm processors though have ITM support, they claim they can send arbitrary data to the processor using SWIT events, i do not have any experience with it, not overly too much info about it.
13:45:23 <squaremelon> https://percepio.com/2016/06/09/arm-itm/ this is the best, almost refering that this is very fast method
14:24:01 <squaremelon> needs more research. https://github.com/hwangcc23/ptm2human/blob/d7dd68ea6495daef50e00ef2d65c99810e0a594f/etmv4.c
14:25:07 <squaremelon> it certainly has enough data to be considered as a shortcut when the codes are generated on a chip, some flags and such if not passed verbatim before the decoding
14:56:17 <programme-zero> Hello, I've been working for quite some time now on making my own 2 staged bootloader with FAT12 without leeching too much code. I'm loading a floppy disk where the root directory entry of my second stage loader is at offset 0x2600 (I verified with an hex editor). My code doesn't output any error but when I try to access the memory buffer where the
14:56:18 <programme-zero> sectors should be loaded it's completely empty. Help would be really appreciated. https://pastebin.com/8UFLNtbj
14:56:50 <zid> real mode doesn't have memory protection
14:56:57 <zid> that's what protected mode is, so you wouldn't expect errors
14:57:00 <Mutabah> Before reading: You're in real mode, have yu checked your segments?
14:58:37 <programme-zero> Segments seem fine
14:58:42 <programme-zero> And by error I mean the carry isn't set
14:58:46 <programme-zero> when the function returns
14:59:36 <programme-zero> I checked the registers before the call to int 0x13 and they seem to be at the right values
14:59:38 <zid> is this a floppy or a cd
14:59:40 <zid> ??
14:59:47 <programme-zero> it's a floppy.img
14:59:50 <programme-zero> the img is valid
14:59:55 <programme-zero> It works with the broekn thorn code
14:59:56 <zid> now read line 98
14:59:59 <programme-zero> but I wanted to make my own
15:01:09 <programme-zero> The intro is wrong because I didn't change it. I wasn't familiar with nasm structures so I re used a DAP code
15:01:13 <programme-zero> but it's using the DL drive
15:03:19 <zid> not all bioses will support this
15:03:36 <zid> you need to test it via 13/41/55aa I think
15:04:43 <programme-zero> I'm booting on bochs
15:04:50 <programme-zero> it should work on bochs BIOS no ?
15:04:56 <zid> bochs does not support it
15:05:01 <programme-zero> oof
15:05:12 <zid> reading a floppy as though it were a cd-rom is a weird thing to do
15:05:12 <programme-zero> Well that explains a lot
15:06:39 <programme-zero> Ok so I cannot use int 0x13 ah = 42 on bochs
15:06:44 <zid> you can
15:06:48 <zid> just not to read floppy disks
15:09:28 <programme-zero> Oh I didn't know
15:10:01 <zid> use the standard shit, switch to advanced extended shit once you detect it
15:10:07 <zid> and have a need for it
15:10:19 <zid> this is some crazy extension
15:10:40 <programme-zero> Yeah but it's kind of eaiser than the CHS function
15:10:46 <programme-zero> Alright I will work on the normal one then
15:10:50 <programme-zero> Thank you
15:11:54 <zid> https://stackoverflow.com/questions/43786251/int-13h-42h-doesnt-load-anything-in-bochs
15:12:04 <zid> I lifted most of that info from here just googling 13 42
19:48:46 <squaremelon> I am picking cherries. I do not give a shit either, i do not emulate a crom with floppy image just to suffer, even though apareantly this was not the thing that caused an error
19:49:48 <squaremelon> I hate those emulators that do not function sanely too, liberty simulator at least had a scheduler/sampler.
19:56:11 <squaremelon> and attacking me at my home, shit you will, there are so many that have to redeem themselves, and are sorry what happened, and generally leftovers or outsiders do not do shit when it matters
19:56:54 <squaremelon> i for instance gathered or scored very on a very negative fame, when circumstances were not rough
19:57:11 <squaremelon> if cicrumstances go rough, than sumtimes pluses appear
19:58:00 <squaremelon> that perfectly geinuingly and effectively demonstrates, what is the difference between human and another human
19:58:36 <squaremelon> the body of a human being is so advanced that anyone can be a dick and kill anyone, but when it matters
19:58:47 <squaremelon> cards are all different and the gap is demonstrated
20:00:19 <squaremelon> and i tend to ignore as much as you want to show ignoring me, what those leftovers talk and think and express and scam about
20:03:35 <squaremelon> there are some type of assumptions I always rely on, and those are, some people in the corner of the world somewhere else, is not in that type of troubles i am in, and not getting all this bad attention and conspiration, and generally he and them do their job well
20:03:47 <squaremelon> I rely on, that i read what they do
20:04:40 <Nuclear_> what the fuck are you talking about?
20:04:57 <j`ey> lmao
20:06:07 <squaremelon> I am talking about even if there ain't got any serious persons on IRC, there are plenty on google networks
20:08:52 <squaremelon> such nutters are lmao'd very fast by experts, and they do not even qualify to talk with me, not to mention to attack me at my home
20:09:21 <Nuclear_> who's attacking you at your home man? lock your door and call the police
20:10:49 <squaremelon> ah itõs been said by bullyers that i die at my home country, well it has been tried before
20:11:27 <squaremelon> passionately, but what they did not account with , was that i still was a serious hope, and did develop allready my skills when i was six
20:12:01 <squaremelon> so the tries failed albeit or even when sometimes staggerengly overhooting with violations it was getting even close
20:16:41 <mrvn> Nuclear_: stop feeding the troll
20:17:16 <squaremelon> about the porn content, i get infected by profesional fucktards, who should not no longer scam who is who, and what i am, both noisier scammers were fuckaces of the liftetime in fucker fuckee relationships , being fuckees for quasimodos
20:18:03 <squaremelon> I do not feel much comfortable when such a sluts scam about sportsmen
20:21:42 <squaremelon> what i know both the fuckers and fuckees in this groups were highly handycapped and retarded but poisoness scammers, when it came to me, and to mention the outcome of those relationships
20:21:51 <squaremelon> outcomes can be retards too only
20:21:54 <squaremelon> or more possibly
20:25:21 <squaremelon> so let me put the cards straight, all most better genetically loaded people do know and respect me, the ones you know are just piles of shithoses
20:30:14 <squaremelon> the thing with predictive programmins is, once the subject is smart enough. 1. he is very hard to be destoyed. 2. the ones who spread lies and found me too inflexible to dig a hole to myself or get sort of like hypnotized to start making mistakes
20:30:36 <squaremelon> those agents are likely to be met again, cause they need reponsibly justify their wordings
20:31:25 <squaremelon> so most of the time it leads to provacations and picking a new conflict in the way of flaming and framing later
20:31:35 <squaremelon> it does not work out dudes
20:31:49 <squaremelon> this guy was awarded for a reason
20:33:49 <squaremelon> i am not saying that with all those issues around me, i am satisfyingly smart
20:33:58 <squaremelon> what i am saying that you are not either
20:35:04 <squaremelon> and about this 10ply thing, that i did not know that people went behing my back and dirtied my reputation in world
20:35:11 <squaremelon> one thing needs to be said....
20:35:28 <squaremelon> those have been scammers and will be scammers, and are scammers at the moment
20:36:49 <squaremelon> they have been good in violating laws and rules, they are not very skilled in competition
20:38:35 <squaremelon> hence the violation to tap me illegally by any means and scam further was known to me 15years ago
20:38:52 <squaremelon> what can such brickheads even do, if they can not compete legally, and that is violate
20:39:06 <squaremelon> and breaking the rules of privacy laws is another though
20:39:16 <squaremelon> some more innocent example of this
20:41:52 <squaremelon> zid: so bud tell me something i do not know about those leftoverish scammers and you!
20:43:26 <squaremelon> when martti ahtisaary wen to northern ireland about making a peace there, he was greeted my tony plair who said this subject and conflict is 800 years old
20:44:03 <squaremelon> scams around me had taken place when i was 10years old, i am very understandable in those matters
20:48:18 <squaremelon> and don't tell me there was something that you did not get, or blame my bad english, it has been said clearly that those scammers are bigger shithoses compared to you, but you are getting close there allready
20:50:06 <asdew> I'm experimenting with VGA graphics in 16-bit real mode, but I've now run into a problem: the screen is only partially updated because I am updating the screen memory while the screen is being drawn. I've understood that I need to do the drawing during VBlank, but I do not know how I can know when VBlank is in progress.
20:51:44 <mrvn> you don't have to wait for a vblank, you just have to update slower than the beam
20:52:04 <squaremelon> asdew: the way i understand you need break it down to pieces and to certain rules about electrotechnics, and verilog is something that provedes big stametements how thing actually function
20:52:21 <squaremelon> ontop of some earlier german scientists rules
20:52:41 <pterp> I recently started trying to solve a half-problem with my OS, the problem being it can run in QEMU but not in Bochs. THe problem has been traced to init's first yield call, which yields to the VFS that init creted in the two statements prior. What happens in Bochs is that the user stack is not mapped in memory, but it is mapped in QEMU. I have not been able to figure out why. Any ideas? GitHub repo:https://github.com/pjht/os
20:52:55 <pterp> * GitHub repo: https://github.com/pjht/os
20:52:56 <mrvn> I'm not sure if VGA even has something to wait for VBLANK
20:53:21 <pterp> AFK right now
20:54:17 <asdew> mrvn: Okay, how can I update slower than the beam?
20:55:04 <pterp> I'm back.
20:55:20 <zid> asdew: You need to mess with the vga regs to either get double buffering, or find out where the beam's at
20:55:46 <mrvn> best to do both
20:56:03 <zid> the latter will still be needed for the former though else you'll still get tearing
20:56:18 <squaremelon> timing issue
20:56:39 <mrvn> but does VGA specs have a register for vblank or beam position? I thought that was something every driver has to implement for the specific card
20:56:50 <zid> or you could triple buffering with only 2 buffers I guess, just use an optimized memcpy from your backbuffer to your frontbuffer during vblank. Either way you need to know when vblank is.
20:58:41 <pterp> Did my problem not get sent?
20:58:57 <zid> pterp: what do you expect anyone to do, trawl through thousands of lines of stuff they didn't write?
20:59:44 <pterp> just any basic ideas on why a mapping that works in qemu would not work in bochs would be nice.
20:59:57 <squaremelon> generally yeah double buffering or triple buffering can be be implemented anywere also in VGA mode , that is true
21:00:03 <pterp> It just seems a bit odd and i'm not sure where to start.
21:00:20 <mrvn> pterp: number one reason: you forgot to flush the TLB or INVLPG
21:00:32 <squaremelon> but i think you would not need to mess around with scanout buffers while the stuff draws so i dunno if vblanks can be get either myself
21:00:48 <squaremelon> but that is just one synchronization possiblitiy to time things well
21:01:43 <pterp> right. But I do a complete CR3 reload (It's during a task switch) and I know it does get mapped at some pint because it works in qemu and i assumbe bochs wont hae a different code flow than QEMU.
21:02:20 <pterp> The TLB gets fully flushed on a CR3 load as far as i know. (excluding global pages, which I don't use)
21:02:43 <mrvn> n°2 reason: You set some reserved bits that qemu and bochs handle differently
21:03:13 <mrvn> and you never ever used global pages for the address range user space uses? Like for example on boot?
21:04:32 <mrvn> Which makes me think. Should one INVLPG all 4GB memory on boot in case grub or the bootstrap used anything there?
21:05:36 <pterp> mrvn: Nope. I dont fully understand them and I don't get the need for them based on what I do understand (that the TLB never flushes them unless specifically requested to by INVLPG).
21:06:31 <mrvn> pterp: so you do fully understand them. That flushing thing is the whole point of them.
21:07:10 <pterp> ok. I don't get the point of them though. All they seem to do is force unused pages to clutter up the TLB.
21:07:48 <squaremelon> And those statements to embarrasse me about digit or number 42, it just showed off you stupidity to stuff irrelevant info to the matter, even though to me it was somewhat suprisingly educative, that your dick has 42cm size condom, and loundess o your fart is 42db etc.
21:07:54 <mrvn> pterp: TLB will still evict them if something else wants the same slot. The point is to not loose them on CR3 reload every time.
21:08:15 <mrvn> pterp: you map your kernel global so that after a CR3 reload the kernels pages remain cached.
21:08:34 <pterp> It's a performace thing.
21:09:12 <mrvn> pterp: yes. Currently your code reloads CR3. The next instruction then causes a TLB miss and the MMU has to page walk to find out where the next instruction is.
21:11:27 <mrvn> pterp: print the page tables before switching to user space or in the GP handler.
21:11:41 <pterp> GP?
21:11:51 <mrvn> your page fault handler
21:12:43 <pterp> Also, it's not the user stack for the process, it's the kernel stack, sorry about that mistake.
21:13:09 <pterp> Maybe that changes what you want to do?
21:13:16 <mrvn> not realy
21:13:35 <pterp> Also, which userspace switch? Every one?
21:13:42 <pterp> The first one?
21:14:17 <pterp> Or the one on the first yield to the VFS, which bochs page faults before it gets to it.
21:14:25 <mrvn> where you reload CR3.
21:14:58 <mrvn> And find out the exact opcode where it fails. Is it right after the CR3 reload? Or on RET? Or where?
21:15:58 <squaremelon> qualcomm was suead by their programmable fuses maybe? on arm there were piles of exploits on this thingy too, even the hijacking of supervisor mode was done in vertigo microvisor and winocm (Sarah Purohit) tzboot
21:16:11 <squaremelon> the last one dissapeared from the networks though
21:16:27 <mrvn> If you have task switches before that then add a global "bool dump_page_table = false;", set it to true right before you yield and in the CR3 reload code dump the page tables if the variable is true.
21:18:04 <pterp> Since this happens in Bochs, i'll just dump the tables when the page fault occurs, and use objdump to show you the surrounding opcodes of the one where it fails. Is that OK?
21:19:45 <squaremelon> so the moral is: to exploit von neumann machine or modified harvard one is not particularly so hard thing to do
21:23:21 <pterp> No wonder there's a problem. The page tables are COMPLETELY messed up, though i dont know why it happens now, since when i did a dump before for my own purposes, it was not this bad.
21:26:35 <pterp> Also, i'm following the tutorial "Brendan's Multi-tasking Tutorial" on the wiki for multitasking, and where it fails is in the first intruction after the label ".doneVAS". Tutorial: https://wiki.osdev.org/Brendan%27s_Multi-tasking_Tutorial
21:27:23 <zid> so you mean the line after reloading cr3? cr3 is fucked then
21:28:19 <squaremelon> I am not sure whether linus wants to make sure about spreading similar ideas to me like Rather performance and low-power than security which is mission impossible
21:28:33 <squaremelon> but truely i am not entirely sure if that is his vision though
21:28:59 <pterp> right, which is verified with a dump, so i think it's set to random physical memory. Unfortunately this ony happens in Bochs, and i'd hve to inspect my C code, so i have to recompile bovchs with a GDB stub. This will be fuuuun. (No it wont) :(
21:29:25 <zid> add more printfs :P
21:30:36 <pterp> i'm not sure if that will help, 'm going to have to step through enough stuff to fill the screen, so that is a problem.
21:30:53 <zid> clone your printf to the serial port
21:32:01 <pterp> which i dont hve a dirver for right now. Also, all I would be able to do is text prnting, with using int_to_ascii and my other function hex_to_ascii for mubers, as i have no kprintf.
21:32:14 <pterp> The reason why? QEMU's GDB stub is why.
21:32:42 <pterp> I havent needed a kprintf yet, so i haven't added one
21:38:32 <squaremelon> thanks for listening me, and do no longer bother me about scammers, i laave now. you have been said several times that this thing is a fraud that happened to me, and one of the biggest conspiration in its length
21:39:26 <j`ey> nice
21:44:12 <Nuclear_> I don't think he's a troll. I think he's insane
21:49:00 <zid> you guys are seriously talking to the mentally ill guy?
21:49:34 <zid> pterp: com port initializtion is easy, then you just add while(*c) outp(*c++); to your print function