-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PR for x86_64 port merging into loaderarm #430
Conversation
- Finish setup tss, gdt, idt
- kernel now begins at 0xffff800000000000
-x86_64 higher VA needs a different mask to calculate PGD's offset -do_div macro in printk doesn't work on x86_64, provide a different implementation
-chal_init works
- fix chal cpu init settings on x86_64
- qemu does not check validity of tss structure in memory, but real machine does check, fix the wrong tss setting in gdt_init - make it pass cap_captbl related assertion in x64
- previous global retype table has a walk[-1] entry when page order is 20, changed it to 22 to walk the correct global page entry
1. setup caps for booter component 2. split CAS into 32-bit and 64-bit version 3. rearrange capability index for booter component
1. keep using 32-bit CAS by default, since other architectures are using the same cos_cas() interface 2. support cos_cas_64(), but it needs to be disscussed before we use it
- .boottext section needs to be aligned to generate correct bootable image - the stack in loader.S needs to be set to .data section, the original .comm will generate a .bss section that could have random address after compiling
- fix the linker script so it can correctly compile a bootable image - add -nmagic flag to $(LD) in the Makefile so $(LD) does not add additional blank information to the bootable image
- enable smp booting into long mode and jump into kmain
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not done (124/172 files), but I have to run to dinner. Want to make these visible in case I can't come back to it tonight.
Summary: this is amazing. A ton of work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is fantastic, and I have very very little feedback on things to change.
A higher-order bit: I'm concerned about how much this breaks arm. @msdx321 might have some input.
That said, I think that I'm suggesting very small changes. We likely want more of the tests working if we're all going to move to this branch, which we all want to!!!
1. set pgtbl/comp cap size to 4 in composer 2. fix memory init bug in __cos_meminfo_populate 3. fix stack pointer alignment bug in cos_asm_stub_indirect stub
- add build_iso.sh and run.sh to help cos finish build and run - soft linked boot_comp.c, share it with both i386 and x86_64 - other minor fixes
If you think that there is discussion left, or you want me to see a comment, you have to "unresolve the conversation". Currently there are no unresolved conversations, so I don't see any comments. |
@gparmer |
- fix warnings when compiling i386 port
merge loaerarm
Should we just be using |
- fix debug_run function
Summary of this Pull Request (PR)
Add description here.
Intent for your PR
Choose one (Mandatory):
Reviewers (Mandatory):
(Specify @<github.com username(s)> of the reviewers. Ex: @user1, @user2)
Code Quality
As part of this pull request, I've considered the following:
Style:
Code Craftsmanship:
Testing
I've tested the code using the following test programs (provide list here):