diff options
| author | Shinya Kuribayashi <skuribay@ruby.dti.ne.jp> | 2008-04-22 22:47:27 +0900 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2008-04-25 00:03:53 +0200 | 
| commit | 4a1f11b45a82908e5b0df602d703082413a6b7ed (patch) | |
| tree | 1b448768eefc3c396a86f15c7ab5b3659cae4bbe | |
| parent | 215b01bba8bc662d35f72b084700b192d367dfb4 (diff) | |
| download | olio-uboot-2014.01-4a1f11b45a82908e5b0df602d703082413a6b7ed.tar.xz olio-uboot-2014.01-4a1f11b45a82908e5b0df602d703082413a6b7ed.zip | |
doc/README.mips: Add MIPS notes
Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
| -rw-r--r-- | doc/README.mips | 57 | 
1 files changed, 57 insertions, 0 deletions
| diff --git a/doc/README.mips b/doc/README.mips new file mode 100644 index 000000000..85dea400c --- /dev/null +++ b/doc/README.mips @@ -0,0 +1,57 @@ + +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 +------------ + +  * Little endian build problem + +    If use non-ELDK toolchains, -EB will be set to CPPFLAGS. Therefore all +    objects will be generated in big-endian format. + +  * 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(). |