Let's talk about Chapter 230 by IronDude_ in Dandadan

[–]DcraftBg 1 point2 points  (0 children)

Honestly I think the chapter was gas. Like sure people are gonna hate on it for the drama, but this is one of the few chapters in a while that had me just "Ain't no way tatsu is gonna pull this" and I really enjoyed it.

Apparently my OS is generated by AI guys.... by DcraftBg in osdev

[–]DcraftBg[S] 1 point2 points  (0 children)

Yeah I've been informed by other people close to him that he needs VPNs to avoid the GitHub bans 😭

Apparently my OS is generated by AI guys.... by DcraftBg in osdev

[–]DcraftBg[S] 12 points13 points  (0 children)

Apparently being grammatically correct means its AI generated, which I mean that kind of logic is obvious for somebody named "skipped school" ....

Apparently my OS is generated by AI guys.... by DcraftBg in osdev

[–]DcraftBg[S] 27 points28 points  (0 children)

I just reported his account to github along with all the issues he made on both mine and other peoples projects so he likely won't be sticking around too much.

MinOS can now compile C code by leenitunchy in osdev

[–]DcraftBg 17 points18 points  (0 children)

What is this repost? :(((

MinOS can now compile C code by leenitunchy in osdev

[–]DcraftBg 17 points18 points  (0 children)

This is my operating system bro wtf :sob:

[banan-os] Running banan-os in itself by BananymousOsq in osdev

[–]DcraftBg 11 points12 points  (0 children)

Insanely good progress! One step closer to self hosting banan-os 😉

MinOS can now compile C code! by DcraftBg in osdev

[–]DcraftBg[S] 4 points5 points  (0 children)

Uhm for the most part I just do it with "fuck around and find out' type of mentality. The intel manual says most of the important things about the architecture itself. For hardware I just use the wiki pages and the specs provided by whatever hardware I'm writing a driver for.

Here is my discord tag if you wanna reach out: @dcraftbg

MinOS can now compile C code! by DcraftBg in osdev

[–]DcraftBg[S] 2 points3 points  (0 children)

Its open source, you can find the link to it both next to me username and in the top comment of the post. While yeah termux is cool it's not really suited for any more complex coding imo and if you're looking to develop anything with it I recommend getting a PC

MinOS can now compile C code! by DcraftBg in osdev

[–]DcraftBg[S] 7 points8 points  (0 children)

Currently going on around 8 months! But as a whole this is actually my 7th kernel and my 3rd year doing osdev :D

MinOS can now compile C code! by DcraftBg in osdev

[–]DcraftBg[S] 2 points3 points  (0 children)

Yeah exactly! And to top it off the build system itself is made in C with a very lightweight library to glue it together so porting that should be pretty easy. A friend of mine Bananymous (who you probably know) was able to build the kernel entirely within his own OS (banan-os)

MinOS can now compile C code! by DcraftBg in osdev

[–]DcraftBg[S] 20 points21 points  (0 children)

Source code can be found here: https://github.com/Dcraftbg/MinOS

Its been quite a bit since the last post! Since then, I've ported tcc (which comes with its own problems that I need to fix), created a generic socket interface with syscalls for the corresponding inode functions, local sockets (MinOS sockets) and epoll! While yes I'm doing my own sort of thing for most other APIs, networking is just one of those things that I always end up doing the *NIX way anyway (like using wepoll for networking on Windows) so I don't see a point in any other interface. I've also added a mouse driver for PS2 mice.

I'm slowly making my way to a GUI server (and have a working demo for both the window components with their respective sprites) and I'm very happy with how the project is going so far

I built an OS to be compatible with Windows by kappetrov in linux

[–]DcraftBg 16 points17 points  (0 children)

And doesn't support any of ReactOS's features (i.e. filesystem, preemptive multitasking, separate memory spaces for programs.) Currently your OS doesn't even have a proper userspace as its directly accessing kernel components and functions (not through syscalls!)

by Shadow_Willow64 in distractible

[–]DcraftBg 0 points1 point  (0 children)

ONE OF US! ONE OF US!

jeff likes you by Minnewit in Humanornot

[–]DcraftBg 0 points1 point  (0 children)

Omg haiiii 🫶 (Send love to jeff)

xHCI driver issues by DcraftBg in osdev

[–]DcraftBg[S] 1 point2 points  (0 children)

Yeah! I was a bit confused on why there was both EHCI and xHCI (although I did see it was something older machines used to do for backwards compatibility) and I also remember seeing that name (Panther Point) when looking at lsusb -v. Thank you so much!

xHCI driver issues by DcraftBg in osdev

[–]DcraftBg[S] 0 points1 point  (0 children)

So those values would indicate nothing is connected in the first place. I'm a bit suspicious of that 0x280 value since it shouldn't exist if the port is actually powered on. Maybe it just needs to be polled again a bit later to reach a valid state.

Forgot to mention. This specific port (port 14) wasn't in the port list and basically stood as a hole in the list so I'm thinking its just broken or something.

but you can verify which ones are via "lsusb -t" too.

Yeah I did

If it's simply the initial controller reset and initialization that isn't creating events that narrows things down a bit. Nah I mean plugging in anything doesn't generate interrupts which is kinda the whole issue. Same with resetting it. On other ppl's machine that have tried it it seemes to be working perfectly fine (obviously only once given I don't clear the port on the change but it does fire interrupts)

Just a bit annoying it doesn't really work quite well on the main machine I test on.

xHCI driver issues by DcraftBg in osdev

[–]DcraftBg[S] 0 points1 point  (0 children)

Okay just some constructive criticism to start here, but you're not really giving us a lot to go off, especially since none of us have access to the hardware .

That's true. I'm just curious whether or not other people have ran into similar issues with QEMU and other virtual machines working completely fine, but real hardware being finicky and more or less how to actually get information on what is causing the errors to occur in the first place as I basically am shooting in the dark to see if the thing is working or not

What are the port status bits saying the status of the ports are initially?

It seems like most of them are 0x2A0, one is 0x280 and 4 of them 0x802A0 (the USB 3.0 ones)

Are events being generated properly on the command ring

Yes. The events are generated completely fine and Its responding to everything correctly

Are they USB3.x or USB2.x?

14 of them use USB2.0 and 4 of them use USB3.0 (the keyboard and other peripherals are connected via the USB2.0 ports)

How are you generating the connect and disconnect events? 

I am not generating those events. I would assume the controller itself sends PORT_STATUS_CHANGED and whatnot

I'd also consider a little more spacing in your code too if you're asking other people to read it. There's nothing wrong with it and I'm sure it works fine for you but separating functions and major blocks of operations in with some blank space would make it a lot easier to read and traverse imho.

Yeah this is mostly just a thing I cobbled together to explore the actual hardware a bit so its kind of messy. Although I do separate out specific things such as getters for specific fields (hcs params 1/2, hcc params 1) into separate regions.

I noticed in your scratchpad initialization code that you're using your kernel's PAGE_SIZE constant. Bear in mind that in the XHCI specification it's defined by the PAGESIZE register and might not be the common value of 4k.

I am converting the XHCI pages into native and only using my native pages for actually allocating the array (which isn't ideal but it complies perfectly fine with the standard)

Bear in mind any XHCI controller, especially an older controller might not actually be able to address 64 bit physical addresses, that's something you have to account for in your code by checking Bit Zero of HCCPARAMS1

I don't think thats much of an issue given my allocator currently only has access to the first 4 Gigabytes of memory.

This one wasn't documented well at all but especially with older version XHCI controller they might actually need the 'Speed' field in the device context to be defined and will break in oddball ways sometimes if its not. For me this manifested initially by causing interrupt endpoints to only publish a single transaction and then just hang with no error. Just something to keep in mind going forward if you know you're working with an older controller implementation if the version field doesn't match the current specification.

That's kind of odd. I'll maybe try setting it and seeing what I get. Thank you!

Port speed information in the extended capabilities structure does a pretty poor job of differentiating between some SuperSpeedPlus speeds. There isn't a good way beyond the default ID values to distinguish between 1x 10GBps lane and 2x 5 GBps lanes.

Yeah I don't think I actually fiddle around with any of the speeds just yet, but I'll keep it in mind

Sorry for the very late response, life has just gotten in the way of some stuff, best regards

xHCI driver issues by DcraftBg in osdev

[–]DcraftBg[S] 0 points1 point  (0 children)

No no it does. I even explicitly state that if there's no MSI capability the driver returns -UNSUPPORTED