看SDK代码
soc_feature() 支持的功能
在 src/soc/common/feature.c中
查找过程,首先看到了有soc_do_init(),从SDK入口看起
sdk_init_test()
-> system_init()
-> soc_reset_init()
-> soc_so_init()
soc_do_init()中看到有 soc = SOC_CONTROL(unit),因为之前追踪soc_feature()发现它就是调用的soc_contrl[],所以,继续往下看
soc_do_init()中往下全都是soc->soc_flags,没有 soc->features
grep -nre "->features" 查找一下,发现src/soc/common/feature.c有sal_memset(SOC_CONTROL(unit)->features, 0,, 应该是初始化的过程,看一下
进src/soc/common/feature.c看soc_feature_init()
查看SOC_DRIVER(unit)
#define SOC_DRIVER(unit) (SOC_CONTROL(unit)->chip_driver)
grep找 chip_driver
src/soc/esw/drv.c中有soc_chip_driver_find(uint16 pci_dev_id, uint8 pci_rev_id),进去看看
再继续看soc_base_driver_table[] -> soc_driver_bcm56370_a0 -> soc_features_bcm56370_a0()就找到了
(注意:soc_base_driver_table[]这张表很重要!!!!)
SDK用sal_thread_create()创建线程
SDK中各端口的PHY地址映射关系和端口位图在src/soc/esw/drv.c -> soc_info_config()中初始化