Hi,
We have run into an issue with our FCodes tokenized using FCode-utils 1.0.2 toke, on specific SPARC (Enterprise) platforms: M4000, M9000.
Power-up device probe yields the following warning message on the console:
WARNING: /pci@20,600000/...: FCode checksum error; expected: 280d result: 2837
After looking at the OBP sources, I found that the routine: fcode-sum-ok? : obp/dev/pci/fcode-rom.fth
calculates the checksum by adding every FCode image (excluding header) byte and doing:
lwsplit + lwsplit + h# ffff and
on the sum. The lwsplit + lwsplit + apparently breaks the OpenFirmware spec.
OpenFirmware-1275 section 5.2.2.5 describes the checksum algorithm as:
Checksum is the doublet size sum of the bytes of the program body (i.e., excluding the header), calculated using two's complement addition and ignoring overflow.
FCode-utils 1.0.2 toke calculates the checksum in function:
finish_fcodehdr : toke/emit.c
as described in the spec.
How do we deal with this? Any suggestions?
Thanks for any response(s)!
-Asif