diff options
author | Baruch Siach <baruch@tkos.co.il> | 2010-08-02 14:58:51 +0300 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2010-08-04 09:28:15 +0200 |
commit | e74f2160e7f0ea36f3b74fb3271b08c75f77b547 (patch) | |
tree | 091b05f9b3b2c275c0ed02a047861e64fb8c55f2 /arch/arm/lib/armlinux.c | |
parent | 72ba847b32b052a30d3181968433b32d6d0aa533 (diff) | |
download | barebox-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.c | 19 |
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) |