From patchwork Fri May 29 15:53:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Gmeiner X-Patchwork-Id: 1300833 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=uwHG0TSR; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49YTdY3hVGz9sRK for ; Sat, 30 May 2020 01:54:06 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B6C52808E0; Fri, 29 May 2020 17:53:55 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="uwHG0TSR"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A246C81015; Fri, 29 May 2020 17:53:54 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 2426D80825 for ; Fri, 29 May 2020 17:53:52 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=christian.gmeiner@gmail.com Received: by mail-wr1-x442.google.com with SMTP id y17so4187990wrn.11 for ; Fri, 29 May 2020 08:53:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=cdfJHfoqY6+gvHwAh0Xlt9sBVvFtH1sIG/c9j2ciNkM=; b=uwHG0TSRKgZigeUXkZRbfiN5SbLmKuxSpbae87hbbtLuHA/e2Vb/kIOegi1/4ZcBmC Oze/40LCCu26178ULHhyNLMWJGO+/L27HlhyNYsFIAWDPg/jnNkjLQ+MRfWInSjwgpSa IuSm4ZBop0wDIM5jA4YiLwFHGzDgnoYu+W96BT31moA+wlbx7PkuO0s5HkiUqywGYlP5 b5bpJc/h4Q7h0w0Ggm4QyHafOJnDFMU+/Wr9i1Hq/89yA3Gu0TojKs9VVtxJKqxzkeDp 5qmvHT4RLVjRfX8OHVGLdtkccNXRR1IU5QkbJ8LmrcheRm11oCsvDXjV1c/02942C056 hTWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=cdfJHfoqY6+gvHwAh0Xlt9sBVvFtH1sIG/c9j2ciNkM=; b=cw1upwYyoohfwn/d4FnoPegZ3yUx96g5zLH7BCCeOOTJfxB6Hk/w6dyXJ+2Y/P7T4b bQHEQYhc0AoMx4e5kwnG9i8aXBufD/GhVC3EsEVl3HXihmeDCRBfNmekzYvhq5iEwqhc W418A0lzKBmP8h1AA9ymuchHDjhrcgIelfrcNulo5Mc3LMKbNGdS+kGVvr4fSzwKoqUp XG2Y4lI2yAbyjeBesh6CX5qJ1CEtuFatdmN4K1Dfg7A1R94mvHR7aRD5jQKoTVgD0WGI 0S3F/uMRKJXmuyl2c1j0BSHHaOvCvfnwnI/93muoblcBXeEYR/nRqvN4o3mVAeBsy+At Eo3A== X-Gm-Message-State: AOAM530Z6Q4Kgg+UGueDadY3AJSdpMikJEhTck0+ZNl7nu5ae0O82X0K x0kRhKwUwOchfLPL1/kewyDSRLE50Ag= X-Google-Smtp-Source: ABdhPJwDKoUrIoJqg9A6WDFBtE42rYSLAkn36A56IV325UnyKHVzkFX//UCLKasKW6suTbqDO71aOA== X-Received: by 2002:a05:6000:124e:: with SMTP id j14mr9431854wrx.154.1590767631322; Fri, 29 May 2020 08:53:51 -0700 (PDT) Received: from localhost.localdomain.at (62-178-82-229.cable.dynamic.surfer.at. [62.178.82.229]) by smtp.gmail.com with ESMTPSA id d13sm11631051wmb.39.2020.05.29.08.53.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2020 08:53:50 -0700 (PDT) From: Christian Gmeiner To: u-boot@lists.denx.de Cc: Christian Gmeiner , Sam Protsenko , Lokesh Vutla , Roman Stratiienko , Simon Glass , Joe Hershberger Subject: [PATCH] image: android: fix abootimg support Date: Fri, 29 May 2020 17:53:45 +0200 Message-Id: <20200529155347.203258-1-christian.gmeiner@gmail.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean abootimg creates images where all load addresses are 0. Android Boot Image Info: * file name = artifacts/fastboot.img * image size = 31381504 bytes (29.93 MB) page size = 2048 bytes * Boot Name = "" * kernel size = 9397406 bytes (8.96 MB) ramdisk size = 21981144 bytes (20.96 MB) * load addresses: kernel: 0x00000000 ramdisk: 0x00000000 tags: 0x00000000 Without this fix we end in a data abort: Booting kernel at 0x15000000... * kernel: cmdline image address = 0x15000000 Kernel load addr 0x00000000 size 9178 KiB Kernel command line: ip=dhcp console=ttymxc0,115200n8 kernel data at 0x15000800, len = 0x008f649e (9397406) * ramdisk: cmdline image address = 0x15000000 RAM disk load addr 0x00000000 size 21473 KiB ramdisk start = 0x158f7000, ramdisk end = 0x16def35c kernel loaded at 0x00000000, end = 0x00000000 Loading Kernel Image data abort pc : [<8ff8c004>] lr : [<5d7ac70f>] sp : 8f57ed64 ip : 48f17668 fp : 00000000 r10: 00000002 r9 : 8f58aed0 r8 : 03fa4c58 r7 : 5e842497 r6 : fbe73965 r5 : 7c459955 r4 : df020fde r3 : 1b7aa45b r2 : 007f23fe r1 : 15104820 r0 : 00104000 Flags: nzCv IRQs off FIQs off Mode SVC_32 (T) Code: f07c e8b1 51f8 3a20 (e8a0) 51f8 Resetting CPU ... resetting ... Signed-off-by: Christian Gmeiner --- common/image-android.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/common/image-android.c b/common/image-android.c index 6af9baa121..18f7c8db03 100644 --- a/common/image-android.c +++ b/common/image-android.c @@ -33,6 +33,13 @@ static ulong android_image_get_kernel_addr(const struct andr_img_hdr *hdr) if (hdr->kernel_addr == ANDROID_IMAGE_DEFAULT_KERNEL_ADDR) return (ulong)hdr + hdr->page_size; + /* + * abootimg creates images where all load addresses are 0 + * and we need to fix them. + */ + if (hdr->kernel_addr == 0 && hdr->ramdisk_addr == 0) + return env_get_ulong("kernel_addr_r", 16, 0); + return hdr->kernel_addr; }