1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- From 0daf361ea799fba0af5a232036d0f06cea85ad24 Mon Sep 17 00:00:00 2001
- From: Jonas Gorski <jogo@openwrt.org>
- Date: Sat, 21 Jun 2014 12:47:49 +0200
- Subject: [PATCH 42/44] MIPS: BCM63XX: allow building support for more than one
- board type
- Use the arguments passed to the kernel to detect being booted with
- CFE as the indicator for bcm963xx board support, allowing the
- non presence of CFE_EPTSEAL to assume a different board type.
- Signed-off-by: Jonas Gorski <jogo@openwrt.org>
- ---
- arch/mips/bcm63xx/boards/Kconfig | 7 +++----
- arch/mips/bcm63xx/boards/board_bcm963xx.c | 2 +-
- arch/mips/bcm63xx/boards/board_common.c | 13 +++++++++++++
- arch/mips/bcm63xx/boards/board_common.h | 6 ++++++
- 4 files changed, 23 insertions(+), 5 deletions(-)
- --- a/arch/mips/bcm63xx/boards/Kconfig
- +++ b/arch/mips/bcm63xx/boards/Kconfig
- @@ -1,11 +1,10 @@
- -choice
- - prompt "Board support"
- +menu "Board support"
- depends on BCM63XX
- - default BOARD_BCM963XX
-
- config BOARD_BCM963XX
- bool "Generic Broadcom 963xx boards"
- select SSB
- + default y
- help
-
- -endchoice
- +endmenu
- --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
- +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
- @@ -701,7 +701,7 @@ static const struct board_info __initcon
- /*
- * early init callback, read nvram data from flash and checksum it
- */
- -void __init board_prom_init(void)
- +void __init board_bcm963xx_init(void)
- {
- unsigned int i;
- u8 *boot_addr, *cfe;
- --- a/arch/mips/bcm63xx/boards/board_common.c
- +++ b/arch/mips/bcm63xx/boards/board_common.c
- @@ -14,6 +14,8 @@
- #include <linux/ssb/ssb.h>
- #include <linux/spi/spi.h>
- #include <asm/addrspace.h>
- +#include <asm/bootinfo.h>
- +#include <asm/fw/cfe/cfe_api.h>
- #include <bcm63xx_board.h>
- #include <bcm63xx_cpu.h>
- #include <bcm63xx_dev_uart.h>
- @@ -31,6 +33,8 @@
- #include <bcm63xx_dev_usb_usbd.h>
- #include <board_bcm963xx.h>
-
- +#include "board_common.h"
- +
- #define PFX "board: "
-
- static struct board_info board;
- @@ -81,6 +85,15 @@ const char *board_get_name(void)
- return board.name;
- }
-
- +void __init board_prom_init(void)
- +{
- + /* detect bootloader */
- + if (fw_arg3 == CFE_EPTSEAL)
- + board_bcm963xx_init();
- + else
- + panic("unsupported bootloader detected");
- +}
- +
- static int (*board_get_mac_address)(u8 mac[ETH_ALEN]);
-
- /*
- --- a/arch/mips/bcm63xx/boards/board_common.h
- +++ b/arch/mips/bcm63xx/boards/board_common.h
- @@ -6,4 +6,10 @@
- void board_early_setup(const struct board_info *board,
- int (*get_mac_address)(u8 mac[ETH_ALEN]));
-
- +#if defined(CONFIG_BOARD_BCM963XX)
- +void board_bcm963xx_init(void);
- +#else
- +static inline void board_bcm963xx_init(void) { }
- +#endif
- +
- #endif /* __BOARD_COMMON_H */
|