lkml.org 
[lkml]   [2020]   [Sep]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v2 1/4] dt-bindings: reserved-memory: Document "active" property
    From
    Date
    25.09.2020 15:39, Robin Murphy пишет:
    ...
    >> IIRC, in the past Robin Murphy was suggesting to read out hardware state
    >> early during kernel boot in order to find what regions are in use by
    >> hardware.
    >
    > I doubt I suggested that in general, because I've always firmly believed
    > it to be a terrible idea. I've debugged too many cases where firmware or
    > kexec has inadvertently left DMA running and corrupted kernel memory, so
    > in general we definitely *don't* want to blindly trust random hardware
    > state. Anything I may have said in relation to Qualcomm's fundamentally
    > broken hypervisor/bootloader setup should not be considered outside that
    > specific context ;)
    >
    > Robin.
    >
    >> I think it should be easy to do for the display controller since we
    >> could check clock and PD states in order to decide whether DC's IO could
    >> be accessed and then read out the FB pointer and size. I guess it should
    >> take about hundred lines of code.

    The active DMA is indeed very dangerous, but it's a bit less dangerous
    in a case of read-only DMA.

    I got another idea of how we could benefit from the active display
    hardware. Maybe we could do the following:

    1. Check whether display is active

    2. Allocate CMA that matches the FB size

    3. Create identity mapping for the CMA

    4. Switch display framebuffer to our CMA

    5. Create very early simple-framebuffer out of the CMA

    6. Once Tegra DRM driver is loaded, it will kick out the simple-fb, and
    thus, release temporal CMA and identity mapping.

    This will provide us with a very early framebuffer output and it will
    work on all devices out-of-the-box!

    \
     
     \ /
      Last update: 2020-09-25 15:23    [W:4.169 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site