{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":399037455,"defaultBranch":"main","name":"nanoBoot","ownerLogin":"sigprof","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2021-08-23T09:01:12.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/616082?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1715461780.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"e1946a1771b1daa5191f49745286faa3894ba2c9","ref":"refs/heads/pr/bootloader-entry-on-request","pushedAt":"2024-05-11T21:09:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sigprof","name":"Sergey Vlasov","path":"/sigprof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/616082?s=80&v=4"},"commit":{"message":"Add support for starting the bootloader on application request\n\nThe startup code of nanoBoot checked only the EXTRF bit in MCUSR when\ndetermining whether the bootloader or the application should start.\nHowever, in many cases the application may need a way to start the\nbootloader even when the actual external reset did not happen (e.g.,\nafter some \"upgrade firmware\" action in the user interface provided by\nthe application, or even after receiving some special request over USB,\nalthough that might have some security implications). Because the reset\nsource bits in MCUSR cannot be changed from 0 to 1 by software, there\nwas no way around the reset source check in the nanoBoot code (apart\nfrom jumping to the code after the check directly, which is really\nfragile and should be avoided).\n\nSeveral existing bootloaders use the `MCUSR == 0` check in some form to\ndetect the application request to enter the bootloader. Add the same\nkind of code to nanoBoot (but instead of a simple comparison, use a mask\nwhich covers all MCUSR bits defined in the appropriate datasheet, so\nthat the code won't give wrong results if some reserved MCUSR bits do\nnot read as 0 for some reason).\n\nThe binary size increases by 6 bytes.\n\nSigned-off-by: Sergey Vlasov ","shortMessageHtmlLink":"Add support for starting the bootloader on application request"}},{"before":null,"after":"88fb565e03f28605c398bba30650a2c1f7b17322","ref":"refs/heads/archive/bootloader-entry-on-request","pushedAt":"2024-05-11T13:46:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sigprof","name":"Sergey Vlasov","path":"/sigprof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/616082?s=80&v=4"},"commit":{"message":"Add support for starting the bootloader on application request\n\nThe startup code of nanoBoot checked only the EXTRF bit in MCUSR when\ndetermining whether the bootloader or the application should start.\nHowever, in many cases the application may need a way to start the\nbootloader even when the actual external reset did not happen (e.g.,\nafter some \"upgrade firmware\" action in the user interface provided by\nthe application, or even after receiving some special request over USB,\nalthough that might have some security implications). Because the reset\nsource bits in MCUSR cannot be changed from 0 to 1 by software, there\nwas no way around the reset source check in the nanoBoot code (apart\nfrom jumping to the code after the check directly, which is really\nfragile and should be avoided).\n\nSeveral existing bootloaders use the `MCUSR == 0` check in some form to\ndetect the application request to enter the bootloader. Add the same\nkind of code to nanoBoot (but instead of a simple comparison, use a mask\nwhich covers all MCUSR bits defined in the appropriate datasheet, so\nthat the code won't give wrong results if some reserved MCUSR bits do\nnot read as 0 for some reason).\n\nThe binary size increases by 6 bytes.\n\nSigned-off-by: Sergey Vlasov ","shortMessageHtmlLink":"Add support for starting the bootloader on application request"}},{"before":null,"after":"ce02b53d23d35e2cd8fcd68e6656de488e263a80","ref":"refs/heads/main","pushedAt":"2024-05-11T13:42:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sigprof","name":"Sergey Vlasov","path":"/sigprof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/616082?s=80&v=4"},"commit":{"message":"Save 2 bytes in the watchdog handling code\n\n`set_watchdog_timer` was called in two places, but the parameter value\npassed in r16 (the value used to unlock the watchdog configuration) was\nthe same in both cases. Move the duplicated initialization of r16 into\nthe `set_watchdog_timer` function itself, saving 2 bytes.","shortMessageHtmlLink":"Save 2 bytes in the watchdog handling code"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAER2evxgA","startCursor":null,"endCursor":null}},"title":"Activity ยท sigprof/nanoBoot"}