Home | History | Annotate | only in /src/sys/arch/mips/ingenic
History log of /src/sys/arch/mips/ingenic
RevisionDateAuthorComments
 1.21 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.20 24-Apr-2021  thorpej branches: 1.20.8;
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?).
 1.19 19-May-2017  skrll branches: 1.19.8; 1.19.26;
Trailing whitespace
 1.18 08-Oct-2015  macallan add a driver for the chip's EFUSE interface, use it to find the MAC address
for the onboard ethernet controller
 1.17 07-Aug-2015  macallan add driver for jz4780 random number generator
From Michael McConville
 1.16 11-Jul-2015  macallan - get rid of private bus space in ingenic_com.c
- move com to apbus
- attach the other UARTs
 1.15 18-May-2015  macallan pass the appropriate clock register to devices so different instances of the
same driver don't have to guess
also wire the ddc2 part to iic4 for now so we can see the monitor
 1.14 04-May-2015  macallan - fix pclk calculation
- report CPU clock
- pass mclk to child devices
- wire up pins for MSC / sdmmc
 1.13 28-Apr-2015  macallan add entries for sdmmc hosts, no driver yet
 1.12 21-Apr-2015  macallan enable clocks as needed
 1.11 25-Mar-2015  macallan branches: 1.11.2;
- determine bus clock, pass it to devices
- more clock enabling / gpio setup
 1.10 19-Mar-2015  macallan spin up SMBus clocks before attaching drivers
TODO: only enable clocks for drivers that actually attach
 1.9 17-Mar-2015  macallan always print the child devices' address, print irq if not -1 and a driver
is actually attaching
 1.8 17-Mar-2015  macallan - keep a list of devices, addresses and interrupts in apbus.c
- pass irq numbers to devices
- reduce magic numbers in device drivers
- allow multiple instances of device drivers
 1.7 09-Mar-2015  macallan moar devices
 1.6 27-Dec-2014  macallan restrict DMA buffers to the lower 256MB -> now dwc2 DMA works
 1.5 25-Dec-2014  macallan un-gate yet another clock
 1.4 23-Dec-2014  macallan appease nick
 1.3 23-Dec-2014  macallan wake up the USB ports before attaching dwctwo
now it finds a root hub
 1.2 23-Dec-2014  macallan use defflag-ed debug options
enable USB clocks before attaching dwctwo
 1.1 06-Dec-2014  macallan peripheral bus, not really tested
 1.11.2.5 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.11.2.4 22-Sep-2015  skrll Sync with HEAD
 1.11.2.3 06-Jun-2015  skrll Sync with HEAD
 1.11.2.2 06-Apr-2015  skrll Sync with HEAD
 1.11.2.1 25-Mar-2015  skrll file apbus.c was added on branch nick-nhusb on 2015-04-06 15:17:59 +0000
 1.19.26.1 23-Mar-2021  thorpej Convert config_found_ia() call sites where the device only carries
a single interface attribute to bare config_found() calls.
 1.19.8.2 03-Dec-2017  jdolecek update from HEAD
 1.19.8.1 19-May-2017  jdolecek file apbus.c was added on branch tls-maxphys on 2017-12-03 11:36:28 +0000
 1.20.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.9 11-Dec-2018  thorpej Add a convenience function, com_init_regs_stride(), that shifts the register
offsets and size by the specified amount. Use in front-ends as appropriate.
 1.8 08-Dec-2018  thorpej Remove the COM_REGMAP option -- just use it all the time. While here,
garbage-collect the COM_FUNCMAP and COM_AU1X00 options, as there are
not used anywhere.
 1.7 08-Dec-2018  thorpej Clean up initialization of com_regs structure, in preparation for
some additional changers.
 1.6 19-May-2017  skrll branches: 1.6.8; 1.6.10; 1.6.12;
Trailing whitespace
 1.5 11-Jul-2015  macallan - get rid of private bus space in ingenic_com.c
- move com to apbus
- attach the other UARTs
 1.4 07-Mar-2015  macallan fix uart parameters, now speed setting actually works
 1.3 23-Dec-2014  macallan establish interrupt
 1.2 06-Dec-2014  macallan sprinkle static
 1.1 22-Nov-2014  macallan branches: 1.1.2;
initial support for CI20 / Ingenic JZ4780
not much there yet, it loads, attaches a serial port and you can drop into
ddb
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 06-Apr-2015  skrll Sync with HEAD
 1.6.12.1 10-Jun-2019  christos Sync with HEAD
 1.6.10.1 26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.6.8.2 03-Dec-2017  jdolecek update from HEAD
 1.6.8.1 19-May-2017  jdolecek file ingenic_com.c was added on branch tls-maxphys on 2017-12-03 11:36:28 +0000
 1.1 21-May-2017  skrll branches: 1.1.6; 1.1.10;
Provide and use some CP0 accessor functions instead of M[TF]C0 macros
for readability.

While here convert some other M[TF]C0 uses to already exising accessor
functions, e.g. mipsNN_cp0_ebase_read
 1.1.10.2 03-Dec-2017  jdolecek update from HEAD
 1.1.10.1 21-May-2017  jdolecek file ingenic_coreregs.h was added on branch tls-maxphys on 2017-12-03 11:36:28 +0000
 1.1.6.2 28-Aug-2017  skrll Sync with HEAD
 1.1.6.1 21-May-2017  skrll file ingenic_coreregs.h was added on branch nick-nhusb on 2017-08-28 17:51:45 +0000
 1.5 04-Oct-2025  thorpej Add a shared function to query the common properties used for configuring
an Ethernet address.
 1.4 02-Apr-2020  nisimura add miivar.h and put a stop gap to compile.
 1.3 19-May-2017  skrll branches: 1.3.8; 1.3.12;
Trailing whitespace
 1.2 08-Oct-2015  macallan use the MAC address passed as a property if available instead of relying on
u-boot to program it into the chip for us ( which it may not do if we're not
netbooting )
 1.1 10-Mar-2015  macallan branches: 1.1.2;
support CI20's onboard Ethernet controller
 1.1.2.4 28-Aug-2017  skrll Sync with HEAD
 1.1.2.3 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.2.2 06-Apr-2015  skrll Sync with HEAD
 1.1.2.1 10-Mar-2015  skrll file ingenic_dme.c was added on branch nick-nhusb on 2015-04-06 15:17:59 +0000
 1.3.12.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.3.8.2 03-Dec-2017  jdolecek update from HEAD
 1.3.8.1 19-May-2017  jdolecek file ingenic_dme.c was added on branch tls-maxphys on 2017-12-03 11:36:28 +0000
 1.15 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.14 24-Apr-2021  thorpej branches: 1.14.8;
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?).
 1.13 23-Apr-2016  skrll branches: 1.13.16; 1.13.34;
Merge nick-nhusb

- API / infrastructure changes to support memory management changes.
- Memory management improvements and bug fixes.
- HCDs should now be MP safe
- conversion to KERNHIST based debug
- FS/LS isoc support on ehci(4).
- conversion to kmem(9)
- Some USB 3 support - mostly from Takahiro HAYASHI (t-hash).
- interrupt transfers now get proper DMA operations
- general bug fixes
- kern/48308
- uhub status notification improvements
- umass(4) probe fix (applied to HEAD already)
- ohci(4) short transfer fix
 1.12 30-Aug-2015  skrll Update for latest dwc2
 1.11 18-May-2015  macallan explicitly un-suspend the OTG port after PHY reset
 1.10 28-Apr-2015  macallan 'USB' -> 'USB OTG' to distinguish this one from the other USB hosts
 1.9 17-Mar-2015  macallan branches: 1.9.2;
set root hub vendor IDs
 1.8 17-Mar-2015  macallan - keep a list of devices, addresses and interrupts in apbus.c
- pass irq numbers to devices
- reduce magic numbers in device drivers
- allow multiple instances of device drivers
 1.7 10-Mar-2015  macallan flash the LED to show we're doing something
( and as a side effect make sure the USB PHY is powered up )
 1.6 09-Mar-2015  macallan magic number reduction
 1.5 27-Dec-2014  macallan restrict DMA buffers to the lower 256MB -> now dwc2 DMA works
 1.4 25-Dec-2014  macallan - use the same parameter block as the linux driver, only with DMA disabled
- reset the chip before handing it to dwc2/
now it actually detects some devices
 1.3 23-Dec-2014  macallan appease nick
 1.2 23-Dec-2014  macallan establish interrupt
