@@ -1222,7 +1222,7 @@ static void b53_adjust_link(struct dsa_switch *ds, int port,
1222
1222
return ;
1223
1223
1224
1224
/* Enable flow control on BCM5301x's CPU port */
1225
- if (is5301x (dev ) && port == dev -> cpu_port )
1225
+ if (is5301x (dev ) && dsa_is_cpu_port ( ds , port ) )
1226
1226
tx_pause = rx_pause = true;
1227
1227
1228
1228
if (phydev -> pause ) {
@@ -1291,12 +1291,6 @@ static void b53_adjust_link(struct dsa_switch *ds, int port,
1291
1291
return ;
1292
1292
}
1293
1293
}
1294
- } else if (is5301x (dev )) {
1295
- if (port != dev -> cpu_port ) {
1296
- b53_force_port_config (dev , dev -> cpu_port , 2000 ,
1297
- DUPLEX_FULL , true, true);
1298
- b53_force_link (dev , dev -> cpu_port , 1 );
1299
- }
1300
1294
}
1301
1295
1302
1296
/* Re-negotiate EEE if it was enabled already */
@@ -2302,33 +2296,30 @@ static const struct b53_chip_data b53_switch_chips[] = {
2302
2296
.chip_id = BCM5325_DEVICE_ID ,
2303
2297
.dev_name = "BCM5325" ,
2304
2298
.vlans = 16 ,
2305
- .enabled_ports = 0x1f ,
2299
+ .enabled_ports = 0x3f ,
2306
2300
.arl_bins = 2 ,
2307
2301
.arl_buckets = 1024 ,
2308
2302
.imp_port = 5 ,
2309
- .cpu_port = B53_CPU_PORT_25 ,
2310
2303
.duplex_reg = B53_DUPLEX_STAT_FE ,
2311
2304
},
2312
2305
{
2313
2306
.chip_id = BCM5365_DEVICE_ID ,
2314
2307
.dev_name = "BCM5365" ,
2315
2308
.vlans = 256 ,
2316
- .enabled_ports = 0x1f ,
2309
+ .enabled_ports = 0x3f ,
2317
2310
.arl_bins = 2 ,
2318
2311
.arl_buckets = 1024 ,
2319
2312
.imp_port = 5 ,
2320
- .cpu_port = B53_CPU_PORT_25 ,
2321
2313
.duplex_reg = B53_DUPLEX_STAT_FE ,
2322
2314
},
2323
2315
{
2324
2316
.chip_id = BCM5389_DEVICE_ID ,
2325
2317
.dev_name = "BCM5389" ,
2326
2318
.vlans = 4096 ,
2327
- .enabled_ports = 0x1f ,
2319
+ .enabled_ports = 0x11f ,
2328
2320
.arl_bins = 4 ,
2329
2321
.arl_buckets = 1024 ,
2330
2322
.imp_port = 8 ,
2331
- .cpu_port = B53_CPU_PORT ,
2332
2323
.vta_regs = B53_VTA_REGS ,
2333
2324
.duplex_reg = B53_DUPLEX_STAT_GE ,
2334
2325
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2338,11 +2329,10 @@ static const struct b53_chip_data b53_switch_chips[] = {
2338
2329
.chip_id = BCM5395_DEVICE_ID ,
2339
2330
.dev_name = "BCM5395" ,
2340
2331
.vlans = 4096 ,
2341
- .enabled_ports = 0x1f ,
2332
+ .enabled_ports = 0x11f ,
2342
2333
.arl_bins = 4 ,
2343
2334
.arl_buckets = 1024 ,
2344
2335
.imp_port = 8 ,
2345
- .cpu_port = B53_CPU_PORT ,
2346
2336
.vta_regs = B53_VTA_REGS ,
2347
2337
.duplex_reg = B53_DUPLEX_STAT_GE ,
2348
2338
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2352,11 +2342,10 @@ static const struct b53_chip_data b53_switch_chips[] = {
2352
2342
.chip_id = BCM5397_DEVICE_ID ,
2353
2343
.dev_name = "BCM5397" ,
2354
2344
.vlans = 4096 ,
2355
- .enabled_ports = 0x1f ,
2345
+ .enabled_ports = 0x11f ,
2356
2346
.arl_bins = 4 ,
2357
2347
.arl_buckets = 1024 ,
2358
2348
.imp_port = 8 ,
2359
- .cpu_port = B53_CPU_PORT ,
2360
2349
.vta_regs = B53_VTA_REGS_9798 ,
2361
2350
.duplex_reg = B53_DUPLEX_STAT_GE ,
2362
2351
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2366,11 +2355,10 @@ static const struct b53_chip_data b53_switch_chips[] = {
2366
2355
.chip_id = BCM5398_DEVICE_ID ,
2367
2356
.dev_name = "BCM5398" ,
2368
2357
.vlans = 4096 ,
2369
- .enabled_ports = 0x7f ,
2358
+ .enabled_ports = 0x17f ,
2370
2359
.arl_bins = 4 ,
2371
2360
.arl_buckets = 1024 ,
2372
2361
.imp_port = 8 ,
2373
- .cpu_port = B53_CPU_PORT ,
2374
2362
.vta_regs = B53_VTA_REGS_9798 ,
2375
2363
.duplex_reg = B53_DUPLEX_STAT_GE ,
2376
2364
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2380,12 +2368,11 @@ static const struct b53_chip_data b53_switch_chips[] = {
2380
2368
.chip_id = BCM53115_DEVICE_ID ,
2381
2369
.dev_name = "BCM53115" ,
2382
2370
.vlans = 4096 ,
2383
- .enabled_ports = 0x1f ,
2371
+ .enabled_ports = 0x11f ,
2384
2372
.arl_bins = 4 ,
2385
2373
.arl_buckets = 1024 ,
2386
2374
.vta_regs = B53_VTA_REGS ,
2387
2375
.imp_port = 8 ,
2388
- .cpu_port = B53_CPU_PORT ,
2389
2376
.duplex_reg = B53_DUPLEX_STAT_GE ,
2390
2377
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
2391
2378
.jumbo_size_reg = B53_JUMBO_MAX_SIZE ,
@@ -2394,11 +2381,10 @@ static const struct b53_chip_data b53_switch_chips[] = {
2394
2381
.chip_id = BCM53125_DEVICE_ID ,
2395
2382
.dev_name = "BCM53125" ,
2396
2383
.vlans = 4096 ,
2397
- .enabled_ports = 0xff ,
2384
+ .enabled_ports = 0x1ff ,
2398
2385
.arl_bins = 4 ,
2399
2386
.arl_buckets = 1024 ,
2400
2387
.imp_port = 8 ,
2401
- .cpu_port = B53_CPU_PORT ,
2402
2388
.vta_regs = B53_VTA_REGS ,
2403
2389
.duplex_reg = B53_DUPLEX_STAT_GE ,
2404
2390
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2412,7 +2398,6 @@ static const struct b53_chip_data b53_switch_chips[] = {
2412
2398
.arl_bins = 4 ,
2413
2399
.arl_buckets = 1024 ,
2414
2400
.imp_port = 8 ,
2415
- .cpu_port = B53_CPU_PORT ,
2416
2401
.vta_regs = B53_VTA_REGS ,
2417
2402
.duplex_reg = B53_DUPLEX_STAT_GE ,
2418
2403
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2426,7 +2411,6 @@ static const struct b53_chip_data b53_switch_chips[] = {
2426
2411
.arl_bins = 4 ,
2427
2412
.arl_buckets = 1024 ,
2428
2413
.imp_port = 8 ,
2429
- .cpu_port = B53_CPU_PORT ,
2430
2414
.vta_regs = B53_VTA_REGS_63XX ,
2431
2415
.duplex_reg = B53_DUPLEX_STAT_63XX ,
2432
2416
.jumbo_pm_reg = B53_JUMBO_PORT_MASK_63XX ,
@@ -2436,11 +2420,10 @@ static const struct b53_chip_data b53_switch_chips[] = {
2436
2420
.chip_id = BCM53010_DEVICE_ID ,
2437
2421
.dev_name = "BCM53010" ,
2438
2422
.vlans = 4096 ,
2439
- .enabled_ports = 0x1f ,
2423
+ .enabled_ports = 0x1bf ,
2440
2424
.arl_bins = 4 ,
2441
2425
.arl_buckets = 1024 ,
2442
2426
.imp_port = 8 ,
2443
- .cpu_port = B53_CPU_PORT_25 , /* TODO: auto detect */
2444
2427
.vta_regs = B53_VTA_REGS ,
2445
2428
.duplex_reg = B53_DUPLEX_STAT_GE ,
2446
2429
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2454,7 +2437,6 @@ static const struct b53_chip_data b53_switch_chips[] = {
2454
2437
.arl_bins = 4 ,
2455
2438
.arl_buckets = 1024 ,
2456
2439
.imp_port = 8 ,
2457
- .cpu_port = B53_CPU_PORT_25 , /* TODO: auto detect */
2458
2440
.vta_regs = B53_VTA_REGS ,
2459
2441
.duplex_reg = B53_DUPLEX_STAT_GE ,
2460
2442
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2468,7 +2450,6 @@ static const struct b53_chip_data b53_switch_chips[] = {
2468
2450
.arl_bins = 4 ,
2469
2451
.arl_buckets = 1024 ,
2470
2452
.imp_port = 8 ,
2471
- .cpu_port = B53_CPU_PORT_25 , /* TODO: auto detect */
2472
2453
.vta_regs = B53_VTA_REGS ,
2473
2454
.duplex_reg = B53_DUPLEX_STAT_GE ,
2474
2455
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2478,11 +2459,10 @@ static const struct b53_chip_data b53_switch_chips[] = {
2478
2459
.chip_id = BCM53018_DEVICE_ID ,
2479
2460
.dev_name = "BCM53018" ,
2480
2461
.vlans = 4096 ,
2481
- .enabled_ports = 0x1f ,
2462
+ .enabled_ports = 0x1bf ,
2482
2463
.arl_bins = 4 ,
2483
2464
.arl_buckets = 1024 ,
2484
2465
.imp_port = 8 ,
2485
- .cpu_port = B53_CPU_PORT_25 , /* TODO: auto detect */
2486
2466
.vta_regs = B53_VTA_REGS ,
2487
2467
.duplex_reg = B53_DUPLEX_STAT_GE ,
2488
2468
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2492,11 +2472,10 @@ static const struct b53_chip_data b53_switch_chips[] = {
2492
2472
.chip_id = BCM53019_DEVICE_ID ,
2493
2473
.dev_name = "BCM53019" ,
2494
2474
.vlans = 4096 ,
2495
- .enabled_ports = 0x1f ,
2475
+ .enabled_ports = 0x1bf ,
2496
2476
.arl_bins = 4 ,
2497
2477
.arl_buckets = 1024 ,
2498
2478
.imp_port = 8 ,
2499
- .cpu_port = B53_CPU_PORT_25 , /* TODO: auto detect */
2500
2479
.vta_regs = B53_VTA_REGS ,
2501
2480
.duplex_reg = B53_DUPLEX_STAT_GE ,
2502
2481
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2510,7 +2489,6 @@ static const struct b53_chip_data b53_switch_chips[] = {
2510
2489
.arl_bins = 4 ,
2511
2490
.arl_buckets = 1024 ,
2512
2491
.imp_port = 8 ,
2513
- .cpu_port = B53_CPU_PORT ,
2514
2492
.vta_regs = B53_VTA_REGS ,
2515
2493
.duplex_reg = B53_DUPLEX_STAT_GE ,
2516
2494
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2524,7 +2502,6 @@ static const struct b53_chip_data b53_switch_chips[] = {
2524
2502
.arl_bins = 4 ,
2525
2503
.arl_buckets = 1024 ,
2526
2504
.imp_port = 8 ,
2527
- .cpu_port = B53_CPU_PORT ,
2528
2505
.vta_regs = B53_VTA_REGS ,
2529
2506
.duplex_reg = B53_DUPLEX_STAT_GE ,
2530
2507
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2539,7 +2516,6 @@ static const struct b53_chip_data b53_switch_chips[] = {
2539
2516
.arl_bins = 4 ,
2540
2517
.arl_buckets = 256 ,
2541
2518
.imp_port = 8 ,
2542
- .cpu_port = 8 , /* TODO: ports 4, 5, 8 */
2543
2519
.vta_regs = B53_VTA_REGS ,
2544
2520
.duplex_reg = B53_DUPLEX_STAT_GE ,
2545
2521
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2553,7 +2529,6 @@ static const struct b53_chip_data b53_switch_chips[] = {
2553
2529
.arl_bins = 4 ,
2554
2530
.arl_buckets = 1024 ,
2555
2531
.imp_port = 8 ,
2556
- .cpu_port = B53_CPU_PORT ,
2557
2532
.vta_regs = B53_VTA_REGS ,
2558
2533
.duplex_reg = B53_DUPLEX_STAT_GE ,
2559
2534
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2567,7 +2542,6 @@ static const struct b53_chip_data b53_switch_chips[] = {
2567
2542
.arl_bins = 4 ,
2568
2543
.arl_buckets = 256 ,
2569
2544
.imp_port = 8 ,
2570
- .cpu_port = B53_CPU_PORT ,
2571
2545
.vta_regs = B53_VTA_REGS ,
2572
2546
.duplex_reg = B53_DUPLEX_STAT_GE ,
2573
2547
.jumbo_pm_reg = B53_JUMBO_PORT_MASK ,
@@ -2593,7 +2567,6 @@ static int b53_switch_init(struct b53_device *dev)
2593
2567
dev -> vta_regs [2 ] = chip -> vta_regs [2 ];
2594
2568
dev -> jumbo_pm_reg = chip -> jumbo_pm_reg ;
2595
2569
dev -> imp_port = chip -> imp_port ;
2596
- dev -> cpu_port = chip -> cpu_port ;
2597
2570
dev -> num_vlans = chip -> vlans ;
2598
2571
dev -> num_arl_bins = chip -> arl_bins ;
2599
2572
dev -> num_arl_buckets = chip -> arl_buckets ;
@@ -2625,16 +2598,8 @@ static int b53_switch_init(struct b53_device *dev)
2625
2598
break ;
2626
2599
#endif
2627
2600
}
2628
- } else if (dev -> chip_id == BCM53115_DEVICE_ID ) {
2629
- u64 strap_value ;
2630
-
2631
- b53_read48 (dev , B53_STAT_PAGE , B53_STRAP_VALUE , & strap_value );
2632
- /* use second IMP port if GMII is enabled */
2633
- if (strap_value & SV_GMII_CTRL_115 )
2634
- dev -> cpu_port = 5 ;
2635
2601
}
2636
2602
2637
- dev -> enabled_ports |= BIT (dev -> cpu_port );
2638
2603
dev -> num_ports = fls (dev -> enabled_ports );
2639
2604
2640
2605
dev -> ds -> num_ports = min_t (unsigned int , dev -> num_ports , DSA_MAX_PORTS );
0 commit comments