Home | History | Annotate | Download | only in marvell
History log of /src/sys/arch/arm/marvell/mvsoc.c
RevisionDateAuthorComments
 1.33  19-Jun-2023  msaitoh Fix typo. unknwon -> unknown
 1.32  30-Aug-2021  rin Add ARMEB support to {evb,}arm/marvell.

Combined with upcoming commit to dev/marvell, all peripheral devices
seem to work just fine for KUROBOX_PRO in big-endian mode.
 1.31  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.30  24-Apr-2021  thorpej branches: 1.30.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.29  10-Mar-2017  skrll branches: 1.29.28;
Initialise the windows and allow access to PCI Express port 1 first lane.

Allows xhci(4) to attach in the MV78230 based Lenovo ix4-300d

mvpex1 at mvsoc0 unit 4 offset 0x80000-0x81fff irq 62: Marvell PCI Express Interface
pci1 at mvpex1
xhci0 at pci1 dev 1 function 0: vendor 1033 product 0194 (rev. 0x04)
xhci0: interrupting at interrupt pin INTA#
usb3 at xhci0: USB revision 3.0
usb4 at xhci0: USB revision 2.0
 1.28  24-Feb-2017  skrll Typo in a model string
 1.27  09-Jan-2017  kiyohara branches: 1.27.2;
Remove no-need #ifdef MARVELL_ATTR_AXI_DDR. It has defined.
 1.26  07-Jan-2017  christos make this compile (but not work) XXX
 1.25  07-Jan-2017  kiyohara Add support Marvell Dove.
Also <SoC>_intr_bootstrap() rename to <SoC>_bootstrap(). And SoC init func, getclk into that.
 1.24  06-Nov-2015  kiyohara branches: 1.24.2;
Add mvsocts to mvsoc_periph for Armada XP.
 1.23  03-Jun-2015  hsuenaga add new cryptographic accelerator driver 'mvxpsec.'

this driver controls CESA unit as same as mvcesa, but uses DMA engines and
does CBC operations, HMAC operations by hardware. about 2 kbytes of data
are processed at one. supported algorithms are:

- DES-CBC, 3DES-CBC, AES-CBC
- HMAC-SHA1, HMAC-MD5

non-CBC algorithm such as AES-GCM is not supported by CESA's acceleration
engine. mvcesa is still useful to implement such algorithms as combination of
accelerated block cipher and software chaining.
 1.22  03-Jun-2015  hsuenaga separate buffer management codes 'mvxpbm.c' from if_mvxpe.c.

the buffer management(ex. fill the rx descriptors/buffers) is done by H/W in
ARMADA XP/380, and is done by S/W in ARMADA 370. the H/W BM support is not yet
implemented, so all devices use the S/W management mode at this time.
 1.21  03-Jun-2015  hsuenaga dump Mbus settins on boot if AV_VERBOSE or AV_DEBUG is enabled.
 1.20  11-May-2015  hsuenaga add MARVELL Armada XP MV78260 B0(rev.2)
recent OpenBlocks AX3 uses it.
 1.19  03-May-2015  hsuenaga add new ethernet driver mvxpe for recent MARVELL's SoC after ARMADA/XP.
this driver supports 'counter mode', and is disabled by default.

ARMADA SoC family has new ethernet controller acceleration mode called
'enhanced mode' or 'counter mode.' it seems that backward compatibility mode
used by if_mvgbe is still working, but the specification of the old mode
is completely disappeared from SoC's reference manual.

I tested the driver using MIRABOX(ARMADA/370).
 1.18  15-Mar-2014  kiyohara branches: 1.18.6;
Support Armada 370.
 1.17  17-Feb-2014  kiyohara Support MARVELL_TAG_DDR3_CS[0-3].
 1.16  23-Dec-2013  kiyohara Support to check the clock gating for Armada XP in armadaxp.c.
Also move the checking for clock gate of Kirkwood into kirkwood.c.
 1.15  23-Dec-2013  kiyohara Move Misc Registers from mvsocreg.h to armadaxpreg.h. These registers only
Armada XP. The misc_base initializes in initarm() instead of mvsoc_bootstrap().
 1.14  23-Dec-2013  kiyohara Fixup model value for Kirkwood 88F6192.
Thanks for lwazidub at gmail com.
Add some KIRKWOOD_MISC_* Registers.
s/AUDIOSDIO/AUDIO/.
 1.13  30-Sep-2013  kiyohara Remove #ifdef ARMADAXP. It is OK !ARMADAXP.
Add some ARMADAXP devices to peripheral list.
And sort and reorder list.
 1.12  03-Jun-2013  rkujawa branches: 1.12.2;
Add support for SDIO on Armada XP.
 1.11  29-May-2013  rkujawa Add support for mvsoc-based Armada XP peripherals.

Obtained from Marvell, Semihalf.
 1.10  19-Oct-2012  msaitoh Add CLKGATING_BIT for some devices. This change prevent some boards
that a device's clock is stopped from hangup.
 1.9  10-Aug-2012  matt branches: 1.9.2;
Add MVSOC_CONSOLE_EARLY option to get a com console as soon as initarm
is entered.
 1.8  01-Aug-2012  kiyohara Add Thermal Sensor for Kirkwood(88F6282). tested only OpenBlockS A6.
 1.7  23-Jul-2012  kiyohara Enable idmac.
 1.6  21-Jul-2012  kiyohara Add 88F6282 parameters.
Use MVSOC_UNITID_PEX instead of {ORION,KIRKWOOD}_UNITID_PEX. This PEX UNITID is generic UNITID for MVSoC maybe.
 1.5  12-Feb-2012  matt branches: 1.5.2;
Change old-style function defintions to C89 prototypes.

Approved by releng.
 1.4  21-Sep-2011  reinoud branches: 1.4.2; 1.4.6;
Add revision 3/A1 of the KIRKWOOD

{ KIRKWOOD(88F6192), 3, "88F619x", "A1", "Kirkwood" },
 1.3  30-Jul-2011  jakllsch Add interrupt info for 88F5182 gtidmac(4) and uncomment.
 1.2  05-Mar-2011  matt branches: 1.2.2;
Add contributed Marvell Kirkwood RTC driver from Brett Slager
Fixes PR 44004
 1.1  03-Oct-2010  kiyohara branches: 1.1.2; 1.1.4; 1.1.6;
Add support Marvell Sheeva Core and SoC. (Orion/Kirkwood)
Discovery Innovation not yet.
 1.1.6.1  06-Jun-2011  jruoho Sync with HEAD.
 1.1.4.2  22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.1.4.1  03-Oct-2010  uebayasi file mvsoc.c was added on branch uebayasi-xip on 2010-10-22 09:23:11 +0000
 1.1.2.2  09-Oct-2010  yamt sync with head
 1.1.2.1  03-Oct-2010  yamt file mvsoc.c was added on branch yamt-nfs-mp on 2010-10-09 03:31:40 +0000
 1.2.2.3  06-Mar-2011  rmind sync with head (and fix few botches with this)
 1.2.2.2  05-Mar-2011  rmind sync with head
 1.2.2.1  05-Mar-2011  rmind file mvsoc.c was added on branch rmind-uvmplock on 2011-03-05 20:49:37 +0000
 1.4.6.1  18-Feb-2012  mrg merge to -current.
 1.4.2.3  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.2.2  30-Oct-2012  yamt sync with head
 1.4.2.1  17-Apr-2012  yamt sync with head
 1.5.2.1  11-Dec-2012  riz sys/arch/arm/marvell/mvsoc.c patch
sys/arch/arm/marvell/mvsocreg.h patch

Add CLKGATING_BIT, enable it for some 88F6281 devices, and don't
configure devices if their clock is disabled.
[msaitoh, ticket #737]
 1.9.2.4  03-Dec-2017  jdolecek update from HEAD
 1.9.2.3  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.2.2  23-Jun-2013  tls resync from head
 1.9.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.12.2.1  18-May-2014  rmind sync with head
 1.18.6.4  28-Aug-2017  skrll Sync with HEAD
 1.18.6.3  05-Feb-2017  skrll Sync with HEAD
 1.18.6.2  27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.18.6.1  06-Jun-2015  skrll Sync with HEAD
 1.24.2.1  20-Mar-2017  pgoyette Sync with HEAD
 1.27.2.1  21-Apr-2017  bouyer Sync with HEAD
 1.29.28.2  22-Mar-2021  thorpej Audit CFARG_IATTR in config_found() calls, and remove it in situations
where the interface attribute is not ambiguous.
 1.29.28.1  22-Mar-2021  thorpej Mechanical conversion of config_found_sm_loc() -> config_found().
CFARG_IATTR usage needs to be audited.
 1.30.8.1  04-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed