MIPS: BMIPS: Utilize cfe_die() for invalid DTB
If we were not specified a correct DTB, we will not be able to print anything useful with panic() which requires a working console of some sort. Utilize cfe_die() to callback into the CFE default UART and print some useful diagnostics. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
This commit is contained in:
Родитель
c059ee9d77
Коммит
466ab2ea23
|
@ -294,6 +294,7 @@ config BMIPS_GENERIC
|
|||
select HARDIRQS_SW_RESEND
|
||||
select HAVE_PCI
|
||||
select PCI_DRIVERS_GENERIC
|
||||
select FW_CFE
|
||||
help
|
||||
Build a generic DT-based kernel image that boots on select
|
||||
BCM33xx cable modem chips, BCM63xx DSL chips, and BCM7xxx set-top
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <asm/smp-ops.h>
|
||||
#include <asm/time.h>
|
||||
#include <asm/traps.h>
|
||||
#include <asm/fw/cfe/cfe_api.h>
|
||||
|
||||
#define RELO_NORMAL_VEC BIT(18)
|
||||
|
||||
|
@ -123,8 +124,19 @@ static const struct bmips_quirk bmips_quirk_list[] = {
|
|||
{ },
|
||||
};
|
||||
|
||||
static void __init bmips_init_cfe(void)
|
||||
{
|
||||
cfe_seal = fw_arg3;
|
||||
|
||||
if (cfe_seal != CFE_EPTSEAL)
|
||||
return;
|
||||
|
||||
cfe_init(fw_arg0, fw_arg2);
|
||||
}
|
||||
|
||||
void __init prom_init(void)
|
||||
{
|
||||
bmips_init_cfe();
|
||||
bmips_cpu_setup();
|
||||
register_bmips_smp_ops();
|
||||
}
|
||||
|
@ -165,7 +177,7 @@ void __init plat_mem_setup(void)
|
|||
dtb = get_fdt();
|
||||
|
||||
if (!dtb)
|
||||
panic("no dtb found");
|
||||
cfe_die("no dtb found");
|
||||
|
||||
__dt_setup_arch(dtb);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче