Hi All,
A fellow laptop user has been looking into efi=novamap requirement. I
was sharing with him that I thought only firmware could solve this
problem and he has questioned me on that assertion and pointed me to
this commit:
https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=4e46…
It appears from my reading that efi=novamap is required because: It is
fiddly to make the kernel function SetVirtualAddressMap() work
correctly on AArch64. Without documentation for the laptops I care
about, it does not appear to be a valuable use of time to make
SetVirtualAddressMap() work. For now, efi=novamap is a good-enough
work-around.
Is that more a more accurate analysis on my part?
best regards,
Richard
--
Richard.Henwood(a)arm.com
Server Software Eco-System
Tel: +1 512 410 9612
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
From: Rob Clark <robdclark(a)chromium.org>
Now that we can deal gracefully with bootloader (firmware) initialized
display on aarch64 laptops[1], the next step is to deal with the fact
that the same model of laptop can have one of multiple different panels.
(For the yoga c630 that I have, I know of at least two possible panels,
there might be a third.)
This is actually a scenario that comes up frequently in phones and
tablets as well, so it is useful to have an upstream solution for this.
The basic idea is to add a 'panel-id' property in dt chosen node, and
use that to pick the endpoint we look at when loading the panel driver,
e.g.
/ {
chosen {
panel-id = <0xc4>;
};
ivo_panel {
compatible = "ivo,m133nwf4-r0";
power-supply = <&vlcm_3v3>;
no-hpd;
ports {
port {
ivo_panel_in_edp: endpoint {
remote-endpoint = <&sn65dsi86_out_ivo>;
};
};
};
};
boe_panel {
compatible = "boe,nv133fhm-n61";
power-supply = <&vlcm_3v3>;
no-hpd;
ports {
port {
boe_panel_in_edp: endpoint {
remote-endpoint = <&sn65dsi86_out_boe>;
};
};
};
};
sn65dsi86: bridge@2c {
compatible = "ti,sn65dsi86";
...
ports {
#address-cells = <1>;
#size-cells = <0>;
...
port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
endpoint@c4 {
reg = <0xc4>;
remote-endpoint = <&boe_panel_in_edp>;
};
endpoint@c5 {
reg = <0xc5>;
remote-endpoint = <&ivo_panel_in_edp>;
};
};
};
}
};
Note that the panel-id is potentially a sparse-int. The values I've
seen so far on aarch64 laptops are:
* 0xc2
* 0xc3
* 0xc4
* 0xc5
* 0x8011
* 0x8012
* 0x8055
* 0x8056
At least on snapdragon aarch64 laptops, they can be any u32 value.
However, on these laptops, the bootloader/firmware is not populating the
chosen node, but instead providing an "UEFIDisplayInfo" variable, which
contains the panel id. Unfortunately EFI variables are only available
before ExitBootServices, so the second patch checks for this variable
before EBS and populates the /chosen/panel-id variable.
[1] https://patchwork.freedesktop.org/series/63001/
Rob Clark (4):
dt-bindings: chosen: document panel-id binding
efi/libstub: detect panel-id
drm: add helper to lookup panel-id
drm/bridge: ti-sn65dsi86: use helper to lookup panel-id
Documentation/devicetree/bindings/chosen.txt | 69 ++++++++++++++++++++
drivers/firmware/efi/libstub/arm-stub.c | 49 ++++++++++++++
drivers/firmware/efi/libstub/efistub.h | 2 +
drivers/firmware/efi/libstub/fdt.c | 9 +++
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 5 +-
drivers/gpu/drm/drm_of.c | 21 ++++++
include/drm/drm_of.h | 7 ++
7 files changed, 160 insertions(+), 2 deletions(-)
--
2.20.1
hi All,
Is anyone running Debian user-space on a Yoga C630 or similar machine?
I am interested in understanding how you got it to work and if you have
written about your experience anywhere.
best regards,
Richard
--
Richard.Henwood(a)arm.com
Server Software Eco-System
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
I was able to get the Lenovo C630 to boot from the flash drive and have the
trackpad work. Awesome!
I'm now thinking the build looks good enough to install on the UFS drive.
I tried the "enabled installer".
I've updated WIndows. There are no pending updates.
I've shrunk the partiion.
I"m not running S mode
I've disabled secure boot.
I used Dimitri's Bionic installer. md5sum bde45aa67f19333955d00349aa6b2077
I flashed the installer onto a USB stick using gnome-disks
WIth the flash drive in the left USB-C port, it boots straight to Windows.
This is the same machine that was booting successfully from the flash drive
into Linux.
Any ideas?
Is there a way to copy the flash drive image that does work onto the UFS
drive?
Thanks
On Wed, 04 Sep 2019, David wrote:
> I am using the same USB flash drive, putting different images on it.
>
> I found and ran the "WIndows 10 update assistant" for May 2019. It starts
> up, briefly says "Checking for updates", then immediately says, "Thank you
> for updating to the latest version of WIndows". I assume that means I'm
> already at that level since it didn't seem to do anything. The filename is
> "Windows10Upgrade9252.exe"
Not sure what's going on then. The installer has worked on all of the
5-6 laptops (from 2-3 different batches) I've worked on.
Maybe there is something wrong with the way it was flashed. Have you
tried mounting it on your development machine. What does it look like
in `fdisk` and `gparted`?
> On Wed, Sep 4, 2019 at 5:05 AM Lee Jones <lee.jones(a)linaro.org> wrote:
>
> > On Tue, 03 Sep 2019, David wrote:
> >
> > > I was able to get the Lenovo C630 to boot from the flash drive and have
> > the
> > > trackpad work. Awesome!
> > >
> > > I'm now thinking the build looks good enough to install on the UFS drive.
> > >
> > > I tried the "enabled installer".
> > > I've updated WIndows. There are no pending updates.
> > > I've shrunk the partiion.
> > > I"m not running S mode
> > > I've disabled secure boot.
> > > I used Dimitri's Bionic installer. md5sum
> > bde45aa67f19333955d00349aa6b2077
> > > I flashed the installer onto a USB stick using gnome-disks
> > >
> > > WIth the flash drive in the left USB-C port, it boots straight to
> > Windows.
> > >
> > > This is the same machine that was booting successfully from the flash
> > drive
> > > into Linux.
> >
> > Are you using the same USB drive?
> >
> > > Is there a way to copy the flash drive image that does work onto the UFS
> > > drive?
> >
> > I wouldn't do that.
> >
> > The installer has been tested many times using the instructions you
> > quote above. Not entirely sure why it's not working for you though.
> >
> > It might be worth your time properly updating Windows. Boot back into
> > Windows and search for "Windows 10 Update Assistant". The version I'm
> > using is [May 2019 (1903)].
> >
> >
--
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog