Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add T7XC Support #9

Merged
merged 27 commits into from
Jun 24, 2024
Merged

Add T7XC Support #9

merged 27 commits into from
Jun 24, 2024

Conversation

mcarlin-ds
Copy link

Add driver for T7XC Ethernet switch (BR63134M):
Create new kernel driver brcm,bcm53134-datum based on kernel b53 driver for Broadcom RoboSwitch family.
Add mutex resourcing to manage schematic error in DSS23-001 where the I2C3 and SPI2 clock nets are shorted together.
Create new kernel driver ina2xx-datum based on kernel ina2xx driver with mutex resourcing. Used for T7XC only.
Create new kernel driver mcp9902-datum based on Datum's mcp2202 driver with mutex resourcing. Used for T7XC only.

…ke sure bridging is working properly. Note tags are disabled in this version, and a lot of register values are hacked in.
…level. Still need to test if they are maintained through port enables/disables. Also need to do lots of cleanup, there's a lot a test code in there.
  On powerup, cpu has no headers / imp has headers.
  PVLANs all set to zero (no connections between ports)
  Port0-Port4 PHY and MACs disabled.
…s, monitor RMGII link status, etc. Version 5.15.107-datum.7
… vectors for each port to include self on driver init.
…not 2 seconds. Add mutex between i2c devices and spi Broadcom switch to use a mutex to lock access to the schematic error that links the clock pins on i2c3 and spi2.
…pi/i2c actrivity in an attempt to get the spi crash to occur more often.
…ode to insure the device using the bus is asleep before releasing mutex.
…ime_suspended() instead of pm_runtime_active to exclude states where device is becoming active or becoming suspended.
…ck and unlock the mutex during a complete read or write transaction. Each read/write transaction contains multiple SPI bus accesses.
…me debug code. This appears to work, need to setup the pm autodisable for only the spi/i2c busses with the problem, then separate the i2c drivers into unmodified for the m7xc and modified for the t7xc.
…and i2c device memory (only use i2c if timer expired).
…02 drivers into those that supports I2C/SPI clock short and those that don't. Needed for one kernel to support both the T7XC and M7XC. This version still has increased BR53134, INA2236 and MCP9902 bus activity for testing.
… only grab/release the mutex once during multiple register reads.
@mcarlin-ds mcarlin-ds merged commit 6581dd9 into v5.15-datum Jun 24, 2024
mcarlin-ds pushed a commit that referenced this pull request Sep 13, 2024
[ Upstream commit e3e82fc ]

When creating ceq_0 during probing irdma, cqp.sc_cqp will be sent as a
cqp_request to cqp->sc_cqp.sq_ring. If the request is pending when
removing the irdma driver or unplugging its aux device, cqp.sc_cqp will be
dereferenced as wrong struct in irdma_free_pending_cqp_request().

  PID: 3669   TASK: ffff88aef892c000  CPU: 28  COMMAND: "kworker/28:0"
   #0 [fffffe0000549e38] crash_nmi_callback at ffffffff810e3a34
   #1 [fffffe0000549e40] nmi_handle at ffffffff810788b2
   #2 [fffffe0000549ea0] default_do_nmi at ffffffff8107938f
   #3 [fffffe0000549eb8] do_nmi at ffffffff81079582
   #4 [fffffe0000549ef0] end_repeat_nmi at ffffffff82e016b4
      [exception RIP: native_queued_spin_lock_slowpath+1291]
      RIP: ffffffff8127e72b  RSP: ffff88aa841ef778  RFLAGS: 00000046
      RAX: 0000000000000000  RBX: ffff88b01f849700  RCX: ffffffff8127e47e
      RDX: 0000000000000000  RSI: 0000000000000004  RDI: ffffffff83857ec0
      RBP: ffff88afe3e4efc8   R8: ffffed15fc7c9dfa   R9: ffffed15fc7c9dfa
      R10: 0000000000000001  R11: ffffed15fc7c9df9  R12: 0000000000740000
      R13: ffff88b01f849708  R14: 0000000000000003  R15: ffffed1603f092e1
      ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0000
  -- <NMI exception stack> --
   #5 [ffff88aa841ef778] native_queued_spin_lock_slowpath at ffffffff8127e72b
   #6 [ffff88aa841ef7b0] _raw_spin_lock_irqsave at ffffffff82c22aa4
   #7 [ffff88aa841ef7c8] __wake_up_common_lock at ffffffff81257363
   #8 [ffff88aa841ef888] irdma_free_pending_cqp_request at ffffffffa0ba12cc [irdma]
   #9 [ffff88aa841ef958] irdma_cleanup_pending_cqp_op at ffffffffa0ba1469 [irdma]
   #10 [ffff88aa841ef9c0] irdma_ctrl_deinit_hw at ffffffffa0b2989f [irdma]
   #11 [ffff88aa841efa28] irdma_remove at ffffffffa0b252df [irdma]
   #12 [ffff88aa841efae8] auxiliary_bus_remove at ffffffff8219afdb
   STMicroelectronics#13 [ffff88aa841efb00] device_release_driver_internal at ffffffff821882e6
   STMicroelectronics#14 [ffff88aa841efb38] bus_remove_device at ffffffff82184278
   STMicroelectronics#15 [ffff88aa841efb88] device_del at ffffffff82179d23
   STMicroelectronics#16 [ffff88aa841efc48] ice_unplug_aux_dev at ffffffffa0eb1c14 [ice]
   STMicroelectronics#17 [ffff88aa841efc68] ice_service_task at ffffffffa0d88201 [ice]
   STMicroelectronics#18 [ffff88aa841efde8] process_one_work at ffffffff811c589a
   STMicroelectronics#19 [ffff88aa841efe60] worker_thread at ffffffff811c71ff
   STMicroelectronics#20 [ffff88aa841eff10] kthread at ffffffff811d87a0
   STMicroelectronics#21 [ffff88aa841eff50] ret_from_fork at ffffffff82e0022f

Fixes: 44d9e52 ("RDMA/irdma: Implement device initialization definitions")
Link: https://lore.kernel.org/r/[email protected]
Suggested-by: "Ismail, Mustafa" <[email protected]>
Signed-off-by: Shifeng Li <[email protected]>
Reviewed-by: Shiraz Saleem <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
@mcarlin-ds mcarlin-ds deleted the t7xc branch September 13, 2024 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant