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:
parent
c059ee9d77
commit
466ab2ea23
@ -294,6 +294,7 @@ config BMIPS_GENERIC
|
|||||||
select HARDIRQS_SW_RESEND
|
select HARDIRQS_SW_RESEND
|
||||||
select HAVE_PCI
|
select HAVE_PCI
|
||||||
select PCI_DRIVERS_GENERIC
|
select PCI_DRIVERS_GENERIC
|
||||||
|
select FW_CFE
|
||||||
help
|
help
|
||||||
Build a generic DT-based kernel image that boots on select
|
Build a generic DT-based kernel image that boots on select
|
||||||
BCM33xx cable modem chips, BCM63xx DSL chips, and BCM7xxx set-top
|
BCM33xx cable modem chips, BCM63xx DSL chips, and BCM7xxx set-top
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#include <asm/smp-ops.h>
|
#include <asm/smp-ops.h>
|
||||||
#include <asm/time.h>
|
#include <asm/time.h>
|
||||||
#include <asm/traps.h>
|
#include <asm/traps.h>
|
||||||
|
#include <asm/fw/cfe/cfe_api.h>
|
||||||
|
|
||||||
#define RELO_NORMAL_VEC BIT(18)
|
#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)
|
void __init prom_init(void)
|
||||||
{
|
{
|
||||||
|
bmips_init_cfe();
|
||||||
bmips_cpu_setup();
|
bmips_cpu_setup();
|
||||||
register_bmips_smp_ops();
|
register_bmips_smp_ops();
|
||||||
}
|
}
|
||||||
@ -165,7 +177,7 @@ void __init plat_mem_setup(void)
|
|||||||
dtb = get_fdt();
|
dtb = get_fdt();
|
||||||
|
|
||||||
if (!dtb)
|
if (!dtb)
|
||||||
panic("no dtb found");
|
cfe_die("no dtb found");
|
||||||
|
|
||||||
__dt_setup_arch(dtb);
|
__dt_setup_arch(dtb);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user