Patchwork arm: allow machine IDs > 0xffff

login
register
mail settings
Submitter Grant Likely
Date Jan. 20, 2012, 6:43 p.m.
Message ID <1327085017-22279-1-git-send-email-grant.likely@secretlab.ca>
Download mbox | patch
Permalink /patch/137183/
State New
Headers show

Comments

Grant Likely - Jan. 20, 2012, 6:43 p.m.
From: Jeremy Kerr <jeremy.kerr@canonical.com>

Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com>
Cc: Paul Brook <paul@codesourcery.com>
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
---
 hw/arm_boot.c |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)
Grant Likely - Jan. 20, 2012, 8:43 p.m.
On Fri, Jan 20, 2012 at 11:43 AM, Grant Likely
<grant.likely@secretlab.ca> wrote:
> From: Jeremy Kerr <jeremy.kerr@canonical.com>
>
> Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com>
> Cc: Paul Brook <paul@codesourcery.com>
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Cc: Rob Herring <rob.herring@calxeda.com>
> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

Oops, this one won't apply directly since it's build on top of another
patch.  I'll repost a clean version soon.

g.

> ---
>  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 de8f1a4..f2b7332 100644
> --- a/hw/arm_boot.c
> +++ b/hw/arm_boot.c
> @@ -26,10 +26,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, /* Machine ID */
>   0, /* Address of kernel args.  Set by integratorcp_init.  */
>   0  /* Kernel entry point.  Set by integratorcp_init.  */
>  };
> @@ -327,8 +327,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;
>         /* for device tree boot, we pass the DTB directly in r2. Otherwise
>          * we point to the kernel args */
>         if (info->dtb_filename)
> --
> 1.7.5.4
>

Patch

diff --git a/hw/arm_boot.c b/hw/arm_boot.c
index de8f1a4..f2b7332 100644
--- a/hw/arm_boot.c
+++ b/hw/arm_boot.c
@@ -26,10 +26,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, /* Machine ID */
   0, /* Address of kernel args.  Set by integratorcp_init.  */
   0  /* Kernel entry point.  Set by integratorcp_init.  */
 };
@@ -327,8 +327,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;
         /* for device tree boot, we pass the DTB directly in r2. Otherwise
          * we point to the kernel args */
         if (info->dtb_filename)