From: Alexandre Courbot <acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
To: Ben Skeggs <bskeggs-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Subject: [PATCH v3 09/15] secboot: add LS flags to LS func structure
Date: Wed, 2 Nov 2016 15:02:50 +0900 [thread overview]
Message-ID: <20161102060256.14341-10-acourbot@nvidia.com> (raw)
In-Reply-To: <20161102060256.14341-1-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Add a flag that can be set when declaring how a LS firmware should be
loaded. This allows us to remove falcon-specific code in the loader.
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
---
drm/nouveau/nvkm/subdev/secboot/acr_r352.c | 9 ++++-----
drm/nouveau/nvkm/subdev/secboot/acr_r352.h | 2 ++
drm/nouveau/nvkm/subdev/secboot/acr_r361.c | 2 ++
3 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/drm/nouveau/nvkm/subdev/secboot/acr_r352.c b/drm/nouveau/nvkm/subdev/secboot/acr_r352.c
index 7af7866ab1ec..058386720a14 100644
--- a/drm/nouveau/nvkm/subdev/secboot/acr_r352.c
+++ b/drm/nouveau/nvkm/subdev/secboot/acr_r352.c
@@ -265,13 +265,10 @@ ls_ucode_img_fill_headers(struct acr_r352 *acr, struct ls_ucode_img *img,
desc->app_resident_data_offset;
lhdr->app_data_size = desc->app_resident_data_size;
- lhdr->flags = 0;
+ lhdr->flags = func->lhdr_flags;
if (img->falcon_id == acr->base.func->boot_falcon)
- lhdr->flags = LSF_FLAG_DMACTL_REQ_CTX;
+ lhdr->flags |= LSF_FLAG_DMACTL_REQ_CTX;
- /* GPCCS will be loaded using PRI */
- if (img->falcon_id == NVKM_FALCON_GPCCS)
- lhdr->flags |= LSF_FLAG_FORCE_PRIV_LOAD;
/* Align and save off BL descriptor size */
lhdr->bl_data_size = ALIGN(func->bl_desc_size, LSF_BL_DATA_SIZE_ALIGN);
@@ -867,6 +864,8 @@ acr_r352_ls_gpccs_func = {
.load = acr_ls_ucode_load_gpccs,
.generate_bl_desc = acr_r352_generate_flcn_bl_desc,
.bl_desc_size = sizeof(struct acr_r352_flcn_bl_desc),
+ /* GPCCS will be loaded using PRI */
+ .lhdr_flags = LSF_FLAG_FORCE_PRIV_LOAD,
};
const struct acr_r352_func
diff --git a/drm/nouveau/nvkm/subdev/secboot/acr_r352.h b/drm/nouveau/nvkm/subdev/secboot/acr_r352.h
index 40c9619b4693..f6068404ba98 100644
--- a/drm/nouveau/nvkm/subdev/secboot/acr_r352.h
+++ b/drm/nouveau/nvkm/subdev/secboot/acr_r352.h
@@ -52,12 +52,14 @@ struct hsf_load_header {
* @generate_bl_desc: function called on a block of bl_desc_size to generate the
* proper bootloader descriptor for this LS firmware
* @bl_desc_size: size of the bootloader descriptor
+ * @lhdr_flags: LS flags
*/
struct acr_r352_ls_func {
int (*load)(const struct nvkm_subdev *, struct ls_ucode_img *);
void (*generate_bl_desc)(const struct nvkm_acr *,
const struct ls_ucode_img *, u64, void *);
u32 bl_desc_size;
+ u32 lhdr_flags;
};
/**
diff --git a/drm/nouveau/nvkm/subdev/secboot/acr_r361.c b/drm/nouveau/nvkm/subdev/secboot/acr_r361.c
index ce22fff45991..1e3c62d1e7ac 100644
--- a/drm/nouveau/nvkm/subdev/secboot/acr_r361.c
+++ b/drm/nouveau/nvkm/subdev/secboot/acr_r361.c
@@ -113,6 +113,8 @@ acr_r361_ls_gpccs_func = {
.load = acr_ls_ucode_load_gpccs,
.generate_bl_desc = acr_r361_generate_flcn_bl_desc,
.bl_desc_size = sizeof(struct acr_r361_flcn_bl_desc),
+ /* GPCCS will be loaded using PRI */
+ .lhdr_flags = LSF_FLAG_FORCE_PRIV_LOAD,
};
const struct acr_r352_func
--
2.10.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
next prev parent reply other threads:[~2016-11-02 6:02 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-02 6:02 [PATCH v3 00/15] Secure Boot refactoring Alexandre Courbot
[not found] ` <20161102060256.14341-1-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2016-11-02 6:02 ` [PATCH v3 01/15] core: constify nv*_printk macros Alexandre Courbot
2016-11-02 6:02 ` [PATCH v3 02/15] core: add falcon library Alexandre Courbot
2016-11-02 6:02 ` [PATCH v3 03/15] secboot: use falcon library's IMEM/DMEM loading functions Alexandre Courbot
2016-11-02 6:02 ` [PATCH v3 04/15] secboot: rename init() hook to oneinit() Alexandre Courbot
2016-11-02 6:02 ` [PATCH v3 05/15] secboot: remove fixup_hs_desc hook Alexandre Courbot
2016-11-02 6:02 ` [PATCH v3 06/15] secboot: add low-secure firmware hooks Alexandre Courbot
2016-11-02 6:02 ` [PATCH v3 07/15] secboot: generate HS BL descriptor in hook Alexandre Courbot
2016-11-02 6:02 ` [PATCH v3 08/15] secboot: reorganize into more files Alexandre Courbot
2016-11-02 6:02 ` Alexandre Courbot [this message]
2016-11-02 6:02 ` [PATCH v3 10/15] secboot: split reset function Alexandre Courbot
2016-11-02 6:02 ` [PATCH v3 11/15] secboot: disable falcon interrupts before running Alexandre Courbot
2016-11-02 6:02 ` [PATCH v3 12/15] secboot: remove unneeded ls_ucode_img member Alexandre Courbot
2016-11-02 6:02 ` [PATCH v3 13/15] secboot: remove ls_ucode_mgr Alexandre Courbot
2016-11-02 6:02 ` [PATCH v3 14/15] secboot: abstract LS firmware loading functions Alexandre Courbot
2016-11-02 6:02 ` [PATCH v3 15/15] secboot: safer zeroing of BL descriptors Alexandre Courbot
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=20161102060256.14341-10-acourbot@nvidia.com \
--to=acourbot-ddmlm1+adcrqt0dzr+alfa@public.gmane.org \
--cc=bskeggs-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
/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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.