do some PHY setup, now the hardware actually responds
 1.1 06-Dec-2014  macallan dwc2 attachment, doesn't do much yet
 1.9.2.4 22-Sep-2015  skrll Sync with HEAD
 1.9.2.3 06-Jun-2015  skrll Sync with HEAD
 1.9.2.2 06-Apr-2015  skrll Sync with HEAD
 1.9.2.1 17-Mar-2015  skrll file ingenic_dwctwo.c was added on branch nick-nhusb on 2015-04-06 15:17:59 +0000
 1.13.34.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.13.16.2 03-Dec-2017  jdolecek update from HEAD
 1.13.16.1 23-Apr-2016  jdolecek file ingenic_dwctwo.c was added on branch tls-maxphys on 2017-12-03 11:36:28 +0000
 1.14.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.3 14-Oct-2015  macallan branches: 1.3.2; 1.3.18;
add some comments
 1.2 08-Oct-2015  macallan fix build with INGENIC_DEBUG
 1.1 08-Oct-2015  macallan add a driver for the chip's EFUSE interface, use it to find the MAC address
for the onboard ethernet controller
 1.3.18.2 03-Dec-2017  jdolecek update from HEAD
 1.3.18.1 14-Oct-2015  jdolecek file ingenic_efuse.c was added on branch tls-maxphys on 2017-12-03 11:36:28 +0000
 1.3.2.2 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.3.2.1 14-Oct-2015  skrll file ingenic_efuse.c was added on branch nick-nhusb on 2015-12-27 12:09:38 +0000
 1.8 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.7 24-Apr-2021  thorpej branches: 1.7.8;
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?).
 1.6 09-Apr-2018  jakllsch branches: 1.6.16;
Stop potential misuse of vendor names and USB vendor IDs in root hub
device and string descriptors.

Firstly: Few vendors have identical PCI-SIG vendor IDs and USB-IF vendor
IDs. As such, using the PCI vendor ID as a USB vendor ID may trample
on whomever is allocated that USB vendor ID.

Secondly: The vendor of the host controller hardware implementation has
little to nothing to do with our usbroothub implementation. Thus we
should not potentially associate any problems therewith to such third
party.

This change will result in root hubs being identified by USB Vendor ID
0x0000. Root hub vendor string will now be "NetBSD" (or, specifically:
ostype). Product ID (0x0000) and product strings remain unchanged.
 1.5 23-Apr-2016  skrll branches: 1.5.16; 1.5.18;
Merge nick-nhusb

- API / infrastructure changes to support memory management changes.
- Memory management improvements and bug fixes.
- HCDs should now be MP safe
- conversion to KERNHIST based debug
- FS/LS isoc support on ehci(4).
- conversion to kmem(9)
- Some USB 3 support - mostly from Takahiro HAYASHI (t-hash).
- interrupt transfers now get proper DMA operations
- general bug fixes
- kern/48308
- uhub status notification improvements
- umass(4) probe fix (applied to HEAD already)
- ohci(4) short transfer fix
 1.4 02-Jan-2016  macallan properly initialize the EHCI
from Alexander Kabaev ( kan at freebsd.org )
 1.3 17-Mar-2015  macallan branches: 1.3.2;
set root hub vendor IDs
 1.2 17-Mar-2015  macallan - keep a list of devices, addresses and interrupts in apbus.c
- pass irq numbers to devices
- reduce magic numbers in device drivers
- allow multiple instances of device drivers
 1.1 08-Mar-2015  macallan drivers for on-chip ohci and ehci
ohci works fine, ehci doesn't like high speed devices
 1.3.2.4 19-Mar-2016  skrll Adapt to branch
 1.3.2.3 19-Mar-2016  skrll Sync with HEAD
 1.3.2.2 06-Apr-2015  skrll Sync with HEAD
 1.3.2.1 17-Mar-2015  skrll file ingenic_ehci.c was added on branch nick-nhusb on 2015-04-06 15:17:59 +0000
 1.5.18.1 16-Apr-2018  pgoyette Sync with HEAD, resolve some conflicts
 1.5.16.2 03-Dec-2017  jdolecek update from HEAD
 1.5.16.1 23-Apr-2016  jdolecek file ingenic_ehci.c was added on branch tls-maxphys on 2017-12-03 11:36:28 +0000
 1.6.16.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.7.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.7 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.6 24-Apr-2021  thorpej branches: 1.6.8;
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?).
 1.5 09-Apr-2018  jakllsch branches: 1.5.16;
Stop potential misuse of vendor names and USB vendor IDs in root hub
device and string descriptors.

