Vystem 0.2
This commit is contained in:
@@ -11,7 +11,7 @@ We assume the following:
|
||||
- you have a bootloader capable of mapping things into into pages table pool
|
||||
- your bootloader is capable of generating Shelter boot configuration and Shelter memory map
|
||||
- your bootloader is capable of allocating or call the UEFI firmware to allocates pages to copy data into them
|
||||
- your bootloader is capable of parsing VYX executable
|
||||
- your bootloader is capable of parsing VYX executable, including payloads
|
||||
- your bootloader is capable of accessing the content of the Shelter VYX executable and keycard binary
|
||||
While this documentation is redacted like a tutorial, this isn't a tutorial nor intended to be understand as one.
|
||||
|
||||
@@ -24,6 +24,7 @@ Your bootloader should be allocating 4KB physical pages ranges and store their p
|
||||
- page(s) for keycard should be `EfiLoaderCode` type. Keycard should fit into one page, but you are free to allocate more if you want
|
||||
- page(s) for Shelter boot configuration, memory map and pages table pool should be `EfiLoaderCode`. Shelter boot configuration should fit into one page, but you are free to allocate more if you want
|
||||
- pages for Shelter logging ring should be `EfiLoaderCode` type
|
||||
- pages for Shelter VYX binary payloads should be `EfiLoaderCode` type or `EfiLoaderData` type depending on the type of payload
|
||||
|
||||
Note: even if the logging ring size specified in the configuration is less than 4 pages, at least 4 pages should be allocated, because the kernel logs some things before loading the boot configuration that specify that log in ring buffer is disabled
|
||||
|
||||
@@ -37,6 +38,7 @@ The following steps should be completed before mapping the pages:
|
||||
- copying the content of the `.text`, `.data` and `.rodata` section inside their respectives pages range
|
||||
- copying the content of Keycard inside his pages range
|
||||
- copying the content of the boot configuration inside his pages range
|
||||
- parsing the VYX binary for payloads, allocating pages for them, zeroing those pages and copying the content of each payload into their respectives pages
|
||||
|
||||
## Step 3: mapping pages
|
||||
|
||||
@@ -52,6 +54,7 @@ The following pages ranges will be mapped at the following virtual address in th
|
||||
- Shelter boot configuration pages should be mapped at VA `0x00180000`, with no execution and read-write permissions
|
||||
- memory map pages should be mapped at VA `0x00190000`, with no execution and read-only permissions
|
||||
- logging ring pages should be mapped at VA `0xFFFFFFFFF0000000`, with no execution and read-write permissions
|
||||
- each payload should be mapped at the indicated VA, with the indicated permissions
|
||||
|
||||
## Step 4: completing configuration
|
||||
|
||||
|
||||
Reference in New Issue
Block a user