From 5658bc0a95a9419fd1d8239897f5cda5a2ef0e96 Mon Sep 17 00:00:00 2001 From: "Landon J. Fuller" Date: Thu, 23 Mar 2017 22:12:14 +0000 Subject: [PATCH] Add a workaround for the BCM4706's dangling core region EROM entries. Approved by: adrian (mentor, implicit) --- sys/dev/bhnd/bcma/bcma_erom.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sys/dev/bhnd/bcma/bcma_erom.c b/sys/dev/bhnd/bcma/bcma_erom.c index 941302c3041..c70e29c7826 100644 --- a/sys/dev/bhnd/bcma/bcma_erom.c +++ b/sys/dev/bhnd/bcma/bcma_erom.c @@ -1344,6 +1344,19 @@ bcma_erom_next_corecfg(struct bcma_erom *erom, struct bcma_corecfg **result) goto failed; } + /* + * Seek to the next core entry (if any), skipping any dangling/invalid + * region entries. + * + * On the BCM4706, the EROM entry for the memory controller core + * (0x4bf/0x52E) contains a dangling/unused slave wrapper port region + * descriptor. + */ + if ((error = bcma_erom_seek_next(erom, BCMA_EROM_ENTRY_TYPE_CORE))) { + if (error != ENOENT) + goto failed; + } + *result = cfg; return (0);