patches and low-level development discussion
 help / color / mirror / code / Atom feed
From: Ville Ilvonen <ville.ilvonen@unikie.com>
To: Alyssa Ross <hi@alyssa.is>, devel@spectrum-os.org
Cc: Yuriy Nesterov <yuriy.nesterov@unikie.com>
Subject: Re: [PATCH] scripts/make-gpt.sh: reserve 8 MiB at start of GPT
Date: Mon, 26 Sep 2022 18:06:16 +0300	[thread overview]
Message-ID: <bef447b6-2419-8492-546e-78d382c7d7ef@unikie.com> (raw)
In-Reply-To: <20220826130923.1840670-1-hi@alyssa.is>

On 8/26/22 16:09, Alyssa Ross wrote:
> In some cases (e.g. a product built on Spectrum where updates to both
> firmware and OS are delivered by the same vendor), it makes sense to
> include firmware in the same image as the OS.  This firmware tends to
> live in the start of the image, after the GPT header.  (The exact
> location varies by board.)
> 
> The 1 MiB reserved by sfdisk by default is not enough for this.  The
> conventional value seems to be 8 MiB.  On NixOS, this is configurable
> with the sdImage.firmwarePartitionOffset option, but this defaults to
> 8 MiB and I wasn't able to find any examples in searches on DuckDuckGo
> and GitHub of anybody using any other value, so it looks like 8 MiB is
> broadly acceptable.
> 
> Signed-off-by: Alyssa Ross <hi@alyssa.is>
> ---

Thanks, this is an enabler for cross-compilation build configs for imx8 
boards. Works as intended to enable the image building using
https://github.com/tiiuae/spectrum-config-imx8 for imx8qxp but
requires more patch(es) to Spectrum img/live/Makefile (pending).

Testing

Without:
1527808 bytes (1.5 MB, 1.5 MiB) copied, 0.00650894 s, 235 MB/s
init: sector size too big
Cannot initialize '::'
Bad target ::/

With:
1527808 bytes (1.5 MB, 1.5 MiB) copied, 0.00981576 s, 156 MB/s
/nix/store/609b8cnks906dkpcq8hn6v0b1farbis2-spectrum-live-imx8qxp.img-0.1

Tested-by: Ville Ilvonen <ville.ilvonen@unikie.com>

-Ville


> Yuriy, if you'd like to test this patch, here's some documentation
> about how to do that. :)
> 
> https://spectrum-os.org/doc/testing-patches.html
> 
>   scripts/make-gpt.sh | 9 ++++++---
>   1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/make-gpt.sh b/scripts/make-gpt.sh
> index 56076d3..55f38d6 100755
> --- a/scripts/make-gpt.sh
> +++ b/scripts/make-gpt.sh
> @@ -1,12 +1,13 @@
>   #!/bin/sh -eu
>   #
>   # SPDX-FileCopyrightText: 2021-2022 Alyssa Ross <hi@alyssa.is>
> +# SPDX-FileCopyrightText: 2022 Unikie
>   # SPDX-License-Identifier: EUPL-1.2+
>   #
>   # usage: make-gpt.sh GPT_PATH PATH:PARTTYPE[:PARTUUID]...
>   
>   ONE_MiB=1048576
> -TWO_MiB=2097152
> +NINE_MiB=9437184
>   
>   # Prints the number of 1MiB blocks required to store the file named
>   # $1.  We use 1MiB blocks because that's what sfdisk uses for
> @@ -41,8 +42,9 @@ shift
>   nl=$'\n'
>   table="label: gpt"
>   
> -# Keep 1MiB free at the start, and 1MiB free at the end.
> -gptBytes=$TWO_MiB
> +# Keep 8MiB free at the start (to provide space for firmware if
> +# required), and 1MiB free at the end.
> +gptBytes=$NINE_MiB
>   for partition; do
>   	sizeMiB="$(sizeMiB "$(partitionPath "$partition")")"
>   	table="$table${nl}size=${sizeMiB}MiB,$(awk -f "$scriptsDir/sfdisk-field.awk" -v partition="$partition")"
> @@ -52,6 +54,7 @@ done
>   rm -f "$out"
>   truncate -s "$gptBytes" "$out"
>   sfdisk "$out" <<EOF
> +first-lba: 16384
>   $table
>   EOF
>   



      parent reply	other threads:[~2022-09-26 15:06 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-26 13:09 [PATCH] scripts/make-gpt.sh: reserve 8 MiB at start of GPT Alyssa Ross
2022-08-28 16:49 ` Alyssa Ross
2022-09-26 15:06 ` Ville Ilvonen [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bef447b6-2419-8492-546e-78d382c7d7ef@unikie.com \
    --to=ville.ilvonen@unikie.com \
    --cc=devel@spectrum-os.org \
    --cc=hi@alyssa.is \
    --cc=yuriy.nesterov@unikie.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://spectrum-os.org/git/crosvm
	https://spectrum-os.org/git/doc
	https://spectrum-os.org/git/mktuntap
	https://spectrum-os.org/git/nixpkgs
	https://spectrum-os.org/git/spectrum
	https://spectrum-os.org/git/ucspi-vsock
	https://spectrum-os.org/git/www

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).