mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-10 15:19:51 +00:00
ARM: 8804/1: zImage: atags_to_fdt: add serial-number for ATAG_SERIAL
If the system passes an ATAG_SERIAL, convert that into a /serial-number node so that the system serial number will be passed through the FDT and be present under the kernel. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
7f97686715
commit
31d0b9f998
@ -98,6 +98,24 @@ static void merge_fdt_bootargs(void *fdt, const char *fdt_cmdline)
|
|||||||
setprop_string(fdt, "/chosen", "bootargs", cmdline);
|
setprop_string(fdt, "/chosen", "bootargs", cmdline);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void hex_str(char *out, uint32_t value)
|
||||||
|
{
|
||||||
|
uint32_t digit;
|
||||||
|
int idx;
|
||||||
|
|
||||||
|
for (idx = 7; idx >= 0; idx--) {
|
||||||
|
digit = value >> 28;
|
||||||
|
value <<= 4;
|
||||||
|
digit &= 0xf;
|
||||||
|
if (digit < 10)
|
||||||
|
digit += '0';
|
||||||
|
else
|
||||||
|
digit += 'A'-10;
|
||||||
|
*out++ = digit;
|
||||||
|
}
|
||||||
|
*out = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert and fold provided ATAGs into the provided FDT.
|
* Convert and fold provided ATAGs into the provided FDT.
|
||||||
*
|
*
|
||||||
@ -180,6 +198,11 @@ int atags_to_fdt(void *atag_list, void *fdt, int total_space)
|
|||||||
initrd_start);
|
initrd_start);
|
||||||
setprop_cell(fdt, "/chosen", "linux,initrd-end",
|
setprop_cell(fdt, "/chosen", "linux,initrd-end",
|
||||||
initrd_start + initrd_size);
|
initrd_start + initrd_size);
|
||||||
|
} else if (atag->hdr.tag == ATAG_SERIAL) {
|
||||||
|
char serno[16+2];
|
||||||
|
hex_str(serno, atag->u.serialnr.high);
|
||||||
|
hex_str(serno+8, atag->u.serialnr.low);
|
||||||
|
setprop_string(fdt, "/", "serial-number", serno);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user