/* * Broadcom BCM63xx flash registration * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 2008 Maxime Bizon <mbizon@freebox.fr> * Copyright (C) 2008 Florian Fainelli <florian@openwrt.org> * Copyright (C) 2012 Jonas Gorski <jonas.gorski@gmail.com>
*/
switch (bcm63xx_get_cpu_id()) { case BCM6328_CPU_ID:
val = bcm_misc_readl(MISC_STRAPBUS_6328_REG); if (val & STRAPBUS_6328_BOOT_SEL_SERIAL) return BCM63XX_FLASH_TYPE_SERIAL; else return BCM63XX_FLASH_TYPE_NAND; case BCM6338_CPU_ID: case BCM6345_CPU_ID: case BCM6348_CPU_ID: /* no way to auto detect so assume parallel */ return BCM63XX_FLASH_TYPE_PARALLEL; case BCM3368_CPU_ID: case BCM6358_CPU_ID:
val = bcm_gpio_readl(GPIO_STRAPBUS_REG); if (val & STRAPBUS_6358_BOOT_SEL_PARALLEL) return BCM63XX_FLASH_TYPE_PARALLEL; else return BCM63XX_FLASH_TYPE_SERIAL; case BCM6362_CPU_ID:
val = bcm_misc_readl(MISC_STRAPBUS_6362_REG); if (val & STRAPBUS_6362_BOOT_SEL_SERIAL) return BCM63XX_FLASH_TYPE_SERIAL; else return BCM63XX_FLASH_TYPE_NAND; case BCM6368_CPU_ID:
val = bcm_gpio_readl(GPIO_STRAPBUS_REG); switch (val & STRAPBUS_6368_BOOT_SEL_MASK) { case STRAPBUS_6368_BOOT_SEL_NAND: return BCM63XX_FLASH_TYPE_NAND; case STRAPBUS_6368_BOOT_SEL_SERIAL: return BCM63XX_FLASH_TYPE_SERIAL; case STRAPBUS_6368_BOOT_SEL_PARALLEL: return BCM63XX_FLASH_TYPE_PARALLEL;
}
fallthrough; default: return -EINVAL;
}
}
int __init bcm63xx_flash_register(void)
{ int flash_type;
u32 val;
flash_type = bcm63xx_detect_flash_type();
switch (flash_type) { case BCM63XX_FLASH_TYPE_PARALLEL: /* read base address of boot chip select (0) */
val = bcm_mpi_readl(MPI_CSBASE_REG(0));
val &= MPI_CSBASE_BASE_MASK;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.