Firstly: Few vendors have identical PCI-SIG vendor IDs and USB-IF vendor
IDs. As such, using the PCI vendor ID as a USB vendor ID may trample
on whomever is allocated that USB vendor ID.

Secondly: The vendor of the host controller hardware implementation has
little to nothing to do with our usbroothub implementation. Thus we
should not potentially associate any problems therewith to such third
party.

This change will result in root hubs being identified by USB Vendor ID
0x0000. Root hub vendor string will now be "NetBSD" (or, specifically:
ostype). Product ID (0x0000) and product strings remain unchanged.
 1.4 23-Apr-2016  skrll branches: 1.4.16; 1.4.18;
Merge nick-nhusb

- API / infrastructure changes to support memory management changes.
- Memory management improvements and bug fixes.
- HCDs should now be MP safe
- conversion to KERNHIST based debug
- FS/LS isoc support on ehci(4).
- conversion to kmem(9)
- Some USB 3 support - mostly from Takahiro HAYASHI (t-hash).
- interrupt transfers now get proper DMA operations
- general bug fixes
- kern/48308
- uhub status notification improvements
- umass(4) probe fix (applied to HEAD already)
- ohci(4) short transfer fix
 1.3 17-Mar-2015  macallan branches: 1.3.2;
set root hub vendor IDs
 1.2 17-Mar-2015  macallan - keep a list of devices, addresses and interrupts in apbus.c
- pass irq numbers to devices
- reduce magic numbers in device drivers
- allow multiple instances of device drivers
 1.1 08-Mar-2015  macallan drivers for on-chip ohci and ehci
ohci works fine, ehci doesn't like high speed devices
 1.3.2.2 06-Apr-2015  skrll Sync with HEAD
 1.3.2.1 17-Mar-2015  skrll file ingenic_ohci.c was added on branch nick-nhusb on 2015-04-06 15:17:59 +0000
 1.4.18.1 16-Apr-2018  pgoyette Sync with HEAD, resolve some conflicts
 1.4.16.2 03-Dec-2017  jdolecek update from HEAD
 1.4.16.1 23-Apr-2016  jdolecek file ingenic_ohci.c was added on branch tls-maxphys on 2017-12-03 11:36:28 +0000
 1.5.16.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.6.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.28 07-Jan-2025  andvar s/maks/mask/ in comment.
 1.27 10-Dec-2021  andvar branches: 1.27.10;
s/occured/occurred/ in comments, log messages and man pages.
 1.26 09-Aug-2020  skrll Type consistency
 1.25 21-May-2017  skrll branches: 1.25.8;
Provide and use some CP0 accessor functions instead of M[TF]C0 macros
for readability.

While here convert some other M[TF]C0 uses to already exising accessor
functions, e.g. mipsNN_cp0_ebase_read
 1.24 27-Aug-2016  skrll Trailing whitespace
 1.23 07-Apr-2016  macallan moar registers, less tpyos
 1.22 08-Oct-2015  macallan add a driver for the chip's EFUSE interface, use it to find the MAC address
for the onboard ethernet controller
 1.21 07-Aug-2015  macallan - sprinkle volatile
- add RNG registers
- fix some comments
 1.20 11-Jul-2015  macallan fix tpyos
 1.19 29-May-2015  macallan fix pasto
 1.18 18-May-2015  macallan add some clock divider registers
 1.17 04-May-2015  macallan moar registers
( clock and gpio related )
 1.16 28-Apr-2015  macallan add sdmmc ('MSC') registers
 1.15 23-Apr-2015  macallan more bits & registers
 1.14 21-Apr-2015  macallan #define some bits in the clock gating registers
 1.13 21-Apr-2015  macallan fix comments, add LCDC*_BASEs
 1.12 25-Mar-2015  macallan more clock and gpio stuff
 1.11 19-Mar-2015  macallan add SMBus registers
 1.10 17-Mar-2015  macallan add SMBus base addresses
 1.9 10-Mar-2015  macallan add gpio registers
 1.8 09-Mar-2015  macallan moar registers
 1.7 07-Mar-2015  macallan add memory controller registers
 1.6 25-Dec-2014  macallan even more registers
 1.5 23-Dec-2014  macallan appease nick
 1.4 23-Dec-2014  macallan yet more registers
 1.3 23-Dec-2014  macallan moar registers
 1.2 06-Dec-2014  macallan moar registers!
 1.1 22-Nov-2014  macallan branches: 1.1.2;
