Sathishkumar Muruganandam <murugana@xxxxxxxxxxxxxx> wrote: > To support dual-band variant of QCA9984, new extended board data (eBDF) > is introduced since existing board data ran out of space. > > Below is the brief implementation & design detail, > ---------------------------------------------------- > > 1. New OTP changes to inform eBDF support in existing OTP download to > fetch board ID and chip ID. This is backward compatible and older > card sends 0 by default for eBDF support bit (bit 18 of OTP response) we > check in ath10k driver. > > 2. If eBDF is supported, then we need to fetch eBDF ID which is bundled > in downloaded board data. So again OTP is executed for knowing the eBDF ID. > This is done once we set 'board_data_initialized' bit. If eBDF ID > returned is zero, we continue booting with previous board data downloaded. > > 3. Based on the eBDF ID fetched, ath10k driver tries to download the > extended board data to a new offset ahead of already downloaded board > data address. > > 4. A new BD IE type, ATH10K_BD_IE_BOARD_EXT is added to differentiate in > bundling eBDF separately in board-2.bin and also to parse through > board bundle for eBDF download in ath10k boot. > > 5. If eBDF is not present in the board-2.bin bundle or when board ID is > zero, we do a fallback boot to "eboard.bin" in the same QCA9984/hw1.0 dir. > This is same as done to existing "board.bin" if board ID is not present > in board-2.bin bundle. > > Current design is that eBDF size will be 2KB and eBDF ID will be > byte value. > > Tested the above changes with dual-band variant of QCA9984 card. OTP > update needed for the test will be part of next FW release 10.4-3.6-xxxx. > > Below are the logs with ath10k BOOT debugs enabled. > > First OTP response : > --------------------- > .. > boot upload otp to 0x1234 len 9478 for board id > boot get otp board id result 0x00040400 board_id 1 chip_id 0 ext_bid_support 1 > .. > > Second OTP response : > --------------------- > .. > boot upload otp to 0x1234 len 9478 for ext board id > boot get otp ext board id result 0x00000005 ext_board_id 5 > boot using eboard name 'bus=pci,bmi-chip-id=0,bmi-eboard-id=5' > .. > > Extended board data download: > ------------------------------ > .. > board name > 00000000: 62 75 73 3d 70 63 69 2c 62 6d 69 2d 63 68 69 70 bus=pci,bmi-chip > 00000010: 2d 69 64 3d 30 2c 62 6d 69 2d 65 62 6f 61 72 64 -id=0,bmi-eboard > 00000020: 2d 69 64 3d 35 -id=5 > boot found match for name 'bus=pci,bmi-chip-id=0,bmi-eboard-id=5' > boot found eboard data for 'bus=pci,bmi-chip-id=0,bmi-eboard-id=5' > using board api 2 > boot writing ext board data to addr 0xc3000 > .. > > Fallback Extended board data download from "eboard.bin": > --------------------------------------------------------- > .. > board name > 00000000: 62 75 73 3d 70 63 69 2c 62 6d 69 2d 63 68 69 70 bus=pci,bmi-chip > 00000010: 2d 69 64 3d 30 2c 62 6d 69 2d 62 6f 61 72 64 2d -id=0,bmi-board- > 00000020: 69 64 3d 31 30 id=10 > failed to fetch board data for bus=pci,bmi-chip-id=0,bmi-eboard-id=5 from ath10k/QCA9984/hw1.0/board-2.bin > boot fw request 'ath10k/QCA9984/hw1.0/eboard.bin': 0 > using board api 1 > boot writing ext board data to addr 0xc3000 > .. > > Signed-off-by: Sathishkumar Muruganandam <murugana@xxxxxxxxxxxxxx> > Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx> This introduced a new checkpatch warning: drivers/net/wireless/ath/ath10k/core.c:1059: line over 90 characters I fixed this in the pending branch. -- https://patchwork.kernel.org/patch/10575361/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches