#
3bee0c11 |
| 24-Apr-2021 |
thorpej <thorpej@NetBSD.org> |
Merge thorpej-cfargs branch:
Simplify and make extensible the config_search() / config_found() / config_attach() interfaces: rather than having different variants for which arguments you want pass a
Merge thorpej-cfargs branch:
Simplify and make extensible the config_search() / config_found() / config_attach() interfaces: rather than having different variants for which arguments you want pass along, just have a single call that takes a variadic list of tag-value arguments.
Adjust all call sites: - Simplify wherever possible; don't pass along arguments that aren't actually needed. - Don't be explicit about what interface attribute is attaching if the device only has one. (More simplification.) - Add a config_probe() function to be used in indirect configuiration situations, making is visibly easier to see when indirect config is in play, and allowing for future change in semantics. (As of now, this is just a wrapper around config_match(), but that is an implementation detail.)
Remove unnecessary or redundant interface attributes where they're not needed.
There are currently 5 "cfargs" defined: - CFARG_SUBMATCH (submatch function for direct config) - CFARG_SEARCH (search function for indirect config) - CFARG_IATTR (interface attribte) - CFARG_LOCATORS (locators array) - CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)
...and a sentinel value CFARG_EOL.
Add some extra sanity checking to ensure that interface attributes aren't ambiguous.
Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark ports to associate those device handles with device_t instance. This will trickle trough to more places over time (need back-end for pre-OFW Sun OBP; any others?).
show more ...
|
#
320845dd |
| 20-Mar-2007 |
dyoung <dyoung@NetBSD.org> |
Add a port to the Infineon ADM5120.
Basics: the ADM5120 is a 175 MHz MIPS32 4Kc processor featuring a 6-port ethernet 10/100 switch with Auto MDI/X, a PCI controller, USB 1.1 controller, UART, watch
Add a port to the Infineon ADM5120.
Basics: the ADM5120 is a 175 MHz MIPS32 4Kc processor featuring a 6-port ethernet 10/100 switch with Auto MDI/X, a PCI controller, USB 1.1 controller, UART, watchdog timer, eight GPIO pins, and a multiport memory controller with both NOR and NAND flash support. This code supports most of the devices on the ADM5120, including the 6-port switch (each port attaches as an ethernet, admsw0 through admsw5), the PCI controller, USB controller, GPIO, watchdog, and UART.
Remaining work: the port includes no NOR/NAND flash drivers. No bootloader is included. I have only tested the PCI bus driver with the use of one PCI slot on the RouterBOARD 153. It is not possible to exploit the capabilities of the ethernet switch using bridge(4). I have only netbooted the ADM5120 on the RB153. Booting other boards, and booting from flash memory, remains to be done.
Hardware availability: many low-cost routers, including the RouterBOARD 100 series at RouterBOARD.com, use the Infineon ADM5120 processor.
Credits: Ruslan Ermilov and Vsevolod Lobko ported to the ADM5120, and they wrote device drivers for the UART, USB controller, and 10/100 switch. Matt Isaacs brought the port up-to-date with NetBSD-current, made it compile, and ran it first on the RB153. I added drivers for the PCI controller, GPIO, and watchdog timer. I produced the bus attachment for the CompactFlash slot with advice from Mikrotik technical support and from Matt Thomas.
show more ...
|