diff options
-rw-r--r-- | arch/blackfin/kernel/setup.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index 8d7892820130..298f023bcc09 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c | |||
@@ -477,9 +477,11 @@ static __init void parse_cmdline_early(char *cmdline_p) | |||
477 | } else if (!memcmp(to, "clkin_hz=", 9)) { | 477 | } else if (!memcmp(to, "clkin_hz=", 9)) { |
478 | to += 9; | 478 | to += 9; |
479 | early_init_clkin_hz(to); | 479 | early_init_clkin_hz(to); |
480 | #ifdef CONFIG_EARLY_PRINTK | ||
480 | } else if (!memcmp(to, "earlyprintk=", 12)) { | 481 | } else if (!memcmp(to, "earlyprintk=", 12)) { |
481 | to += 12; | 482 | to += 12; |
482 | setup_early_printk(to); | 483 | setup_early_printk(to); |
484 | #endif | ||
483 | } else if (!memcmp(to, "memmap=", 7)) { | 485 | } else if (!memcmp(to, "memmap=", 7)) { |
484 | to += 7; | 486 | to += 7; |
485 | parse_memmap(to); | 487 | parse_memmap(to); |
@@ -798,6 +800,11 @@ void __init setup_arch(char **cmdline_p) | |||
798 | { | 800 | { |
799 | unsigned long sclk, cclk; | 801 | unsigned long sclk, cclk; |
800 | 802 | ||
803 | /* Check to make sure we are running on the right processor */ | ||
804 | if (unlikely(CPUID != bfin_cpuid())) | ||
805 | printk(KERN_ERR "ERROR: Not running on ADSP-%s: unknown CPUID 0x%04x Rev 0.%d\n", | ||
806 | CPU, bfin_cpuid(), bfin_revid()); | ||
807 | |||
801 | #ifdef CONFIG_DUMMY_CONSOLE | 808 | #ifdef CONFIG_DUMMY_CONSOLE |
802 | conswitchp = &dummy_con; | 809 | conswitchp = &dummy_con; |
803 | #endif | 810 | #endif |
@@ -812,14 +819,17 @@ void __init setup_arch(char **cmdline_p) | |||
812 | memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE); | 819 | memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE); |
813 | boot_command_line[COMMAND_LINE_SIZE - 1] = '\0'; | 820 | boot_command_line[COMMAND_LINE_SIZE - 1] = '\0'; |
814 | 821 | ||
815 | /* setup memory defaults from the user config */ | ||
816 | physical_mem_end = 0; | ||
817 | _ramend = get_mem_size() * 1024 * 1024; | ||
818 | |||
819 | memset(&bfin_memmap, 0, sizeof(bfin_memmap)); | 822 | memset(&bfin_memmap, 0, sizeof(bfin_memmap)); |
820 | 823 | ||
824 | /* If the user does not specify things on the command line, use | ||
825 | * what the bootloader set things up as | ||
826 | */ | ||
827 | physical_mem_end = 0; | ||
821 | parse_cmdline_early(&command_line[0]); | 828 | parse_cmdline_early(&command_line[0]); |
822 | 829 | ||
830 | if (_ramend == 0) | ||
831 | _ramend = get_mem_size() * 1024 * 1024; | ||
832 | |||
823 | if (physical_mem_end == 0) | 833 | if (physical_mem_end == 0) |
824 | physical_mem_end = _ramend; | 834 | physical_mem_end = _ramend; |
825 | 835 | ||
@@ -910,10 +920,7 @@ void __init setup_arch(char **cmdline_p) | |||
910 | else | 920 | else |
911 | printk(KERN_INFO "Compiled for ADSP-%s Rev 0.%d\n", CPU, bfin_compiled_revid()); | 921 | printk(KERN_INFO "Compiled for ADSP-%s Rev 0.%d\n", CPU, bfin_compiled_revid()); |
912 | 922 | ||
913 | if (unlikely(CPUID != bfin_cpuid())) | 923 | if (likely(CPUID == bfin_cpuid())) { |
914 | printk(KERN_ERR "ERROR: Not running on ADSP-%s: unknown CPUID 0x%04x Rev 0.%d\n", | ||
915 | CPU, bfin_cpuid(), bfin_revid()); | ||
916 | else { | ||
917 | if (bfin_revid() != bfin_compiled_revid()) { | 924 | if (bfin_revid() != bfin_compiled_revid()) { |
918 | if (bfin_compiled_revid() == -1) | 925 | if (bfin_compiled_revid() == -1) |
919 | printk(KERN_ERR "Warning: Compiled for Rev none, but running on Rev %d\n", | 926 | printk(KERN_ERR "Warning: Compiled for Rev none, but running on Rev %d\n", |