[41CL] updating OS modules
|
03-25-2021, 09:26 PM
Post: #1
|
|||
|
|||
[41CL] updating OS modules
i ran into an oddity this evening, updating my 41CL to the 03/03/2021 images.
These contain updates for some of the OS modules, which I don't think I've had before. I hadn't run OSUPDT on the 41CL, so OS module updates were not enabled. That meant that clupdate only updated 12 of my 16 outdated images, and finished with: 17:11:21 Report Outdated ROM images [BoardGeneration: third] 17:11:21 Report NUT0-O.ROM [Page:0x000 ID:OS41 Rev: YCRC:0x7BA02836] 17:11:21 Report NUT2-M.ROM [Page:0x002 ID:OS41 Rev: YCRC:0x0C2B5718] 17:11:21 Report TIME-3B.ROM [Page:0x006 ID:TMOD Rev: YCRC:0x661E8616] 17:11:21 Report YFNZ-4G.ROM [Page:0x007 ID:YFNZ Rev: YCRC:0xACE0E4DE] 17:11:21 Report 4 outdated pages, out of 1024 pages, spread over 1 Flash blocks, estimated update time: 00h 03m 59s Having done that, I later thought I would run clupdate again, and this time run OSUPDT before FLUPD on the 41CL, to update those four OS modules. However, when I run clupdate, it now reports: 19:52:21 Report 0 outdated pages, out of 1024 pages, spread over 0 Flash blocks, estimated update time: 00h 00m 00s I've re-rerun FLCHK?(CPONLY), and also tried CDBDEL, but neither made a difference. It's not a big deal, of course, but I'm wondering if I did something wrong? Cambridge, UK 41CL/DM41X 12/15C/16C DM15/16 17B/II/II+ 28S 42S/DM42 32SII 48GX 50g 35s WP34S PrimeG2 WP43S/pilot/C47 Casio, Rockwell 18R |
|||
03-25-2021, 10:59 PM
(This post was last modified: 03-25-2021 11:07 PM by Sylvain Cote.)
Post: #2
|
|||
|
|||
RE: [41CL] updating OS modules
It seems that first Flash 64KB sector has been updated.
Let's check this, load the YFNX module in a free page. (41CL Extreme Functions set) Then enter in alpha "000" then execute YCRC If it is updated you should see "7BA02836" on the screen, if not, you will see the old CRC. "000" YCRC shows "WORKING" then show "7BA02836" if up to date. Do the same for the other as well .. "002" YCRC shows "WORKING" then show "0C2B5718" if up to date. "006" YCRC shows "WORKING" then show "661E8616" if up to date. "007" YCRC shows "WORKING" then show "ACE0E4DE" if up to date. Let me know what you get. Sylvain edit: typos. |
|||
03-25-2021, 11:24 PM
(This post was last modified: 03-25-2021 11:37 PM by cdmackay.)
Post: #3
|
|||
|
|||
RE: [41CL] updating OS modules
thanks Sylvain.
from my 41CL I get: 000 dbe7a58c 002 5b1c1c70 006 59097a6d 007 3650ef10 and if I clupdate --list rom_files_201208.zip — my previous update — I get the same values. I think that shows that my 41CL did not have its OS pages updated; that makes sense, since I did not execute OSUPDT to enable that. I wonder: I am using CPONLY to speed up the FLCHK?. I believe that compares checksums from the in-flash FLDB, with the in-RAM CFLDB, is that right? If so, hasn't my in-flash FLDB been updated, today, when I did the non-OS-page upgrade? Since the FLDB is at 0x0de, and so does not require OSUPDT to be enabled for it to be updated. So FLCHK?/CPONLY sees the new value for those OS pages, in the in-flash FLDB, and thinks that my 41CL already has them? If so, do I need to first mark those pages invalid manually, in the CFLDB with PGINV, and then run OSUPDT & FLUPD again? edit: or I could run FLCHK? again, but without CPONLY set and only for pages 0-7? Cambridge, UK 41CL/DM41X 12/15C/16C DM15/16 17B/II/II+ 28S 42S/DM42 32SII 48GX 50g 35s WP34S PrimeG2 WP43S/pilot/C47 Casio, Rockwell 18R |
|||
03-26-2021, 12:04 AM
(This post was last modified: 03-26-2021 12:04 AM by Sylvain Cote.)
Post: #4
|
|||
|
|||
RE: [41CL] updating OS modules
Perfect, we now know where we are.
Preconditions before doing the procedure:
Sylvain |
|||
03-26-2021, 12:26 AM
(This post was last modified: 03-26-2021 12:31 AM by cdmackay.)
Post: #5
|
|||
|
|||
RE: [41CL] updating OS modules
thank you Sylvain.
That didn't work: step 6 resulted (as before) in 0 outdated files. I think that is because FLCHK?(CPONLY) compares the in-flash old FLDB with the new CFLDB downloaded from clupdate. But my in-flash FLDB isn't old: it was updated earlier today when I updated the non-OS pages. So the checksums in my in-flash FLDB match the CFLDB from clupdate, even for the OS pages. But the actual OS pages' content doesn't match my in-flash FLDB. Here's what I did instead, which appears to have worked: # switch OFF/ON, to clear CPONLY XEQ ON XEQ CMOPEN ALPHA 000>007 ALPHA # only OS pages XEQ FLCHK? # CPONLY not set, so a real CRC check # clupdate shows four outdated OS pages XEQ AUTOVFY XEQ OSUPDT ALPHA 000>007 ALPHA # only OS pages XEQ FLUPD # clupdate sends the four pages XEQ CMCLOSE XEQ OSPROT and I now get the correct YCRC checksums for pages 0, 2, 6 & 7. thanks very much, Sylvain. Cambridge, UK 41CL/DM41X 12/15C/16C DM15/16 17B/II/II+ 28S 42S/DM42 32SII 48GX 50g 35s WP34S PrimeG2 WP43S/pilot/C47 Casio, Rockwell 18R |
|||
03-26-2021, 12:33 AM
(This post was last modified: 03-26-2021 12:37 AM by Sylvain Cote.)
Post: #6
|
|||
|
|||
RE: [41CL] updating OS modules
Excellent, great analysis and superb problem solving, I could not have done this better.
edit: found a better image. |
|||
03-26-2021, 12:41 AM
Post: #7
|
|||
|
|||
RE: [41CL] updating OS modules
thank you again Sylvain
Cambridge, UK 41CL/DM41X 12/15C/16C DM15/16 17B/II/II+ 28S 42S/DM42 32SII 48GX 50g 35s WP34S PrimeG2 WP43S/pilot/C47 Casio, Rockwell 18R |
|||
03-26-2021, 12:41 AM
Post: #8
|
|||
|
|||
RE: [41CL] updating OS modules
(03-26-2021 12:26 AM)cdmackay Wrote: thank you Sylvain. Yes, this is what you need to do to correct the problem. (Except the AUTOVFY is not necessary, because it is always done automatically for the OS sector.) This is the potential problem that can happen when using the CPONLY option: The FLDB says everything is up-to-date, when if fact it is not. This can also happen if the update aborts after updating the FLDB because of low battery, leaving some higher pages stale. If this ever happens the CFLDB will still correctly reflect the state of the Flash so the update can be run again after executing OSUPDT. But it has to be done immediately to make sure that the CFLDB doesn't get corrupted. After an update you can always to a CDBEXP to make sure that the CFLDB shows that all pages got updated. The update function clears out the "stale" flags in the CFLDB as it updates sectors so that it is current at the end of the update function. |
|||
03-26-2021, 06:24 PM
Post: #9
|
|||
|
|||
RE: [41CL] updating OS modules
thanks Monte, that makes sense.
My mistake was to repeat my entire normal process, including the FLCHK? which of course downloaded a new FLDB from clupdate, overwriting the CFLDB that was, at that time, correct. Presumably if I'd instead immediately done OSUPDT/FLUPD, without another FLCHK?, it would have worked. Anyway, it was a good exercise, as now I have a better understanding of what's going on thanks again both. Cambridge, UK 41CL/DM41X 12/15C/16C DM15/16 17B/II/II+ 28S 42S/DM42 32SII 48GX 50g 35s WP34S PrimeG2 WP43S/pilot/C47 Casio, Rockwell 18R |
|||
03-26-2021, 10:02 PM
(This post was last modified: 03-26-2021 10:04 PM by rocket.scientist.)
Post: #10
|
|||
|
|||
RE: [41CL] updating OS modules
So my basic approach to updating my Hp41CLs has been to use the guidance in the excellent HHC-2017-clupdate presentation. Before I undertake this OS update, how should I modify this process to most safely proceed? I prefer selectively updating the OS modules.
I anticipate it will need only the insertion of OSPROT/OSUPDT commands in the appropriate spots. And that assumption is why I am asking first. :-) Thanks! -Pat (KG5YPQ) |
|||
03-26-2021, 11:56 PM
(This post was last modified: 03-27-2021 12:33 AM by cdmackay.)
Post: #11
|
|||
|
|||
RE: [41CL] updating OS modules
hi Pat,
If you want to update the OS pages separately, then you could either: • do as I did above; i.e. update as normal, which won't update the four OS pages, since OSUPDT wasn't executed. Then, perform the extra steps I note in Post: #5, above, under "Here's what I did instead…" This would be required if you intend to leave a gap between the non-OS, and OS, page updates. Or, if you intend to do them one immediately after the other: • update as normal, which won't update the four OS pages, since OSUPDT wasn't executed. clupdate will tell you that there are still four outdated pages. Then, without exiting clupdate on the PC, or doing anything else on the 41CL: XEQ ON XEQ OSUPDT XEQ FLUPD This method should work, as long as you haven't updated the in-RAM CFLDB using FLCHK? If you have restarted clupdate, you may need to first CMOPEN, then CDBEXP, to send the in-RAM CFLDB to the restarted clupdate (at least, in order for clupdate to be able to tell you there are outdates pages; it may not be required for the FLUPD). You can add OSPROT, to disable OS updates again, but this is done automatically on turning OFF/ON, so I didn't put it in above. In either case, ensure you have fresh batteries before updating OS pages. -- Calum (M0XCM) Cambridge, UK 41CL/DM41X 12/15C/16C DM15/16 17B/II/II+ 28S 42S/DM42 32SII 48GX 50g 35s WP34S PrimeG2 WP43S/pilot/C47 Casio, Rockwell 18R |
|||
03-27-2021, 09:56 PM
Post: #12
|
|||
|
|||
RE: [41CL] updating OS modules
Thanks for the excellent guidance. I updated both of my CLs without significant incident. One CL was recently purchased and already had the latest OS. The other was last updated in November and was a bit more fiddly. It was less of a "thing" than I expected it would be, and I learned a bit more about these marvelous devices.
-Pat (KG5YPQ) |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 6 Guest(s)