<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Technical-Background</title><link>https://sourceforge.net/p/cloverefiboot/wiki/Technical-Background/</link><description>Recent changes to Technical-Background</description><atom:link href="https://sourceforge.net/p/cloverefiboot/wiki/Technical-Background/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 24 Apr 2019 10:03:47 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/cloverefiboot/wiki/Technical-Background/feed" rel="self" type="application/rss+xml"/><item><title>Technical-Background modified by arsradu</title><link>https://sourceforge.net/p/cloverefiboot/wiki/Technical-Background/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v10
+++ v11
@@ -1,5 +1,7 @@
+&lt;a name="top"&gt;&lt;/a&gt;
+
 [**Home**](https://sourceforge.net/p/cloverefiboot/wiki/Home) &amp;gt; Technical Background
-&lt;a name="top"&gt;&lt;/a&gt;
+
 &lt;h1&gt;Table of Contents&lt;/h1&gt;

 - [TOC]
@@ -29,23 +31,23 @@
 8. The CPU must be correctly initialized before working, but as motherboards are made universal to match a big amount of different CPUs, the internal tables do not contain any correct CPU data. Clover performs a full detection of the installed CPU, corrects the tables and the CPU itself. One side effect is a working turbo mode.
 9. One more small thing: DUET and EDK2 sources are written universally to match different hardware but the hardware dependency itself depends on constants. This implies a compilation process for one specific platform. Clover aims to be universal and to provide an automatic platform detection.

-
+&lt;table style="border-collapse: collapse;"&gt;&lt;/table&gt;
 
 
-   
+   
            &lt;div style="text-align: left;"&gt;
                &amp;lt; &lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Home/"&gt;
                    &lt;b&gt;Home&lt;/b&gt;
                &lt;/a&gt;
            &lt;/div&gt;
     
-    
+    
            &lt;div style="text-align: center;"&gt;
                &lt;a href="#top"&gt;&lt;b&gt;Back to top&lt;/b&gt;&lt;/a&gt;       
                 ^
            &lt;/div&gt;
     
-    
+    
            &lt;div style="text-align: right;"&gt;
                &lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Configuration/"&gt;
                    &lt;b&gt;Configuration&lt;/b&gt;
&lt;/a&gt;&lt;/div&gt;&lt;/pre&gt;&lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Configuration/"&gt;
&lt;/a&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">arsradu</dc:creator><pubDate>Wed, 24 Apr 2019 10:03:47 -0000</pubDate><guid>https://sourceforge.neta67fd24cee3ea5e0ac624440915c330255dfc117</guid></item><item><title>Technical-Background modified by arsradu</title><link>https://sourceforge.net/p/cloverefiboot/wiki/Technical-Background/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v9
+++ v10
@@ -1,5 +1,5 @@
 [**Home**](https://sourceforge.net/p/cloverefiboot/wiki/Home) &amp;gt; Technical Background
-
+&lt;a name="top"&gt;&lt;/a&gt;
 &lt;h1&gt;Table of Contents&lt;/h1&gt;

 - [TOC]
@@ -40,6 +40,12 @@
            
     
     
+           &lt;div style="text-align: center;"&gt;
+               &lt;a href="#top"&gt;&lt;b&gt;Back to top&lt;/b&gt;&lt;/a&gt;       
+                ^
+           &lt;/div&gt;
+    
+    
            &lt;div style="text-align: right;"&gt;
                &lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Configuration/"&gt;
                    &lt;b&gt;Configuration&lt;/b&gt;
@@ -49,3 +55,4 @@
 
 
 
+
&lt;/a&gt;&lt;/div&gt;&lt;/pre&gt;&lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Configuration/"&gt;
&lt;/a&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">arsradu</dc:creator><pubDate>Wed, 24 Apr 2019 09:59:10 -0000</pubDate><guid>https://sourceforge.netd0ffff35efd5b4a67b8e485c977dd707efcf8696</guid></item><item><title>Technical-Background modified by arsradu</title><link>https://sourceforge.net/p/cloverefiboot/wiki/Technical-Background/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v8
+++ v9
@@ -34,16 +34,16 @@
 
    
            &lt;div style="text-align: left;"&gt;
-               &lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Home/"&gt;
-                   &lt;b&gt;&amp;lt; Home&lt;/b&gt;
+               &amp;lt; &lt;/a&gt;&lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Home/"&gt;
+                   &lt;b&gt;Home&lt;/b&gt;
                &lt;/a&gt;
            &lt;/div&gt;
     
     
            &lt;div style="text-align: right;"&gt;
                &lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Configuration/"&gt;
-                   &lt;b&gt;Configuration &amp;gt;&lt;/b&gt;
-               &lt;/a&gt;
+                   &lt;b&gt;Configuration&lt;/b&gt;
+                &amp;gt;
            &lt;/div&gt;
     
 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">arsradu</dc:creator><pubDate>Tue, 23 Apr 2019 18:23:28 -0000</pubDate><guid>https://sourceforge.netdeee532564f91e556e8c7d81e0b0e84f0e15e0bc</guid></item><item><title>Technical-Background modified by arsradu</title><link>https://sourceforge.net/p/cloverefiboot/wiki/Technical-Background/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v7
+++ v8
@@ -29,23 +29,23 @@
 8. The CPU must be correctly initialized before working, but as motherboards are made universal to match a big amount of different CPUs, the internal tables do not contain any correct CPU data. Clover performs a full detection of the installed CPU, corrects the tables and the CPU itself. One side effect is a working turbo mode.
 9. One more small thing: DUET and EDK2 sources are written universally to match different hardware but the hardware dependency itself depends on constants. This implies a compilation process for one specific platform. Clover aims to be universal and to provide an automatic platform detection.

-
+&lt;table style="border-collapse: collapse;"&gt;&lt;/table&gt;
 
-   
-       
+
+   
            &lt;div style="text-align: left;"&gt;
-               &lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Home"&gt;
-                   &lt;b&gt;&amp;lt; Home
-                   &lt;/b&gt;
+               &lt;/a&gt;&lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Home/"&gt;
+                   &lt;b&gt;&amp;lt; Home&lt;/b&gt;
                &lt;/a&gt;
-           
-           
-               &lt;div style="text-align: right;"&gt;
-                   &lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Configuration/"&gt;
-                       &lt;b&gt;Configuration &amp;gt;&lt;/b&gt;
-                   &lt;/a&gt;
-               &lt;/div&gt;
-           
-       
+           &lt;/div&gt;
+    
+    
+           &lt;div style="text-align: right;"&gt;
+               &lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Configuration/"&gt;
+                   &lt;b&gt;Configuration &amp;gt;&lt;/b&gt;
+               &lt;/a&gt;
+           &lt;/div&gt;
+    
+
 
 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">arsradu</dc:creator><pubDate>Tue, 23 Apr 2019 17:21:45 -0000</pubDate><guid>https://sourceforge.net720d3ce5a420f990af6a2c6c20e08750a2bc89c1</guid></item><item><title>Technical-Background modified by arsradu</title><link>https://sourceforge.net/p/cloverefiboot/wiki/Technical-Background/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v6
+++ v7
@@ -42,7 +42,7 @@
            
                &lt;div style="text-align: right;"&gt;
                    &lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Configuration/"&gt;
-                       &lt;b&gt;Configuration&amp;gt;&lt;/b&gt;
+                       &lt;b&gt;Configuration &amp;gt;&lt;/b&gt;
                    &lt;/a&gt;
                &lt;/div&gt;
            
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">arsradu</dc:creator><pubDate>Tue, 23 Apr 2019 17:00:34 -0000</pubDate><guid>https://sourceforge.net28016c5885bf86679bce61578580c8471d65e429</guid></item><item><title>Technical-Background modified by arsradu</title><link>https://sourceforge.net/p/cloverefiboot/wiki/Technical-Background/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -41,8 +41,8 @@
            
            
                &lt;div style="text-align: right;"&gt;
-                   &lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/What-is-what"&gt;
-                       &lt;b&gt;What is what &amp;gt;&lt;/b&gt;
+                   &lt;/a&gt;&lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Configuration/"&gt;
+                       &lt;b&gt;Configuration&amp;gt;&lt;/b&gt;
                    &lt;/a&gt;
                &lt;/div&gt;
            
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">arsradu</dc:creator><pubDate>Tue, 23 Apr 2019 16:52:00 -0000</pubDate><guid>https://sourceforge.net1cf2c1512f779214aa372eaaea6e296ac6503413</guid></item><item><title>Technical-Background modified by arsradu</title><link>https://sourceforge.net/p/cloverefiboot/wiki/Technical-Background/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -29,243 +29,23 @@
 8. The CPU must be correctly initialized before working, but as motherboards are made universal to match a big amount of different CPUs, the internal tables do not contain any correct CPU data. Clover performs a full detection of the installed CPU, corrects the tables and the CPU itself. One side effect is a working turbo mode.
 9. One more small thing: DUET and EDK2 sources are written universally to match different hardware but the hardware dependency itself depends on constants. This implies a compilation process for one specific platform. Clover aims to be universal and to provide an automatic platform detection.

------
-# Booting with Clover
-
-When booting or restarting a PC, Clover loads operating system as follows:
-
-**Option A**: BIOS-based PC (old motherboards)
-
-`BIOS`&amp;gt;`MBR`&amp;gt;`PBR`&amp;gt;`boot`&amp;gt;`CLOVERX64.efi`&amp;gt;`OSLoader`
-
-OSLoader is *boot.efi* in case of macOS and *bootmgfw.efi* in case of Windows.
-
-**Option B**: UEFI-based PC (newer motherboard)
-
-`UEFI`&amp;gt;`CLOVERX64.efi`&amp;gt;`OSLoader`
-
-In order to boot as described in the two variants above the boot files must be located in the following places:
-
------
-## MBR sector
-
-Master Boot Record (MBR) is the boot sector in the very beginning of a storage device (HDD, SSD, CD/DVD or any kind of USB storage device like USB stick, USB-HDD, etc.). The first 440 bytes contain data from one of the following:
-
-- `boot0` - searches for an active partition in the MBR and passes control to its PBR sector. Hybrid GPT/MBR layout is possible. However if the filesystem is pure GPT, `boot0` passes control to the EFI system partition, further referred to as boot0af (active first).
-- `boot0hfs` - searches for the first HFS+ partition - that would be a partition with signature (type) 0xAF. If it contains an OS X installation, control is passed to its PBR. This way the system can be booted from a HFS+ partition on a GPT partitioned drive, however the limitation is that OS X partition may only be the first partition on the disc. Further referred to as boot0ss (scan signature).
-- `boot0ab` - searches for a partition with signature 0xAB - Apple Boot Partition.
-- `boot0md` - combined variant which searches multiple drives for a HFS+ partition, not just the main one.
-
------
-## PBR sector
-
-Partition Boot Record (PBR) is a boot sector located in the beginning of each partition on a storage device. The phase two loader is stored here. PBR has the information of its partition's file system and may find and load the *boot* file and pass the control to it. Different variants exist according to the filesystem type:
-
-- `boot1h2` - supports HFS+ with a boot file size of up to 472kb. The old variant (boot1h) which is bundled with "Chameleon" boot loader only supports 440kb boot file (while 472kb are needed). This boot file pauses for two seconds providing an option to switch loaders.
-- `boot1h` - same as above, but without the 2 sec pause.
-- `boot1f32alt` - supports FAT32. This file system is able to be written at the booting stage thus very well suited for boot loader installation. It is possible to use it as a EFI system partition or on a USB flash drive (USB sticks are usually sold pre-formatted in FAT32). It also gives a pause for two seconds.
-- `boot1f32` - same as above without the pause.
-
-Additionally they provide another useful functionality. During the two second pause a number key can be pressed on the keyboard to run a specific loader. Pressing key "1" will start file boot1, pressing "3" will start boot3 and pressing "6" starts boot6. This way a number of different loaders can be kept in one place, e.g:
-
-- boot - Clover, recent or testing version
-- boot1 - Chameleon
-- boot3 - Clover 32-bit, tested and working version
-- boot6 - Clover 64-bit, tested and working version
-- boot7 - Clover 64-bit with BiosBlockIO driver that works with any controller supported by the BIOS.
-
-Apart from these variants the PBR may contain the Windows boot manager (being able to handle NTFS), GRUB (being able to handle EXT4) and other boot loaders not related to Clover - at least at the moment.
-
------
-## CloverEFI
-
-In Chameleon, the boot file is a complete bootloader. Clover however, contains the whole UEFI system and a boot service for passing control to the next phase (option A). Alternatively, all this is supposed to be contained in the PC motherboard ROM (option B). In reality, however, this is not always the case and some other parts need to be loaded additionally in order to boot the OS. In contrast to the earlier stages, different boot files are designed for PCs of different bit-size, i.e. there are different variants for loading 32-bit and 64-bit operating systems. Usually it is advised to choose 64-bit loader for 64-bit CPUs. However if you work with a 32-bit OS, it makes sense to load it with a 32-bit (U)EFI. It is 20% smaller, slightly faster, but not compatible with Windows 7 (U)EFI - you can only load 64-bit Windows with it. In general the boot file is a modified variant of DUET with barely 1% of changes. Nonetheless, this 1% makes the big difference - Clover manages to do what it is designed for. If anyone assumes that adding AppleSim to DUET is enough, well, good luck then! This is by far not enough. DUET can be compiled for one specific computer defined by its PCD constants but Clover needs to work for everyone. I have no intention to explain the details, the work is already done. Further this program will be referred to as CloverEFI.
-
------
-## CloverIA32.efi and CloverX64.efi or CloverGUI
-
-This file - available in two variants for two different bit sizes - represents the graphical interface of the loader. It is used for selecting the operating system be loaded, tweaking settings, loading additional drivers and finally for loading the OS. Graphics and the menu are based on the rEFIt project, which is reflected on the according directory name and the *About* screen. Currently the original part of rEFIt codebase (partially fixed) takes about 10% of the whole program.
-
------
-# Directory structure
-
-The loader needs supporting files. Their directory structure is as follows*(as of v2k r2334)*:
-
-- EFI:
-    - BOOT:
-        - BOOTX64.efi
-    - CLOVER:
-        - ACPI:
-            - origin:
-            - patched:
-                - DSDT.aml
-            - WINDOWS:
-                - SLIC.aml
-        - CLOVERIA32.efi
-        - CLOVERX64.efi
-        - themes:
-        - config.plist
-        - drivers32:
-            - FSInject-32.efi
-        - drivers64:
-            - FSInject-64.efi
-        - drivers32UEFI:
-            - CsmVideoDxe-32.efi
-        - drivers64UEFI:
-            - CsmVideoDxe-64.efi
-            - DataHubDxe-64.efi
-            - OsxAptioFixDrv-64.efi
-            - OsxFatBinaryDrv-64.efi
-            - PartitionDxe-64.efi
-        - kexts:
-            - 10.6:
-            - 10.7:
-            - 10.8:
-            - 10.9:
-            - 10.10:
-            - 10.11:
-            - 10.12:
-            - 10.13:
-            - 10.14:
-            - Other:
-        - misc:
-        - OEM:
-            - SystemProductName:
-                - ACPI:
-                    - origin:
-                    - patched:
-                - config.plist
-                - kexts:
-                    - 10.6:
-                    - 10.7:
-                    - 10.8:
-                    - 10.9:
-                    - 10.10:
-                    - 10.11:
-                    - 10.12:
-                    - 10.13:
-                    - 10.14:
-                    - Other:
-                - UEFI:
-                    - config.plist
-        - tools:
-            - Shell32.efi
-            - Shell64.efi
-            - Shell64U.efi
-
-I.e. the file *CLOVERX64.efi* needs to be in the folder */EFI/CLOVER/*, the font *WoB_PTMono_10W_NA.png* in */EFI/CLOVER/themes/black_green/*, etc. Usually these and other folders have more content. The purpose of specific files will be described later.
-
-**The purpose of the directory /EFI/CLOVER/OEM/**
-It is designated to store different configurations. A typical situation involves a bootable USB flash drive with multiple configurations. Besides the common */EFI/CLOVER/config.plist*, it may contain a */EFI/CLOVER/OEM/Inspiron 1525/config.plist* or a */EFI/CLOVER/OEM/H61M-S1/UEFI/config.plist* and additionally different customised DSDT.aml tables, unique for each PC.
-The folder's name is deduced from the SMBIOS and can be viewed in *preboot.log*, which you can store into the folder */EFI/CLOVER/misc* by pressing F2 on the Clover boot screen. The following is the case of Inspiron 1525 with Clover r1709:
-
-```
-10:061  0:000  Clover revision: 1709  running on Inspiron 1525 
-10:061  0:000  ... with board 0U990C
-```
-
-In case of desktops, the following will have been logged. Eg. Gigabyte Z68MX-UD2H-B3 with Clover r2334 when SystemProductName is not defined:
-
-```
-0:100  0:000  Clover revision: 2334  running on To be filled by O.E.M. 
-0:100  0:000  ... with board Z68MX-UD2H-B3 
-```
-
-The system name is listed in the first line and the motherboard model in the second. While notebooks can usually be identified with the system name, desktop systems are identified with the motherboard model. Choose the variant you are more comfortable with. Furthermore, your configuration directory may contain a 
-
-UEFI
-
-folder to differentiate between a UEFI (option B) and a legacy boot (option A) on one computer (whoever may need it).
-
------
-# (U)EFI drivers
-
-The directories drivers32, drivers64 are used for BIOS booting according to (option A) and drivers64UEFI for UEFI booting (option B). Their content will be different depending on the BIOS revision and on the configuration setup.
-It is worth mentioning that these drivers are only effective while the boot loader is working. They have no impact on a loaded OS.
-
-It is up to the user to decide which drivers are needed and which not.
-
------
-## Built-in drivers
-
-- `AudioDxe.efi`
-Audio interface in Clover GUI based on GoldFish64's implementation to playback boot sound: https://github.com/Goldfish64/AudioPkg
-In recent versions of Clover, this  can be configured directly from [Clover GUI itself](https://sourceforge.net/p/cloverefiboot/wiki/GUI/#startup-sound-configuration-ui). Original implementation relied on `BootChimeCfg.efi` to configure/adjust audio outputs and volume.
-
-It requires a sound.wav file (44100Hz, 16bps, recent versions also accept 8000Hz) placed inside the selected theme.
-
-More info [**here**](https://www.insanelymac.com/forum/topic/304530-clover-change-explanations/?do=findComment&amp;amp;comment=2657187).
-
-- `NTFS.efi`
-NTFS file system driver. Provides the possibility to load Windows EFI.
-
-- `HFSPlus.efi`
-HFS+ file system driver. Necessary for booting Mac OS X with (option B). Already present in the boot file when using (option A).
-
-- `VBoxHFS.efi`
-Legal alternative for HFSPlus.efi. May be slower.
-
-- `VBoxExt2.efi`
-EXT2/3 file system driver. Necessary for booting Linux EFI.
-
-- `VBoxExt4.efi`
-EXT4 file system driver. Necessary for booting Linux EFI.
-
-- `FSInject.efi`
-Takes control of the file system for the possibility to inject external kexts into the system. See [WithKexts](https://sourceforge.net/p/cloverefiboot/wiki#boot-args) for a detailed explanation.
-
-- `PartitionDxe.efi`
-Already present in CloverEFI and in UEFI, however neither optimised for Apple partitions, nor for GPT/MBR. Most probably necessary for (option B).
-
-- `OsxFatBinaryDrv.efi`
-Enables starting of FAT modules like boot.efi. Necessary for (option B).
-
-- `OsxAptioFixDrv.efi`
-Fixes memory map created by AMI Aptio EFI. Booting OS X is impossible otherwise.
-
-- `OswLowMemFix.efi`
-Simplified variant of OsxAptioFixDrv. Do not use both simultaneously.
-
-- `Usb*.efi`, `UHCI.efi`, `EHCI.efi`, `XHCI.efi`
-Set of drivers for the case when built-in driver do not work well with (option B) because a dependancy might have been cut off.
-
-- `PS2Mouse*.efi`, `PS2MouseAbsolute*.efi`, `UsbMouse*.efi`
-Set of drivers for mouse/trackpad/touchpad support in CloverGUI. They have no effect on the OS.
-
-- `DataHubDxe.efi`
-Already present in CloverEFI and possibly in UEFI. The recommendation is to use anyway, no conflict will arise.
-
-- `CsmVideoDxe.efi`
-Video driver for providing a wider set of resolutions than the ones present in UEFI for (option B).
-
------
-## Third party drivers
-
-**Rev 4540**
-- `ApfsDriverLoader`
-New driver developed by savvas: https://github.com/acidanthera/ApfsSupportPkg/releases
-
-You may exclude private apfs.efi from drivers64UEFI folder and place here the driver ApfsDriverLoader.efi.
-It performs loading the driver from APFS container by DiskIO protocol.
-The driver is open source but located not in Clover repository and at link above. It contains macbuild.tool for those who want to compile by themselves.
-
-**Rev 4645**
-The project ApfsSupportPkg is renamed to AppleSupportPkg because of broaden functionality. By Savvas.
-
-- `AptioMemoryFix`
-Fork of the original [OSxAptioFixDrv](https://sourceforge.net/p/cloverefiboot/code/HEAD/tree/OsxAptioFixDrv/) by savvas: https://github.com/acidanthera/AptioFixPkg
-
-**Rev 4550**
-Drivers `AptioMemoryFix` and `ApfsDriverLoader` will be download from github/releases automatically during build
-
-```
--&amp;gt; Downloading AptioFix version R21...
-  -&amp;gt; Downloading ApfsSupport version 1.0.2...
-  -&amp;gt; AptioMemoryFix.efi
-  -&amp;gt; AptioInputFix.efi
-  -&amp;gt; ApfsDriverLoader.efi
-Copy Applications:
-  -&amp;gt; bdmesg.efi
-Done!
-```
-If you want your own compilation, then use key: `./ebuild.sh --no-ext`
+
+
+   
+       
+           
+       
+
+&lt;table style="border-collapse: collapse;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
+           &lt;div style="text-align: left;"&gt;
+               &lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/Home"&gt;
+                   &lt;b&gt;&amp;lt; Home
+                   &lt;/b&gt;
+               &lt;/a&gt;
+           &lt;/div&gt;&lt;/td&gt;&lt;td&gt;
+               &lt;div style="text-align: right;"&gt;
+                   &lt;a href="https://sourceforge.net/p/cloverefiboot/wiki/What-is-what"&gt;
+                       &lt;b&gt;What is what &amp;gt;&lt;/b&gt;
+                   &lt;/a&gt;
+               &lt;/div&gt;
+           &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">arsradu</dc:creator><pubDate>Tue, 23 Apr 2019 16:50:14 -0000</pubDate><guid>https://sourceforge.net8b5e9cea43b99902d13ef75326149202ea290f1a</guid></item><item><title>Technical-Background modified by apianti</title><link>https://sourceforge.net/p/cloverefiboot/wiki/Technical-Background/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -146,10 +146,8 @@
                     - 10.13:
                     - 10.14:
                     - Other:
-                - drivers32:
-                - drivers64:
-                - drivers32UEFI:
-                - drivers64UEFI:
+                - UEFI:
+                    - config.plist
         - tools:
             - Shell32.efi
             - Shell64.efi
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">apianti</dc:creator><pubDate>Sun, 14 Apr 2019 22:54:48 -0000</pubDate><guid>https://sourceforge.netd509e3dbb96b84c5264fba2e8bad60eceeee5ea4</guid></item><item><title>Technical-Background modified by apianti</title><link>https://sourceforge.net/p/cloverefiboot/wiki/Technical-Background/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -28,3 +28,246 @@
 7. It is necessary to fill certain data in EFI/Platform through the DataHub protocol, which is absent in DUET and not always present in UEFI. Furthermore, the utterly important FSBFrequency value, which sometimes is wrong or completely missing, is set.
 8. The CPU must be correctly initialized before working, but as motherboards are made universal to match a big amount of different CPUs, the internal tables do not contain any correct CPU data. Clover performs a full detection of the installed CPU, corrects the tables and the CPU itself. One side effect is a working turbo mode.
 9. One more small thing: DUET and EDK2 sources are written universally to match different hardware but the hardware dependency itself depends on constants. This implies a compilation process for one specific platform. Clover aims to be universal and to provide an automatic platform detection.
+
+-----
+# Booting with Clover
+
+When booting or restarting a PC, Clover loads operating system as follows:
+
+**Option A**: BIOS-based PC (old motherboards)
+
+`BIOS`&amp;gt;`MBR`&amp;gt;`PBR`&amp;gt;`boot`&amp;gt;`CLOVERX64.efi`&amp;gt;`OSLoader`
+
+OSLoader is *boot.efi* in case of macOS and *bootmgfw.efi* in case of Windows.
+
+**Option B**: UEFI-based PC (newer motherboard)
+
+`UEFI`&amp;gt;`CLOVERX64.efi`&amp;gt;`OSLoader`
+
+In order to boot as described in the two variants above the boot files must be located in the following places:
+
+-----
+## MBR sector
+
+Master Boot Record (MBR) is the boot sector in the very beginning of a storage device (HDD, SSD, CD/DVD or any kind of USB storage device like USB stick, USB-HDD, etc.). The first 440 bytes contain data from one of the following:
+
+- `boot0` - searches for an active partition in the MBR and passes control to its PBR sector. Hybrid GPT/MBR layout is possible. However if the filesystem is pure GPT, `boot0` passes control to the EFI system partition, further referred to as boot0af (active first).
+- `boot0hfs` - searches for the first HFS+ partition - that would be a partition with signature (type) 0xAF. If it contains an OS X installation, control is passed to its PBR. This way the system can be booted from a HFS+ partition on a GPT partitioned drive, however the limitation is that OS X partition may only be the first partition on the disc. Further referred to as boot0ss (scan signature).
+- `boot0ab` - searches for a partition with signature 0xAB - Apple Boot Partition.
+- `boot0md` - combined variant which searches multiple drives for a HFS+ partition, not just the main one.
+
+-----
+## PBR sector
+
+Partition Boot Record (PBR) is a boot sector located in the beginning of each partition on a storage device. The phase two loader is stored here. PBR has the information of its partition's file system and may find and load the *boot* file and pass the control to it. Different variants exist according to the filesystem type:
+
+- `boot1h2` - supports HFS+ with a boot file size of up to 472kb. The old variant (boot1h) which is bundled with "Chameleon" boot loader only supports 440kb boot file (while 472kb are needed). This boot file pauses for two seconds providing an option to switch loaders.
+- `boot1h` - same as above, but without the 2 sec pause.
+- `boot1f32alt` - supports FAT32. This file system is able to be written at the booting stage thus very well suited for boot loader installation. It is possible to use it as a EFI system partition or on a USB flash drive (USB sticks are usually sold pre-formatted in FAT32). It also gives a pause for two seconds.
+- `boot1f32` - same as above without the pause.
+
+Additionally they provide another useful functionality. During the two second pause a number key can be pressed on the keyboard to run a specific loader. Pressing key "1" will start file boot1, pressing "3" will start boot3 and pressing "6" starts boot6. This way a number of different loaders can be kept in one place, e.g:
+
+- boot - Clover, recent or testing version
+- boot1 - Chameleon
+- boot3 - Clover 32-bit, tested and working version
+- boot6 - Clover 64-bit, tested and working version
+- boot7 - Clover 64-bit with BiosBlockIO driver that works with any controller supported by the BIOS.
+
+Apart from these variants the PBR may contain the Windows boot manager (being able to handle NTFS), GRUB (being able to handle EXT4) and other boot loaders not related to Clover - at least at the moment.
+
+-----
+## CloverEFI
+
+In Chameleon, the boot file is a complete bootloader. Clover however, contains the whole UEFI system and a boot service for passing control to the next phase (option A). Alternatively, all this is supposed to be contained in the PC motherboard ROM (option B). In reality, however, this is not always the case and some other parts need to be loaded additionally in order to boot the OS. In contrast to the earlier stages, different boot files are designed for PCs of different bit-size, i.e. there are different variants for loading 32-bit and 64-bit operating systems. Usually it is advised to choose 64-bit loader for 64-bit CPUs. However if you work with a 32-bit OS, it makes sense to load it with a 32-bit (U)EFI. It is 20% smaller, slightly faster, but not compatible with Windows 7 (U)EFI - you can only load 64-bit Windows with it. In general the boot file is a modified variant of DUET with barely 1% of changes. Nonetheless, this 1% makes the big difference - Clover manages to do what it is designed for. If anyone assumes that adding AppleSim to DUET is enough, well, good luck then! This is by far not enough. DUET can be compiled for one specific computer defined by its PCD constants but Clover needs to work for everyone. I have no intention to explain the details, the work is already done. Further this program will be referred to as CloverEFI.
+
+-----
+## CloverIA32.efi and CloverX64.efi or CloverGUI
+
+This file - available in two variants for two different bit sizes - represents the graphical interface of the loader. It is used for selecting the operating system be loaded, tweaking settings, loading additional drivers and finally for loading the OS. Graphics and the menu are based on the rEFIt project, which is reflected on the according directory name and the *About* screen. Currently the original part of rEFIt codebase (partially fixed) takes about 10% of the whole program.
+
+-----
+# Directory structure
+
+The loader needs supporting files. Their directory structure is as follows*(as of v2k r2334)*:
+
+- EFI:
+    - BOOT:
+        - BOOTX64.efi
+    - CLOVER:
+        - ACPI:
+            - origin:
+            - patched:
+                - DSDT.aml
+            - WINDOWS:
+                - SLIC.aml
+        - CLOVERIA32.efi
+        - CLOVERX64.efi
+        - themes:
+        - config.plist
+        - drivers32:
+            - FSInject-32.efi
+        - drivers64:
+            - FSInject-64.efi
+        - drivers32UEFI:
+            - CsmVideoDxe-32.efi
+        - drivers64UEFI:
+            - CsmVideoDxe-64.efi
+            - DataHubDxe-64.efi
+            - OsxAptioFixDrv-64.efi
+            - OsxFatBinaryDrv-64.efi
+            - PartitionDxe-64.efi
+        - kexts:
+            - 10.6:
+            - 10.7:
+            - 10.8:
+            - 10.9:
+            - 10.10:
+            - 10.11:
+            - 10.12:
+            - 10.13:
+            - 10.14:
+            - Other:
+        - misc:
+        - OEM:
+            - SystemProductName:
+                - ACPI:
+                    - origin:
+                    - patched:
+                - config.plist
+                - kexts:
+                    - 10.6:
+                    - 10.7:
+                    - 10.8:
+                    - 10.9:
+                    - 10.10:
+                    - 10.11:
+                    - 10.12:
+                    - 10.13:
+                    - 10.14:
+                    - Other:
+                - drivers32:
+                - drivers64:
+                - drivers32UEFI:
+                - drivers64UEFI:
+        - tools:
+            - Shell32.efi
+            - Shell64.efi
+            - Shell64U.efi
+
+I.e. the file *CLOVERX64.efi* needs to be in the folder */EFI/CLOVER/*, the font *WoB_PTMono_10W_NA.png* in */EFI/CLOVER/themes/black_green/*, etc. Usually these and other folders have more content. The purpose of specific files will be described later.
+
+**The purpose of the directory /EFI/CLOVER/OEM/**
+It is designated to store different configurations. A typical situation involves a bootable USB flash drive with multiple configurations. Besides the common */EFI/CLOVER/config.plist*, it may contain a */EFI/CLOVER/OEM/Inspiron 1525/config.plist* or a */EFI/CLOVER/OEM/H61M-S1/UEFI/config.plist* and additionally different customised DSDT.aml tables, unique for each PC.
+The folder's name is deduced from the SMBIOS and can be viewed in *preboot.log*, which you can store into the folder */EFI/CLOVER/misc* by pressing F2 on the Clover boot screen. The following is the case of Inspiron 1525 with Clover r1709:
+
+```
+10:061  0:000  Clover revision: 1709  running on Inspiron 1525 
+10:061  0:000  ... with board 0U990C
+```
+
+In case of desktops, the following will have been logged. Eg. Gigabyte Z68MX-UD2H-B3 with Clover r2334 when SystemProductName is not defined:
+
+```
+0:100  0:000  Clover revision: 2334  running on To be filled by O.E.M. 
+0:100  0:000  ... with board Z68MX-UD2H-B3 
+```
+
+The system name is listed in the first line and the motherboard model in the second. While notebooks can usually be identified with the system name, desktop systems are identified with the motherboard model. Choose the variant you are more comfortable with. Furthermore, your configuration directory may contain a 
+
+UEFI
+
+folder to differentiate between a UEFI (option B) and a legacy boot (option A) on one computer (whoever may need it).
+
+-----
+# (U)EFI drivers
+
+The directories drivers32, drivers64 are used for BIOS booting according to (option A) and drivers64UEFI for UEFI booting (option B). Their content will be different depending on the BIOS revision and on the configuration setup.
+It is worth mentioning that these drivers are only effective while the boot loader is working. They have no impact on a loaded OS.
+
+It is up to the user to decide which drivers are needed and which not.
+
+-----
+## Built-in drivers
+
+- `AudioDxe.efi`
+Audio interface in Clover GUI based on GoldFish64's implementation to playback boot sound: https://github.com/Goldfish64/AudioPkg
+In recent versions of Clover, this  can be configured directly from [Clover GUI itself](https://sourceforge.net/p/cloverefiboot/wiki/GUI/#startup-sound-configuration-ui). Original implementation relied on `BootChimeCfg.efi` to configure/adjust audio outputs and volume.
+
+It requires a sound.wav file (44100Hz, 16bps, recent versions also accept 8000Hz) placed inside the selected theme.
+
+More info [**here**](https://www.insanelymac.com/forum/topic/304530-clover-change-explanations/?do=findComment&amp;amp;comment=2657187).
+
+- `NTFS.efi`
+NTFS file system driver. Provides the possibility to load Windows EFI.
+
+- `HFSPlus.efi`
+HFS+ file system driver. Necessary for booting Mac OS X with (option B). Already present in the boot file when using (option A).
+
+- `VBoxHFS.efi`
+Legal alternative for HFSPlus.efi. May be slower.
+
+- `VBoxExt2.efi`
+EXT2/3 file system driver. Necessary for booting Linux EFI.
+
+- `VBoxExt4.efi`
+EXT4 file system driver. Necessary for booting Linux EFI.
+
+- `FSInject.efi`
+Takes control of the file system for the possibility to inject external kexts into the system. See [WithKexts](https://sourceforge.net/p/cloverefiboot/wiki#boot-args) for a detailed explanation.
+
+- `PartitionDxe.efi`
+Already present in CloverEFI and in UEFI, however neither optimised for Apple partitions, nor for GPT/MBR. Most probably necessary for (option B).
+
+- `OsxFatBinaryDrv.efi`
+Enables starting of FAT modules like boot.efi. Necessary for (option B).
+
+- `OsxAptioFixDrv.efi`
+Fixes memory map created by AMI Aptio EFI. Booting OS X is impossible otherwise.
+
+- `OswLowMemFix.efi`
+Simplified variant of OsxAptioFixDrv. Do not use both simultaneously.
+
+- `Usb*.efi`, `UHCI.efi`, `EHCI.efi`, `XHCI.efi`
+Set of drivers for the case when built-in driver do not work well with (option B) because a dependancy might have been cut off.
+
+- `PS2Mouse*.efi`, `PS2MouseAbsolute*.efi`, `UsbMouse*.efi`
+Set of drivers for mouse/trackpad/touchpad support in CloverGUI. They have no effect on the OS.
+
+- `DataHubDxe.efi`
+Already present in CloverEFI and possibly in UEFI. The recommendation is to use anyway, no conflict will arise.
+
+- `CsmVideoDxe.efi`
+Video driver for providing a wider set of resolutions than the ones present in UEFI for (option B).
+
+-----
+## Third party drivers
+
+**Rev 4540**
+- `ApfsDriverLoader`
+New driver developed by savvas: https://github.com/acidanthera/ApfsSupportPkg/releases
+
+You may exclude private apfs.efi from drivers64UEFI folder and place here the driver ApfsDriverLoader.efi.
+It performs loading the driver from APFS container by DiskIO protocol.
+The driver is open source but located not in Clover repository and at link above. It contains macbuild.tool for those who want to compile by themselves.
+
+**Rev 4645**
+The project ApfsSupportPkg is renamed to AppleSupportPkg because of broaden functionality. By Savvas.
+
+- `AptioMemoryFix`
+Fork of the original [OSxAptioFixDrv](https://sourceforge.net/p/cloverefiboot/code/HEAD/tree/OsxAptioFixDrv/) by savvas: https://github.com/acidanthera/AptioFixPkg
+
+**Rev 4550**
+Drivers `AptioMemoryFix` and `ApfsDriverLoader` will be download from github/releases automatically during build
+
+```
+-&amp;gt; Downloading AptioFix version R21...
+  -&amp;gt; Downloading ApfsSupport version 1.0.2...
+  -&amp;gt; AptioMemoryFix.efi
+  -&amp;gt; AptioInputFix.efi
+  -&amp;gt; ApfsDriverLoader.efi
+Copy Applications:
+  -&amp;gt; bdmesg.efi
+Done!
+```
+If you want your own compilation, then use key: `./ebuild.sh --no-ext`
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">apianti</dc:creator><pubDate>Sun, 14 Apr 2019 22:53:19 -0000</pubDate><guid>https://sourceforge.nete30e379900f05807386a422e11a24977086ed07e</guid></item></channel></rss>