Supporting new interfaces in phosphor-ipmi-flash
Andrew Jeffery
andrew at aj.id.au
Mon Feb 1 10:19:10 AEDT 2021
On Thu, 28 Jan 2021, at 17:59, Troy Lee wrote:
> Hi Andrew,
>
> The 01/28/2021 07:14, Andrew Jeffery wrote:
> >
> >
> > On Wed, 27 Jan 2021, at 20:13, Troy Lee wrote:
> > > Hi team,
> > >
> > > For security consideration, user might want to disable AST2500/AST2600
> > > P2A functionality by default. To compensate the effect to
> > > phosphor-ipmi-flash, we're planning to support two alternative in-band
> > > firmware upgrade over PCIe for AST2500/AST2600 (AST2520 and AST2620 are
> > > excluded):
> > > - Through a reserved **VGA** memory on BAR[0], or
> > > - Through a reserved **PCIe** shared memory on BAR[1]
> > >
> > > The usage pretty much the same as P2A, but it runs on different BAR,
> > > offset and length.
> > > This will involves modifying phosphor-ipmi-flash/[tools|bmc]. Should I
> > > create new **interfaces**, e.g. astpcie/astvga?
> > >
> >
> > This is the HOST2BMC functionality in the 2600 datasheet?
> >
> > It would be great to have more detail on how it works.
> >
> > Andrew
>
> No, it doesn't use HOST2BMC interface, it uses VGA controller's mmio.
> Perhaps HOST2BMC is also a possible solution, too.
>
> 02:00.0 0300: 1a03:2000 (rev 51) (prog-if 00 [VGA controller])
> Subsystem: 1a03:2000
> Flags: bus master, medium devsel, latency 0, IRQ 16
> Memory at f6000000 (32-bit, non-prefetchable) [size=16M] <--- Option 1
> Memory at f7040000 (32-bit, non-prefetchable) [size=128K] <--- Option 2
> I/O ports at e000 [size=128]
> Expansion ROM at 000c0000 [disabled] [size=128K]
> Capabilities: [40] Power Management version 3
> Capabilities: [50] MSI: Enable- Count=1/4 Maskable- 64bit+
> Kernel driver in use: ast
> Kernel modules: ast
>
> Option 1 allocates a 1MB memory from the end of VGA memory, so it will
> need some change to VBIOS.
>
> Option 2 allocates a 4K memory from BMC memory space. Since the buffer
> is smaller, the ipmi-blob protocol overhead will be greater.
>
Okay. So for Option 2 we need to coordinate on the BMC by reserving memory in
the devicetree. What's the plan there? Where's that going to be documented?
Andrew
More information about the openbmc
mailing list