BootloadersIncompatibleWithLinux » History » Version 5
Denis 'GNUtoo' Carikli, 03/18/2020 03:44 PM
1 | 1 | Denis 'GNUtoo' Carikli | h1. MidasBootloaderIncompatibleWithLinux |
---|---|---|---|
2 | |||
3 | h2. Introduction |
||
4 | |||
5 | 3 | Denis 'GNUtoo' Carikli | The bootloader of the following devices is incompatible with upstream Linux: |
6 | 1 | Denis 'GNUtoo' Carikli | * Galaxy SIII (GT-I9300) |
7 | * Galaxy SIII 4G (GT-I9305) |
||
8 | * Galaxy Note II (GT-N7100) |
||
9 | * Galaxy Note II 4G (GT-N7105) |
||
10 | |||
11 | When jumping to Linux, the booloader still has: |
||
12 | * the instruction cache on |
||
13 | * the data cache on |
||
14 | * the MMU on |
||
15 | 2 | Denis 'GNUtoo' Carikli | |
16 | "Documentation/arm/booting.rst":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/arm/booting.rst which is there "since 2003":https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/commit/?h=v2.6.0&id=c90594cab75e043c6651f4c3d7218bd67dc4005f states that: |
||
17 | * "The MMU must be off." |
||
18 | 1 | Denis 'GNUtoo' Carikli | * "Data cache must be off." |
19 | 3 | Denis 'GNUtoo' Carikli | |
20 | 5 | Denis 'GNUtoo' Carikli | And upstream Linux "won't accept patches":https://www.openwall.com/lists/kernel-hardening/2019/06/14/9 to disable the MMU, or the data cache in Linux as they have very good reasons to do that, and they are supposed to be already disabled. |
21 | |||
22 | 3 | Denis 'GNUtoo' Carikli | h2. Supporting s-boot |
23 | |||
24 | To workaround that: |
||
25 | * "to disable the caches":https://git.replicant.us/contrib/replicant-9/kernel_replicant_linux/commit/?id=85006537f34367710e7c9ae4aa0791ca5101ef46 |
||
26 | 4 | Denis 'GNUtoo' Carikli | * "to disable CONFIG_GCC_PLUGINS":https://www.openwall.com/lists/kernel-hardening/2019/06/14/4 or "CONFIG_STACKPROTECTOR_PER_TASK":https://www.openwall.com/lists/kernel-hardening/2019/06/14/6 |
27 | 3 | Denis 'GNUtoo' Carikli | |
28 | However as the kernel evolved we need to patch it more and more: |
||
29 | * The patch disabling the caches "was not necessary on Linux 3.4":lkml.iu.edu/hypermail/linux/kernel/1212.1/02099.html |
||
30 | * Disabling CONFIG_GCC_PLUGINS was also not necessary on older kernel where the option was not even present |