[U-Boot-Users] Please pull u-boot-83xx.git
Timur Tabi
timur at freescale.com
Mon Nov 27 17:41:39 CET 2006
Wolfgang Denk wrote:
> In message <200611261446.24607.sr at denx.de> you wrote:
>>> mpc83xx: fix TQM build by defining a CFG_FLASH_SIZE for it
>>>
>>> -------------------------- include/configs/TQM834x.h --------------------------
>>> index b1f033d..f0e4900 100644
>>> @@ -95,6 +95,7 @@
>>> #define CFG_FLASH_CFI_DRIVER /* use the CFI driver */
>>> #undef CFG_FLASH_CHECKSUM
>>> #define CFG_FLASH_BASE 0x80000000 /* start of FLASH */
>>> +#define CFG_FLASH_SIZE 8 /* FLASH size in MB */
>> Do you only support sizes bigger or equal to 1 MByte? What if a board
>> only has 512kBytes?
>
> I object against such changes which have not been discussed with
> the maintainer of the board, and most probably have not been tested
> either.
>
> TQ has a pretty long list of configuration options for their modules,
> and the change above will probably break quite a few, or most.
The above change is necessary to make the board compatible with the flash-size
code in mpc83xx/start.S:
/* Store 0x80000012 + log2(CFG_FLASH_SIZE) into LBLAWAR1 */
lis r4, (0x80000012)@h
ori r4, r4, (0x80000012)@l
li r5, CFG_FLASH_SIZE
1: srawi. r5, r5, 1 /* r5 = r5 >> 1 */
addi r4, r4, 1
bne 1b
Previously, this code just assumed that flash was 8MB. However, the 8349ITX has
16MB of flash. Rather than have #ifdefs in start.S, this code was changed to
calculate the correct value for LBLAWAR1 based on CFG_FLASH_SIZE.
I believe that this code is the most elegant solution to the problem, however it
does require that each board header file define a value for CFG_FLASH_SIZE. The
alternative would be to add these lines above the new code:
#ifndef CFG_FLASH_SIZE
#define CFG_FLASH_SIZE 8
#endif
If you prefer that we use this approach, then we can make that change. However,
I think our approach makes more sense.
--
Timur Tabi
Linux Kernel Developer @ Freescale
More information about the U-Boot
mailing list