For my design review I'm trying to document the meaning of the various fields in CMOS RAM. I've done some grepping and found limited use of the generated CMOS_VSTART_ and CMOS_VLEN_ definitions which are generated from the board's cmos.layout.
Also, I've found a number of inconsistencies regarding checksum calculation. For example CMOS_VSTART_check_sum is defined in cmos.layout as 984 for some (most?) boards but the file pc80/mc146818rtc.h defines the checksum range as bytes 16 (PC_CKS_RANGE_START) thru 45 (PC_CKS_RANGE_END) which is then used by the rtc_init to verify CMOS RAM contents. Why wouldn't cmos.layout be used for both?
I'm sensing some bit position dependent coupling between execution in CAR and execution from RAM using different definitions which may cause problems if cmos.layout is changed for a board. It appears there may be some additional coupling for bootloaders as well? (e.g. boot_first, boot_second, etc.)
Is there a document I can read to help me understand this? Am I looking at this wrong?
Thanks,
Steve