Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
B
bootloader-efi
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 1
    • Merge Requests 1
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • redox-os
  • bootloader-efi
  • Merge Requests
  • !5

Open
Opened Jan 25, 2021 by Enver Balalic@ebalalicDeveloper
  • Report abuse
Report abuse

Extend paging identity mapping to 6GB

  • Overview 0
  • Commits 1
  • Changes 1

When memory size is greater then 3073MB UEFI maps the bootloader to somewhere around 0x140000000, and when it's less then 3073, it gets mapped somewhere lower then 0xFFFFFFFF. When it gets mapped high, our page tables don't identity map the bootloader code since they only go to 0xFFFFFFFF. So it page faults while setting up paging, after setting PM_BASE to CR3, when fetching the next instruction that it needs to execute. So what i did, before in paging we had 4 PDP's, i added 2 more, so 6 PDP's in total now, which have 512 PD's each, 2MB's in size which gets us to 0x180000000, enough to cover the bootloader code.

This fixes QEMU and bare metal UEFI booting.

Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Reference: redox-os/bootloader-efi!5
Source branch: fix_pf_over_3g_ram