mbox series

[v2,0/2] arm64: Support HP Envy X2

Message ID 20181223025207.40755-1-agraf@suse.de
Headers show
Series arm64: Support HP Envy X2 | expand

Message

Alexander Graf Dec. 23, 2018, 2:52 a.m. UTC
I got a new toy this week: An HP Envy X2 system. This is one of those shiny
new Qualcomm Snapdragon based Windows tablet/notebook hybrid things.

While running Windows on those is actually not a terribly bad experience now
that WSL is out, I would like to see Linux run on those as well in the future.

Unfortunately as far as I'm aware so far nobody was able to run self built
binaries on the built-in UEFI version.

Turns out, it's a problem with aligning the start of the header to 4k. Once
we do that, binaries can be loaded just fine and run.

The reason behind that is simple: Its firmware tries to ensure NX protection
flags and can do so only when the code is 4K aligned.

So to maintain compatibility with that device, this patch set just bumps the
header alignment to 4K always on arm64-efi. This way we improve overall
compatibility - there surely will be more devices coming with similar
constraints.

v1 -> v2:

  - Remove explicit device wording from patch
  - Use GRUB_EFI_PAGE_SIZE

Alexander Graf (2):
  mkimage: Simplify header size logic
  mkimage: arm64-efi: Align first section to page

 util/mkimage.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

-- 
2.12.3


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Comments

Leif Lindholm Jan. 7, 2019, 9:58 a.m. UTC | #1
On Sun, Dec 23, 2018 at 03:52:05AM +0100, Alexander Graf wrote:
> I got a new toy this week: An HP Envy X2 system. This is one of those shiny

> new Qualcomm Snapdragon based Windows tablet/notebook hybrid things.

> 

> While running Windows on those is actually not a terribly bad experience now

> that WSL is out, I would like to see Linux run on those as well in the future.

> 

> Unfortunately as far as I'm aware so far nobody was able to run self built

> binaries on the built-in UEFI version.

> 

> Turns out, it's a problem with aligning the start of the header to 4k. Once

> we do that, binaries can be loaded just fine and run.

> 

> The reason behind that is simple: Its firmware tries to ensure NX protection

> flags and can do so only when the code is 4K aligned.

> 

> So to maintain compatibility with that device, this patch set just bumps the

> header alignment to 4K always on arm64-efi. This way we improve overall

> compatibility - there surely will be more devices coming with similar

> constraints.

> 

> v1 -> v2:

> 

>   - Remove explicit device wording from patch

>   - Use GRUB_EFI_PAGE_SIZE


Looks good to me, thanks!
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

Tested-by: Leif Lindholm <leif.lindholm@linaro.org>


> Alexander Graf (2):

>   mkimage: Simplify header size logic

>   mkimage: arm64-efi: Align first section to page

> 

>  util/mkimage.c | 8 +++-----

>  1 file changed, 3 insertions(+), 5 deletions(-)

> 

> -- 

> 2.12.3

> 


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel