)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"ed3cff1c34e4bbae74965f0bdb08c24943d8277f","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Sameer Srivastava \u003cs-srivastava4@ti.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-06-08 17:49:06 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"contrib: loaders: add am13e230x flash loader algorithm"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Created a flash loader for AM13E230X that receives flash sectors via"},{"line_number":10,"context_line":"shared memory ping-pong buffers, similar to the CC26xx flash loader."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7ddf3702_e580b1cb","line":7,"updated":"2026-06-08 14:17:58.000000000","message":"contrib/loaders/flash/am13e230x: add flash loader algorithm","commit_id":"4edf517905b178595ead336b36d0ec0efc5111f9"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"1dd1ffeaeade64f0cc7ce7d7d9da614dd25e9d17","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sameer Srivastava \u003cs-srivastava4@ti.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-06-08 17:49:06 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"contrib: loaders: add am13e230x flash loader algorithm"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Created a flash loader for AM13E230X that receives flash sectors via"},{"line_number":10,"context_line":"shared memory ping-pong buffers, similar to the CC26xx flash loader."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9e92a9fd_7f348682","line":7,"in_reply_to":"7ddf3702_e580b1cb","updated":"2026-06-10 06:30:10.000000000","message":"Done","commit_id":"4edf517905b178595ead336b36d0ec0efc5111f9"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"ed3cff1c34e4bbae74965f0bdb08c24943d8277f","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"contrib: loaders: add am13e230x flash loader algorithm"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Created a flash loader for AM13E230X that receives flash sectors via"},{"line_number":10,"context_line":"shared memory ping-pong buffers, similar to the CC26xx flash loader."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Signed-off-by: Sameer Srivastava \u003cs-srivastava4@ti.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ac4f1d04_8d6dbd52","line":9,"updated":"2026-06-08 14:17:58.000000000","message":"s/Created/Add","commit_id":"4edf517905b178595ead336b36d0ec0efc5111f9"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"1dd1ffeaeade64f0cc7ce7d7d9da614dd25e9d17","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"contrib: loaders: add am13e230x flash loader algorithm"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Created a flash loader for AM13E230X that receives flash sectors via"},{"line_number":10,"context_line":"shared memory ping-pong buffers, similar to the CC26xx flash loader."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Signed-off-by: Sameer Srivastava \u003cs-srivastava4@ti.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"a1f17a97_76957f18","line":9,"in_reply_to":"ac4f1d04_8d6dbd52","updated":"2026-06-10 06:30:10.000000000","message":"Done","commit_id":"4edf517905b178595ead336b36d0ec0efc5111f9"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"ed3cff1c34e4bbae74965f0bdb08c24943d8277f","unresolved":true,"context_lines":[{"line_number":10,"context_line":"shared memory ping-pong buffers, similar to the CC26xx flash loader."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Signed-off-by: Sameer Srivastava \u003cs-srivastava4@ti.com\u003e"},{"line_number":13,"context_line":"Change-Id: If5759b6f513cf94a0208d1bf4e95eb012a297d17"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a9580b7_0a0df4ef","line":13,"updated":"2026-06-08 14:17:58.000000000","message":"move the Change-Id: before the Signed-off-by for all patches.","commit_id":"4edf517905b178595ead336b36d0ec0efc5111f9"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"1dd1ffeaeade64f0cc7ce7d7d9da614dd25e9d17","unresolved":false,"context_lines":[{"line_number":10,"context_line":"shared memory ping-pong buffers, similar to the CC26xx flash loader."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Signed-off-by: Sameer Srivastava \u003cs-srivastava4@ti.com\u003e"},{"line_number":13,"context_line":"Change-Id: If5759b6f513cf94a0208d1bf4e95eb012a297d17"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ace7b563_ee052ec7","line":13,"in_reply_to":"9a9580b7_0a0df4ef","updated":"2026-06-10 06:30:10.000000000","message":"Done","commit_id":"4edf517905b178595ead336b36d0ec0efc5111f9"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"992fa220daea0431535b38c8b08dee08fbaf1d98","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"c271f620_21013763","updated":"2026-06-16 16:15:34.000000000","message":"minor.. please check other flash.h definitions","commit_id":"39f5e641f04be9dc68cce2e0afd24ba8f7cbcf9c"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"3aabc0d61bd3333e46b91a5970c995545989a431","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"b8755939_3eb00644","updated":"2026-06-17 14:40:17.000000000","message":"Antonio, Paul - I think the code is in good shape now. Lets know if something catches your eye.","commit_id":"33f67db3565128f5119b35bf7815eb92f6eaae10"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"11f6a90fa53ca0985a7dca0caeee86fdbaf786e4","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"0382ee50_ec4e184d","updated":"2026-08-26 07:51:23.000000000","message":"I\u0027m not voting -1 because the code is functional, but please have a look at my comment below","commit_id":"0712452123097d4bca7c92f7a881f28e05a8800f"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"tomas.vanek.oocd@gmail.com","username":"vanekt"},"change_message_id":"0d96e9c5249aa72e27c9c6c13c4660a3cde52871","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"9f40f0f8_69310cc7","updated":"2026-08-25 14:17:46.000000000","message":"Thanks!","commit_id":"0712452123097d4bca7c92f7a881f28e05a8800f"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"aac00a760d16494e3e359d74e43845beb4eecccd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"78658683_f15606ea","in_reply_to":"0382ee50_ec4e184d","updated":"2026-08-27 10:50:41.000000000","message":"Thanks, fixed.","commit_id":"0712452123097d4bca7c92f7a881f28e05a8800f"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"b597f76192b295093e8e0e220b0137a5b0aeba12","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"00eb7651_f08a1176","updated":"2026-08-30 11:37:04.000000000","message":"Thanks!","commit_id":"10b5b9de33254b569e169ec71e58e18542703dee"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"6ac6399125a24ceb0b60d2d054a3512073c1bb11","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"dd1ad2c8_ced20f54","updated":"2026-08-27 11:47:47.000000000","message":"https://build.openocd.org/job/openocd-gerrit-build/TARGET\u003dmingw64/22978/console seems to be something going on with the CI system ``ccache: error: Failed to create directory /run/user/1001/ccache-tmp: Permission denied``","commit_id":"10b5b9de33254b569e169ec71e58e18542703dee"},{"author":{"_account_id":1000160,"name":"Paul Fertser","email":"fercerpav@gmail.com","username":"pfertser"},"change_message_id":"d0e76131677058025c6a14a307c5000c7d973371","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"ccfdcc8c_37d79cf3","in_reply_to":"8dae3dbb_d6bc1388","updated":"2026-08-28 08:57:00.000000000","message":"\u003e Yes, jenkins seems to be dead.\n\u003e \n\u003e Paul please!!!\n\nSorry about that. The core reason is that JRE gets updated in background with unattended upgrades and that breaks Jenkins trying to spawn git because the updated helper doesn\u0027t match the version of the running process. It\u0027s a known issue but somehow Debian still doesn\u0027t offer a \"neat\" way to deal with it. Sorry about postponing the real solution for too long. I guess I\u0027ll just add a pre-install-hook to dpkg now which would create a /tmp file and then a post-install hook to check it... Not elegant and not 100 % reliable but better than what annoys you guys currently. Sorry again. FWIW, during the working week I\u0027m much more likely to react on IRC (especially in the evening) than on an e-mail from Gerrit)...","commit_id":"10b5b9de33254b569e169ec71e58e18542703dee"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"d45bab98885b6ccf3b811c95b6b62919bb30b7b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"4539e3d6_6d82b4ec","in_reply_to":"ccfdcc8c_37d79cf3","updated":"2026-08-29 19:21:26.000000000","message":"Thanks a ton Paul, Tomas.","commit_id":"10b5b9de33254b569e169ec71e58e18542703dee"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"tomas.vanek.oocd@gmail.com","username":"vanekt"},"change_message_id":"ca323e1387b73fa016e7806c3d8318f7b05141ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"8dae3dbb_d6bc1388","in_reply_to":"dd1ad2c8_ced20f54","updated":"2026-08-27 12:47:00.000000000","message":"Yes, jenkins seems to be dead.\n\nPaul please!!!","commit_id":"10b5b9de33254b569e169ec71e58e18542703dee"}],"contrib/loaders/flash/am13e230x/am13e230x.lds":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"11f6a90fa53ca0985a7dca0caeee86fdbaf786e4","unresolved":true,"context_lines":[{"line_number":38,"context_line":"\t\t_edata \u003d .;"},{"line_number":39,"context_line":"\t} \u003e PROGRAM"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"\t.bss :"},{"line_number":42,"context_line":"\t{"},{"line_number":43,"context_line":"\t\t__bss_start__ \u003d .;"},{"line_number":44,"context_line":"\t\t_bss \u003d .;"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"df73f09e_ac5ae6f3","line":41,"updated":"2026-08-26 07:51:23.000000000","message":"By changing this line as:\n`\t.bss (NOLOAD) :`\nand adding the `NOLOAD` type to the sections `.stack` and `.buffers` too,\nwe get the resulting binary size decreased from 12544 bytes to only 760.\nWhile this is irrelevant for the total size of the OpenOCD binary, I think this can be a nice gain for the loading latency of the binary to the target.\n\nI don\u0027t see any issues since:\n- the section `.bss` is zeroed in `startup.c::entry()`;\n- the section `.stack` does not need to be initialized (otherwise it\u0027s because of incorrect using uninitialized variable in stack that should be fixed);\n- the section `.buffers` is initialized in `main.c::main()`;\n- the driver in next patch correctly uses the binary size for load and a pre-defined size for work-area allocation.\n\nBut please check if the resulting firmware is working correctly.","commit_id":"0712452123097d4bca7c92f7a881f28e05a8800f"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"1b0823103f3ff16cc0ef2539024ac3d426becb84","unresolved":false,"context_lines":[{"line_number":38,"context_line":"\t\t_edata \u003d .;"},{"line_number":39,"context_line":"\t} \u003e PROGRAM"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"\t.bss :"},{"line_number":42,"context_line":"\t{"},{"line_number":43,"context_line":"\t\t__bss_start__ \u003d .;"},{"line_number":44,"context_line":"\t\t_bss \u003d .;"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"9ace2839_f4ef2fba","line":41,"in_reply_to":"62b1bdbc_b0b9c1e2","updated":"2026-08-27 10:44:48.000000000","message":"Done","commit_id":"0712452123097d4bca7c92f7a881f28e05a8800f"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"86b49ee23671bf9776d9d3becdb9c5ac144d53f7","unresolved":true,"context_lines":[{"line_number":38,"context_line":"\t\t_edata \u003d .;"},{"line_number":39,"context_line":"\t} \u003e PROGRAM"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"\t.bss :"},{"line_number":42,"context_line":"\t{"},{"line_number":43,"context_line":"\t\t__bss_start__ \u003d .;"},{"line_number":44,"context_line":"\t\t_bss \u003d .;"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"62b1bdbc_b0b9c1e2","line":41,"in_reply_to":"762869cd_88b3dd2e","updated":"2026-08-26 13:46:26.000000000","message":"Thanks Antonio, I have added the `NOLOAD` type to the three sections and checked the resulting firmware.","commit_id":"0712452123097d4bca7c92f7a881f28e05a8800f"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"tomas.vanek.oocd@gmail.com","username":"vanekt"},"change_message_id":"316c6666dcc821864c74b965361915c10819f09c","unresolved":true,"context_lines":[{"line_number":38,"context_line":"\t\t_edata \u003d .;"},{"line_number":39,"context_line":"\t} \u003e PROGRAM"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"\t.bss :"},{"line_number":42,"context_line":"\t{"},{"line_number":43,"context_line":"\t\t__bss_start__ \u003d .;"},{"line_number":44,"context_line":"\t\t_bss \u003d .;"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"762869cd_88b3dd2e","line":41,"in_reply_to":"df73f09e_ac5ae6f3","updated":"2026-08-26 08:03:00.000000000","message":"Good point! I didn\u0027t spot it.","commit_id":"0712452123097d4bca7c92f7a881f28e05a8800f"}],"contrib/loaders/flash/am13e230x/am13e230x_algo.inc":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"tomas.vanek.oocd@gmail.com","username":"vanekt"},"change_message_id":"a301fb11785ba7028479b77987d171705d05cc8a","unresolved":false,"context_lines":[{"line_number":46,"context_line":"0x1b,0x04,0x43,0xea,0x01,0x23,0x11,0x78,0x04,0x32,0x0b,0x43,0x12,0xf8,0x01,0x1c,"},{"line_number":47,"context_line":"0x43,0xea,0x01,0x63,0xc3,0x51,0x04,0x30,0x82,0x45,0xef,0xd8,0xff,0xf7,0x38,0xff,"},{"line_number":48,"context_line":"0x00,0x28,0xd4,0xd1,0xd1,0x44,0xd0,0x44,0xa4,0xeb,0x0a,0x04,0xba,0xe7,0x00,0xbf,"},{"line_number":49,"context_line":"0x00,0x30,0x04,0x40,0x30,0x31,0x04,0x40,"}],"source_content_type":"application/octet-stream","patch_set":12,"id":"e05f1666_3c6a6f36","line":49,"updated":"2026-08-26 14:29:31.000000000","message":"Much shorter indeed!","commit_id":"10b5b9de33254b569e169ec71e58e18542703dee"}],"contrib/loaders/flash/am13e230x/flash.c":[{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"8881447903f386e7d81d629747e0be2c13162dba","unresolved":true,"context_lines":[{"line_number":117,"context_line":"static void flash_unprotect(void)"},{"line_number":118,"context_line":"{"},{"line_number":119,"context_line":"\tHWREG(FCTL_REG_CMDWEPROTA) \u003d 0;"},{"line_number":120,"context_line":"\tHWREG(FCTL_REG_CMDWEPROTB) \u003d 0;"},{"line_number":121,"context_line":"}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"int flash_sector_erase(uint32_t addr)"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"1d654852_69b21355","line":120,"updated":"2026-05-13 12:41:05.000000000","message":"The driver (`src/flash/nor/am13e230x.c`) defines a third register\n`FCTL_REG_CMDWEPROTNM` for the NONMAIN flash region. When the\nOpenOCD driver invokes the algorithm to write to the NONMAIN bank\n(at `0x60100000`), `flash_unprotect()` never clears\n`CMDWEPROTNM`, so the write-protection is not released and every\nflash write to NONMAIN will silently fail inside the algorithm. - is that intentional?","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"36eb30baa36ff9493cceb256ec32e137f4b1d7e7","unresolved":true,"context_lines":[{"line_number":117,"context_line":"static void flash_unprotect(void)"},{"line_number":118,"context_line":"{"},{"line_number":119,"context_line":"\tHWREG(FCTL_REG_CMDWEPROTA) \u003d 0;"},{"line_number":120,"context_line":"\tHWREG(FCTL_REG_CMDWEPROTB) \u003d 0;"},{"line_number":121,"context_line":"}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"int flash_sector_erase(uint32_t addr)"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"61d1dd02_39530159","line":120,"in_reply_to":"1d654852_69b21355","updated":"2026-06-08 12:23:13.000000000","message":"That is a bug. Fixed by always clearing `CMDWEPROTNM` in `flash_unprotect()` alongside `WEPROTA/WEPROTB` and added the missing register definition to flash.h.","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"ed3cff1c34e4bbae74965f0bdb08c24943d8277f","unresolved":false,"context_lines":[{"line_number":117,"context_line":"static void flash_unprotect(void)"},{"line_number":118,"context_line":"{"},{"line_number":119,"context_line":"\tHWREG(FCTL_REG_CMDWEPROTA) \u003d 0;"},{"line_number":120,"context_line":"\tHWREG(FCTL_REG_CMDWEPROTB) \u003d 0;"},{"line_number":121,"context_line":"}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"int flash_sector_erase(uint32_t addr)"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"62bbe830_452da108","line":120,"in_reply_to":"61d1dd02_39530159","updated":"2026-06-08 14:17:58.000000000","message":"Ack","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"8881447903f386e7d81d629747e0be2c13162dba","unresolved":true,"context_lines":[{"line_number":128,"context_line":"\tflash_unprotect();"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"\tHWREG(FCTL_REG_CMDTYPE) \u003d FCTL_CMDTYPE_ERASE | FCTL_CMDTYPE_SIZE_SECTOR;"},{"line_number":131,"context_line":"\tHWREG(FCTL_REG_CMDADDR) \u003d addr \u0026 0xFFFFFFF0;"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"\treturn flash_execute_cmd();"},{"line_number":134,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"719efb3d_70f49d8e","line":131,"updated":"2026-05-13 12:41:05.000000000","message":"Please document the address masking -\u003e nor driver does: retval \u003d target_write_u32(target, FCTL_REG_CMDADDR, addr);\n\nDoes the hardware ignore the lower bits for a sector-erase command, both are\nequivalent. If it requires an exact sector-aligned address, only one\nof them is correct (driver should reject unaligned address). Could you align these two paths to use the same address computation?","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"ed3cff1c34e4bbae74965f0bdb08c24943d8277f","unresolved":false,"context_lines":[{"line_number":128,"context_line":"\tflash_unprotect();"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"\tHWREG(FCTL_REG_CMDTYPE) \u003d FCTL_CMDTYPE_ERASE | FCTL_CMDTYPE_SIZE_SECTOR;"},{"line_number":131,"context_line":"\tHWREG(FCTL_REG_CMDADDR) \u003d addr \u0026 0xFFFFFFF0;"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"\treturn flash_execute_cmd();"},{"line_number":134,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"48569c79_0d92d70b","line":131,"in_reply_to":"44fe4d65_5c3a41fa","updated":"2026-06-08 14:17:58.000000000","message":"Ack","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"36eb30baa36ff9493cceb256ec32e137f4b1d7e7","unresolved":true,"context_lines":[{"line_number":128,"context_line":"\tflash_unprotect();"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"\tHWREG(FCTL_REG_CMDTYPE) \u003d FCTL_CMDTYPE_ERASE | FCTL_CMDTYPE_SIZE_SECTOR;"},{"line_number":131,"context_line":"\tHWREG(FCTL_REG_CMDADDR) \u003d addr \u0026 0xFFFFFFF0;"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"\treturn flash_execute_cmd();"},{"line_number":134,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"44fe4d65_5c3a41fa","line":131,"in_reply_to":"719efb3d_70f49d8e","updated":"2026-06-08 12:23:13.000000000","message":"Added `\u0026 0xFFFFFFF0` to the sector-erase CMDADDR write in the driver to match the masking in the loader.","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"8881447903f386e7d81d629747e0be2c13162dba","unresolved":true,"context_lines":[{"line_number":153,"context_line":"\t\tuint32_t bytes_en \u003d (1u \u003c\u003c num_send) - 1;"},{"line_number":154,"context_line":"\t\tbytes_en |\u003d (1u \u003c\u003c 16);           /* ECC chunk 0 */"},{"line_number":155,"context_line":"\t\tif (num_send \u003e 8)"},{"line_number":156,"context_line":"\t\t\tbytes_en |\u003d (1u \u003c\u003c 17);   /* ECC chunk 1 */"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"\t\t/* SDK calls executeClearStatus + unprotect before every word write */"},{"line_number":159,"context_line":"\t\tflash_clear_status();"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"016dc116_c2294fb7","line":156,"updated":"2026-05-13 12:41:05.000000000","message":"The flash nor driver\u0027s direct-write fallback always sets all 18 bits:\n\n```c\nretval \u003d target_write_u32(target, FCTL_REG_CMDBYTEN,\n                          AM13_PROGRAM_128_BYTEN);  /* 0x0003FFFF */\n```\n\nTRM (page 496) states:\n\u003e b. If subword programming (programming of less than the full 128 or 144 bit flash word) is desired,\n\u003e configure the CMDBYTEN register to set the bytes within the addressed flash word which are to\n\u003e be programmed. Each bit in CMDBYTEN corresponds to a byte in the addressed flash word to be\n\u003e programmed, including the ECC byte. For example, programming of the ECC code can be masked by\n\u003e clearing bit 8 in CMDBYTEN while programming the data bytes of the flash word. Note that there is a\n\u003e maximum number of program operations allowed per word line before a sector erase \u003e must be applied\n\u003e (see the device specific data sheet for the maximum).\n\nDo both of these result in equivalent results at ECC?","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"36eb30baa36ff9493cceb256ec32e137f4b1d7e7","unresolved":true,"context_lines":[{"line_number":153,"context_line":"\t\tuint32_t bytes_en \u003d (1u \u003c\u003c num_send) - 1;"},{"line_number":154,"context_line":"\t\tbytes_en |\u003d (1u \u003c\u003c 16);           /* ECC chunk 0 */"},{"line_number":155,"context_line":"\t\tif (num_send \u003e 8)"},{"line_number":156,"context_line":"\t\t\tbytes_en |\u003d (1u \u003c\u003c 17);   /* ECC chunk 1 */"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"\t\t/* SDK calls executeClearStatus + unprotect before every word write */"},{"line_number":159,"context_line":"\t\tflash_clear_status();"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"793b254d_721c9d8b","line":156,"in_reply_to":"016dc116_c2294fb7","updated":"2026-06-08 12:23:13.000000000","message":"Always setting all 18 bits is incorrect. ECC results wouldn\u0027t be equivalent for sub-8-byte writes as setting the bits for byte 8-15 computes ECC chunk 1 (bit 17) that serves no purpose.  \n\nUpdated `am13_write_direct` to mirror the loader\u0027s logic that enables only the relevant data bits and corresponding ECC chunk bit(s).","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"ed3cff1c34e4bbae74965f0bdb08c24943d8277f","unresolved":false,"context_lines":[{"line_number":153,"context_line":"\t\tuint32_t bytes_en \u003d (1u \u003c\u003c num_send) - 1;"},{"line_number":154,"context_line":"\t\tbytes_en |\u003d (1u \u003c\u003c 16);           /* ECC chunk 0 */"},{"line_number":155,"context_line":"\t\tif (num_send \u003e 8)"},{"line_number":156,"context_line":"\t\t\tbytes_en |\u003d (1u \u003c\u003c 17);   /* ECC chunk 1 */"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"\t\t/* SDK calls executeClearStatus + unprotect before every word write */"},{"line_number":159,"context_line":"\t\tflash_clear_status();"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"51497698_5f52acb2","line":156,"in_reply_to":"793b254d_721c9d8b","updated":"2026-06-08 14:17:58.000000000","message":"Ack","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"8881447903f386e7d81d629747e0be2c13162dba","unresolved":true,"context_lines":[{"line_number":156,"context_line":"\t\t\tbytes_en |\u003d (1u \u003c\u003c 17);   /* ECC chunk 1 */"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"\t\t/* SDK calls executeClearStatus + unprotect before every word write */"},{"line_number":159,"context_line":"\t\tflash_clear_status();"},{"line_number":160,"context_line":"\t\tflash_unprotect();"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"\t\tHWREG(FCTL_REG_CMDTYPE) \u003d FCTL_CMDTYPE_PROGRAM | FCTL_CMDTYPE_SIZE_ONEWORD;"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"457a786b_cf6d7342","line":159,"updated":"2026-05-13 12:41:05.000000000","message":"A `flash_clear_status()` failure (timeout) is silently swallowed. The\nsubsequent `flash_execute_cmd()` would then execute against a controller\nthat may still have status bits set from a prior command, making the\nerror condition harder to diagnose. Should this return an error?","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"ed3cff1c34e4bbae74965f0bdb08c24943d8277f","unresolved":false,"context_lines":[{"line_number":156,"context_line":"\t\t\tbytes_en |\u003d (1u \u003c\u003c 17);   /* ECC chunk 1 */"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"\t\t/* SDK calls executeClearStatus + unprotect before every word write */"},{"line_number":159,"context_line":"\t\tflash_clear_status();"},{"line_number":160,"context_line":"\t\tflash_unprotect();"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"\t\tHWREG(FCTL_REG_CMDTYPE) \u003d FCTL_CMDTYPE_PROGRAM | FCTL_CMDTYPE_SIZE_ONEWORD;"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"a575c09b_e7d1250f","line":159,"in_reply_to":"2f7cda36_88a530b3","updated":"2026-06-08 14:17:58.000000000","message":"Ack","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"36eb30baa36ff9493cceb256ec32e137f4b1d7e7","unresolved":true,"context_lines":[{"line_number":156,"context_line":"\t\t\tbytes_en |\u003d (1u \u003c\u003c 17);   /* ECC chunk 1 */"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"\t\t/* SDK calls executeClearStatus + unprotect before every word write */"},{"line_number":159,"context_line":"\t\tflash_clear_status();"},{"line_number":160,"context_line":"\t\tflash_unprotect();"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"\t\tHWREG(FCTL_REG_CMDTYPE) \u003d FCTL_CMDTYPE_PROGRAM | FCTL_CMDTYPE_SIZE_ONEWORD;"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"2f7cda36_88a530b3","line":159,"in_reply_to":"457a786b_cf6d7342","updated":"2026-06-08 12:23:13.000000000","message":"Fixed. A timeout will now return `-1` immediately.","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"8d8c0c756f1011a6a23f5f4de8d0c94fe40c42a7","unresolved":true,"context_lines":[{"line_number":77,"context_line":"\t\t\t FCTL_STATCMD_CMDINPROGRESS);"},{"line_number":78,"context_line":"\t\tif (--timeout \u003d\u003d 0)"},{"line_number":79,"context_line":"\t\t\treturn -1;"},{"line_number":80,"context_line":"\t} while (status \u003d\u003d FCTL_STATCMD_CMDINPROGRESS);"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"\tif ((status \u0026 FCTL_STATCMD_CMDPASS) \u003d\u003d 0)"},{"line_number":83,"context_line":"\t\treturn -2;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"912f3c8e_124bb4ad","line":80,"updated":"2026-06-11 06:10:05.000000000","message":"The polling loop in `flash_execute_cmd()` exits on any value that is not\nexactly `FCTL_STATCMD_CMDINPROGRESS (0x4)`.\n\nIf the CPU reads `STATCMD` before the flash controller has asserted\n`CMDINPROGRESS`, `status` will be `0`. The loop exits, `CMDPASS` is\nnot set in `0`, and the function returns `-2` (false failure).\n\nUpdated to `CMDDONE`-based polling: stays in the loop when status \u003d 0 because CMDDONE is not set yet. Only exits when CMDDONE goes high, regardless of what was seen before.","commit_id":"89eac11e1b00bddb33b392c895125df05dde4d11"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"73404cce3f96dfddffb4fcff68ca9f205f30b4fb","unresolved":false,"context_lines":[{"line_number":77,"context_line":"\t\t\t FCTL_STATCMD_CMDINPROGRESS);"},{"line_number":78,"context_line":"\t\tif (--timeout \u003d\u003d 0)"},{"line_number":79,"context_line":"\t\t\treturn -1;"},{"line_number":80,"context_line":"\t} while (status \u003d\u003d FCTL_STATCMD_CMDINPROGRESS);"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"\tif ((status \u0026 FCTL_STATCMD_CMDPASS) \u003d\u003d 0)"},{"line_number":83,"context_line":"\t\treturn -2;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"5c83004d_f0595876","line":80,"in_reply_to":"912f3c8e_124bb4ad","updated":"2026-06-11 06:10:31.000000000","message":"Done","commit_id":"89eac11e1b00bddb33b392c895125df05dde4d11"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"tomas.vanek.oocd@gmail.com","username":"vanekt"},"change_message_id":"6b9619c46a9cf4c507feacc5d65fabd062acb720","unresolved":true,"context_lines":[{"line_number":145,"context_line":"int flash_write_sector(const uint8_t *data, uint32_t addr, uint32_t count)"},{"line_number":146,"context_line":"{"},{"line_number":147,"context_line":"\twhile (count \u003e 0) {"},{"line_number":148,"context_line":"\t\tuint32_t num_bytes \u003d (count \u003c FLASH_WORD_SIZE) ? count : FLASH_WORD_SIZE;"},{"line_number":149,"context_line":"\t\tuint32_t num_send \u003d num_bytes;"},{"line_number":150,"context_line":"\t\tuint8_t padded[16];"},{"line_number":151,"context_line":"\t\tconst uint8_t *write_buf \u003d data;"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"\t\t/* Pad partial writes to 8-byte ECC boundary */"},{"line_number":154,"context_line":"\t\tif (num_bytes \u0026 0x7) {"},{"line_number":155,"context_line":"\t\t\tnum_send \u003d (num_bytes + 7) \u0026 ~0x7;"},{"line_number":156,"context_line":"\t\t\tlocal_memset(padded, 0xFF, sizeof(padded));"},{"line_number":157,"context_line":"\t\t\tlocal_memcpy(padded, data, num_bytes);"},{"line_number":158,"context_line":"\t\t\twrite_buf \u003d padded;"},{"line_number":159,"context_line":"\t\t}"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"\t\t/* Byte enable: one bit per data byte + ECC chunk bits */"},{"line_number":162,"context_line":"\t\tuint32_t bytes_en \u003d (1u \u003c\u003c num_send) - 1;"},{"line_number":163,"context_line":"\t\tbytes_en |\u003d (1u \u003c\u003c 16);           /* ECC chunk 0 */"},{"line_number":164,"context_line":"\t\tif (num_send \u003e 8)"},{"line_number":165,"context_line":"\t\t\tbytes_en |\u003d (1u \u003c\u003c 17);   /* ECC chunk 1 */"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"\t\t/* SDK calls executeClearStatus + unprotect before every word write */"},{"line_number":168,"context_line":"\t\tif (flash_clear_status() !\u003d 0)"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"d7baa7eb_9631eecc","line":165,"range":{"start_line":148,"start_character":1,"end_line":165,"end_character":46},"updated":"2026-07-04 08:35:32.000000000","message":"Similarly as in src/flash/nor/am13e230x.c:\nAlignment/padding is already handled, remove it from here.","commit_id":"33f67db3565128f5119b35bf7815eb92f6eaae10"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"7c61b7accfc09cdd35d0e0abb206987ccf364a83","unresolved":true,"context_lines":[{"line_number":145,"context_line":"int flash_write_sector(const uint8_t *data, uint32_t addr, uint32_t count)"},{"line_number":146,"context_line":"{"},{"line_number":147,"context_line":"\twhile (count \u003e 0) {"},{"line_number":148,"context_line":"\t\tuint32_t num_bytes \u003d (count \u003c FLASH_WORD_SIZE) ? count : FLASH_WORD_SIZE;"},{"line_number":149,"context_line":"\t\tuint32_t num_send \u003d num_bytes;"},{"line_number":150,"context_line":"\t\tuint8_t padded[16];"},{"line_number":151,"context_line":"\t\tconst uint8_t *write_buf \u003d data;"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"\t\t/* Pad partial writes to 8-byte ECC boundary */"},{"line_number":154,"context_line":"\t\tif (num_bytes \u0026 0x7) {"},{"line_number":155,"context_line":"\t\t\tnum_send \u003d (num_bytes + 7) \u0026 ~0x7;"},{"line_number":156,"context_line":"\t\t\tlocal_memset(padded, 0xFF, sizeof(padded));"},{"line_number":157,"context_line":"\t\t\tlocal_memcpy(padded, data, num_bytes);"},{"line_number":158,"context_line":"\t\t\twrite_buf \u003d padded;"},{"line_number":159,"context_line":"\t\t}"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"\t\t/* Byte enable: one bit per data byte + ECC chunk bits */"},{"line_number":162,"context_line":"\t\tuint32_t bytes_en \u003d (1u \u003c\u003c num_send) - 1;"},{"line_number":163,"context_line":"\t\tbytes_en |\u003d (1u \u003c\u003c 16);           /* ECC chunk 0 */"},{"line_number":164,"context_line":"\t\tif (num_send \u003e 8)"},{"line_number":165,"context_line":"\t\t\tbytes_en |\u003d (1u \u003c\u003c 17);   /* ECC chunk 1 */"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"\t\t/* SDK calls executeClearStatus + unprotect before every word write */"},{"line_number":168,"context_line":"\t\tif (flash_clear_status() !\u003d 0)"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"eacb426e_22cd9a2e","line":165,"range":{"start_line":148,"start_character":1,"end_line":165,"end_character":46},"in_reply_to":"d7baa7eb_9631eecc","updated":"2026-07-20 09:58:55.000000000","message":"Removed padding logic and updated loader binary.","commit_id":"33f67db3565128f5119b35bf7815eb92f6eaae10"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"tomas.vanek.oocd@gmail.com","username":"vanekt"},"change_message_id":"0d96e9c5249aa72e27c9c6c13c4660a3cde52871","unresolved":false,"context_lines":[{"line_number":145,"context_line":"int flash_write_sector(const uint8_t *data, uint32_t addr, uint32_t count)"},{"line_number":146,"context_line":"{"},{"line_number":147,"context_line":"\twhile (count \u003e 0) {"},{"line_number":148,"context_line":"\t\tuint32_t num_bytes \u003d (count \u003c FLASH_WORD_SIZE) ? count : FLASH_WORD_SIZE;"},{"line_number":149,"context_line":"\t\tuint32_t num_send \u003d num_bytes;"},{"line_number":150,"context_line":"\t\tuint8_t padded[16];"},{"line_number":151,"context_line":"\t\tconst uint8_t *write_buf \u003d data;"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"\t\t/* Pad partial writes to 8-byte ECC boundary */"},{"line_number":154,"context_line":"\t\tif (num_bytes \u0026 0x7) {"},{"line_number":155,"context_line":"\t\t\tnum_send \u003d (num_bytes + 7) \u0026 ~0x7;"},{"line_number":156,"context_line":"\t\t\tlocal_memset(padded, 0xFF, sizeof(padded));"},{"line_number":157,"context_line":"\t\t\tlocal_memcpy(padded, data, num_bytes);"},{"line_number":158,"context_line":"\t\t\twrite_buf \u003d padded;"},{"line_number":159,"context_line":"\t\t}"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"\t\t/* Byte enable: one bit per data byte + ECC chunk bits */"},{"line_number":162,"context_line":"\t\tuint32_t bytes_en \u003d (1u \u003c\u003c num_send) - 1;"},{"line_number":163,"context_line":"\t\tbytes_en |\u003d (1u \u003c\u003c 16);           /* ECC chunk 0 */"},{"line_number":164,"context_line":"\t\tif (num_send \u003e 8)"},{"line_number":165,"context_line":"\t\t\tbytes_en |\u003d (1u \u003c\u003c 17);   /* ECC chunk 1 */"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"\t\t/* SDK calls executeClearStatus + unprotect before every word write */"},{"line_number":168,"context_line":"\t\tif (flash_clear_status() !\u003d 0)"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"a61096b7_bdb0050b","line":165,"range":{"start_line":148,"start_character":1,"end_line":165,"end_character":46},"in_reply_to":"eacb426e_22cd9a2e","updated":"2026-08-25 14:17:46.000000000","message":"Done","commit_id":"33f67db3565128f5119b35bf7815eb92f6eaae10"}],"contrib/loaders/flash/am13e230x/flash.h":[{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"ed3cff1c34e4bbae74965f0bdb08c24943d8277f","unresolved":true,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"/* Flash region bases */"},{"line_number":67,"context_line":"#define FLASH_BASE_MAIN             0x00000000"},{"line_number":68,"context_line":"#define FLASH_BASE_DATA             0x60118000"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"/* Timeout loop count */"},{"line_number":71,"context_line":"#define FLASH_TIMEOUT               0x00800000"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"76859031_d505885e","line":68,"updated":"2026-06-08 14:17:58.000000000","message":"none of the loader functions reference FLASH_BASE_DATA — all addresses come from the dest field of the params struct populated by the OpenOCD driver. The driver uses AM13_FLASH_BASE_NONMAIN \u003d 0x60100000 for the non-main region. The two addresses differ (0x60100000 vs 0x60118000). If this constant is unused and its meaning is unclear, removing it would reduce confusion.","commit_id":"4edf517905b178595ead336b36d0ec0efc5111f9"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"1dd1ffeaeade64f0cc7ce7d7d9da614dd25e9d17","unresolved":true,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"/* Flash region bases */"},{"line_number":67,"context_line":"#define FLASH_BASE_MAIN             0x00000000"},{"line_number":68,"context_line":"#define FLASH_BASE_DATA             0x60118000"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"/* Timeout loop count */"},{"line_number":71,"context_line":"#define FLASH_TIMEOUT               0x00800000"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"f70c6618_9f929138","line":68,"in_reply_to":"76859031_d505885e","updated":"2026-06-10 06:30:10.000000000","message":"removed `FLASH_BASE_DATA`","commit_id":"4edf517905b178595ead336b36d0ec0efc5111f9"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"e1a6220253e87947f554c6b1f13c256f9c769370","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"/* Flash region bases */"},{"line_number":67,"context_line":"#define FLASH_BASE_MAIN             0x00000000"},{"line_number":68,"context_line":"#define FLASH_BASE_DATA             0x60118000"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"/* Timeout loop count */"},{"line_number":71,"context_line":"#define FLASH_TIMEOUT               0x00800000"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"56503285_6bfcde46","line":68,"in_reply_to":"f70c6618_9f929138","updated":"2026-06-10 15:03:57.000000000","message":"Ack","commit_id":"4edf517905b178595ead336b36d0ec0efc5111f9"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"992fa220daea0431535b38c8b08dee08fbaf1d98","unresolved":true,"context_lines":[{"line_number":10,"context_line":" *****************************************************************************/"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"#ifndef AM13E230X_FLASH_H"},{"line_number":13,"context_line":"#define AM13E230X_FLASH_H"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"#include \u003cstdint.h\u003e"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":7,"id":"86caa767_cf259033","line":13,"updated":"2026-06-16 16:15:34.000000000","message":"OPENOCD_LOADERS_FLASH_AM13E230X_FLASH_H I think this is the convention.","commit_id":"39f5e641f04be9dc68cce2e0afd24ba8f7cbcf9c"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"21f369c703ae172fd0e2af09be5677b3891167b1","unresolved":false,"context_lines":[{"line_number":10,"context_line":" *****************************************************************************/"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"#ifndef AM13E230X_FLASH_H"},{"line_number":13,"context_line":"#define AM13E230X_FLASH_H"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"#include \u003cstdint.h\u003e"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":7,"id":"c2c6f8e6_5c43c094","line":13,"in_reply_to":"86caa767_cf259033","updated":"2026-06-17 05:37:48.000000000","message":"Done","commit_id":"39f5e641f04be9dc68cce2e0afd24ba8f7cbcf9c"}],"contrib/loaders/flash/am13e230x/main.c":[{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"8881447903f386e7d81d629747e0be2c13162dba","unresolved":true,"context_lines":[{"line_number":177,"context_line":"\t\t\tbreak;"},{"line_number":178,"context_line":"\t\tcase CMD_ERASE_SECTORS:"},{"line_number":179,"context_line":"\t\t\tstatus \u003d do_erase_sectors(\u0026g_params[curr_buf]);"},{"line_number":180,"context_line":"\t\t\tbreak;"},{"line_number":181,"context_line":"\t\tdefault:"},{"line_number":182,"context_line":"\t\t\tstatus \u003d STATUS_FAILED_UNKNOWN_CMD;"},{"line_number":183,"context_line":"\t\t\tbreak;"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"896a358c_1e990110","line":180,"updated":"2026-05-13 12:41:05.000000000","message":"are we missing CMD_ERASE_ALL ?","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"},{"author":{"_account_id":1001678,"name":"Nishanth Menon","email":"nm@ti.com","username":"nmenon"},"change_message_id":"ed3cff1c34e4bbae74965f0bdb08c24943d8277f","unresolved":false,"context_lines":[{"line_number":177,"context_line":"\t\t\tbreak;"},{"line_number":178,"context_line":"\t\tcase CMD_ERASE_SECTORS:"},{"line_number":179,"context_line":"\t\t\tstatus \u003d do_erase_sectors(\u0026g_params[curr_buf]);"},{"line_number":180,"context_line":"\t\t\tbreak;"},{"line_number":181,"context_line":"\t\tdefault:"},{"line_number":182,"context_line":"\t\t\tstatus \u003d STATUS_FAILED_UNKNOWN_CMD;"},{"line_number":183,"context_line":"\t\t\tbreak;"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"e2ab05ee_7add6f21","line":180,"in_reply_to":"1cd2ce6a_5064f4fe","updated":"2026-06-08 14:17:58.000000000","message":"Ack","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"},{"author":{"_account_id":1002511,"name":"Sameer Srivastava","email":"sam33r012@gmail.com","username":"s-m33r"},"change_message_id":"36eb30baa36ff9493cceb256ec32e137f4b1d7e7","unresolved":true,"context_lines":[{"line_number":177,"context_line":"\t\t\tbreak;"},{"line_number":178,"context_line":"\t\tcase CMD_ERASE_SECTORS:"},{"line_number":179,"context_line":"\t\t\tstatus \u003d do_erase_sectors(\u0026g_params[curr_buf]);"},{"line_number":180,"context_line":"\t\t\tbreak;"},{"line_number":181,"context_line":"\t\tdefault:"},{"line_number":182,"context_line":"\t\t\tstatus \u003d STATUS_FAILED_UNKNOWN_CMD;"},{"line_number":183,"context_line":"\t\t\tbreak;"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"1cd2ce6a_5064f4fe","line":180,"in_reply_to":"896a358c_1e990110","updated":"2026-06-08 12:23:13.000000000","message":"Erase is done directly using `am13_erase`. Removed definitions for this command on both sides.","commit_id":"607fdf8ba5006cd5b532da9c52abfbf9374a6f58"}]}
