-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[POWERPC] Consolidate cuboot initialization code
The various cuboot platforms (i.e. pre-device tree aware u-boot for 83xx, 85xx and Ebony) share a certain amount of code for parsing the boot parameters. To a certain extent that's inevitable, since they platforms have different definitions of the bd_t structure. However, with some macro work and a helper function, this patch improves the situation a bit. In the process, this fixes a bug on Ebony, which was incorrectly handling the parameters passed form u-boot for the command line (the bug was copied from 83xx and 85xx which have subsequently been fixed). Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
- Loading branch information
David Gibson
authored and
Paul Mackerras
committed
Jun 14, 2007
1 parent
b2ba34f
commit 85aecac
Showing
6 changed files
with
56 additions
and
37 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
/* | ||
* Compatibility for old (not device tree aware) U-Boot versions | ||
* | ||
* Author: Scott Wood <scottwood@freescale.com> | ||
* Consolidated using macros by David Gibson <david@gibson.dropbear.id.au> | ||
* | ||
* Copyright 2007 David Gibson, IBM Corporation. | ||
* Copyright (c) 2007 Freescale Semiconductor, Inc. | ||
* | ||
* This program is free software; you can redistribute it and/or modify it | ||
* under the terms of the GNU General Public License version 2 as published | ||
* by the Free Software Foundation. | ||
*/ | ||
|
||
#include "ops.h" | ||
#include "stdio.h" | ||
|
||
#include "ppcboot.h" | ||
|
||
extern char _end[]; | ||
extern char _dtb_start[], _dtb_end[]; | ||
|
||
void cuboot_init(unsigned long r4, unsigned long r5, | ||
unsigned long r6, unsigned long r7, | ||
unsigned long end_of_ram) | ||
{ | ||
unsigned long avail_ram = end_of_ram - (unsigned long)_end; | ||
|
||
loader_info.initrd_addr = r4; | ||
loader_info.initrd_size = r4 ? r5 - r4 : 0; | ||
loader_info.cmdline = (char *)r6; | ||
loader_info.cmdline_len = r7 - r6; | ||
|
||
simple_alloc_init(_end, avail_ram - 1024*1024, 32, 64); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
#ifndef _PPC_BOOT_CUBOOT_H_ | ||
#define _PPC_BOOT_CUBOOT_H_ | ||
|
||
void cuboot_init(unsigned long r4, unsigned long r5, | ||
unsigned long r6, unsigned long r7, | ||
unsigned long end_of_ram); | ||
|
||
#define CUBOOT_INIT() \ | ||
do { \ | ||
memcpy(&bd, (bd_t *)r3, sizeof(bd)); \ | ||
cuboot_init(r4, r5, r6, r7, bd.bi_memstart + bd.bi_memsize); \ | ||
} while (0) | ||
|
||
#endif /* _PPC_BOOT_CUBOOT_H_ */ |