Buona sera,
dopo aver aggiunto il supporto ufficiale ad OpenWrt per l'AGPWI mi sono deciso a cercare di sfruttare la JTAG presente in esso. Durante il mio corso di studi magistrali ho studiato la JTAG e, quindi, credo di avere le conoscenze basilari per potermi addentre nell'utilizzo pratico dei essa.
Anni fa, più o meno nel 2015, credo di aver letto in giro/capito che il problema con l'AGPWI era che i tool di cui si disponeva non erano in grado di riconoscere la JTAG dell'AGPWI. Ci sono aggiornamenti in merito?
Ho visto che qualcuno è riuscito ad accedere alla JTAG dell'AGTWI in questo forum:
https://forum.archive.openwrt.org/viewtopic.php?id=46784In base alle mie conoscenze della JTAG l'unico file necessario all'utilizzo di questa è il .bsdl che generalmente non è noto per i dispositivi come i SoC Broadcom o è distribuito in una sua forma "light" come per i dsPIC della Microchip in cui hanno rimosso dal .bsdl tutte le parti inerenti alle circuiterie DFT/BIST atte a testare il microcontrollore in fase di produzione.
Immagino, comunque, che anche per i router come l'AGPF per cui la JTAG era utilizzata al fine di riprogrammare la flash, il .bsdl non fosse disponibile. Allora mi chiedo: "come hanno fatto ad usare la JTAG dell'AGPF? si può fare reverse engineering per trovare quale posizione della scan chain corrisponde ai PIN della flash senza rischiare di dannegiare il SoC?
Immaginando di creare un tool per trovare quanto spiegato sopra, farei una cosa che shifta un '1' ogni volta e manda in output il valore ai PIN col comando JTAG EXTST fin quando ai PIN della flash non misuro un '1' logico.
Magari invece di shiftare un solo '1' e tanti '0', shifterei tutto il contenuto della scanchain e lo rimanderei in dietro con il solo bit che intendo testare cambiato ad '1'. Ma quanto descritto non rischia di danneggiare il SoC? mi sembra troppo intuitivo perchè nessuno abbia avuto la stessa idea prima.
Quindi vi chiedo:
Ci sono novità in merito alla JTAG dell'AGPWI? anche solo per fare un po di debugging, non necessariamente per riprogrammare la flash, ho un programmatore CH341A che posso tranquillamente usare qualora volessi riprogrammare la flash.
Accetto qualunque tipo di consiglio vogliate dispensarmi:
sono nuovo della JTAG in termini pratici. Al momento mi sono equipaggiato di un'interfaccia JTAG basata su FTDI FT232HQ che si chiama CJMCU-232H e stavo leggendo in rete come utilizzare OpenOCD e UrJTAG con essa. Notavo, con mio stupore, che per usare questi tool sembra non sia necessario passare come argomento il file .bsdl, anzi sembra questi siano capaci di riconoscere il targhet da sè.
Sono questi i tool più appropriati da usare? ne avete di migliori da consigliare?
Ho anche tirato fuori dal case dell'AGPWI i fili della JTAG in modo "elegante" assieme a quelli della UART, un GPIO e due voltage reference PINs (Vdd e Vss).
Spero possiate darmi una mano



