mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-11-04 02:11:25 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 | 
						|
Notes for the MIPS architecture port of U-Boot
 | 
						|
 | 
						|
Toolchains
 | 
						|
----------
 | 
						|
 | 
						|
  http://www.denx.de/wiki/DULG/ELDK
 | 
						|
  ELDK < DULG < DENX
 | 
						|
 | 
						|
  http://www.emdebian.org/crosstools.html
 | 
						|
  Embedded Debian -- Cross-development toolchains
 | 
						|
 | 
						|
  http://buildroot.uclibc.org/
 | 
						|
  Buildroot
 | 
						|
 | 
						|
Known Issues
 | 
						|
------------
 | 
						|
 | 
						|
  * Cache incoherency issue caused by do_bootelf_exec() at cmd_elf.c
 | 
						|
 | 
						|
    Cache will be disabled before entering the loaded ELF image without
 | 
						|
    writing back and invalidating cache lines. This leads to cache
 | 
						|
    incoherency in most cases, unless the code gets loaded after U-Boot
 | 
						|
    re-initializes the cache. The more common uImage 'bootm' command does
 | 
						|
    not suffer this problem.
 | 
						|
 | 
						|
    [workaround] To avoid this cache incoherency,
 | 
						|
    1) insert flush_cache(all) before calling dcache_disable(), or
 | 
						|
    2) fix dcache_disable() to do both flushing and disabling cache.
 | 
						|
 | 
						|
  * Note that Linux users need to kill dcache_disable() in do_bootelf_exec()
 | 
						|
    or override do_bootelf_exec() not to disable I-/D-caches, because most
 | 
						|
    Linux/MIPS ports don't re-enable caches after entering kernel_entry.
 | 
						|
 | 
						|
TODOs
 | 
						|
-----
 | 
						|
 | 
						|
  * Probe CPU types, I-/D-cache and TLB size etc. automatically
 | 
						|
 | 
						|
  * Secondary cache support missing
 | 
						|
 | 
						|
  * Centralize the link directive files
 | 
						|
 | 
						|
  * Initialize TLB entries redardless of their use
 | 
						|
 | 
						|
  * R2000/R3000 class parts are not supported
 | 
						|
 | 
						|
  * Limited testing across different MIPS variants
 | 
						|
 | 
						|
  * Due to cache initialization issues, the DRAM on board must be
 | 
						|
    initialized in board specific assembler language before the cache init
 | 
						|
    code is run -- that is, initialize the DRAM in lowlevel_init().
 | 
						|
 | 
						|
  * get rid of CONFIG_MANUAL_RELOC
 | 
						|
 | 
						|
  * centralize/share more CPU code of MIPS32, MIPS64 and XBurst
 | 
						|
 | 
						|
  * support Qemu Malta
 |