From patchwork Mon Jan 23 16:05:23 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Langsdorf X-Patchwork-Id: 137398 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id A866FB6F74 for ; Tue, 24 Jan 2012 03:05:58 +1100 (EST) Received: from localhost ([::1]:56592 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RpMP5-0006hQ-NY for incoming@patchwork.ozlabs.org; Mon, 23 Jan 2012 11:05:55 -0500 Received: from eggs.gnu.org ([140.186.70.92]:60723) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RpMOh-0006LT-Lu for qemu-devel@nongnu.org; Mon, 23 Jan 2012 11:05:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RpMOY-0007A6-P1 for qemu-devel@nongnu.org; Mon, 23 Jan 2012 11:05:31 -0500 Received: from smtp201.dfw.emailsrvr.com ([67.192.241.201]:44498) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RpMOY-00079o-Kl for qemu-devel@nongnu.org; Mon, 23 Jan 2012 11:05:22 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp10.relay.dfw1a.emailsrvr.com (SMTP Server) with ESMTP id 0C8491B825A; Mon, 23 Jan 2012 11:05:21 -0500 (EST) X-Virus-Scanned: OK Received: by smtp10.relay.dfw1a.emailsrvr.com (Authenticated sender: mark.langsdorf-AT-calxeda.com) with ESMTPSA id C671A1B8213; Mon, 23 Jan 2012 11:05:20 -0500 (EST) From: Mark Langsdorf To: qemu-devel@nongnu.org Date: Mon, 23 Jan 2012 10:05:23 -0600 Message-Id: <1327334725-3145-5-git-send-email-mark.langsdorf@calxeda.com> X-Mailer: git-send-email 1.7.5.4 In-Reply-To: <1327334725-3145-1-git-send-email-mark.langsdorf@calxeda.com> References: <1327092420-10814-1-git-send-email-mark.langsdorf@calxeda.com> <1327334725-3145-1-git-send-email-mark.langsdorf@calxeda.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 67.192.241.201 Cc: i.mitsyanko@gmail.com, peter.maydell@linaro.org, afaerber@suse.de, mark.langsdorf@calxeda.com, edgar.iglesias@gmail.com Subject: [Qemu-devel] [PATCH v14 4/6] arm_boot: support board IDs more than 16 bits wide X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Peter Maydell Support passing a board ID value to the kernel in r1 that is more than 16 bits wide. This is needed to pass the '-1 == invalid' value for boards which only support device tree booting. Signed-off-by: Peter Maydell Tested-by: Mark Langsdorf --- Changes from v13 None Changes from v1-v12 Skipped hw/arm_boot.c | 11 +++++------ 1 files changed, 5 insertions(+), 6 deletions(-) diff --git a/hw/arm_boot.c b/hw/arm_boot.c index 35ca22f..5f163fd 100644 --- a/hw/arm_boot.c +++ b/hw/arm_boot.c @@ -20,10 +20,10 @@ /* The worlds second smallest bootloader. Set r0-r2, then jump to kernel. */ static uint32_t bootloader[] = { 0xe3a00000, /* mov r0, #0 */ - 0xe3a01000, /* mov r1, #0x?? */ - 0xe3811c00, /* orr r1, r1, #0x??00 */ - 0xe59f2000, /* ldr r2, [pc, #0] */ - 0xe59ff000, /* ldr pc, [pc, #0] */ + 0xe59f1004, /* ldr r1, [pc, #4] */ + 0xe59f2004, /* ldr r2, [pc, #4] */ + 0xe59ff004, /* ldr pc, [pc, #4] */ + 0, /* Board ID */ 0, /* Address of kernel args. Set by integratorcp_init. */ 0 /* Kernel entry point. Set by integratorcp_init. */ }; @@ -301,8 +301,7 @@ void arm_load_kernel(CPUState *env, struct arm_boot_info *info) } else { initrd_size = 0; } - bootloader[1] |= info->board_id & 0xff; - bootloader[2] |= (info->board_id >> 8) & 0xff; + bootloader[4] = info->board_id; bootloader[5] = info->loader_start + KERNEL_ARGS_ADDR; bootloader[6] = entry; for (n = 0; n < sizeof(bootloader) / 4; n++) {