aboutsummaryrefslogtreecommitdiff
path: root/sys/mips
diff options
context:
space:
mode:
authorLandon J. Fuller <landonf@FreeBSD.org>2016-06-08 21:38:51 +0000
committerLandon J. Fuller <landonf@FreeBSD.org>2016-06-08 21:38:51 +0000
commitd342b2e9dadfe8946e86fa6c683dd40cd6f7f842 (patch)
treee3b3ecf67523ac2047e344078d01d779e1851956 /sys/mips
parentb0b9c8546b1616aa0154aee13c6d31d274e86ad0 (diff)
downloadsrc-d342b2e9dadfe8946e86fa6c683dd40cd6f7f842.tar.gz
src-d342b2e9dadfe8946e86fa6c683dd40cd6f7f842.zip
bhnd(4): Fix mips/broadcom core matching and bus pass order.
Changes: - Fixed incorrect MIPS74k vendor ID in the bhnd core descriptor tables - Fixed MIPS core driver's matching against MIPS/MIPS33 cores. - Improved MIPS3302 core description. - Enabled BUS_PASS_BUS on the bhnd nexus drivers to allow early probing of the MIPS core. - Enabled BUS_PASS_CPU on the MIPS core driver to ensure correct attach order. - Disabled matching of the MIPS core driver on non-SoC devices. Reviewed by: Michael Zhilin <mizhka@gmail.com> Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D6735
Notes
Notes: svn path=/head/; revision=301698
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/broadcom/bcm_mipscore.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/sys/mips/broadcom/bcm_mipscore.c b/sys/mips/broadcom/bcm_mipscore.c
index 988bedde2543..e48a68f23df8 100644
--- a/sys/mips/broadcom/bcm_mipscore.c
+++ b/sys/mips/broadcom/bcm_mipscore.c
@@ -53,10 +53,13 @@ static const struct resource_spec mipscore_rspec[MIPSCORE_MAX_RSPEC] = {
{ -1, -1, 0 }
};
+#define MIPSCORE_DEV(_vendor, _core) \
+ BHND_DEVICE(_vendor, _core, NULL, NULL, BHND_DF_SOC)
+
struct bhnd_device mipscore_match[] = {
- BHND_DEVICE(BCM, MIPS, NULL, NULL),
- BHND_DEVICE(BCM, MIPS33, NULL, NULL),
- BHND_DEVICE(MIPS, MIPS74K, NULL, NULL),
+ MIPSCORE_DEV(BCM, MIPS),
+ MIPSCORE_DEV(BCM, MIPS33),
+ MIPSCORE_DEV(MIPS, MIPS74K),
BHND_DEVICE_END
};
@@ -116,8 +119,8 @@ static device_method_t mipscore_methods[] = {
devclass_t bhnd_mipscore_devclass;
-DEFINE_CLASS_0(bhnd_mipscore, mipscore_driver, mipscore_methods,
- sizeof(struct mipscore_softc));
-DRIVER_MODULE(bhnd_mipscore, bhnd, mipscore_driver, bhnd_mipscore_devclass,
- 0, 0);
-MODULE_VERSION(bhnd_mipscore, 1);
+DEFINE_CLASS_0(bhnd_mips, mipscore_driver, mipscore_methods,
+ sizeof(struct mipscore_softc));
+EARLY_DRIVER_MODULE(bhnd_mips, bhnd, mipscore_driver,
+ bhnd_mipscore_devclass, 0, 0, BUS_PASS_CPU + BUS_PASS_ORDER_EARLY);
+MODULE_VERSION(bhnd_mips, 1);