Re: [U-Boot-Users] MPC83xx HRCW

Andre Schwarz wrote:
Jerry Van Baren schrieb:
Andre Schwarz wrote:
In "cpu/mpc83xx/start.S" there is a comment :
/*
- The Hard Reset Configuration Word (HRCW) table is in the first 64
- (0x40) bytes of flash. It has 8 bytes, but each byte is repeated 8
- times so the processor can fetch it out of flash whether the flash
- is 8, 16, 32, or 64 bits wide (hardware trickery).
*/
This does _not_ hold true for all configurations. Flash is simply one of many options ... Maybe it's true for the Freescale boards.
Other sources of the HRCW can be hard-coded strapping pins or an I2C EEPROM.
Why is there a need to define the HRCW ?
regards, Andre Schwarz
Hi Andre,
The HRCW in flash (could be other memory or a FPGA register) is a processor feature which a board may or may not use. I am not familiar with the whole 83xx family, but I presume the feature is part of the whole family.
As you point out, there are other ways of configuring the processor on power up, and it is board-specific which way is used on the particular board.
For the boards that support the HRCW, obviously the definition in the first 64 bytes of flash is necessary. For other boards, it is unnecessary. FWIIW, the Freescale eval boards that I have experience with allow the HRCW to come from flash, i2c, or an FPGA (BCSR).
To date, having a potentially unused HRCW definition in memory has not been an issue - people either use it or ignore it. If it is an issue, you could use conditionals to disable it. I'm sure the 83xx custodian (Kim Phillips) would consider patches to do that. ;-) Note that there is a possibility that some of the code assumes the presence of a HRCW, so you would have to inspect and/or regression test as part of a conditionalization patch.
ok - so should be no problem to #define the HRCW to "0x0" since it won't be used at all - just occupies some memory. I just wanted to be sure that the #defined HRCW is not used as a reference at all in any code !
Theoretically, there is no problem. I don't know if there are any implicit uses of the HRCW - that would be part of the need to inspect and/or regression test.
I suspect that the CPU frequency determination code uses it, since part of the CPU PLL multiplier comes from the HRCW (IIRC - I get confused between the 82xx and 83xx families sometimes).
[snip]
Best regards, gvb

Jerry Van Baren schrieb:
Andre Schwarz wrote:
Jerry Van Baren schrieb:
Andre Schwarz wrote:
In "cpu/mpc83xx/start.S" there is a comment :
/*
- The Hard Reset Configuration Word (HRCW) table is in the first 64
- (0x40) bytes of flash. It has 8 bytes, but each byte is repeated 8
- times so the processor can fetch it out of flash whether the flash
- is 8, 16, 32, or 64 bits wide (hardware trickery).
*/
This does _not_ hold true for all configurations. Flash is simply one of many options ... Maybe it's true for the Freescale boards.
Other sources of the HRCW can be hard-coded strapping pins or an I2C EEPROM.
Why is there a need to define the HRCW ?
regards, Andre Schwarz
Hi Andre,
The HRCW in flash (could be other memory or a FPGA register) is a processor feature which a board may or may not use. I am not familiar with the whole 83xx family, but I presume the feature is part of the whole family.
As you point out, there are other ways of configuring the processor on power up, and it is board-specific which way is used on the particular board.
For the boards that support the HRCW, obviously the definition in the first 64 bytes of flash is necessary. For other boards, it is unnecessary. FWIIW, the Freescale eval boards that I have experience with allow the HRCW to come from flash, i2c, or an FPGA (BCSR).
To date, having a potentially unused HRCW definition in memory has not been an issue - people either use it or ignore it. If it is an issue, you could use conditionals to disable it. I'm sure the 83xx custodian (Kim Phillips) would consider patches to do that. ;-) Note that there is a possibility that some of the code assumes the presence of a HRCW, so you would have to inspect and/or regression test as part of a conditionalization patch.
ok - so should be no problem to #define the HRCW to "0x0" since it won't be used at all - just occupies some memory. I just wanted to be sure that the #defined HRCW is not used as a reference at all in any code !
Theoretically, there is no problem. I don't know if there are any implicit uses of the HRCW - that would be part of the need to inspect and/or regression test.
I suspect that the CPU frequency determination code uses it, since part of the CPU PLL multiplier comes from the HRCW (IIRC - I get confused between the 82xx and 83xx families sometimes).
Using the HRCW during SystemInit is no problem - but the _real_ one from the CPU register and not a #defined one. The CPU won't start anyway if the HRCW is invalid.
I've just #defined my HRCW to "0" without any problems.
Sorry for the confusion.
regards, Andre
[snip]
Best regards, gvb
MATRIX VISION GmbH, Talstraße 16, DE-71570 Oppenweiler - Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschäftsführer: Gerhard Thullner, Werner Armingeon, Uwe Furtner
participants (2)
-
Andre Schwarz
-
Jerry Van Baren