|
Revision tags: release/12.2.0, release/11.4.0, release/12.1.0, release/11.3.0, release/12.0.0, release/11.2.0 |
|
| #
caeff9a3 |
| 21-Nov-2017 |
Landon J. Fuller <[email protected]> |
bhnd(4): implement MIPS and PCI(e) interrupt support
On BHND MIPS SoCs, this replaces the use of hard-coded MIPS IRQ#s in the common bhnd(4) core drivers; we now register an INTRNG child PIC that ha
bhnd(4): implement MIPS and PCI(e) interrupt support
On BHND MIPS SoCs, this replaces the use of hard-coded MIPS IRQ#s in the common bhnd(4) core drivers; we now register an INTRNG child PIC that handles routing of backplane interrupt vectors via the MIPS core.
On BHND PCI devices, backplane interrupt vectors are now routed to the PCI/PCIe host bridge core when bus_setup_intr() is called, where they are dispatched by the PCI core via a host interrupt (e.g. INTx/MSI).
The bhndb(4) bridge driver tracks registered interrupt handlers for the bridged bhnd(4) devices and manages backplane interrupt routing, while delegating actual bus interrupt setup/teardown to the parent bus on behalf of the bridged cores.
Approved by: adrian (mentor, implicit) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D12518
show more ...
|
|
Revision tags: release/10.4.0, release/11.1.0 |
|
| #
8f3bba2d |
| 13-Feb-2017 |
Landon J. Fuller <[email protected]> |
[mips/broadcom] Move MIPS-specific bhnd(4) nexus drivers to sys/mips/broadcom, and add MIPS/BCM4706-specific workaround to bhnd_nexus_is_hw_disabled() -- the BCM4706 low-cost package leaves secondary
[mips/broadcom] Move MIPS-specific bhnd(4) nexus drivers to sys/mips/broadcom, and add MIPS/BCM4706-specific workaround to bhnd_nexus_is_hw_disabled() -- the BCM4706 low-cost package leaves secondary GMAC cores floating.
Reviewed by: mizhka Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D9499
show more ...
|
| #
77cb4d3e |
| 26-Nov-2016 |
Landon J. Fuller <[email protected]> |
bhnd(4): Unify NVRAM/SPROM parsing, implement compact SPROM layout encoding.
- Defined an abstract NVRAM I/O API (bhnd_nvram_io), decoupling NVRAM/SPROM parsing from the actual underlying NVRAM d
bhnd(4): Unify NVRAM/SPROM parsing, implement compact SPROM layout encoding.
- Defined an abstract NVRAM I/O API (bhnd_nvram_io), decoupling NVRAM/SPROM parsing from the actual underlying NVRAM data provider (e.g. CFE firmware devices). - Defined an abstract NVRAM data API (bhnd_nvram_data), decoupling higher-level NVRAM operations (indexed lookup, data conversion, etc) from the underlying NVRAM file format parsing/serialization. - Implemented a new high-level bhnd_nvram_store API, providing indexed variable lookup, pending write tracking, etc on top of an arbitrary bhnd_nvram_data instance. - Migrated all bhnd(4) NVRAM device drivers to the common bhnd_nvram_store API. - Implemented a common bhnd_nvram_val API for parsing/encoding NVRAM variable values, including applying format-specific behavior when converting to/from the NVRAM string representations. - Dropped the now unnecessary bhnd_nvram driver, and moved the broadcom/mips-specific CFE NVRAM driver out into sys/mips/broadcom. - Implemented a new nvram_map file format: - Variable definitions are now defined separately from the SPROM layout. This will also allow us to define CIS tuple NVRAM mappings referencing the common NVRAM variable definitions. - Variables can now be defined within arbitrary named groups. - Textual descriptions and help information can be defined inline for both variables and variable groups. - Implemented a new, compact encoding of SPROM image layout offsets. - Source-level (but not build system) support for building the NVRAM file format APIs (bhnd_nvram_io, bhnd_nvram_data, bhnd_nvram_store) as a userspace library.
The new compact SPROM image layout encoding is loosely modeled on Apple dyld compressed LINKEDIT symbol binding opcodes; it provides a compact state-machine encoding of the mapping between NVRAM variables and the SPROM image offset, mask, and shift instructions necessary to decode or encode the SPROM variable data.
The compact encoding reduces the size of the generated SPROM layout data from roughly 60KB to 3KB. The sequential nature SPROM layout opcode tables also simplify iteration of the SPROM variables, as it's no longer neccessary to iterate the full NVRAM variable definition table, but instead simply scan the SPROM revision's layout opcode table.
Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D8645
show more ...
|
| #
91f70e00 |
| 19-Nov-2016 |
Ruslan Bukin <[email protected]> |
Move intrng includes to the main MIPS includes file.
Sponsored by: DARPA, AFRL
|
|
Revision tags: release/11.0.1, release/11.0.0 |
|
| #
f75615f2 |
| 18-Sep-2016 |
Landon J. Fuller <[email protected]> |
Split bcm_mipscore.c into bcm_bmips (BMIPS32/BMIPS3300) and bcm_mips74k drivers.
The BMIPS32/BMIPS3300 cores use a register layout distinct from the MIPS74K core, and are only found on siba(4) devic
Split bcm_mipscore.c into bcm_bmips (BMIPS32/BMIPS3300) and bcm_mips74k drivers.
The BMIPS32/BMIPS3300 cores use a register layout distinct from the MIPS74K core, and are only found on siba(4) devices.
Reviewed by: mizhka Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D7791
show more ...
|
| #
29d492ac |
| 05-Sep-2016 |
Michael Zhilin <[email protected]> |
[BHND/USB] Port of EHCI/OHCI support from ZRouter
This patch adds driver implementation for BHND USB core. Driver has been imported from ZRouter project with small adaptions for FreeBSD 11.
Also it
[BHND/USB] Port of EHCI/OHCI support from ZRouter
This patch adds driver implementation for BHND USB core. Driver has been imported from ZRouter project with small adaptions for FreeBSD 11.
Also it's enabled for BroadCom MIPS74k boards by default. It's fully tested on Asus boards (RT-N16: external USB, RT-N53: USB bus between SoC and WiFi chips).
Reviewed by: adrian (mentor), ray Approved by: adrian (mentor) Obtained from: ZRouter Differential Revision: https://reviews.freebsd.org/D7781
show more ...
|
| #
664a7497 |
| 03-Sep-2016 |
Landon J. Fuller <[email protected]> |
Implement a generic bhnd(4) device enumeration table API.
This defines a new bhnd_erom_if API, providing a common interface to device enumeration on siba(4) and bcma(4) devices, for use both in the
Implement a generic bhnd(4) device enumeration table API.
This defines a new bhnd_erom_if API, providing a common interface to device enumeration on siba(4) and bcma(4) devices, for use both in the bhndb bridge and SoC early boot contexts, and migrates mips/broadcom over to the new API.
This also replaces the previous adhoc device enumeration support implemented for mips/broadcom.
Migration of bhndb to the new API will be implemented in a follow-up commit.
- Defined new bhnd_erom_if interface for bhnd(4) device enumeration, along with bcma(4) and siba(4)-specific implementations. - Fixed a minor bug in bhndb that logged an error when we attempted to map the full siba(4) bus space (18000000-17FFFFFF) in the siba EROM parser. - Reverted use of the resource's start address as the ChipCommon enum_addr in bhnd_read_chipid(). When called from bhndb, this address is found within the host address space, resulting in an invalid bridged enum_addr. - Added support for falling back on standard bus_activate_resource() in bhnd_bus_generic_activate_resource(), enabling allocation of the bhnd_erom's bhnd_resource directly from a nexus-attached bhnd(4) device. - Removed BHND_BUS_GET_CORE_TABLE(); it has been replaced by the erom API. - Added support for statically initializing bhnd_erom instances, for use prior to malloc availability. The statically allocated buffer size is verified both at runtime, and via a compile-time assertion (see BHND_EROM_STATIC_BYTES). - bhnd_erom classes are registered within a module via a linker set, allowing mips/broadcom to probe available EROM parser instances without creating a strong reference to bcma/siba-specific symbols. - Migrated mips/broadcom to bhnd_erom_if, replacing the previous MIPS-specific device enumeration implementation.
Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D7748
show more ...
|
| #
eb175e8b |
| 27-Aug-2016 |
Landon J. Fuller <[email protected]> |
[mips/broadcom]: Replace static frequency table with generic PMU clock handling.
- Extended PWRCTL/PMU APIs to support querying clock frequency during very early boot, prior to bus attach. - Impl
[mips/broadcom]: Replace static frequency table with generic PMU clock handling.
- Extended PWRCTL/PMU APIs to support querying clock frequency during very early boot, prior to bus attach. - Implement generic PMU-based calculation of UART rclk values. - Replaced use of static frequency tables (bcm_socinfo) with runtime-determined values.
Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D7552
show more ...
|
| #
cb4abe62 |
| 26-Aug-2016 |
Landon J. Fuller <[email protected]> |
[mips/broadcom] Generic platform_reset() support.
This adds support for performing platform_reset() on all supported devices, using early boot enumeration of chipc capabilities and available cores.
[mips/broadcom] Generic platform_reset() support.
This adds support for performing platform_reset() on all supported devices, using early boot enumeration of chipc capabilities and available cores.
- Added Broadcom-specific MIPS CP0 register definitions used by BCM4785-specific reset handling. - Added a bcm_platform structure for tracking chipc/pmu/cfe platform data. - Extended the BCMA EROM API to support early boot lookup of core info (including port/region mappings). - Extended platform_reset() to support PMU, PMU+AOB, and non-PMU devices.
Reviewed by: mizhka Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D7539
show more ...
|
| #
7ba7852f |
| 04-Jun-2016 |
Landon J. Fuller <[email protected]> |
Switch mips/sentry5 to bhnd(4), and unify with mips/broadcom
Now that bhnd(4) provides feature parity with the previous siba/mips implementation, we can switch sentry5 over and begin lifting common
Switch mips/sentry5 to bhnd(4), and unify with mips/broadcom
Now that bhnd(4) provides feature parity with the previous siba/mips implementation, we can switch sentry5 over and begin lifting common support code out for use across bhnd(4) embedded targets.
Changes:
- Fixed enumeration of siba(4) per-core address maps, required for discovery of memory mapped chipc flash region on siba(4) devices. - Simplified bhnd kernel configuration (dropped 'bhndbus' option). - Replaced files.broadcom's direct file references with their corresponding standard kernel options. - Lifted out common bcma/siba nexus support, inheriting from the new generic bhnd_nexus driver. - Dropped now-unused sentry5 siba code. - Re-integrated BCM into the universe build now that it actually compiles.
Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D6712
show more ...
|
| #
041b2de9 |
| 17-May-2016 |
Adrian Chadd <[email protected]> |
[mips/broadcom] Add initial support for Broadcom MIPS processor
Relies on BHND(4) driver.
There files contains machine-dependent code for Broadcom MIPS processor and provide UART driver.
This is a
[mips/broadcom] Add initial support for Broadcom MIPS processor
Relies on BHND(4) driver.
There files contains machine-dependent code for Broadcom MIPS processor and provide UART driver.
This is a work in progress; it and the current bhnd code is enough to boot on the ASUS RT-N16 and RT-N53 platforms.
Submitted by: Michael Zhilin <[email protected]> Differential Revision: https://reviews.freebsd.org/D6251
show more ...
|