initial support for CI20 / Ingenic JZ4780
not much there yet, it loads, attaches a serial port and you can drop into
ddb
 1.1.2.7 28-Aug-2017  skrll Sync with HEAD
 1.1.2.6 05-Oct-2016  skrll Sync with HEAD
 1.1.2.5 22-Apr-2016  skrll Sync with HEAD
 1.1.2.4 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.2.3 22-Sep-2015  skrll Sync with HEAD
 1.1.2.2 06-Jun-2015  skrll Sync with HEAD
 1.1.2.1 06-Apr-2015  skrll Sync with HEAD
 1.25.8.2 03-Dec-2017  jdolecek update from HEAD
 1.25.8.1 21-May-2017  jdolecek file ingenic_regs.h was added on branch tls-maxphys on 2017-12-03 11:36:28 +0000
 1.27.10.1 02-Aug-2025  perseant Sync with HEAD
 1.7 19-Mar-2022  riastradh rnd(9): Omit needless locks in various HWRNG drivers.

Now that the rnd(9) API guarantees serial callbacks, we can simplify
everything a bit more.

(Some drivers like hifn(4) and sun8icrypto(4) still use locks to
coordinate with other parts of the driver to submit requests to and
process responses from the device.)
 1.6 19-Mar-2022  riastradh rnd(9): Adjust IPL of locks used by rndsource callbacks.

These no longer ever run from hard interrupt context or with a spin
lock held, so there is no longer any need to have them at IPL_VM to
block hard interrupts. Instead, lower them to IPL_SOFTSERIAL.
 1.5 30-Apr-2020  riastradh rnd_attach_source calls the callback itself now.

No need for every driver to explicitly call it to prime the pool.

Eliminate now-unused <sys/rndpool.h>.
 1.4 17-Feb-2016  macallan branches: 1.4.16;
Adapt CI20 HWRNG to synchronous on-demand callback.
Omit needless softint/locking dance.
from riastradh@
 1.3 17-Nov-2015  macallan Long overdue suggestions from Taylor Campbell and a few syntax/style
tweaks from myself.

From Michael McConville
 1.2 30-Aug-2015  macallan branches: 1.2.2;
add attribution, no functional change.
from Michael McConville
 1.1 07-Aug-2015  macallan add driver for jz4780 random number generator
From Michael McConville
 1.2.2.4 19-Mar-2016  skrll Sync with HEAD
 1.2.2.3 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.2.2.2 22-Sep-2015  skrll Sync with HEAD
 1.2.2.1 30-Aug-2015  skrll file ingenic_rng.c was added on branch nick-nhusb on 2015-09-22 12:05:47 +0000
 1.4.16.2 03-Dec-2017  jdolecek update from HEAD
 1.4.16.1 17-Feb-2016  jdolecek file ingenic_rng.c was added on branch tls-maxphys on 2017-12-03 11:36:28 +0000
 1.6 21-May-2017  skrll branches: 1.6.8;
Provide and use some CP0 accessor functions instead of M[TF]C0 macros
for readability.

While here convert some other M[TF]C0 uses to already exising accessor
functions, e.g. mipsNN_cp0_ebase_read
 1.5 18-May-2015  macallan pass the appropriate clock register to devices so different instances of the
same driver don't have to guess
also wire the ddc2 part to iic4 for now so we can see the monitor
 1.4 04-May-2015  macallan - fix pclk calculation
- report CPU clock
- pass mclk to child devices
- wire up pins for MSC / sdmmc
 1.3 25-Mar-2015  macallan branches: 1.3.2;
- determine bus clock, pass it to devices
- more clock enabling / gpio setup
 1.2 17-Mar-2015  macallan - keep a list of devices, addresses and interrupts in apbus.c
- pass irq numbers to devices
- reduce magic numbers in device drivers
- allow multiple instances of device drivers
 1.1 06-Dec-2014  macallan peripheral bus, not really tested
 1.3.2.4 28-Aug-2017  skrll Sync with HEAD
 1.3.2.3 06-Jun-2015  skrll Sync with HEAD
 1.3.2.2 06-Apr-2015  skrll Sync with HEAD
 1.3.2.1 25-Mar-2015  skrll file ingenic_var.h was added on branch nick-nhusb on 2015-04-06 15:17:59 +0000
 1.6.8.2 03-Dec-2017  jdolecek update from HEAD
 1.6.8.1 21-May-2017  jdolecek file ingenic_var.h was added on branch tls-maxphys on 2017-12-03 11:36:28 +0000
 1.2 19-May-2017  skrll branches: 1.2.8;
