Hi Adam, On Sat, Oct 9, 2021 at 1:13 PM Adam Ford <aford173@xxxxxxxxx> wrote: > On Tue, Oct 5, 2021 at 9:30 AM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > > On Fri, Sep 24, 2021 at 7:19 PM Adam Ford <aford173@xxxxxxxxx> wrote: > > > Trusted Firmware allocates a chunk of memory for a lossy compressor > > > which makes the memory unavailable to Linux and any attempts to read/write > > > from Linux result in memory corruption or a crash. Fix this by reserving > > > the section of memory marked as unavailable by TF-A. > > > > > > Fixes: a1d8a344f1ca ("arm64: dts: renesas: Introduce r8a774a1-beacon-rzg2m-kit") > > > Signed-off-by: Adam Ford <aford173@xxxxxxxxx> > > > > Thanks for your patch! > > > > > --- a/arch/arm64/boot/dts/renesas/beacon-renesom-som.dtsi > > > +++ b/arch/arm64/boot/dts/renesas/beacon-renesom-som.dtsi > > > @@ -13,6 +13,17 @@ memory@48000000 { > > > reg = <0x0 0x48000000 0x0 0x78000000>; > > > }; > > > > > > + reserved-memory { > > > + #address-cells = <2>; > > > + #size-cells = <2>; > > > + ranges; > > > + > > > + lossy_decompress: lossy-decompress@54000000 { > > > + reg = <0 0x54000000 0 0x03000000>; /* Reserved by TF-A */ > > > + no-map; > > > + }; > > > + }; > > > + > > > osc_32k: osc_32k { > > > compatible = "fixed-clock"; > > > #clock-cells = <0>; > > > > I believe these days it's the responsibility of TF-A to create these nodes > > in the DTB, and pass that to U-Boot. > > > > What bootloader are you running? > > U-Boot 2021.04 Hmm, that's fairly recent. Marek? > > Does "fdt addr $fdtcontroladdr ; fdt print" show the area as reserved? > > I see the memory nodes, but I don't see any reserved memory being > carved out of it. > > > Does TF-A print something about reserving the memory? > > Yes: > > NOTICE: BL2: DRAM Split is 2ch > NOTICE: BL2: QoS is default setting(rev.0.19) > NOTICE: BL2: DRAM refresh interval 1.95 usec > NOTICE: BL2: Periodic Write DQ Training > NOTICE: BL2: DRAM don't have ECC configuration > NOTICE: BL2: CH0: 400000000 - 47fffffff, 2 GiB > NOTICE: BL2: CH2: 600000000 - 67fffffff, 2 GiB > NOTICE: BL2: Lossy Decomp areas > NOTICE: Entry 0: DCMPAREACRAx:0x80000540 DCMPAREACRBx:0x570 > NOTICE: Entry 1: DCMPAREACRAx:0x40000000 DCMPAREACRBx:0x0 > NOTICE: Entry 2: DCMPAREACRAx:0x20000000 DCMPAREACRBx:0x0 > NOTICE: BL2: FDT at 0xe631e588 OK. > If I set the fdt address to 0xe631e588, I can see the memory nodes: > > => fdt addr 0xe631e588 > => fdt print > / { > compatible = "renesas,beacon", "renesas,r8a774a1"; > #size-cells = <0x00000002>; > #address-cells = <0x00000002>; > reserved-memory { > lossy-decompression@54000000 { > renesas,formats = <0x00000000>; > no-map; > reg = <0x00000000 0x54000000 0x00000000 0x03000000>; > compatible = "renesas,lossy-decompression", "shared-dma-pool"; > }; Good, so ATF passed the reserved region to U-Boot. > }; > memory@48000000 { > reg = <0x00000000 0x48000000 0x00000000 0x78000000>; > device_type = "memory"; > }; > memory@600000000 { > reg = <0x00000006 0x00000000 0x00000000 0x80000000>; > device_type = "memory"; > }; > }; > => > > I'll look into seeing how to append the memory nodes at 0xe631e588 > onto the device tree we're loading and passing to the kernel Now U-Boot still has to pass this to the kernel... Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds