
On Thu, 2020-04-30 at 15:31 +0200, Mark Kettenis wrote:
From: Nicolas Saenz Julienne nsaenzjulienne@suse.de Date: Thu, 30 Apr 2020 15:04:32 +0200
On the Raspberry Pi 4, after a PCI reset, VL805's (a xHCI chip) firmware may either be loaded directly from an EEPROM or, if not present, by the SoC's VideoCore (the SoC's co-processor). Introduce the function that informs VideoCore that VL805 may need its firmware loaded.
Signed-off-by: Nicolas Saenz Julienne nsaenzjulienne@suse.de
Changes since v1:
- Rename function so it's not mistaken with regular firmware loading
arch/arm/mach-bcm283x/include/mach/mbox.h | 13 +++++++ arch/arm/mach-bcm283x/include/mach/msg.h | 7 ++++ arch/arm/mach-bcm283x/msg.c | 43 +++++++++++++++++++++++ 3 files changed, 63 insertions(+)
diff --git a/arch/arm/mach-bcm283x/include/mach/mbox.h b/arch/arm/mach- bcm283x/include/mach/mbox.h index 60e226ce1d..2ae2d3d97c 100644 --- a/arch/arm/mach-bcm283x/include/mach/mbox.h +++ b/arch/arm/mach-bcm283x/include/mach/mbox.h @@ -491,6 +491,19 @@ struct bcm2835_mbox_tag_set_palette { } body; };
+#define BCM2835_MBOX_TAG_NOTIFY_XHCI_RESET 0x00030058
+struct bcm2835_mbox_tag_pci_dev_addr {
- struct bcm2835_mbox_tag_hdr tag_hdr;
- union {
struct {
u32 dev_addr;
} req;
struct {
} resp;
- } body;
+};
/*
- Pass a raw u32 message to the VC, and receive a raw u32 back.
diff --git a/arch/arm/mach-bcm283x/include/mach/msg.h b/arch/arm/mach- bcm283x/include/mach/msg.h index 4afb08631b..e45c1bf010 100644 --- a/arch/arm/mach-bcm283x/include/mach/msg.h +++ b/arch/arm/mach-bcm283x/include/mach/msg.h @@ -48,4 +48,11 @@ int bcm2835_set_video_params(int *widthp, int *heightp, int depth_bpp, int pixel_order, int alpha_mode, ulong *fb_basep, ulong *fb_sizep, int *pitchp);
+/**
- bcm2711_load_vl805_firmware() - get vl805's firmware loaded
- @return 0 if OK, -EIO on error
- */
+int bcm2711_notify_vl805_reset(void);
Now the comment and function prototype don't agree :(.
Aargh, went too fast... I'll fix it on the next revision.
Regards, Nicolas