diff options
author | Laxman Dewangan <ldewangan@nvidia.com> | 2011-02-05 16:26:42 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:42:20 -0800 |
commit | c0f1802a8e2b91a5185c10bb0bf62a14154456a0 (patch) | |
tree | dc2ef6c411af3bddbaf0a0ec1ebf2f2c18ee07cb /arch | |
parent | 6bd50efc794ac2c4cb49bf2b2b69d96f17f25a26 (diff) |
arm: tegra: atag: Board information through ATAG_SERIAL
Fastboot passes the information of board info through ATAG_SERIAL.
Using this tag information to extract board info.
Original-Change-Id: I359044236756464ee3b8084878b2fd8969956fe7
Reviewed-on: http://git-master/r/18485
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Tested-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Original-Change-Id: I92fe8ba752606bd52039bea4c4447f24c9e56c6a
Rebase-Id: R3c2d0c6913e9f7994048eed69a7172a399acf876
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/common.c | 52 |
1 files changed, 5 insertions, 47 deletions
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c index b2e981bb490c..344d7d4bb3e2 100644 --- a/arch/arm/mach-tegra/common.c +++ b/arch/arm/mach-tegra/common.c @@ -232,52 +232,6 @@ static int __init tegra_bootloader_fb_arg(char *options) } early_param("tegra_fbmem", tegra_bootloader_fb_arg); -static int __init tegra_board_info_parse(char *info) -{ - char *p; - int pos = 0; - struct board_info *bi = &tegra_board_info; - - while (info && *info) { - if ((p = strchr(info, ':'))) - *p++ = '\0'; - - if (strlen(info) > 0) { - switch(pos) { - case 0: - bi->board_id = simple_strtol(info, NULL, 16); - break; - case 1: - bi->sku = simple_strtol(info, NULL, 16); - break; - case 2: - bi->fab = simple_strtol(info, NULL, 16); - break; - case 3: - bi->major_revision = simple_strtol(info, NULL, 16); - break; - case 4: - bi->minor_revision = simple_strtol(info, NULL, 16); - break; - default: - break; - } - } - - info = p; - pos++; - } - - pr_info("board info: Id:%d%2d SKU:%d%02d Fab:%d Rev:%c MinRev:%d\n", - bi->board_id >> 8 & 0xFF, bi->board_id & 0xFF, - bi->sku >> 8 & 0xFF, bi->sku & 0xFF, bi->fab, - bi->major_revision, bi->minor_revision); - - return 1; -} - -__setup("board_info=", tegra_board_info_parse); - static int __init tegra_debug_uartport(char *info) { if (!strcmp(info, "hsport")) @@ -297,7 +251,11 @@ __setup("debug_uartport=", tegra_debug_uartport); void tegra_get_board_info(struct board_info *bi) { - memcpy(bi, &tegra_board_info, sizeof(*bi)); + bi->board_id = (system_serial_high >> 16) & 0xFFFF; + bi->sku = (system_serial_high) & 0xFFFF; + bi->fab = (system_serial_low >> 24) & 0xFF; + bi->major_revision = (system_serial_low >> 16) & 0xFF; + bi->minor_revision = (system_serial_low >> 8) & 0xFF; } /* |