Trailing whitespace
 1.1 07-Apr-2016  macallan branches: 1.1.2;
moar registers, less tpyos
 1.1.2.3 28-Aug-2017  skrll Sync with HEAD
 1.1.2.2 22-Apr-2016  skrll Sync with HEAD
 1.1.2.1 07-Apr-2016  skrll file jzfb_regs.h was added on branch nick-nhusb on 2016-04-22 15:44:10 +0000
 1.2.8.2 03-Dec-2017  jdolecek update from HEAD
 1.2.8.1 19-May-2017  jdolecek file jzfb_regs.h was added on branch tls-maxphys on 2017-12-03 11:36:28 +0000
 1.10 15-Sep-2025  thorpej Encapsulate what's needed to attach an I2C bus into a iicbus_attach()
inline.
 1.9 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.8 24-Apr-2021  thorpej branches: 1.8.8;
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?).
 1.7 23-Dec-2019  thorpej branches: 1.7.10;
No need to check cold ourselves; iic_exec() does it for us.
 1.6 22-Dec-2019  thorpej Cleanup i2c bus acquire / release, centralizing all of the logic into
iic_acquire_bus() / iic_release_bus(). "acquire" and "release" hooks
no longer need to be provided by back-end controller drivers (only if
they need special handling, e.g. powering on the i2c controller).
This results in the removal of a bunch of rendundant code from each
back-end controller driver.

Assert that we are not in hard interrupt context in iic_acquire_bus(),
iic_exec(), and iic_release_bus().
 1.5 03-Sep-2018  riastradh Rename min/max -> uimin/uimax for better honesty.

These functions are defined on unsigned int. The generic name
min/max should not silently truncate to 32 bits on 64-bit systems.
This is purely a name change -- no functional change intended.

HOWEVER! Some subsystems have

#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))

even though our standard name for that is MIN/MAX. Although these
may invite multiple evaluation bugs, these do _not_ cause integer
truncation.

To avoid `fixing' these cases, I first changed the name in libkern,
and then compile-tested every file where min/max occurred in order to
confirm that it failed -- and thus confirm that nothing shadowed
min/max -- before changing it.

I have left a handful of bootloaders that are too annoying to
compile-test, and some dead code:

cobalt ews4800mips hp300 hppa ia64 luna68k vax
acorn32/if_ie.c (not included in any kernels)
macppc/if_gm.c (superseded by gem(4))

It should be easy to fix the fallout once identified -- this way of
doing things fails safe, and the goal here, after all, is to _avoid_
silent integer truncations, not introduce them.

Maybe one day we can reintroduce min/max as type-generic things that
never silently truncate. But we should avoid doing that for a while,
so that existing code has a chance to be detected by the compiler for
conversion to uimin/uimax without changing the semantics until we can
properly audit it all. (Who knows, maybe in some cases integer
truncation is actually intended!)
 1.4 19-May-2017  skrll branches: 1.4.8; 1.4.10; 1.4.12;
Trailing whitespace
 1.3 14-Dec-2015  macallan zero out struct i2cbus_attach_args before messing with it
 1.2 21-Apr-2015  macallan support interrupt-driven transfers
 1.1 04-Apr-2015  macallan branches: 1.1.2;
preliminary driver for JZ4780's on-chip SMBus controllers
needs more work but it's good enough for talking to an RTC
 1.1.2.4 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.2.3 06-Jun-2015  skrll Sync with HEAD
 1.1.2.2 06-Apr-2015  skrll Sync with HEAD
 1.1.2.1 04-Apr-2015  skrll file jziic.c was added on branch nick-nhusb on 2015-04-06 15:17:59 +0000
 1.4.12.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.4.12.1 10-Jun-2019  christos Sync with HEAD
 1.4.10.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.4.8.2 03-Dec-2017  jdolecek update from HEAD
 1.4.8.1 19-May-2017  jdolecek file jziic.c was added on branch tls-maxphys on 2017-12-03 11:36:28 +0000
 1.7.10.1 23-Mar-2021  thorpej Convert config_found_ia() call sites where the device only carries
a single interface attribute to bare config_found() calls.
 1.8.8.1 04-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed