summaryrefslogtreecommitdiffstats
path: root/arch/arm/lib/armlinux.c
diff options
context:
space:
mode:
authorBaruch Siach <baruch@tkos.co.il>2010-08-02 14:58:51 +0300
committerSascha Hauer <s.hauer@pengutronix.de>2010-08-04 09:28:15 +0200
commite74f2160e7f0ea36f3b74fb3271b08c75f77b547 (patch)
tree091b05f9b3b2c275c0ed02a047861e64fb8c55f2 /arch/arm/lib/armlinux.c
parent72ba847b32b052a30d3181968433b32d6d0aa533 (diff)
downloadbarebox-e74f2160e7f0ea36f3b74fb3271b08c75f77b547.tar.gz
barebox-e74f2160e7f0ea36f3b74fb3271b08c75f77b547.tar.xz
arm: add support for the serial ATAG
Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/lib/armlinux.c')
-rw-r--r--arch/arm/lib/armlinux.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/lib/armlinux.c b/arch/arm/lib/armlinux.c
index 17ae057593..040fd346bf 100644
--- a/arch/arm/lib/armlinux.c
+++ b/arch/arm/lib/armlinux.c
@@ -46,6 +46,7 @@ static int armlinux_architecture = 0;
static void *armlinux_bootparams = NULL;
static unsigned int system_rev;
+static u64 system_serial;
static void setup_start_tag(void)
{
@@ -121,6 +122,19 @@ static void setup_revision_tag(void)
}
}
+static void setup_serial_tag(void)
+{
+ if (system_serial) {
+ params->hdr.tag = ATAG_SERIAL;
+ params->hdr.size = tag_size(tag_serialnr);
+
+ params->u.serialnr.low = system_serial & 0xffffffff;
+ params->u.serialnr.high = system_serial >> 32;
+
+ params = tag_next(params);
+ }
+}
+
#if 0
static void setup_initrd_tag(ulong initrd_start, ulong initrd_end)
{
@@ -155,6 +169,7 @@ static void setup_tags(void)
setup_initrd_tag (initrd_start, initrd_end);
#endif
setup_revision_tag();
+ setup_serial_tag();
setup_end_tag();
printf("commandline: %s\n"
@@ -186,6 +201,10 @@ void armlinux_set_revision(unsigned int rev)
system_rev = rev;
}
+void armlinux_set_serial(u64 serial)
+{
+ system_serial = serial;
+}
#ifdef CONFIG_CMD_BOOTM
int do_bootm_linux(struct image_data *data)