Hello!
I received Lenovo Miix 630-12Q35 today, and to my surprise, there is no audio even in preinstalled system, even after OS reset via Troubleshooting section of Windows bootloader. As "Qualcomm(R) Aqstic(TM)" and "Qualcomm Audio DSP Subsystem Device" devices is preset in "System devices" section of Device Manager, and there is no errors from these two drivers, I believe this could be a software issue with Qualcomm drivers for Windows. I tried to add "Qualcomm(R) Aqstic(TM)" (as Sound device, not System device) manually (via "Action" > "Add legacy hardware" menu item in Device Manager) but this does not help - Aqstic audio inputs/output does not appear in Device Manager, so it's still impossible to verify if audio actually working or not.
Obviously, I don't want to keep the defective unit on hands and would like to find out if audio hardware actually works, or there is something broken in hardware which means audio stay non-working even when Qualcomm Aqstic get supported by aarch64-laptop project. So I wondering if there was any progress with Qualcomm Aqstic support in Linux on these laptops? Even if there are preliminary patches and UCM draft that allow testing at least part of hardware (speaker or microphone or audio jack) that would be a great help in this case, so I at least will be able to find if the hardware works.
Hi All,
I'm looking at WebGL 2 on Firefox on my Lenovo C630. It seems that
'WebGL 1 Driver Renderer' is happy reporting 'freedreno -- FD630' and
WebGL 1 Driver Version '3.1 Messa 19.2.1'.
However, for WebGL 2, Firefox reports:
WebGL creation failed:
* tryNativeGL
* Exhausted GL driver options.
... and marking driver version as '-'.
I've played with forcing WebGL and disabling the Firefox sandbox so it
can see various bits of the system, but it hasn't helped. Any
suggestions?
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.
Hi All,
FYI: I installed both '*snapdragon*' and non-snapdragon kernels on my
Lenovo Yoga C630 over the weekend from Ubuntu mainline:
https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.5-rc1/
They both booted to GUI which I was happy to observe and thought I
would share here.
The keyboard wasn't working, presumably because of:
https://github.com/aarch64-laptops/build/issues/33
wifi, also wasn't working (although I have found it to be quite
reliable on my 5.3 kernel recently.)
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.
Hi,
I've updated my DtbLoader with what I think will be the final approach
for dealing with the fact that all of these laptops can have one of
several panels installed (I can resend the patchset to the aarch64-
laptops list if that is useful):
https://github.com/robclark/edk2/commits/dtbloader
This is the third iteration of panel-picking, now using dtb overlays to
patch the dtb according to which panel is installed on the laptop. I
think this is the approach that will finally get upstream kernel buy-in,
namely because it doesn't require any kernel patches.
Because of the dtb overlay approach, for distro boot using DT, distro's
will need to use DtbLoader, or handle applying the dtb overlay somewhere
else.
Overview
========
The patchset I have on top of Leif's original DtbLoader handle two
things to make this a useful thing for distro boot, and in particular
having a single image (or installer) which can support multiple
laptops:
1) pick a device specific dtb based on SMBIOS tables
2) apply a panel specific dtb overlay based on UEFIDisplayInfo
In particular, it tries to load dtb from (in order, paths relative to
EFI system partition where DtbLoader is installed):
1) \dtb\$SysVendor\$ProductName-$BoardName.dtb
2) \dtb\$SysVendor\$ProductName.dtb
and panel overlay dtb from:
1) \dtb\$SysVendor\$ProductName-$BoardName-panel-$PanelId.dtb
2) \dtb\$SysVendor\$ProductName-panel-$PanelId.dtb
3) \dtb\panels\panel-$PanelId.dtb
with this in place, the correct dtb is loaded before grub starts, so
from distro PoV it is all just a config table provided by the firmware.
(Also, based on comments from Ard on IRC, it sounds like we'll also
use DtbLoader to avoid needing the efi=novamap hack, which I assume
is also useful to distros to avoid device specific hacks.)
Installation
============
I've put a pre-built DtbLoader.efi here:
https://people.freedesktop.org/~robclark/DtbLoader.efi
1) copy DtbLoader.efi to EFI system partition2) copy dtb files to EFI
system partition with the layout described above
3) Boot Shell.efi (overwrite \EFI\BOOT\BOOTAA64.EFI with Shell.efi)
4) switch to boot device (FS2: in my case)
5) use bcfg to install
Shell> fs2:
FS2:\> bcfg driver add 1 \DtbLoader.efi "dtb loader"
FS2:\> reset
At this point you can copy normal shim back to \EFI\BOOT\BOOTAA64.EFI..
on subsequent reboots, efibootmgr will load DtbLoader.efi for you.
Open Issues
===========
1) The path to DtbLoader.efi is stored with the full EFI devicepath..
so installer media would have to install/load it's own DtbLoader.efi
and dtb files? Which is maybe suboptimal, especially for a laptop
released after the installer media was baked. (The DtbLoader.efi
shouldn't need to change, but a new laptop based on an already
supported SoC would at least need new dtb tables)
a) maybe the DtbLoader is installed before the user boots the install
media.. but in this case, if distro is installing to internal disk
and replacing the EFI partition, it would need to take care to
preserve DtbLoader and the \dtb directory
2) How to handle dtb updates? Should the distro do this? Or is there
some way we can use fwupd to push out dtb updates outside of distro?
Or??
3) Constructing the \dtb directory.. currently there isn't any link
between dtb's that come out of kernel build, and where DtbLoader.efi
expects to find things. I guess this is managable with a shell
script for now. And if we push out dtb updates outside of the distro
then it is really just a thing for whatever generates the "firmware
update" package to care about. But if we have distro's updating the
dtb files in the EFI system partition then we should come up with
something better
4) ACPI vs DT boot? I guess this is easy, if DtbLoader doesn't find
a dtb to load (ie. \dtb\LENOVO\81JL.dtb, etc), it doesn't change
anything. So DtbLoader.efi should be safe to load on all aarch64
devices.
5) Secure-boot? Or at least not interfering with secure-boot support
on devices using ACPI boot? I *guess* if DtbLoader.efi is not
signed and BIOS is configured for secure-boot, then efibootmgr won't
load it. So no-harm, no-foul?
Anything else?
BR,
-R
From: Rob Clark <robdclark(a)chromium.org>
It is not uncommon for devices to use one of several possible panels.
The Lenovo Yoga C630 laptop is one such device. This patchset
introduces an optional "panel-id" property which can be used by the
firmware to find the correct panel node to enable. The second patch
adds support in drm/of to automatically pick the enabled endpoint, to
avoid adding the same logic in multiple bridges/drivers. The last
patch uses this mechanism to enable display support for the Yoga C630.
An example usage:
boe_panel {
compatible = "boe,nv133fhm-n61";
panel-id = <0xc4>;
/* fw will change status to "Ok" if this panel is installed */
status = "disabled";
ports {
port {
boe_panel_in_edp: endpoint {
remote-endpoint = <&sn65dsi86_out_boe>;
};
};
};
};
ivo_panel {
compatible = "ivo,m133nwf4-r0";
panel-id = <0xc5>;
/* fw will change status to "Ok" if this panel is installed */
status = "disabled";
ports {
port {
ivo_panel_in_edp: endpoint {
remote-endpoint = <&sn65dsi86_out_ivo>;
};
};
};
};
sn65dsi86: bridge@2c {
compatible = "ti,sn65dsi86";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
sn65dsi86_in_a: endpoint {
remote-endpoint = <&dsi0_out>;
};
};
port@1 {
reg = <1>;
sn65dsi86_out_boe: endpoint@c4 {
remote-endpoint = <&boe_panel_in_edp>;
};
sn65dsi86_out_ivo: endpoint@c5 {
remote-endpoint = <&ivo_panel_in_edp>;
};
};
};
};
This replaces an earlier proposal[1] to use chosen/panel-id to select the
installed panel, in favor of adding support[2] to an EFI driver module
(DtbLoader.efi) to find the installed panel, locate it in dtb via the
'panel-id' property, and update it's status to "Ok".
[1] https://patchwork.kernel.org/cover/11024613/
[2] https://github.com/robclark/edk2/commits/dtbloader
In this case, DtbLoader, which is somewhat generic (ie. this mechanism
applies to all snapdragon based devices which orignally ship with
windows), determines the panel-id of the installed panel from the
UEFIDisplayInfo variable.
As I understand, a similar situation exists with the pine64 laptops. A
similar scheme could be used to support this, by loading the panel-id
from a u-boot variable.
In other cases (phones), a more device specific shim would be needed to
determine the panel-id by reading some GPIOs, or some other more device-
specific mechanism.
Bjorn Andersson (1):
arm64: dts: qcom: c630: Enable display
Rob Clark (3):
dt-bindings: display: panel: document panel-id
drm/of: add support to find any enabled endpoint
drm/bridge: ti-sn65dsi86: find any enabled endpoint
.../bindings/display/panel/panel-common.yaml | 26 +++
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 165 ++++++++++++++++++
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 2 +-
drivers/gpu/drm/drm_of.c | 41 ++++-
4 files changed, 232 insertions(+), 2 deletions(-)
--
2.23.0
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
This patchset builds on top of Leif's DtbLoader, adding support to
pick a laptop specific dtb based on SMBIOS tables, and patching
for /chosen/panel-id based on UEFIDisplayInfo. I'll send a new
version of the kernel side patchset that uses /chosen/panel-id to
pick the appropriate panel driver in the near future (ie. I'll
probably get to it tomorrow)
Rob Clark (5):
DtbLoader: refactor out helper to try loading dtb
DtbLoader: Try to pick dtb based on SMBIOS tables
DtbLoader: move CRC calculation
DtbLoader: resize fdt
DtbLoader: add panel-id detection/fixup for qcom devices
.../Application/ConfigTableLoader/Common.h | 2 +
.../Application/ConfigTableLoader/DtbLoader.c | 437 +++++++++++++++---
.../ConfigTableLoader/DtbLoader.inf | 2 +
.../Application/ConfigTableLoader/Qcom.c | 94 ++++
.../Application/ConfigTableLoader/Qcom.h | 30 ++
5 files changed, 506 insertions(+), 59 deletions(-)
create mode 100644 EmbeddedPkg/Application/ConfigTableLoader/Qcom.c
create mode 100644 EmbeddedPkg/Application/ConfigTableLoader/Qcom.h
--
2.23.0
I'm curious, how have folks been adding the devicetree command to the
grub menu entry? So far I've been manually editing the grub.cfg since
that worked well with my development flow, but now things have changed
a bit for me, and I'm looking for a way that it would be appended
automatically when the config is autogenerated when installing a new
kernel.
-Jeff
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
These are cherrypicks from the aarch64-laptops [1] effort. I have
pinged those maintainers pointing out that these patches have not been
submitted upstream. In the future it should be... Otherwise, I'll keep
rebasing this.
This is useful on the AArch64 laptops [2] booting in ACPI mode, as they
are Win10 laptops they use/publish WMI, hence it should stop being x86
only and be enabled on arm64 too.
[1] https://github.com/aarch64-laptops/linux/tree/laptops-ubuntu
[2] ASUS NovaGo TP370QL, HP Envy x2, Lenovo Mixx 630 & Yoga C630, and
Samsung Book2
Ard Biesheuvel (2):
UBUNTU: SAUCE: acpi: move WMI subsystem to generic code
UBUNTU: SAUCE: acpi/wmi: move BMOF driver to generic code
Dimitri John Ledkov (1):
UBUNTU: [Config] Update WMI_BMOF annotations.
.../abi/5.3.0-0.1/arm64/generic.modules | 2 ++
debian.master/config/annotations | 4 +--
drivers/acpi/Kconfig | 33 +++++++++++++++++++
drivers/acpi/Makefile | 2 ++
drivers/{platform/x86 => acpi}/wmi-bmof.c | 0
drivers/{platform/x86 => acpi}/wmi.c | 0
drivers/platform/x86/Kconfig | 33 -------------------
drivers/platform/x86/Makefile | 2 --
8 files changed, 39 insertions(+), 37 deletions(-)
rename drivers/{platform/x86 => acpi}/wmi-bmof.c (100%)
rename drivers/{platform/x86 => acpi}/wmi.c (100%)
--
2.20.1
Hello, this appears to be a development-only mailing list, so pardon me if I’m disturbing anyone. I’m running a Samsung Galaxy Book 2 (using SD850 + QUALCOMM x20 modem + AMOLED touch screen, detachable KB, and stylus) and am wondering if the work being done mostly on Lenovo SD850 laptops apparently and older devices will apply to this hardware, or should I not hold my breath? Don’t worry, this isn’t an ETA or a complaint, I appreciate everything you’re doing and wish I knew more about programming so I could help out.
Sent from Mail for Windows 10
So, we still have sensor-hub and acpi-button disabled using kernel config.
I could patch the quirks into the kernel to skip loading those based
on DMI data.
However, that's a bit counter-productive as that's compiled in code
and enumerates SKUs.
Can I instead use kernel command line to skip initializing those
built-in and compiled modules?
Ie. would something like:
module_blacklist=hid-sensor-hub initcall_blacklist=acpi_button_driver_init
work, even when the kernel is configured with CONFIG_HID_SENSOR_HUB=m
and CONFIG_ACPI_BUTTON=y ?
Also not sure if I got the initcall function name right.
I am asking because, it may be easier for me to control cmdline
reliably, instead of distro kernel config.
--
Regards,
Dimitri.
From: Rob Clark <robdclark(a)chromium.org>
One of the challenges we need to handle to enable the aarch64 laptops
upstream is dealing with the fact that the bootloader enables the
display and takes the corresponding SMMU context-bank out of BYPASS.
Unfortunately, currently, the IOMMU framework attaches a DMA (or
potentially an IDENTITY) domain before the driver is probed and has
a chance to intervene and shutdown[1] scanout. Which makes things go
horribly wrong.
This also happens to solve a problem that is blocking us from supporting
per-context pagetables on the GPU, due to domain that is attached before
driver has a chance to attach it's own domain for the GPU.
But since the driver is managing it's own iommu domains directly, and
does not use dev->iommu_group->default_domain at all, the simple
solution to both problems is to just avoid attaching that domain in the
first place.
[1] Eventually we want to be able to do a seemless transition from
efifb to drm/msm... but first step is to get the core (iommu,
clk, genpd) pieces in place, so a first step of disabling the
display before first modeset enables us to get all of the
dependencies outside of drm/msm in place. And this at least
gets us parity with windows (which also appears to do a modeset
between bootloader and HLSO). After that there is a bunch of
drm/msm work that is probably not interesting to folks outside
of dri-devel.
Rob Clark (2):
iommu: add support for drivers that manage iommu explicitly
drm/msm: mark devices where iommu is managed by driver
drivers/gpu/drm/msm/adreno/adreno_device.c | 1 +
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 1 +
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 1 +
drivers/gpu/drm/msm/msm_drv.c | 1 +
drivers/iommu/iommu.c | 11 +++++++++++
include/linux/device.h | 3 ++-
6 files changed, 17 insertions(+), 1 deletion(-)
--
2.20.1
Hi All,
I was on leave last week. I just chatted with Lee and have this summary
of the last two weeks.
+ Tested on-disk install.
+ Update Windows to get latest firmware.
+ Disable 'S' mode and resize Windows partitions.
+ Boot up the Custom Ubuntu installer, and install.
+ With the latest windows firmware, most USB sticks work?
+ SanDisk looks problematic.
+ Reproduced and tested GPU stack.
+ Not working yet.
+ Believed to be a problem with an old Mesa version.
+ Rawhide doesn't boot to grub any more :(
Blocking and Todo issues:
+ Hack to disable DMA in Qualcomm's Gini driver is still required
+ Kernel command-line: 'efi=novamap' required until f/w is fixed
+ CONFIG_HID_SENSOR_HUB still breaks the keyboard
+ CONFIG_ACPI_BUTTON places us into suspend with no real way out
+ Trying to get DTB into 5.3 kernel.
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.
Hi,
I was able to follow the instructions in the following article and get Ubuntu booted successfully.
https://github.com/aarch64-laptops/build#Flashing-the-image
I understood that wireless network is not supported yet.
If i plugin a USB Wii-Lan Adapter, the adapter is not recognized as well.
Is there any other adapters that's known to work with ASUS Novago Laptop ?
Thanks,
Saravanan
On Fri, 5 Jul 2019 at 13:48, David Michael <fedora.dm0(a)gmail.com> wrote:
>
> The following are two use cases from Rajat Jain <rajatjain(a)juniper.net>:
>
> 1) We have a board that boots Linux and this board itself can be plugged into one of different chassis types. We need to pass different parameters to the kernel based on the "CHASSIS_TYPE" information that is passed by the bios in the DMI / SMBIOS tables.
>
> 2) We may have a USB stick that can go into multiple boards, and the exact kernel to be loaded depends on the machine information (PRODUCT_NAME etc) passed via the DMI.
>
> Signed-off-by: David Michael <fedora.dm0(a)gmail.com>
>
Another use case is aarch64 laptops effort. We have the same kernel,
and the same image bootable and usable across 4 different laptop
models, with the only difference between them being the DTB to load.
I was looking at how I can distinguish between the four models and
automatically pick the right dtb. I did see these patches and was very
sad when I found out that they didn't get merged.
Thank you for rebasing these on top of v2.04. I will try to cherrypick
them on top of Debian's experimental 2.04 grub and try to build an
installer "that just boots" without requiring users to pick a
particular dtb menuentry by hand. There are only dtbs in these images,
and only one right one for each model.
(Post install, we have flash-kernel mechanisms to continuously flash
and use the right dtb, this is needed for the installer's grub to be
able to detect models and thus boot the right dtb)
Whilst these laptops might become dtb-free in the future, I expect new
hardware to come out which would need dtb picker based on SMBIOS info
again.
--
Regards,
Dimitri.
During a recent trip into windows-land, I noticed that Lenovo posted a
firmware update for the c630. I downloaded and installed that, leaving my
machine running 2.06. There don't appear to be any new menu options, and
no description of the changes were available.
I'm happy to run any diagnostic tooling for anyone that can't but is
interested, if that information would be helpful to the cause.
Hi All,
My notes from talking to Lee this week
--------------------------------------
+ DTB Loader v2.1 from Leif is available:
http://git.linaro.org/people/leif.lindholm/edk2.git/log/?h=dtbloader
+ Allows dual boot Linux and Windows.
+ EBBR compliant.
+ Kernel command line options:
+ efi=novamap is required for DT and ACPI
+ This can only be fixed in firmware.
+ console=tty0, pd_ignore_unused, clk_ignore_unused
+ not required on both DT and ACPI
+ A Ubuntu kernel build with latest laptop patches is available:
https://launchpad.net/~aarch64-laptops/+archive/ubuntu/linux-kernel/+build/…https://launchpad.net/~aarch64-laptops/+archive/ubuntu/linux-kernel-meta/+b…
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.
From: Rob Clark <robdclark(a)chromium.org>
The aarch64 laptops which ship with windows, have the display by the
bootloader, and efifb (yah!). But unlike x86 laptops, device power
management isn't handled via ACPI[1]. Currently the CCF and genpd
frameworks will turn off power domains and clocks that they think are
unused. This is rather unfortunate, as it kills efifb scanout before
getting to userspace and getting to the point where we can try to
probe the real display driver.
Also it has a few side-effects in that we can't set rate on running
clocks (in many cases).
The first two patches let us flag clocks and power domains which
might have been enabled by the bootloader, so we know not to disable
them in late_initcall.
The next two update drm/msm to cleanly shut down clocks which might
already be running. *Eventually* we'll want to detect that scanout
is already running, and readback the hw state, to avoid briefly
disabling the screen while the driver loads. But that is a big pile
of (mostly) drm/msm work. (Windows also seems to have this problem,
it appears to do a modeset during boot.. so I guess the first step
is to at least not suck more than windows ;-))
The last patch updates the bridge driver to handle the case where
display is already active. (AFAICT it is the same bridge chip used
so far on all the aarch64 laptops.) Because the bridge driver can
be probed before the drm driver, and in fact you might end up with
a bridge driver but no drm driver, care must be taken to not disable
the bridge until the drm driver is ready to go, so:
* Request enable gpio ASIS to avoid pulling down the enable
gpio
* Defer enabling runpm in the case that the bridge is already
running until bridge->attach(). This is a point where we
know the drm driver is ready to do a modeset.
(There are a couple related cleanups in drm/msm to avoid touching
the hw until we are past the point where we might -EPROBE_DEFER[2]
which I sent seperately as they are probably interesting to fewer
people.)
This has been tested on a lenovo yoga c630. I've a wip/c630 branch[3]
with this and various other work-in-progress stuff for this laptop.
Next step, figuring out how to pick the proper panel driver, from
the two or three possibilites that ship on this laptop ;-)
[1] On windows, they use a "Platform Extension Plugin" (PEP) driver
[2] https://patchwork.freedesktop.org/series/62999/
[3] https://github.com/freedreno/kernel-msm/commits/wip/c630
Rob Clark (5):
clk: inherit clocks enabled by bootloader
genpd/gdsc: inherit display powerdomain from bootloader
drm/msm/dsi: split clk rate setting and enable
drm/msm/dsi: get the clocks into OFF state at init
drm/bridge: ti-sn65dsi86: support booloader enabled display
drivers/base/power/domain.c | 10 ++++
drivers/clk/clk.c | 48 +++++++++++++++++++
drivers/clk/qcom/common.c | 25 ++++++++++
drivers/clk/qcom/dispcc-sdm845.c | 24 +++++-----
drivers/clk/qcom/gcc-sdm845.c | 3 +-
drivers/clk/qcom/gdsc.c | 5 ++
drivers/clk/qcom/gdsc.h | 1 +
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 12 ++++-
drivers/gpu/drm/msm/dsi/dsi.h | 2 +
drivers/gpu/drm/msm/dsi/dsi_cfg.c | 3 ++
drivers/gpu/drm/msm/dsi/dsi_cfg.h | 1 +
drivers/gpu/drm/msm/dsi/dsi_host.c | 56 +++++++++++++++++-----
drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c | 1 +
include/linux/clk-provider.h | 10 ++++
include/linux/pm_domain.h | 4 ++
15 files changed, 178 insertions(+), 27 deletions(-)
--
2.20.1
Hi All,
My notes from talking to Lee this week
--------------------------------------
+ latest laptop kernel is the Master branch here:
+ https://github.com/aarch64-laptops/linux
+ kernel 5.3 looking good wrt ACPI:
+ UFS and I2C has been accepted.
+ a patch to avoid booting with acpi=force also accepted.
+ Leif has a working DTB loader V2. Lee is going to try this out.
+ Jobs list has been updated there:
https://github.com/aarch64-laptops/build/blob/master/README.md
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.
hi All,
Mailing list created! Welcome all!
My notes from talking to Lee this week
--------------------------------------
- ACPI:
- UFS patches have been sent upstream.
- With a patch, battery and AC power detection work!
- General
- It seems ISO9660 images will boot, but only from USB 3.1 dev.
- Unable to reproduce the trackpad problems - it works fine now.
- Maybe this is because of a firmware update?
Distros:
- Ubuntu
- 18.04: missing grub 4k alignment patch.
- 19.04: boots to grub, kernel does not boot.
- Leif's
- openSUSE
- missing grub 4k alignment patch.
- Fedora Rawhide
- grub boots. Installer hangs with '_' (see below)
Open task items for this week's update
--------------------------------------
Please ping this list to share your interest in items so we can avoid
duplication of effort.
- Linux support for ACPI PNP0D80 (PEP)
- The PNP0D80 is a System Power Management Controller
- Very little support resides in Linux at the moment
- Thus no ACPI Power Management can currently take place
- Accelerated Graphics also depends on it
- UEFI Boot Variables investigation
- Grub fails to manipulate them during install
- Is it possible for Linux to change them at run-time?
- DMA crash investigation
- CRASH IMAGE: https://photos.app.goo.gl/2MGJEALZMyoowr9d6
- HACK PATCH: https://tinyurl.com/y5cnln2j
- Upstream Kernel ACPI check
- ACPI tables incorrectly advertise themselves as v5.0
- Kernel should check the presence of PSCI instead
- PATCH: https://tinyurl.com/yyq76m47
- NB: Assuming Ard will handle this - needs to be done soon
- Upstream ACPI Battery and AC Power support
- Simply a matter of not depending on CONFIG_X86
- PATCH: https://tinyurl.com/yx9kf7e8
- NB: Assuming Ard will handle this - needs to be done soon
- Debug Fedora Rawhide
- Kernel currently boots to a black screen with white '_'
- NB: Assuming Peter will handle this
- Create UEFI module for persistently loading DTB
- We have one which handles this for a single boot
- NB: Assuming Leif will handle this
- Test ISO9660 based installers booting from USB
- Must be done by someone who has not updated Windows
- Fedora Rawhide ISO is a good image to use for testing
- LINK: https://tinyurl.com/y2l6bvp9
- If it boots to the Fedora (Grub) menu, it works
- Current belief is that USB 3.1 sticks are required
- Need to test USB 2.0 and 3.0 sticks too
- Create and upstream a Live Arch Linux ISO/installer for AArch64
- AArch64 support is provided by copying a pre-built roofs to UFS
- This is clunky and needs a proper installer like other distos
- Get in touch with Richard Henwood directly if you can help.
best regards,
Richard
PS. Don't forget to visit #aarch64-laptops on freenode IRC.
--
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.