From patchwork Tue Jul 16 01:09:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Ruffell X-Patchwork-Id: 1132389 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45nj4Y35Drz9sMr; Tue, 16 Jul 2019 11:10:21 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1hnBz0-0005O0-1y; Tue, 16 Jul 2019 01:10:18 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.86_2) (envelope-from ) id 1hnByx-0005No-Ds for kernel-team@lists.ubuntu.com; Tue, 16 Jul 2019 01:10:15 +0000 Received: from mail-pl1-f198.google.com ([209.85.214.198]) by youngberry.canonical.com with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from ) id 1hnByw-0006G0-Va for kernel-team@lists.ubuntu.com; Tue, 16 Jul 2019 01:10:15 +0000 Received: by mail-pl1-f198.google.com with SMTP id t2so9219936plo.10 for ; Mon, 15 Jul 2019 18:10:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=Tr/XE8T2U1Qd+J8vmdOhStVnAFfQ1AIP1rKAI529MHw=; b=FBeObuCuhI4QqV9ro95sTQ+NaOyvrwq10Viftx5RhVIH9zDgbWpVzaaXdCin2DR3X0 /5EWTYK3a68+FQudGd5gmpbLqFlnVvKmZbAArIFUCcT2A975UL5zZdOQKoVaFggTMHYu vWbYPjqmD1L3u0E1BqzqQq5fMuHzK5p4GNn7AdFSEhqjZ9cBKG457i+7K5mbaF55EFnU YKg9ofpwX3esAQ57islMnpmewD+DBaiUFb/8Mh8wOJwaWcjpFOvFvu82yuY581W8KeRJ g8DTxl5fqP/mEIleaO686c1FLfRJKf/K+pTIfHDXTRdrtOGLTccLnQjOTbh17lGszJ2S fH3A== X-Gm-Message-State: APjAAAV66AD87TnpyPxwPJfHXpObnIU7YyB269JwyMv1pQI91McefVpg D4rliXY7ZHlN0SSJbZ8BP3tgdwrm5PLRyfjL+O5/ZDie+BfroI8FFIM/Hz3OOTzT8jtQ9GwPayr gA6DTC06NiX4uqyVcQV36lPs4u/NTscW07ebTp2IDhw== X-Received: by 2002:a17:902:758d:: with SMTP id j13mr28263721pll.197.1563239413541; Mon, 15 Jul 2019 18:10:13 -0700 (PDT) X-Google-Smtp-Source: APXvYqx83hOY0GlP52y713KOcoaEo3B6Mx2cwKi9dWB+p17bF/4DiIDhx51iJEF0RmeqxHTVCf9QDQ== X-Received: by 2002:a17:902:758d:: with SMTP id j13mr28263708pll.197.1563239413383; Mon, 15 Jul 2019 18:10:13 -0700 (PDT) Received: from localhost.localdomain (125-238-115-161-fibre.sparkbb.co.nz. [125.238.115.161]) by smtp.gmail.com with ESMTPSA id r1sm17236665pgv.70.2019.07.15.18.10.11 for (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 15 Jul 2019 18:10:12 -0700 (PDT) From: Matthew Ruffell To: kernel-team@lists.ubuntu.com Subject: [SRU][Eoan][PATCH 0/2] hibmc-drm Causes Unreadable Display for Huawei amd64 Servers Date: Tue, 16 Jul 2019 13:09:54 +1200 Message-Id: <20190716010956.27539-1-matthew.ruffell@canonical.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" BugLink: https://bugs.launchpad.net/bugs/1762940 [Impact] amd64 based Huawei servers have problems where the display output of their iBMC chips is broken, resulting in a "blurry" screen when viewed from their in house remote kvm-like console. Example: https://launchpadlibrarian.net/365907668/creen_picture_for_blur.png The issue is caused by the hibmc_drm kernel module being loaded. The PCI ID for the iBMC chips on amd64 hardware is the same as arm64 hardware, but the hibmc_drm driver was developed only for use on arm64 hardware, most notably for the Huawei D05 development board. The impact to Huawei is that their customers cannot use Ubuntu server install media as the screen goes "blurry" when the d-i install media or subuqity installer loads the hibmc_drm kernel module after language selection. The only workaround for their customers is to press the "E" key during the very first installer menu and adding "modprobe.blacklist=hibmc_drm" to the kernel command line in the grub menu. This is not good for customer experience with their servers. Other problems exist for the hibmc_drm driver on amd64, such as working on bios, but not uefi, and not being wayland compatible, making the screen blurry whenever a desktop session is started and gdm loaded. Huawei have asked us to remove hibmc_drm from all architectures except arm64, and this aligns with advice from Hisilicon. [Fix] I modified the config/annotations file to remove all architectures except arm64, and created a patch for Kconfig to set a firm requirement on ARM64 for hibmc_drm. I will send the Kconfig patch upstream in the coming days for a more permanent fix. [Testcase] Apply the patches and run: ubuntu-bionic/CONFIGS$ fakeroot debian/rules genconfigs ubuntu-bionic/CONFIGS$ grep -Rin "hibmc" . ./arm64-config.flavour.generic:5739:CONFIG_DRM_HISI_HIBMC=m You should see that only arm64 has the config option enabled. A test kernel has been built, and is available here: https://launchpad.net/~mruffell/+archive/ubuntu/sf232667-test Huawei requested a test d-i install iso to test server install with, which can be found here and uses the kernel from the ppa above: https://people.canonical.com/~mruffell/sf232667_ubuntu_server_d-i_20190711b1.iso Both the test kernel and the custom d-i install iso have been tested on amd64 Huawei server hardware successfully and video output is functional. [Regression Potential] Regressions will be limited to hardware containing the iBMC chips from Hisilicon, which I believe are exclusive to Huawei servers. I have taken care to ensure that hibmc_drm is enabled for ARM64 so it should not impact kernels built for the Huawei D05 arm64 development board, and d-i will still load the hibmc_drm driver during startup for arm64. Matthew Ruffell (2): UBUNTU: [Config] Set CONFIG_DRM_HISI_HIBMC to arm64 only UBUNTU: SAUCE: Make CONFIG_DRM_HISI_HIBMC depend on ARM64 debian.master/config/amd64/config.common.amd64 | 1 - debian.master/config/annotations | 2 +- debian.master/config/arm64/config.common.arm64 | 1 - debian.master/config/armhf/config.common.armhf | 1 - debian.master/config/config.common.ubuntu | 1 + debian.master/config/i386/config.common.i386 | 1 - debian.master/config/ppc64el/config.common.ppc64el | 1 - debian.master/config/s390x/config.common.s390x | 1 - drivers/gpu/drm/hisilicon/hibmc/Kconfig | 2 +- 9 files changed, 3 insertions(+), 8 deletions(-)