U-Boot
Threads by month
- ----- 2025 -----
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
July 2012
- 184 participants
- 583 discussions

[U-Boot] [PATCH 1/2 v2] SDHC/MMC: fix the wrong infomation after change SD card
by Chang-Ming.Huang@freescale.com 30 Jul '12
by Chang-Ming.Huang@freescale.com 30 Jul '12
30 Jul '12
From: Jerry Huang <Chang-Ming.Huang(a)freescale.com>
When first inserting the SD card to slot, the command "mmcinfo" can
display the card information correctly.
But, then removing the SD card or inserting another SD card to slot,
the command "mmcinfo" can't display the information correctly.
when we use command "mmcinfo" every time, the driver must initialize the
SD card again, instead of assuming the card has been initialized.
Therefore remove the detect codes from mmc_init function.
And add the codes to check the mmc_init, only when mmc_init return
the right value, driver will print the information.
Below is the error log (SD card removed):
=> mmcinfo
MMC: no card present
Device: FSL_SDHC
Manufacturer ID: 3
OEM: 5344
Name: SD02G
Tran Speed: 25000000
Rd Block Len: 512
SD version 2.0
High Capacity: No
Capacity: 1.8 GiB
Bus Width: 4-bit
Signed-off-by: Jerry Huang <Chang-Ming.Huang(a)freescale.com>
CC: Andy Fleming <afleming(a)gmail.com>
CC: Marek Vasut <marex(a)denx.de>
---
changes for v2:
- keep the member has_init
- only remove the detect code
common/cmd_mmc.c | 5 ++---
drivers/mmc/mmc.c | 3 ---
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
index 750509d..e73ce03 100644
--- a/common/cmd_mmc.c
+++ b/common/cmd_mmc.c
@@ -131,9 +131,8 @@ int do_mmcinfo (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
mmc = find_mmc_device(curr_device);
if (mmc) {
- mmc_init(mmc);
-
- print_mmcinfo(mmc);
+ if (!mmc_init(mmc))
+ print_mmcinfo(mmc);
return 0;
} else {
printf("no mmc device at slot %x\n", curr_device);
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index f92b662..af644bb 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -1323,9 +1323,6 @@ int mmc_init(struct mmc *mmc)
return NO_CARD_ERR;
}
- if (mmc->has_init)
- return 0;
-
err = mmc->init(mmc);
if (err)
--
1.7.5.4
5
11
Hello!
I am working on early_malloc() for U-Boot Driver Model (this malloc is
going to serve for internal DM structures during early init and it has it's
minimalistic heap in global data).
My question is how to correctly switch from early allocator to full-scale
malloc and when to enable caches.
The current state (on ARM) is:
1) gd = id;
3) enable_caches();
3) mem_malloc_init();
Proposed sequence for mallocator (in order no to loose any data from old
and not-relocated part of GD):
1) gd_old = gd;
2) gd = id;
3) mem_malloc_init();
4) relocation of DM structures
5) early_malloc_disab()
6) enable_caches();
Does it make sense? It actually boils down to one fundamental question:
When I have not-rellocated data locked in cache-lines, do I loose them once
enable_caches() is called?
Thanks,
Tomas
--
Tomáš Hlaváček <tmshlvck(a)gmail.com>
5
6

[U-Boot] [PATCH] Makefile: avoid "Generating asm-offsets.h" message with "-s"
by Wolfgang Denk 29 Jul '12
by Wolfgang Denk 29 Jul '12
29 Jul '12
make would spit out a message like
Generating /tmp/build/include/generated/asm-offsets.h
even when running with option "-s". Fix this.
Signed-off-by: Wolfgang Denk <wd(a)denx.de>
---
Makefile | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile
index d57c15e..4356b22 100644
--- a/Makefile
+++ b/Makefile
@@ -617,7 +617,7 @@ $(obj)lib/asm-offsets.s: $(obj)include/autoconf.mk.dep \
$(obj)include/generated/asm-offsets.h: $(obj)include/autoconf.mk.dep \
$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
- @echo Generating $@
+ @$(XECHO) Generating $@
tools/scripts/make-asm-offsets $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s $@
$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s: $(obj)include/autoconf.mk.dep
--
1.7.7.6
1
1

[U-Boot] [PATCH] doc: cleanup - move board READMEs into respective board directories
by Wolfgang Denk 29 Jul '12
by Wolfgang Denk 29 Jul '12
29 Jul '12
Also drop a few files referring to no longer / not yet supported
boards.
Signed-off-by: Wolfgang Denk <wd(a)denx.de>
Cc: Prafulla Wadaskar <prafulla(a)marvell.com>
Cc: Stefan Roese <sr(a)denx.de>
Cc: Kim Phillips <kim.phillips(a)freescale.com>
Cc: Andy Fleming <afleming(a)gmail.com>
Cc: Jason Jin <jason.jin(a)freescale.com>
Cc: Stefano Babic <sbabic(a)denx.de>
Cc: Daniel Schwierzeck <daniel.schwierzeck(a)googlemail.com>
---
.../AndesTech/adp-ag101/README | 0
doc/README.db64360 => board/Marvell/db64360/README | 0
doc/README.db64460 => board/Marvell/db64460/README | 0
doc/README.RPXClassic => board/RPXClassic/README | 0
doc/README.RPXlite => board/RPXlite/README | 0
{doc => board/RPXlite}/README.PlanetCore | 0
doc/README.alaska8220 => board/alaska/README | 0
doc/README.bamboo => board/amcc/bamboo/README | 0
doc/README.ebony => board/amcc/ebony/README | 0
{doc => board/amcc/ocotea}/README.ocotea | 0
.../amcc/ocotea}/README.ocotea-PIBS-to-U-Boot | 0
.../armltd/integrator/README | 0
doc/README.cmi => board/cmi/README | 0
doc/README.COBRA5272 => board/cobra5272/README | 0
{doc => board/davinci/da8xxevm}/README.hawkboard | 0
doc/README.dnp5370 => board/dnp5370/README | 0
doc/README.evb64260 => board/evb64260/README | 0
{doc => board/evb64260}/README.EVB-64260-750CX | 0
doc/README.fads => board/fads/README | 0
.../freescale/m52277evb/README | 0
.../freescale/m5253evbe/README | 0
.../freescale/m53017evb/README | 0
.../freescale/m5373evb/README | 0
.../freescale/m54455evb/README | 0
.../freescale/m547xevb/README | 0
.../freescale/mpc7448hpc2/README | 0
.../freescale/mpc8313erdb/README | 0
.../freescale/mpc8315erdb/README | 0
.../freescale/mpc8323erdb/README | 0
.../freescale/mpc832xemds/README | 0
.../freescale/mpc8349itx/README | 0
.../freescale/mpc8360emds/README | 0
.../freescale/mpc837xemds/README | 0
.../freescale/mpc837xerdb/README | 0
.../freescale/mpc8536ds/README | 0
.../freescale/mpc8544ds/README | 0
.../freescale/mpc8569mds/README | 0
.../freescale/mpc8572ds/README | 0
.../freescale/mpc8610hpcd/README | 0
.../freescale/mpc8641hpcn/README | 0
.../freescale/mx35pdk/README | 0
.../freescale/mx6qsabrelite/README | 0
.../freescale/p1022ds/README | 0
.../freescale/p1023rds/README | 0
.../freescale/p1_p2_rdb/README | 0
.../freescale/p1_p2_rdb_pc/README | 0
.../freescale/p2041rdb/README | 0
.../freescale/p3060qds/README | 0
doc/README.IceCube => board/icecube/README | 0
{doc => board/icecube}/README.Lite5200B_low_power | 0
doc/README.INCA-IP => board/incaip/README | 0
doc/README.IPHASE4539 => board/iphase4539/README | 0
{doc => board/keymile/km83xx}/README.kmeter1 | 0
doc/README.korat => board/korat/README | 0
.../matrix_vision/mergerbox/README | 0
{doc => board/matrix_vision/mvbc_p}/README.mvbc_p | 0
{doc => board/matrix_vision/mvblm7}/README.mvblm7 | 0
{doc => board/matrix_vision/mvsmr}/README.mvsmr | 0
doc/README.MBX => board/mbx8xx/README | 0
doc/README.PIP405 => board/mpl/pip405/README | 0
.../phytec/pcm030/README | 0
board/qemu-mips/README | 167 ++++++++
{doc => board/renesas/sh7757lcr}/README.sh7757lcr | 0
{doc => board/renesas/sh7785lcr}/README.sh7785lcr | 0
{doc => board/sandbox/sandbox}/README.sandbox | 0
board/sandpoint/README | 398 ++++++++++++++++++++
doc/README.sbc8349 => board/sbc8349/README | 0
doc/README.sbc8548 => board/sbc8548/README | 0
doc/README.SBC8560 => board/sbc8560/README | 0
doc/README.sbc8641d => board/sbc8641d/README | 0
{doc => board/sheldon/simpc8313}/README.simpc8313 | 0
{doc => board/st/nhk8815}/README.nhk8815 | 0
{doc => board/stx/stxxtc}/README.stxxtc | 0
{doc => board/ti/omap730p2}/README.omap730p2 | 0
doc/README.timll => board/timll/devkit8000/README | 0
doc/README.TQM8260 => board/tqc/tqm8260/README | 0
.../xes/xpedite1000/README | 0
doc/README.zeus => board/zeus/README | 0
doc/README.OXC | 24 --
doc/README.Sandpoint8240 | 394 -------------------
doc/README.amigaone | 12 -
doc/README.p4080ds | 32 --
doc/README.qemu_mips | 164 --------
83 files changed, 565 insertions(+), 626 deletions(-)
rename doc/README.ag101 => board/AndesTech/adp-ag101/README (100%)
rename doc/README.db64360 => board/Marvell/db64360/README (100%)
rename doc/README.db64460 => board/Marvell/db64460/README (100%)
rename doc/README.RPXClassic => board/RPXClassic/README (100%)
rename doc/README.RPXlite => board/RPXlite/README (100%)
rename {doc => board/RPXlite}/README.PlanetCore (100%)
rename doc/README.alaska8220 => board/alaska/README (100%)
rename doc/README.bamboo => board/amcc/bamboo/README (100%)
rename doc/README.ebony => board/amcc/ebony/README (100%)
rename {doc => board/amcc/ocotea}/README.ocotea (100%)
rename {doc => board/amcc/ocotea}/README.ocotea-PIBS-to-U-Boot (100%)
rename doc/README-integrator => board/armltd/integrator/README (100%)
rename doc/README.cmi => board/cmi/README (100%)
rename doc/README.COBRA5272 => board/cobra5272/README (100%)
rename {doc => board/davinci/da8xxevm}/README.hawkboard (100%)
rename doc/README.dnp5370 => board/dnp5370/README (100%)
rename doc/README.evb64260 => board/evb64260/README (100%)
rename {doc => board/evb64260}/README.EVB-64260-750CX (100%)
rename doc/README.fads => board/fads/README (100%)
rename doc/README.m52277evb => board/freescale/m52277evb/README (100%)
rename doc/README.m5253evbe => board/freescale/m5253evbe/README (100%)
rename doc/README.m53017evb => board/freescale/m53017evb/README (100%)
rename doc/README.m5373evb => board/freescale/m5373evb/README (100%)
rename doc/README.m54455evb => board/freescale/m54455evb/README (100%)
rename doc/README.m5475evb => board/freescale/m547xevb/README (100%)
rename doc/README.mpc7448hpc2 => board/freescale/mpc7448hpc2/README (100%)
rename doc/README.mpc8313erdb => board/freescale/mpc8313erdb/README (100%)
rename doc/README.mpc8315erdb => board/freescale/mpc8315erdb/README (100%)
rename doc/README.mpc8323erdb => board/freescale/mpc8323erdb/README (100%)
rename doc/README.mpc832xemds => board/freescale/mpc832xemds/README (100%)
rename doc/README.mpc8349itx => board/freescale/mpc8349itx/README (100%)
rename doc/README.mpc8360emds => board/freescale/mpc8360emds/README (100%)
rename doc/README.mpc837xemds => board/freescale/mpc837xemds/README (100%)
rename doc/README.mpc837xerdb => board/freescale/mpc837xerdb/README (100%)
rename doc/README.mpc8536ds => board/freescale/mpc8536ds/README (100%)
rename doc/README.mpc8544ds => board/freescale/mpc8544ds/README (100%)
rename doc/README.mpc8569mds => board/freescale/mpc8569mds/README (100%)
rename doc/README.mpc8572ds => board/freescale/mpc8572ds/README (100%)
rename doc/README.mpc8610hpcd => board/freescale/mpc8610hpcd/README (100%)
rename doc/README.mpc8641hpcn => board/freescale/mpc8641hpcn/README (100%)
rename doc/README.mx35pdk => board/freescale/mx35pdk/README (100%)
rename doc/README.mx6qsabrelite => board/freescale/mx6qsabrelite/README (100%)
rename doc/README.p1022ds => board/freescale/p1022ds/README (100%)
rename doc/README.p1023rds => board/freescale/p1023rds/README (100%)
rename doc/README.p2020rdb => board/freescale/p1_p2_rdb/README (100%)
rename doc/README.p1_p2_rdb_pc => board/freescale/p1_p2_rdb_pc/README (100%)
rename doc/README.p2041rdb => board/freescale/p2041rdb/README (100%)
rename doc/README.p3060qds => board/freescale/p3060qds/README (100%)
rename doc/README.IceCube => board/icecube/README (100%)
rename {doc => board/icecube}/README.Lite5200B_low_power (100%)
rename doc/README.INCA-IP => board/incaip/README (100%)
rename doc/README.IPHASE4539 => board/iphase4539/README (100%)
rename {doc => board/keymile/km83xx}/README.kmeter1 (100%)
rename doc/README.korat => board/korat/README (100%)
rename doc/README.mergerbox => board/matrix_vision/mergerbox/README (100%)
rename {doc => board/matrix_vision/mvbc_p}/README.mvbc_p (100%)
rename {doc => board/matrix_vision/mvblm7}/README.mvblm7 (100%)
rename {doc => board/matrix_vision/mvsmr}/README.mvsmr (100%)
rename doc/README.MBX => board/mbx8xx/README (100%)
rename doc/README.PIP405 => board/mpl/pip405/README (100%)
rename doc/README.phytec.pcm030 => board/phytec/pcm030/README (100%)
rename {doc => board/renesas/sh7757lcr}/README.sh7757lcr (100%)
rename {doc => board/renesas/sh7785lcr}/README.sh7785lcr (100%)
rename {doc => board/sandbox/sandbox}/README.sandbox (100%)
rename doc/README.sbc8349 => board/sbc8349/README (100%)
rename doc/README.sbc8548 => board/sbc8548/README (100%)
rename doc/README.SBC8560 => board/sbc8560/README (100%)
rename doc/README.sbc8641d => board/sbc8641d/README (100%)
rename {doc => board/sheldon/simpc8313}/README.simpc8313 (100%)
rename {doc => board/st/nhk8815}/README.nhk8815 (100%)
rename {doc => board/stx/stxxtc}/README.stxxtc (100%)
rename {doc => board/ti/omap730p2}/README.omap730p2 (100%)
rename doc/README.timll => board/timll/devkit8000/README (100%)
rename doc/README.TQM8260 => board/tqc/tqm8260/README (100%)
rename doc/README.xpedite1k => board/xes/xpedite1000/README (100%)
rename doc/README.zeus => board/zeus/README (100%)
delete mode 100644 doc/README.OXC
delete mode 100644 doc/README.Sandpoint8240
delete mode 100644 doc/README.amigaone
delete mode 100644 doc/README.p4080ds
delete mode 100644 doc/README.qemu_mips
diff --git a/doc/README.ag101 b/board/AndesTech/adp-ag101/README
similarity index 100%
rename from doc/README.ag101
rename to board/AndesTech/adp-ag101/README
diff --git a/doc/README.db64360 b/board/Marvell/db64360/README
similarity index 100%
rename from doc/README.db64360
rename to board/Marvell/db64360/README
diff --git a/doc/README.db64460 b/board/Marvell/db64460/README
similarity index 100%
rename from doc/README.db64460
rename to board/Marvell/db64460/README
diff --git a/doc/README.RPXClassic b/board/RPXClassic/README
similarity index 100%
rename from doc/README.RPXClassic
rename to board/RPXClassic/README
diff --git a/doc/README.RPXlite b/board/RPXlite/README
similarity index 100%
rename from doc/README.RPXlite
rename to board/RPXlite/README
diff --git a/doc/README.PlanetCore b/board/RPXlite/README.PlanetCore
similarity index 100%
rename from doc/README.PlanetCore
rename to board/RPXlite/README.PlanetCore
diff --git a/doc/README.alaska8220 b/board/alaska/README
similarity index 100%
rename from doc/README.alaska8220
rename to board/alaska/README
diff --git a/doc/README.bamboo b/board/amcc/bamboo/README
similarity index 100%
rename from doc/README.bamboo
rename to board/amcc/bamboo/README
diff --git a/doc/README.ebony b/board/amcc/ebony/README
similarity index 100%
rename from doc/README.ebony
rename to board/amcc/ebony/README
diff --git a/doc/README.ocotea b/board/amcc/ocotea/README.ocotea
similarity index 100%
rename from doc/README.ocotea
rename to board/amcc/ocotea/README.ocotea
diff --git a/doc/README.ocotea-PIBS-to-U-Boot b/board/amcc/ocotea/README.ocotea-PIBS-to-U-Boot
similarity index 100%
rename from doc/README.ocotea-PIBS-to-U-Boot
rename to board/amcc/ocotea/README.ocotea-PIBS-to-U-Boot
diff --git a/doc/README-integrator b/board/armltd/integrator/README
similarity index 100%
rename from doc/README-integrator
rename to board/armltd/integrator/README
diff --git a/doc/README.cmi b/board/cmi/README
similarity index 100%
rename from doc/README.cmi
rename to board/cmi/README
diff --git a/doc/README.COBRA5272 b/board/cobra5272/README
similarity index 100%
rename from doc/README.COBRA5272
rename to board/cobra5272/README
diff --git a/doc/README.hawkboard b/board/davinci/da8xxevm/README.hawkboard
similarity index 100%
rename from doc/README.hawkboard
rename to board/davinci/da8xxevm/README.hawkboard
diff --git a/doc/README.dnp5370 b/board/dnp5370/README
similarity index 100%
rename from doc/README.dnp5370
rename to board/dnp5370/README
diff --git a/doc/README.evb64260 b/board/evb64260/README
similarity index 100%
rename from doc/README.evb64260
rename to board/evb64260/README
diff --git a/doc/README.EVB-64260-750CX b/board/evb64260/README.EVB-64260-750CX
similarity index 100%
rename from doc/README.EVB-64260-750CX
rename to board/evb64260/README.EVB-64260-750CX
diff --git a/doc/README.fads b/board/fads/README
similarity index 100%
rename from doc/README.fads
rename to board/fads/README
diff --git a/doc/README.m52277evb b/board/freescale/m52277evb/README
similarity index 100%
rename from doc/README.m52277evb
rename to board/freescale/m52277evb/README
diff --git a/doc/README.m5253evbe b/board/freescale/m5253evbe/README
similarity index 100%
rename from doc/README.m5253evbe
rename to board/freescale/m5253evbe/README
diff --git a/doc/README.m53017evb b/board/freescale/m53017evb/README
similarity index 100%
rename from doc/README.m53017evb
rename to board/freescale/m53017evb/README
diff --git a/doc/README.m5373evb b/board/freescale/m5373evb/README
similarity index 100%
rename from doc/README.m5373evb
rename to board/freescale/m5373evb/README
diff --git a/doc/README.m54455evb b/board/freescale/m54455evb/README
similarity index 100%
rename from doc/README.m54455evb
rename to board/freescale/m54455evb/README
diff --git a/doc/README.m5475evb b/board/freescale/m547xevb/README
similarity index 100%
rename from doc/README.m5475evb
rename to board/freescale/m547xevb/README
diff --git a/doc/README.mpc7448hpc2 b/board/freescale/mpc7448hpc2/README
similarity index 100%
rename from doc/README.mpc7448hpc2
rename to board/freescale/mpc7448hpc2/README
diff --git a/doc/README.mpc8313erdb b/board/freescale/mpc8313erdb/README
similarity index 100%
rename from doc/README.mpc8313erdb
rename to board/freescale/mpc8313erdb/README
diff --git a/doc/README.mpc8315erdb b/board/freescale/mpc8315erdb/README
similarity index 100%
rename from doc/README.mpc8315erdb
rename to board/freescale/mpc8315erdb/README
diff --git a/doc/README.mpc8323erdb b/board/freescale/mpc8323erdb/README
similarity index 100%
rename from doc/README.mpc8323erdb
rename to board/freescale/mpc8323erdb/README
diff --git a/doc/README.mpc832xemds b/board/freescale/mpc832xemds/README
similarity index 100%
rename from doc/README.mpc832xemds
rename to board/freescale/mpc832xemds/README
diff --git a/doc/README.mpc8349itx b/board/freescale/mpc8349itx/README
similarity index 100%
rename from doc/README.mpc8349itx
rename to board/freescale/mpc8349itx/README
diff --git a/doc/README.mpc8360emds b/board/freescale/mpc8360emds/README
similarity index 100%
rename from doc/README.mpc8360emds
rename to board/freescale/mpc8360emds/README
diff --git a/doc/README.mpc837xemds b/board/freescale/mpc837xemds/README
similarity index 100%
rename from doc/README.mpc837xemds
rename to board/freescale/mpc837xemds/README
diff --git a/doc/README.mpc837xerdb b/board/freescale/mpc837xerdb/README
similarity index 100%
rename from doc/README.mpc837xerdb
rename to board/freescale/mpc837xerdb/README
diff --git a/doc/README.mpc8536ds b/board/freescale/mpc8536ds/README
similarity index 100%
rename from doc/README.mpc8536ds
rename to board/freescale/mpc8536ds/README
diff --git a/doc/README.mpc8544ds b/board/freescale/mpc8544ds/README
similarity index 100%
rename from doc/README.mpc8544ds
rename to board/freescale/mpc8544ds/README
diff --git a/doc/README.mpc8569mds b/board/freescale/mpc8569mds/README
similarity index 100%
rename from doc/README.mpc8569mds
rename to board/freescale/mpc8569mds/README
diff --git a/doc/README.mpc8572ds b/board/freescale/mpc8572ds/README
similarity index 100%
rename from doc/README.mpc8572ds
rename to board/freescale/mpc8572ds/README
diff --git a/doc/README.mpc8610hpcd b/board/freescale/mpc8610hpcd/README
similarity index 100%
rename from doc/README.mpc8610hpcd
rename to board/freescale/mpc8610hpcd/README
diff --git a/doc/README.mpc8641hpcn b/board/freescale/mpc8641hpcn/README
similarity index 100%
rename from doc/README.mpc8641hpcn
rename to board/freescale/mpc8641hpcn/README
diff --git a/doc/README.mx35pdk b/board/freescale/mx35pdk/README
similarity index 100%
rename from doc/README.mx35pdk
rename to board/freescale/mx35pdk/README
diff --git a/doc/README.mx6qsabrelite b/board/freescale/mx6qsabrelite/README
similarity index 100%
rename from doc/README.mx6qsabrelite
rename to board/freescale/mx6qsabrelite/README
diff --git a/doc/README.p1022ds b/board/freescale/p1022ds/README
similarity index 100%
rename from doc/README.p1022ds
rename to board/freescale/p1022ds/README
diff --git a/doc/README.p1023rds b/board/freescale/p1023rds/README
similarity index 100%
rename from doc/README.p1023rds
rename to board/freescale/p1023rds/README
diff --git a/doc/README.p2020rdb b/board/freescale/p1_p2_rdb/README
similarity index 100%
rename from doc/README.p2020rdb
rename to board/freescale/p1_p2_rdb/README
diff --git a/doc/README.p1_p2_rdb_pc b/board/freescale/p1_p2_rdb_pc/README
similarity index 100%
rename from doc/README.p1_p2_rdb_pc
rename to board/freescale/p1_p2_rdb_pc/README
diff --git a/doc/README.p2041rdb b/board/freescale/p2041rdb/README
similarity index 100%
rename from doc/README.p2041rdb
rename to board/freescale/p2041rdb/README
diff --git a/doc/README.p3060qds b/board/freescale/p3060qds/README
similarity index 100%
rename from doc/README.p3060qds
rename to board/freescale/p3060qds/README
diff --git a/doc/README.IceCube b/board/icecube/README
similarity index 100%
rename from doc/README.IceCube
rename to board/icecube/README
diff --git a/doc/README.Lite5200B_low_power b/board/icecube/README.Lite5200B_low_power
similarity index 100%
rename from doc/README.Lite5200B_low_power
rename to board/icecube/README.Lite5200B_low_power
diff --git a/doc/README.INCA-IP b/board/incaip/README
similarity index 100%
rename from doc/README.INCA-IP
rename to board/incaip/README
diff --git a/doc/README.IPHASE4539 b/board/iphase4539/README
similarity index 100%
rename from doc/README.IPHASE4539
rename to board/iphase4539/README
diff --git a/doc/README.kmeter1 b/board/keymile/km83xx/README.kmeter1
similarity index 100%
rename from doc/README.kmeter1
rename to board/keymile/km83xx/README.kmeter1
diff --git a/doc/README.korat b/board/korat/README
similarity index 100%
rename from doc/README.korat
rename to board/korat/README
diff --git a/doc/README.mergerbox b/board/matrix_vision/mergerbox/README
similarity index 100%
rename from doc/README.mergerbox
rename to board/matrix_vision/mergerbox/README
diff --git a/doc/README.mvbc_p b/board/matrix_vision/mvbc_p/README.mvbc_p
similarity index 100%
rename from doc/README.mvbc_p
rename to board/matrix_vision/mvbc_p/README.mvbc_p
diff --git a/doc/README.mvblm7 b/board/matrix_vision/mvblm7/README.mvblm7
similarity index 100%
rename from doc/README.mvblm7
rename to board/matrix_vision/mvblm7/README.mvblm7
diff --git a/doc/README.mvsmr b/board/matrix_vision/mvsmr/README.mvsmr
similarity index 100%
rename from doc/README.mvsmr
rename to board/matrix_vision/mvsmr/README.mvsmr
diff --git a/doc/README.MBX b/board/mbx8xx/README
similarity index 100%
rename from doc/README.MBX
rename to board/mbx8xx/README
diff --git a/doc/README.PIP405 b/board/mpl/pip405/README
similarity index 100%
rename from doc/README.PIP405
rename to board/mpl/pip405/README
diff --git a/doc/README.phytec.pcm030 b/board/phytec/pcm030/README
similarity index 100%
rename from doc/README.phytec.pcm030
rename to board/phytec/pcm030/README
diff --git a/board/qemu-mips/README b/board/qemu-mips/README
index 565241b..9fd97e1 100644
--- a/board/qemu-mips/README
+++ b/board/qemu-mips/README
@@ -13,3 +13,170 @@ Derived from au1x00 with a lot of things cut out.
Supports emulated flash (patch Jean-Christophe PLAGNIOL-VILLARD) with
recent qemu versions. When using emulated flash, launch with
-pflash <filename> and erase mips_bios.bin.
+
+
+
+Notes for the Qemu MIPS port
+----------------------------
+
+I) Example usage:
+
+# ln -s u-boot.bin mips_bios.bin
+start it:
+qemu-system-mips -L . /dev/null -nographic
+
+or
+
+if you use a qemu version after commit 4224
+
+create image:
+# dd of=flash bs=1k count=4k if=/dev/zero
+# dd of=flash bs=1k conv=notrunc if=u-boot.bin
+start it:
+# qemu-system-mips -M mips -pflash flash -monitor null -nographic
+
+2) Download kernel + initrd
+
+On ftp://ftp.denx.de/pub/contrib/Jean-Christophe_Plagniol-Villard/qemu_mips/
+you can downland
+
+#config to build the kernel
+qemu_mips_defconfig
+#patch to fix mips interrupt init on 2.6.24.y kernel
+qemu_mips_kernel.patch
+initrd.gz
+vmlinux
+vmlinux.bin
+System.map
+
+4) Generate uImage
+
+# tools/mkimage -A mips -O linux -T kernel -C gzip -a 0x80010000 -e 0x80245650 -n "Linux 2.6.24.y" -d vmlinux.bin.gz uImage
+
+5) Copy uImage to Flash
+# dd if=uImage bs=1k conv=notrunc seek=224 of=flash
+
+6) Generate Ide Disk
+
+# dd of=ide bs=1k cout=100k if=/dev/zero
+
+# sfdisk -C 261 -d ide
+# partition table of ide
+unit: sectors
+
+ ide1 : start= 63, size= 32067, Id=83
+ ide2 : start= 32130, size= 32130, Id=83
+ ide3 : start= 64260, size= 4128705, Id=83
+ ide4 : start= 0, size= 0, Id= 0
+
+7) Copy to ide
+
+# dd if=uImage bs=512 conv=notrunc seek=63 of=ide
+
+8) Generate ext2 on part 2 on Copy uImage and initrd.gz
+
+# Attached as loop device ide offset = 32130 * 512
+# losetup -o 16450560 -f ide
+# Format as ext2 ( arg2 : nb blocks)
+# mke2fs /dev/loop0 16065
+# losetup -d /dev/loop0
+# Mount and copy uImage and initrd.gz to it
+# mount -o loop,offset=16450560 -t ext2 ide /mnt
+# mkdir /mnt/boot
+# cp {initrd.gz,uImage} /mnt/boot/
+# Umount it
+# umount /mnt
+
+9) Set Environment
+
+setenv rd_start 0x80800000
+setenv rd_size 2663940
+setenv kernel BFC38000
+setenv oad_addr 80500000
+setenv load_addr2 80F00000
+setenv kernel_flash BFC38000
+setenv load_addr_hello 80200000
+setenv bootargs 'root=/dev/ram0 init=/bin/sh'
+setenv load_rd_ext2 'ide res; ext2load ide 0:2 ${rd_start} /boot/initrd.gz'
+setenv load_rd_tftp 'tftp ${rd_start} /initrd.gz'
+setenv load_kernel_hda 'ide res; diskboot ${load_addr} 0:2'
+setenv load_kernel_ext2 'ide res; ext2load ide 0:2 ${load_addr} /boot/uImage'
+setenv load_kernel_tftp 'tftp ${load_addr} /qemu_mips/uImage'
+setenv boot_ext2_ext2 'run load_rd_ext2; run load_kernel_ext2; run addmisc; bootm ${load_addr}'
+setenv boot_ext2_flash 'run load_rd_ext2; run addmisc; bootm ${kernel_flash}'
+setenv boot_ext2_hda 'run load_rd_ext2; run load_kernel_hda; run addmisc; bootm ${load_addr}'
+setenv boot_ext2_tftp 'run load_rd_ext2; run load_kernel_tftp; run addmisc; bootm ${load_addr}'
+setenv boot_tftp_hda 'run load_rd_tftp; run load_kernel_hda; run addmisc; bootm ${load_addr}'
+setenv boot_tftp_ext2 'run load_rd_tftp; run load_kernel_ext2; run addmisc; bootm ${load_addr}'
+setenv boot_tftp_flash 'run load_rd_tftp; run addmisc; bootm ${kernel_flash}'
+setenv boot_tftp_tftp 'run load_rd_tftp; run load_kernel_tftp; run addmisc; bootm ${load_addr}'
+setenv load_hello_tftp 'tftp ${load_addr_hello} /examples/hello_world.bin'
+setenv go_tftp 'run load_hello_tftp; go ${load_addr_hello}'
+setenv addmisc 'setenv bootargs ${bootargs} console=ttyS0,${baudrate} rd_start=${rd_start} rd_size=${rd_size} ethaddr=${ethaddr}'
+setenv bootcmd 'run boot_tftp_flash'
+
+10) Now you can boot from flash, ide, ide+ext2 and tfp
+
+# qemu-system-mips -M mips -pflash flash -monitor null -nographic -net nic -net user -tftp `pwd` -hda ide
+
+II) How to debug U-Boot
+
+In order to debug U-Boot you need to start qemu with gdb server support (-s)
+and waiting the connection to start the CPU (-S)
+
+# qemu-system-mips -S -s -M mips -pflash flash -monitor null -nographic -net nic -net user -tftp `pwd` -hda ide
+
+in an other console you start gdb
+
+1) Debugging of U-Boot Before Relocation
+
+Before relocation, the addresses in the ELF file can be used without any problems
+by connecting to the gdb server localhost:1234
+
+# mipsel-unknown-linux-gnu-gdb u-boot
+GNU gdb 6.6
+Copyright (C) 2006 Free Software Foundation, Inc.
+GDB is free software, covered by the GNU General Public License, and you are
+welcome to change it and/or distribute copies of it under certain conditions.
+Type "show copying" to see the conditions.
+There is absolutely no warranty for GDB. Type "show warranty" for details.
+This GDB was configured as "--host=i486-linux-gnu --target=mipsel-unknown-linux-gnu"...
+(gdb) target remote localhost:1234
+Remote debugging using localhost:1234
+_start () at start.S:64
+64 RVECENT(reset,0) /* U-boot entry point */
+Current language: auto; currently asm
+(gdb) b board.c:289
+Breakpoint 1 at 0xbfc00cc8: file board.c, line 289.
+(gdb) c
+Continuing.
+
+Breakpoint 1, board_init_f (bootflag=<value optimized out>) at board.c:290
+290 relocate_code (addr_sp, id, addr);
+Current language: auto; currently c
+(gdb) p/x addr
+$1 = 0x87fa0000
+
+2) Debugging of U-Boot After Relocation
+
+For debugging U-Boot after relocation we need to know the address to which
+U-Boot relocates itself to 0x87fa0000 by default.
+And replace the symbol table to this offset.
+
+(gdb) symbol-file
+Discard symbol table from `/private/u-boot-arm/u-boot'? (y or n) y
+Error in re-setting breakpoint 1:
+No symbol table is loaded. Use the "file" command.
+No symbol file now.
+(gdb) add-symbol-file u-boot 0x87fa0000
+add symbol table from file "u-boot" at
+ .text_addr = 0x87fa0000
+(y or n) y
+Reading symbols from /private/u-boot-arm/u-boot...done.
+Breakpoint 1 at 0x87fa0cc8: file board.c, line 289.
+(gdb) c
+Continuing.
+
+Program received signal SIGINT, Interrupt.
+0xffffffff87fa0de4 in udelay (usec=<value optimized out>) at time.c:78
+78 while ((tmo - read_c0_count()) < 0x7fffffff)
diff --git a/doc/README.sh7757lcr b/board/renesas/sh7757lcr/README.sh7757lcr
similarity index 100%
rename from doc/README.sh7757lcr
rename to board/renesas/sh7757lcr/README.sh7757lcr
diff --git a/doc/README.sh7785lcr b/board/renesas/sh7785lcr/README.sh7785lcr
similarity index 100%
rename from doc/README.sh7785lcr
rename to board/renesas/sh7785lcr/README.sh7785lcr
diff --git a/doc/README.sandbox b/board/sandbox/sandbox/README.sandbox
similarity index 100%
rename from doc/README.sandbox
rename to board/sandbox/sandbox/README.sandbox
diff --git a/board/sandpoint/README b/board/sandpoint/README
index 9e48168..a2e0831 100644
--- a/board/sandpoint/README
+++ b/board/sandpoint/README
@@ -13,3 +13,401 @@ seem to maintain it any more. I can be reached by mail as
tkoeller(a)gmx.net.
Thomas Koeller
+
+
+
+
+The port was tested on a Sandpoint 8240 X3 board, with U-Boot
+installed in the flash memory of the CPU card. Please use the
+following DIP switch settings:
+
+Motherboard:
+
+SW1.1: on SW1.2: on SW1.3: on SW1.4: on
+SW1.5: on SW1.6: on SW1.7: on SW1.8: on
+
+SW2.1: on SW2.2: on SW2.3: on SW2.4: on
+SW2.5: on SW2.6: on SW2.7: on SW2.8: on
+
+
+CPU Card:
+
+SW2.1: OFF SW2.2: OFF SW2.3: on SW2.4: on
+SW2.5: OFF SW2.6: OFF SW2.7: OFF SW2.8: OFF
+
+SW3.1: OFF SW3.2: on SW3.3: OFF SW3.4: OFF
+SW3.5: on SW3.6: OFF SW3.7: OFF SW3.8: on
+
+
+The followind detailed description of installation and initial steps
+with U-Boot and QNX was provided by Jim Sandoz <sandoz(a)lucent.com>:
+
+
+Directions for installing U-Boot on Sandpoint+Unity8240
+using the Abatron BDI2000 BDM/JTAG debugger ...
+
+Background and Reference info:
+http://u-boot.sourceforge.net/
+http://www.abatron.ch/
+http://www.abatron.ch/BDI/bdihw.html
+http://www.abatron.ch/DataSheets/BDI2000.pdf
+http://www.abatron.ch/Manuals/ManGdbCOP-2000C.pdf
+http://e-www.motorola.com/collateral/SPX3UM.pdf
+http://e-www.motorola.com/collateral/UNITYX4CONFIG.pdf
+
+
+Connection Diagram:
+ ===========
+ === ===== |----- |
+| | <---------------> | | | | |
+|PC | rs232 | BDI |=============[] | |
+| | |2000 | BDM probe | | |
+| | <---------------> | | |----- |
+ === ethernet ===== | |
+ | |
+ ===========
+ Sandpoint X3 with
+ Unity 8240 proc
+
+
+PART 1)
+ DIP Switch Settings:
+
+Sandpoint X3 8240 processor board DIP switch settings, with
+U-Boot to be installed in the flash memory of the CPU card:
+
+Motorola Sandpoint X3 Motherboard:
+SW1.1: on SW1.2: on SW1.3: on SW1.4: on
+SW1.5: on SW1.6: on SW1.7: on SW1.8: on
+SW2.1: on SW2.2: on SW2.3: on SW2.4: on
+SW2.5: on SW2.6: on SW2.7: on SW2.8: on
+
+Motorola Unity 8240 CPU Card:
+SW2.1: OFF SW2.2: OFF SW2.3: on SW2.4: on
+SW2.5: OFF SW2.6: OFF SW2.7: OFF SW2.8: OFF
+SW3.1: OFF SW3.2: on SW3.3: OFF SW3.4: OFF
+SW3.5: on SW3.6: OFF SW3.7: OFF SW3.8: on
+
+
+PART 2)
+ Connect the BDI2000 Cable to the Sandpoint/Unity 8240:
+
+BDM Pin 1 on the Unity 8240 processor board is towards the
+PCI PMC connectors, or away from the socketed SDRAM, i.e.:
+
+ ====================
+ | ---------------- |
+ | | SDRAM | |
+ | | | |
+ | ---------------- |
+ | |~| |
+ | |B| ++++++ |
+ | |D| + uP + |
+ | |M| +8240+ |
+ | ~ 1 ++++++ |
+ | |
+ | |
+ | |
+ | PMC conn ====== |
+ | ===== ====== |
+ | |
+ ====================
+
+
+PART 3)
+ Setting up the BDI2000, and preparing for TCP/IP network comms:
+
+Connect the BDI2000 to the PC using the supplied serial cable.
+Download the BDI2000 software and install it using setup.exe.
+
+[Note: of course you can also use the Linux command line tool
+"bdisetup" to configure your BDI2000 - the sources are included on
+the floppy disk that comes with your BDI2000. Just in case you don't
+have any Windows PC's - like me :-) -- wd ]
+
+Power up the BDI2000; then follow directions to assign the IP
+address and related network information. Note that U-Boot
+will be loaded to the Sandpoint via tftp. You need to either
+use the Abatron-provided tftp application or provide a tftp
+server (e.g. Linux/Solaris/*BSD) somewhere on your network.
+Once the IP address etc are assigned via the RS232 port,
+further communication with the BDI2000 will happen via the
+ethernet connection.
+
+PART 4)
+ Making a TCP/IP network connection to the Abatron BDI2000:
+
+Telnet to the Abatron BDI2000. Assuming that all of the
+networking info was loaded via RS232 correctly, you will see
+the following (scrolling):
+
+- TARGET: waiting for target Vcc
+- TARGET: waiting for target Vcc
+
+
+PART 5)
+ Power up the target Sandpoint:
+If the BDM connections are correct, the following will now appear:
+
+- TARGET: waiting for target Vcc
+- TARGET: waiting for target Vcc
+- TARGET: processing power-up delay
+- TARGET: processing user reset request
+- BDI asserts HRESET
+- Reset JTAG controller passed
+- Bypass check: 0x55 => 0xAA
+- Bypass check: 0x55 => 0xAA
+- JTAG exists check passed
+- Target PVR is 0x00810101
+- COP status is 0x01
+- Check running state passed
+- BDI scans COP freeze command
+- BDI removes HRESET
+- COP status is 0x05
+- Check stopped state passed
+- Check LSRL length passed
+- BDI sets breakpoint at 0xFFF00100
+- BDI resumes program execution
+- Waiting for target stop passed
+- TARGET: Target PVR is 0x00810101
+- TARGET: reseting target passed
+- TARGET: processing target startup ....
+- TARGET: processing target startup passed
+BDI>
+
+
+PART 6)
+ Erase the current contents of the flash memory:
+
+BDI>era 0xFFF00000
+ Erasing flash at 0xfff00000
+ Erasing flash passed
+BDI>era 0xFFF04000
+ Erasing flash at 0xfff04000
+ Erasing flash passed
+BDI>era 0xFFF06000
+ Erasing flash at 0xfff06000
+ Erasing flash passed
+BDI>era 0xFFF08000
+ Erasing flash at 0xfff08000
+ Erasing flash passed
+BDI>era 0xFFF10000
+ Erasing flash at 0xfff10000
+ Erasing flash passed
+BDI>era 0xFFF20000
+ Erasing flash at 0xfff20000
+ Erasing flash passed
+
+
+PART 7)
+ Program the flash memory with the U-Boot image:
+
+BDI>prog 0xFFF00000 u-boot.bin bin
+ Programming u-boot.bin , please wait ....
+ Programming flash passed
+
+
+PART 8)
+ Connect PC to Sandpoint:
+Using a crossover serial cable, attach the PC serial port to the
+Sandpoint's COM1. Set communications parameters to 8N1 / 9600 baud.
+
+
+PART 9)
+ Reset the Unity and begin U-Boot execution:
+
+BDI>reset
+- TARGET: processing user reset request
+- TARGET: Target PVR is 0x00810101
+- TARGET: reseting target passed
+- TARGET: processing target init list ....
+- TARGET: processing target init list passed
+
+BDI>go
+
+Now see output from U-Boot running, sent via serial port:
+
+U-Boot 1.1.4 (Jan 23 2002 - 18:29:19)
+
+CPU: MPC8240 Revision 1.1 at 264 MHz: 16 kB I-Cache 16 kB D-Cache
+Board: Sandpoint 8240 Unity
+DRAM: 64 MB
+FLASH: 2 MB
+PCI: scanning bus0 ...
+ bus dev fn venID devID class rev MBAR0 MBAR1 IPIN ILINE
+ 00 00 00 1057 0003 060000 13 00000008 00000000 01 00
+ 00 0b 00 10ad 0565 060100 10 00000000 00000000 00 00
+ 00 0f 00 8086 1229 020000 08 80000000 80000001 01 00
+In: serial
+Out: serial
+Err: serial
+=>
+
+
+PART 10)
+ Set and save any required environmental variables, examples of some:
+
+=> setenv ethaddr 00:03:47:97:D0:79
+=> setenv bootfile your_qnx_image_here
+=> setenv hostname sandpointX
+=> setenv netmask 255.255.255.0
+=> setenv ipaddr 192.168.0.11
+=> setenv serverip 192.168.0.10
+=> setenv gatewayip=192.168.0.1
+=> saveenv
+Saving Environment to Flash...
+Un-Protected 1 sectors
+Erasing Flash...
+ done
+Erased 1 sectors
+Writing to Flash... done
+Protected 1 sectors
+=>
+
+**** Example environment: ****
+
+=> printenv
+baudrate=9600
+bootfile=telemetry
+hostname=sp1
+ethaddr=00:03:47:97:E4:6B
+load=tftp 100000 u-boot.bin
+update=protect off all;era FFF00000 FFF3FFFF;cp.b 100000 FFF00000 ${filesize};saveenv
+filesize=1f304
+gatewayip=145.17.228.1
+netmask=255.255.255.0
+ipaddr=145.17.228.42
+serverip=145.17.242.46
+stdin=serial
+stdout=serial
+stderr=serial
+
+Environment size: 332/8188 bytes
+=>
+
+here's some text useful stuff for cut-n-paste:
+setenv hostname sandpoint1
+setenv netmask 255.255.255.0
+setenv ipaddr 145.17.228.81
+setenv serverip 145.17.242.46
+setenv gatewayip 145.17.228.1
+saveenv
+
+PART 11)
+ Test U-Boot by tftp'ing new U-Boot, overwriting current:
+
+=> protect off all
+Un-Protect Flash Bank # 1
+=> tftp 100000 u-boot.bin
+eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
+ARP broadcast 1
+TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
+ gateway 145.17.228.1
+Filename 'u-boot.bin'.
+Load address: 0x100000
+Loading: #########################
+done
+Bytes transferred = 127628 (1f28c hex)
+=> era all
+Erase Flash Bank # 1
+ done
+Erase Flash Bank # 2 - missing
+=> cp.b 0x100000 FFF00000 1f28c
+Copy to Flash... done
+=> saveenv
+Saving Environment to Flash...
+Un-Protected 1 sectors
+Erasing Flash...
+ done
+Erased 1 sectors
+Writing to Flash... done
+Protected 1 sectors
+=> reset
+
+You can put these commands into some environment variables;
+
+=> setenv load tftp 100000 u-boot.bin
+=> setenv update protect off all\;era FFF00000 FFF3FFFF\;cp.b 100000 FFF00000 \${filesize}\;saveenv
+=> saveenv
+
+Then you just have to type "run load" then "run update"
+
+=> run load
+eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
+ARP broadcast 1
+TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
+ gateway 145.17.228.1
+Filename 'u-boot.bin'.
+Load address: 0x100000
+Loading: #########################
+done
+Bytes transferred = 127748 (1f304 hex)
+=> run update
+Un-Protect Flash Bank # 1
+Un-Protect Flash Bank # 2
+Erase Flash from 0xfff00000 to 0xfff3ffff
+ done
+Erased 7 sectors
+Copy to Flash... done
+Saving Environment to Flash...
+Un-Protected 1 sectors
+Erasing Flash...
+ done
+Erased 1 sectors
+Writing to Flash... done
+Protected 1 sectors
+=>
+
+
+PART 12)
+ Load OS image (ELF format) via U-Boot using tftp
+
+
+=> tftp 800000 sandpoint-simple.elf
+eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
+ARP broadcast 1
+TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
+ gateway 145.17.228.1
+Filename 'sandpoint-simple.elf'.
+Load address: 0x800000
+Loading: #################################################################
+ #################################################################
+ #################################################################
+ ########################
+done
+Bytes transferred = 1120284 (11181c hex)
+==>
+
+PART 13)
+ Begin OS image execution: (note that unless you have the
+serial parameters of your OS image set to 9600 (i.e. same as
+the U-Boot binary) you will get garbage here until you change
+the serial communications speed.
+
+=> bootelf 800000
+Loading @ 0x001f0100 (1120028 bytes)
+## Starting application at 0x001f1d28 ...
+Replace init_hwinfo() with a board specific version
+
+Loading QNX6....
+
+Header size=0x0000009c, Total Size=0x000005c0, #Cpu=1, Type=1
+<...loader and kernel messages snipped...>
+
+Welcome to Neutrino on the Sandpoint
+#
+
+
+other information:
+
+CVS Retrieval Notes:
+
+U-Boot's SourceForge CVS repository can be checked out
+through anonymous (pserver) CVS with the following
+instruction set. The module you wish to check out must
+be specified as the modulename. When prompted for a
+password for anonymous, simply press the Enter key.
+
+cvs -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot login
+
+cvs -z6 -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot co -P u-boot
diff --git a/doc/README.sbc8349 b/board/sbc8349/README
similarity index 100%
rename from doc/README.sbc8349
rename to board/sbc8349/README
diff --git a/doc/README.sbc8548 b/board/sbc8548/README
similarity index 100%
rename from doc/README.sbc8548
rename to board/sbc8548/README
diff --git a/doc/README.SBC8560 b/board/sbc8560/README
similarity index 100%
rename from doc/README.SBC8560
rename to board/sbc8560/README
diff --git a/doc/README.sbc8641d b/board/sbc8641d/README
similarity index 100%
rename from doc/README.sbc8641d
rename to board/sbc8641d/README
diff --git a/doc/README.simpc8313 b/board/sheldon/simpc8313/README.simpc8313
similarity index 100%
rename from doc/README.simpc8313
rename to board/sheldon/simpc8313/README.simpc8313
diff --git a/doc/README.nhk8815 b/board/st/nhk8815/README.nhk8815
similarity index 100%
rename from doc/README.nhk8815
rename to board/st/nhk8815/README.nhk8815
diff --git a/doc/README.stxxtc b/board/stx/stxxtc/README.stxxtc
similarity index 100%
rename from doc/README.stxxtc
rename to board/stx/stxxtc/README.stxxtc
diff --git a/doc/README.omap730p2 b/board/ti/omap730p2/README.omap730p2
similarity index 100%
rename from doc/README.omap730p2
rename to board/ti/omap730p2/README.omap730p2
diff --git a/doc/README.timll b/board/timll/devkit8000/README
similarity index 100%
rename from doc/README.timll
rename to board/timll/devkit8000/README
diff --git a/doc/README.TQM8260 b/board/tqc/tqm8260/README
similarity index 100%
rename from doc/README.TQM8260
rename to board/tqc/tqm8260/README
diff --git a/doc/README.xpedite1k b/board/xes/xpedite1000/README
similarity index 100%
rename from doc/README.xpedite1k
rename to board/xes/xpedite1000/README
diff --git a/doc/README.zeus b/board/zeus/README
similarity index 100%
rename from doc/README.zeus
rename to board/zeus/README
diff --git a/doc/README.OXC b/doc/README.OXC
deleted file mode 100644
index c5db5f8..0000000
--- a/doc/README.OXC
+++ /dev/null
@@ -1,24 +0,0 @@
-This document contains different information about the port
-of U-Boot for the OXC board designed by Lucent Technologies,
-Inc.
-
-1. Showing activity
-
-U-Boot for the OXC board can show its current status using
-the Active LED. This feature is configured by the following
-options:
-
-CONFIG_SHOW_ACTIVITY
-
- When this option is on, the Active LED is blinking fast
-when U-Boot runs in the idle loop (i.e. waits for user
-commands from serial console) and blinking slow when it
-downloads an image over network. When U-Boot loads an image
-over serial line the Active LED does not blink and its state
-is random (i.e. either constant on or constant off).
-
-CONFIG_SHOW_BOOT_PROGRESS
-
- When this option is on, U-Boot switches the Active LED
-off before booting an image and switches it on if booting
-failed due to some reasons.
diff --git a/doc/README.Sandpoint8240 b/doc/README.Sandpoint8240
deleted file mode 100644
index fa846dc..0000000
--- a/doc/README.Sandpoint8240
+++ /dev/null
@@ -1,394 +0,0 @@
-The port was tested on a Sandpoint 8240 X3 board, with U-Boot
-installed in the flash memory of the CPU card. Please use the
-following DIP switch settings:
-
-Motherboard:
-
-SW1.1: on SW1.2: on SW1.3: on SW1.4: on
-SW1.5: on SW1.6: on SW1.7: on SW1.8: on
-
-SW2.1: on SW2.2: on SW2.3: on SW2.4: on
-SW2.5: on SW2.6: on SW2.7: on SW2.8: on
-
-
-CPU Card:
-
-SW2.1: OFF SW2.2: OFF SW2.3: on SW2.4: on
-SW2.5: OFF SW2.6: OFF SW2.7: OFF SW2.8: OFF
-
-SW3.1: OFF SW3.2: on SW3.3: OFF SW3.4: OFF
-SW3.5: on SW3.6: OFF SW3.7: OFF SW3.8: on
-
-
-The followind detailed description of installation and initial steps
-with U-Boot and QNX was provided by Jim Sandoz <sandoz(a)lucent.com>:
-
-
-Directions for installing U-Boot on Sandpoint+Unity8240
-using the Abatron BDI2000 BDM/JTAG debugger ...
-
-Background and Reference info:
-http://u-boot.sourceforge.net/
-http://www.abatron.ch/
-http://www.abatron.ch/BDI/bdihw.html
-http://www.abatron.ch/DataSheets/BDI2000.pdf
-http://www.abatron.ch/Manuals/ManGdbCOP-2000C.pdf
-http://e-www.motorola.com/collateral/SPX3UM.pdf
-http://e-www.motorola.com/collateral/UNITYX4CONFIG.pdf
-
-
-Connection Diagram:
- ===========
- === ===== |----- |
-| | <---------------> | | | | |
-|PC | rs232 | BDI |=============[] | |
-| | |2000 | BDM probe | | |
-| | <---------------> | | |----- |
- === ethernet ===== | |
- | |
- ===========
- Sandpoint X3 with
- Unity 8240 proc
-
-
-PART 1)
- DIP Switch Settings:
-
-Sandpoint X3 8240 processor board DIP switch settings, with
-U-Boot to be installed in the flash memory of the CPU card:
-
-Motorola Sandpoint X3 Motherboard:
-SW1.1: on SW1.2: on SW1.3: on SW1.4: on
-SW1.5: on SW1.6: on SW1.7: on SW1.8: on
-SW2.1: on SW2.2: on SW2.3: on SW2.4: on
-SW2.5: on SW2.6: on SW2.7: on SW2.8: on
-
-Motorola Unity 8240 CPU Card:
-SW2.1: OFF SW2.2: OFF SW2.3: on SW2.4: on
-SW2.5: OFF SW2.6: OFF SW2.7: OFF SW2.8: OFF
-SW3.1: OFF SW3.2: on SW3.3: OFF SW3.4: OFF
-SW3.5: on SW3.6: OFF SW3.7: OFF SW3.8: on
-
-
-PART 2)
- Connect the BDI2000 Cable to the Sandpoint/Unity 8240:
-
-BDM Pin 1 on the Unity 8240 processor board is towards the
-PCI PMC connectors, or away from the socketed SDRAM, i.e.:
-
- ====================
- | ---------------- |
- | | SDRAM | |
- | | | |
- | ---------------- |
- | |~| |
- | |B| ++++++ |
- | |D| + uP + |
- | |M| +8240+ |
- | ~ 1 ++++++ |
- | |
- | |
- | |
- | PMC conn ====== |
- | ===== ====== |
- | |
- ====================
-
-
-PART 3)
- Setting up the BDI2000, and preparing for TCP/IP network comms:
-
-Connect the BDI2000 to the PC using the supplied serial cable.
-Download the BDI2000 software and install it using setup.exe.
-
-[Note: of course you can also use the Linux command line tool
-"bdisetup" to configure your BDI2000 - the sources are included on
-the floppy disk that comes with your BDI2000. Just in case you don't
-have any Windows PC's - like me :-) -- wd ]
-
-Power up the BDI2000; then follow directions to assign the IP
-address and related network information. Note that U-Boot
-will be loaded to the Sandpoint via tftp. You need to either
-use the Abatron-provided tftp application or provide a tftp
-server (e.g. Linux/Solaris/*BSD) somewhere on your network.
-Once the IP address etc are assigned via the RS232 port,
-further communication with the BDI2000 will happen via the
-ethernet connection.
-
-PART 4)
- Making a TCP/IP network connection to the Abatron BDI2000:
-
-Telnet to the Abatron BDI2000. Assuming that all of the
-networking info was loaded via RS232 correctly, you will see
-the following (scrolling):
-
-- TARGET: waiting for target Vcc
-- TARGET: waiting for target Vcc
-
-
-PART 5)
- Power up the target Sandpoint:
-If the BDM connections are correct, the following will now appear:
-
-- TARGET: waiting for target Vcc
-- TARGET: waiting for target Vcc
-- TARGET: processing power-up delay
-- TARGET: processing user reset request
-- BDI asserts HRESET
-- Reset JTAG controller passed
-- Bypass check: 0x55 => 0xAA
-- Bypass check: 0x55 => 0xAA
-- JTAG exists check passed
-- Target PVR is 0x00810101
-- COP status is 0x01
-- Check running state passed
-- BDI scans COP freeze command
-- BDI removes HRESET
-- COP status is 0x05
-- Check stopped state passed
-- Check LSRL length passed
-- BDI sets breakpoint at 0xFFF00100
-- BDI resumes program execution
-- Waiting for target stop passed
-- TARGET: Target PVR is 0x00810101
-- TARGET: reseting target passed
-- TARGET: processing target startup ....
-- TARGET: processing target startup passed
-BDI>
-
-
-PART 6)
- Erase the current contents of the flash memory:
-
-BDI>era 0xFFF00000
- Erasing flash at 0xfff00000
- Erasing flash passed
-BDI>era 0xFFF04000
- Erasing flash at 0xfff04000
- Erasing flash passed
-BDI>era 0xFFF06000
- Erasing flash at 0xfff06000
- Erasing flash passed
-BDI>era 0xFFF08000
- Erasing flash at 0xfff08000
- Erasing flash passed
-BDI>era 0xFFF10000
- Erasing flash at 0xfff10000
- Erasing flash passed
-BDI>era 0xFFF20000
- Erasing flash at 0xfff20000
- Erasing flash passed
-
-
-PART 7)
- Program the flash memory with the U-Boot image:
-
-BDI>prog 0xFFF00000 u-boot.bin bin
- Programming u-boot.bin , please wait ....
- Programming flash passed
-
-
-PART 8)
- Connect PC to Sandpoint:
-Using a crossover serial cable, attach the PC serial port to the
-Sandpoint's COM1. Set communications parameters to 8N1 / 9600 baud.
-
-
-PART 9)
- Reset the Unity and begin U-Boot execution:
-
-BDI>reset
-- TARGET: processing user reset request
-- TARGET: Target PVR is 0x00810101
-- TARGET: reseting target passed
-- TARGET: processing target init list ....
-- TARGET: processing target init list passed
-
-BDI>go
-
-Now see output from U-Boot running, sent via serial port:
-
-U-Boot 1.1.4 (Jan 23 2002 - 18:29:19)
-
-CPU: MPC8240 Revision 1.1 at 264 MHz: 16 kB I-Cache 16 kB D-Cache
-Board: Sandpoint 8240 Unity
-DRAM: 64 MB
-FLASH: 2 MB
-PCI: scanning bus0 ...
- bus dev fn venID devID class rev MBAR0 MBAR1 IPIN ILINE
- 00 00 00 1057 0003 060000 13 00000008 00000000 01 00
- 00 0b 00 10ad 0565 060100 10 00000000 00000000 00 00
- 00 0f 00 8086 1229 020000 08 80000000 80000001 01 00
-In: serial
-Out: serial
-Err: serial
-=>
-
-
-PART 10)
- Set and save any required environmental variables, examples of some:
-
-=> setenv ethaddr 00:03:47:97:D0:79
-=> setenv bootfile your_qnx_image_here
-=> setenv hostname sandpointX
-=> setenv netmask 255.255.255.0
-=> setenv ipaddr 192.168.0.11
-=> setenv serverip 192.168.0.10
-=> setenv gatewayip=192.168.0.1
-=> saveenv
-Saving Environment to Flash...
-Un-Protected 1 sectors
-Erasing Flash...
- done
-Erased 1 sectors
-Writing to Flash... done
-Protected 1 sectors
-=>
-
-**** Example environment: ****
-
-=> printenv
-baudrate=9600
-bootfile=telemetry
-hostname=sp1
-ethaddr=00:03:47:97:E4:6B
-load=tftp 100000 u-boot.bin
-update=protect off all;era FFF00000 FFF3FFFF;cp.b 100000 FFF00000 ${filesize};saveenv
-filesize=1f304
-gatewayip=145.17.228.1
-netmask=255.255.255.0
-ipaddr=145.17.228.42
-serverip=145.17.242.46
-stdin=serial
-stdout=serial
-stderr=serial
-
-Environment size: 332/8188 bytes
-=>
-
-here's some text useful stuff for cut-n-paste:
-setenv hostname sandpoint1
-setenv netmask 255.255.255.0
-setenv ipaddr 145.17.228.81
-setenv serverip 145.17.242.46
-setenv gatewayip 145.17.228.1
-saveenv
-
-PART 11)
- Test U-Boot by tftp'ing new U-Boot, overwriting current:
-
-=> protect off all
-Un-Protect Flash Bank # 1
-=> tftp 100000 u-boot.bin
-eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
-ARP broadcast 1
-TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
- gateway 145.17.228.1
-Filename 'u-boot.bin'.
-Load address: 0x100000
-Loading: #########################
-done
-Bytes transferred = 127628 (1f28c hex)
-=> era all
-Erase Flash Bank # 1
- done
-Erase Flash Bank # 2 - missing
-=> cp.b 0x100000 FFF00000 1f28c
-Copy to Flash... done
-=> saveenv
-Saving Environment to Flash...
-Un-Protected 1 sectors
-Erasing Flash...
- done
-Erased 1 sectors
-Writing to Flash... done
-Protected 1 sectors
-=> reset
-
-You can put these commands into some environment variables;
-
-=> setenv load tftp 100000 u-boot.bin
-=> setenv update protect off all\;era FFF00000 FFF3FFFF\;cp.b 100000 FFF00000 \${filesize}\;saveenv
-=> saveenv
-
-Then you just have to type "run load" then "run update"
-
-=> run load
-eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
-ARP broadcast 1
-TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
- gateway 145.17.228.1
-Filename 'u-boot.bin'.
-Load address: 0x100000
-Loading: #########################
-done
-Bytes transferred = 127748 (1f304 hex)
-=> run update
-Un-Protect Flash Bank # 1
-Un-Protect Flash Bank # 2
-Erase Flash from 0xfff00000 to 0xfff3ffff
- done
-Erased 7 sectors
-Copy to Flash... done
-Saving Environment to Flash...
-Un-Protected 1 sectors
-Erasing Flash...
- done
-Erased 1 sectors
-Writing to Flash... done
-Protected 1 sectors
-=>
-
-
-PART 12)
- Load OS image (ELF format) via U-Boot using tftp
-
-
-=> tftp 800000 sandpoint-simple.elf
-eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
-ARP broadcast 1
-TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
- gateway 145.17.228.1
-Filename 'sandpoint-simple.elf'.
-Load address: 0x800000
-Loading: #################################################################
- #################################################################
- #################################################################
- ########################
-done
-Bytes transferred = 1120284 (11181c hex)
-==>
-
-PART 13)
- Begin OS image execution: (note that unless you have the
-serial parameters of your OS image set to 9600 (i.e. same as
-the U-Boot binary) you will get garbage here until you change
-the serial communications speed.
-
-=> bootelf 800000
-Loading @ 0x001f0100 (1120028 bytes)
-## Starting application at 0x001f1d28 ...
-Replace init_hwinfo() with a board specific version
-
-Loading QNX6....
-
-Header size=0x0000009c, Total Size=0x000005c0, #Cpu=1, Type=1
-<...loader and kernel messages snipped...>
-
-Welcome to Neutrino on the Sandpoint
-#
-
-
-other information:
-
-CVS Retrieval Notes:
-
-U-Boot's SourceForge CVS repository can be checked out
-through anonymous (pserver) CVS with the following
-instruction set. The module you wish to check out must
-be specified as the modulename. When prompted for a
-password for anonymous, simply press the Enter key.
-
-cvs -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot login
-
-cvs -z6 -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot co -P u-boot
diff --git a/doc/README.amigaone b/doc/README.amigaone
deleted file mode 100644
index 9975977..0000000
--- a/doc/README.amigaone
+++ /dev/null
@@ -1,12 +0,0 @@
-AmigaOne U-Boot and the SciTech emulator
-
-The directory board/MAI/bios_emulator contains the source code
-of the SciTech x86 emulator. This emulator is normally available
-under a BSD license. However, SciTech kindly gave us permission
-to use their emulator in PPCBoot for the AmigaOne. It's available
-in this form only under GPL.
-
-Thanks to Kendall Bennett and the rest of the team at SciTech.
-See http://www.scitechsoft.com for their web site
-
-The GPL license can be found at http://www.gnu.org/licenses/gpl.html
diff --git a/doc/README.p4080ds b/doc/README.p4080ds
deleted file mode 100644
index 3ed59a8..0000000
--- a/doc/README.p4080ds
+++ /dev/null
@@ -1,32 +0,0 @@
-Overview
---------
-The P4080DS is a Freescale reference board that hosts the eight-core P4080 SOC.
-
-SerDes hwconfig configuration
------------------------------
-The P4080 RCW includes three sets of bits the specify which SerDes lanes
-should be powered down: SRDS_LPD_B1 (for bank one), SRDS_LPD_B2 (for bank two),
-and SRDS_LPD_B3 (for bank three). Each of these contains four bits, one for
-each lane in the bank. SerDes Erratum SERDES8 requires that SRDS_LPD_B2 and
-SRDS_LPD_B3 be set to 0b1111. This forces banks two and three to be powered
-down at reset.
-
-To re-enable these banks in U-Boot, two hwconfig are available:
-"fsl_srds_lpd_b2" and "fsl_srds_lpd_b3". The value passed via fsl_srds_lpd_b2
-is written into SRDS_LPD_B2, and the value passed via fsl_srds_lpd_b3 is into
-SRDS_LPD_B3. Each bit represents one of each bank, and a value of '1'
-indicates that the lane should be powered down.
-
-For example, to indicate that both SerDes banks 2 and 3 are powered down, add
-the following to hwconfig:
-
- serdes:fsl_srds_lpd_b2=0xf,fsl_srds_lpd_b3=0xf
-
-The "0xf" is a mask that corresponds to the 4 lanes A-D. The most significant
-bit corresponds to lane A. To indicate that just lane A of bank 3 is to be
-powered down, use:
-
- serdes:fsl_srds_lpd_b3=8
-
-These options should be specified only if U-Boot does not automatically power
-on the correct lanes.
diff --git a/doc/README.qemu_mips b/doc/README.qemu_mips
deleted file mode 100644
index e6a3855..0000000
--- a/doc/README.qemu_mips
+++ /dev/null
@@ -1,164 +0,0 @@
-
-Notes for the Qemu MIPS port
-
-I) Example usage:
-
-# ln -s u-boot.bin mips_bios.bin
-start it:
-qemu-system-mips -L . /dev/null -nographic
-
-or
-
-if you use a qemu version after commit 4224
-
-create image:
-# dd of=flash bs=1k count=4k if=/dev/zero
-# dd of=flash bs=1k conv=notrunc if=u-boot.bin
-start it:
-# qemu-system-mips -M mips -pflash flash -monitor null -nographic
-
-2) Download kernel + initrd
-
-On ftp://ftp.denx.de/pub/contrib/Jean-Christophe_Plagniol-Villard/qemu_mips/
-you can downland
-
-#config to build the kernel
-qemu_mips_defconfig
-#patch to fix mips interrupt init on 2.6.24.y kernel
-qemu_mips_kernel.patch
-initrd.gz
-vmlinux
-vmlinux.bin
-System.map
-
-4) Generate uImage
-
-# tools/mkimage -A mips -O linux -T kernel -C gzip -a 0x80010000 -e 0x80245650 -n "Linux 2.6.24.y" -d vmlinux.bin.gz uImage
-
-5) Copy uImage to Flash
-# dd if=uImage bs=1k conv=notrunc seek=224 of=flash
-
-6) Generate Ide Disk
-
-# dd of=ide bs=1k cout=100k if=/dev/zero
-
-# sfdisk -C 261 -d ide
-# partition table of ide
-unit: sectors
-
- ide1 : start= 63, size= 32067, Id=83
- ide2 : start= 32130, size= 32130, Id=83
- ide3 : start= 64260, size= 4128705, Id=83
- ide4 : start= 0, size= 0, Id= 0
-
-7) Copy to ide
-
-# dd if=uImage bs=512 conv=notrunc seek=63 of=ide
-
-8) Generate ext2 on part 2 on Copy uImage and initrd.gz
-
-# Attached as loop device ide offset = 32130 * 512
-# losetup -o 16450560 -f ide
-# Format as ext2 ( arg2 : nb blocks)
-# mke2fs /dev/loop0 16065
-# losetup -d /dev/loop0
-# Mount and copy uImage and initrd.gz to it
-# mount -o loop,offset=16450560 -t ext2 ide /mnt
-# mkdir /mnt/boot
-# cp {initrd.gz,uImage} /mnt/boot/
-# Umount it
-# umount /mnt
-
-9) Set Environment
-
-setenv rd_start 0x80800000
-setenv rd_size 2663940
-setenv kernel BFC38000
-setenv oad_addr 80500000
-setenv load_addr2 80F00000
-setenv kernel_flash BFC38000
-setenv load_addr_hello 80200000
-setenv bootargs 'root=/dev/ram0 init=/bin/sh'
-setenv load_rd_ext2 'ide res; ext2load ide 0:2 ${rd_start} /boot/initrd.gz'
-setenv load_rd_tftp 'tftp ${rd_start} /initrd.gz'
-setenv load_kernel_hda 'ide res; diskboot ${load_addr} 0:2'
-setenv load_kernel_ext2 'ide res; ext2load ide 0:2 ${load_addr} /boot/uImage'
-setenv load_kernel_tftp 'tftp ${load_addr} /qemu_mips/uImage'
-setenv boot_ext2_ext2 'run load_rd_ext2; run load_kernel_ext2; run addmisc; bootm ${load_addr}'
-setenv boot_ext2_flash 'run load_rd_ext2; run addmisc; bootm ${kernel_flash}'
-setenv boot_ext2_hda 'run load_rd_ext2; run load_kernel_hda; run addmisc; bootm ${load_addr}'
-setenv boot_ext2_tftp 'run load_rd_ext2; run load_kernel_tftp; run addmisc; bootm ${load_addr}'
-setenv boot_tftp_hda 'run load_rd_tftp; run load_kernel_hda; run addmisc; bootm ${load_addr}'
-setenv boot_tftp_ext2 'run load_rd_tftp; run load_kernel_ext2; run addmisc; bootm ${load_addr}'
-setenv boot_tftp_flash 'run load_rd_tftp; run addmisc; bootm ${kernel_flash}'
-setenv boot_tftp_tftp 'run load_rd_tftp; run load_kernel_tftp; run addmisc; bootm ${load_addr}'
-setenv load_hello_tftp 'tftp ${load_addr_hello} /examples/hello_world.bin'
-setenv go_tftp 'run load_hello_tftp; go ${load_addr_hello}'
-setenv addmisc 'setenv bootargs ${bootargs} console=ttyS0,${baudrate} rd_start=${rd_start} rd_size=${rd_size} ethaddr=${ethaddr}'
-setenv bootcmd 'run boot_tftp_flash'
-
-10) Now you can boot from flash, ide, ide+ext2 and tfp
-
-# qemu-system-mips -M mips -pflash flash -monitor null -nographic -net nic -net user -tftp `pwd` -hda ide
-
-II) How to debug U-Boot
-
-In order to debug U-Boot you need to start qemu with gdb server support (-s)
-and waiting the connection to start the CPU (-S)
-
-# qemu-system-mips -S -s -M mips -pflash flash -monitor null -nographic -net nic -net user -tftp `pwd` -hda ide
-
-in an other console you start gdb
-
-1) Debugging of U-Boot Before Relocation
-
-Before relocation, the addresses in the ELF file can be used without any problems
-by connecting to the gdb server localhost:1234
-
-# mipsel-unknown-linux-gnu-gdb u-boot
-GNU gdb 6.6
-Copyright (C) 2006 Free Software Foundation, Inc.
-GDB is free software, covered by the GNU General Public License, and you are
-welcome to change it and/or distribute copies of it under certain conditions.
-Type "show copying" to see the conditions.
-There is absolutely no warranty for GDB. Type "show warranty" for details.
-This GDB was configured as "--host=i486-linux-gnu --target=mipsel-unknown-linux-gnu"...
-(gdb) target remote localhost:1234
-Remote debugging using localhost:1234
-_start () at start.S:64
-64 RVECENT(reset,0) /* U-boot entry point */
-Current language: auto; currently asm
-(gdb) b board.c:289
-Breakpoint 1 at 0xbfc00cc8: file board.c, line 289.
-(gdb) c
-Continuing.
-
-Breakpoint 1, board_init_f (bootflag=<value optimized out>) at board.c:290
-290 relocate_code (addr_sp, id, addr);
-Current language: auto; currently c
-(gdb) p/x addr
-$1 = 0x87fa0000
-
-2) Debugging of U-Boot After Relocation
-
-For debugging U-Boot after relocation we need to know the address to which
-U-Boot relocates itself to 0x87fa0000 by default.
-And replace the symbol table to this offset.
-
-(gdb) symbol-file
-Discard symbol table from `/private/u-boot-arm/u-boot'? (y or n) y
-Error in re-setting breakpoint 1:
-No symbol table is loaded. Use the "file" command.
-No symbol file now.
-(gdb) add-symbol-file u-boot 0x87fa0000
-add symbol table from file "u-boot" at
- .text_addr = 0x87fa0000
-(y or n) y
-Reading symbols from /private/u-boot-arm/u-boot...done.
-Breakpoint 1 at 0x87fa0cc8: file board.c, line 289.
-(gdb) c
-Continuing.
-
-Program received signal SIGINT, Interrupt.
-0xffffffff87fa0de4 in udelay (usec=<value optimized out>) at time.c:78
-78 while ((tmo - read_c0_count()) < 0x7fffffff)
--
1.7.7.6
4
4

[U-Boot] [PATCH v4] MX28: extend print_cpuinfo() to use chip information
by Otavio Salvador 29 Jul '12
by Otavio Salvador 29 Jul '12
29 Jul '12
The information now is gathered from HW_DIGCTL_CHIPID register and
includes the chip modem and revision on the output.
Signed-off-by: Otavio Salvador <otavio(a)ossystems.com.br>
---
Changes in v2:
- use ?? for unidentified revision and cpu type
- use numeric revisions
Changes in v3:
- drop mx23 data as it will be posted in a later patch
- fix info order (first rev, then clock)
Changes in v4:
- change short-description prefix to MX28
arch/arm/cpu/arm926ejs/mx28/mx28.c | 38 ++++++++++++++++++++++++--
arch/arm/include/asm/arch-mx28/regs-digctl.h | 4 +++
2 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/arch/arm/cpu/arm926ejs/mx28/mx28.c b/arch/arm/cpu/arm926ejs/mx28/mx28.c
index ff25772..cf7a50f 100644
--- a/arch/arm/cpu/arm926ejs/mx28/mx28.c
+++ b/arch/arm/cpu/arm926ejs/mx28/mx28.c
@@ -188,13 +188,47 @@ int arch_cpu_init(void)
}
#if defined(CONFIG_DISPLAY_CPUINFO)
+static const char *get_cpu_type(void)
+{
+ struct mx28_digctl_regs *digctl_regs =
+ (struct mx28_digctl_regs *)MXS_DIGCTL_BASE;
+
+ switch (readl(&digctl_regs->hw_digctl_chipid) & HW_DIGCTL_CHIPID_MASK) {
+ case HW_DIGCTL_CHIPID_MX28:
+ return "28";
+ default:
+ return "??";
+ }
+}
+
+static const char *get_cpu_rev(void)
+{
+ struct mx28_digctl_regs *digctl_regs =
+ (struct mx28_digctl_regs *)MXS_DIGCTL_BASE;
+ uint8_t rev = readl(&digctl_regs->hw_digctl_chipid) & 0x000000FF;
+
+ switch (readl(&digctl_regs->hw_digctl_chipid) & HW_DIGCTL_CHIPID_MASK) {
+ case HW_DIGCTL_CHIPID_MX28:
+ switch (rev) {
+ case 0x1:
+ return "1.2";
+ default:
+ return "??";
+ }
+ default:
+ return "??";
+ }
+}
+
int print_cpuinfo(void)
{
struct mx28_spl_data *data = (struct mx28_spl_data *)
((CONFIG_SYS_TEXT_BASE - sizeof(struct mx28_spl_data)) & ~0xf);
- printf("Freescale i.MX28 family at %d MHz\n",
- mxc_get_clock(MXC_ARM_CLK) / 1000000);
+ printf("CPU: Freescale i.MX%s rev%s at %d MHz\n",
+ get_cpu_type(),
+ get_cpu_rev(),
+ mxc_get_clock(MXC_ARM_CLK) / 1000000);
printf("BOOT: %s\n", mx28_boot_modes[data->boot_mode_idx].mode);
return 0;
}
diff --git a/arch/arm/include/asm/arch-mx28/regs-digctl.h b/arch/arm/include/asm/arch-mx28/regs-digctl.h
index 9a63594..247da6e 100644
--- a/arch/arm/include/asm/arch-mx28/regs-digctl.h
+++ b/arch/arm/include/asm/arch-mx28/regs-digctl.h
@@ -152,4 +152,8 @@ struct mx28_digctl_regs {
};
#endif
+/* Product code identification */
+#define HW_DIGCTL_CHIPID_MASK (0xffff << 16)
+#define HW_DIGCTL_CHIPID_MX28 (0x2800 << 16)
+
#endif /* __MX28_REGS_DIGCTL_H__ */
--
1.7.10.4
2
3
Dear Avner Flesch,
In message <4A6F885E2BDE12468EC281BA9F1CB58F0906A782(a)DBXPRD0610MB359.eurprd06.prod.outlook.com> you wrote:
>
> Thank you very much.
> Unfortunately , the only register file I have is for mpc8xx, I'll appreciate it very much
> if you will also attach the reg8313e.def you have
It appears you have only the BDI firmware for the MPC8xx family of
processors then. You will have to get "gdbcop21.zip" (BDI2000) resp.
"gdbcop30.zip" (BDI3000) from Abatron (current version is v1.33 of
February 1, 2012).
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd(a)denx.de
######## This message was made from 100% recycled electrons. ########
1
0

Re: [U-Boot] [U-Boot-DM] [PATCH 1/1] early_malloc() introduced to ARM architecture
by Marek Vasut 29 Jul '12
by Marek Vasut 29 Jul '12
29 Jul '12
Dear Tomas Hlavacek,
I think we should still mark early patches as RFC.
> early_malloc() introduced to ARM architecture (it is a proof of concept).
> GD datastructure extended for holding early-heap.
> mem_malloc_init() in board_init_r() has been put up by few lines.
I take it was sent by the gmail webIF ? Like WD said, not a good idea, git send-
email is really the way. it's actually simple, we can discuss that tomorrow.
> Signed-off-by: Tomas Hlavacek <tmshlvck(a)gmail.com>
> ---
> arch/arm/include/asm/global_data.h | 4 +-
> arch/arm/lib/board.c | 32 +++++++++--
> common/Makefile | 1 +
> common/earlymalloc.c | 102
> ++++++++++++++++++++++++++++++++++++
> include/common.h | 1 +
> include/earlymalloc.h | 84 +++++++++++++++++++++++++++++
> lib/asm-offsets.c | 2 +-
> 7 files changed, 220 insertions(+), 6 deletions(-)
> create mode 100644 common/earlymalloc.c
> create mode 100644 include/earlymalloc.h
>
> diff --git a/arch/arm/include/asm/global_data.h
> b/arch/arm/include/asm/global_data.h
> index c3ff789..215212a 100644
> --- a/arch/arm/include/asm/global_data.h
> +++ b/arch/arm/include/asm/global_data.h
> @@ -30,7 +30,8 @@
> * global variables during system initialization (until we have set
> * up the memory controller so that we can use RAM).
> *
> - * Keep it *SMALL* and remember to set GENERATED_GBL_DATA_SIZE >
> sizeof(gd_t)
> + * Keep it *SMALL* and remember to set GENERATED_GBL_DATA_SIZE >
> + * sizeof(gd_t) + EARLY_HEAP_SIZE
> */
>
> typedef struct global_data {
> @@ -86,6 +87,7 @@ typedef struct global_data {
> #endif
> } gd_t;
>
> +
Ok well ... you know, this will need cleanup. But for RFC, this is OK.
> /*
> * Global Data Flags
> */
> diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
> index 500e216..81ee27b 100644
> --- a/arch/arm/lib/board.c
> +++ b/arch/arm/lib/board.c
> @@ -52,6 +52,7 @@
> #include <fdtdec.h>
> #include <post.h>
> #include <logbuff.h>
> +#include <earlymalloc.h>
Do we need early_malloc.h at all? malloc.h won't cut it?
> #ifdef CONFIG_BITBANGMII
> #include <miiphy.h>
> @@ -273,6 +274,9 @@ void board_init_f(ulong bootflag)
>
> memset((void *)gd, 0, sizeof(gd_t));
>
> + early_malloc_init();
So this basically flips a bit, do it the other way and you don't need it.
> + debug("Early malloc initialized.\n");
> +
> gd->mon_len = _bss_end_ofs;
> #ifdef CONFIG_OF_EMBED
> /* Get a pointer to the FDT */
> @@ -452,12 +469,23 @@ void board_init_r(gd_t *id, ulong dest_addr)
> ulong flash_size;
> #endif
>
> + gd_t *old_gd = gd;
> +
> gd = id;
>
> gd->flags |= GD_FLG_RELOC; /* tell others: relocation done */
>
> monitor_flash_len = _end_ofs;
>
> + /* The Malloc area is immediately below the monitor copy in DRAM */
> + malloc_start = dest_addr - TOTAL_MALLOC_LEN;
> + mem_malloc_init (malloc_start, TOTAL_MALLOC_LEN);
> +
> + // TODO: DM Cores relocation goes here.
> +
> + /* Disable early mallocator (effectively switch calls to the real
> malloc). */
> + early_malloc_disab((gde_t *)old_gd);
> +
> /* Enable caches */
> enable_caches();
>
> @@ -485,10 +513,6 @@ void board_init_r(gd_t *id, ulong dest_addr)
> post_output_backlog();
> #endif
>
> - /* The Malloc area is immediately below the monitor copy in DRAM */
> - malloc_start = dest_addr - TOTAL_MALLOC_LEN;
> - mem_malloc_init (malloc_start, TOTAL_MALLOC_LEN);
> -
Can mem_malloc_init() not flip on the early_malloc bit for you here?
> #if !defined(CONFIG_SYS_NO_FLASH)
> puts("Flash: ");
>
[...]
> +
> +#include <asm/global_data.h> /* for gd_t and gd */
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +static inline size_t early_malloc_align_up(phys_addr_t addr)
> +{
> + if(!EARLY_MALLOC_IS_ALIGNED(addr)) {
> + addr = EARLY_MALLOC_ALIGN_DOWN(addr);
> + addr += EARLY_MALLOC_ALIGN_MULTIPLE;
> + }
> +
> + return addr;
> +}
> +
> +void early_malloc_init(void)
> +{
> + ((gde_t *)gd)->em.flags = EARLY_MALLOC_INIT_FLAGS;
> + ((gde_t *)gd)->em.size = 0;
> +}
> +
> +
> +int early_malloc_isactive(void)
> +{
> + /* The early_malloc() is inactive after relocation or when the
> + flag says so. */
> + return ((EARLY_MALLOC_IS_ACTIVE(((gde_t *)gd)->em.flags)) ||
> + (gd->flags & GD_FLG_RELOC));
So ... gd->flags will be enough for the early malloc, you don't need any further
flags
> +}
> +
> +int early_free_isactive(void)
> +{
> + /* The early free is inactive when the flag says so. */
> + return (gd->flags & GD_FLG_RELOC);
> +}
> +
> +
> +void *early_malloc(size_t size)
No, we want this wrapped into malloc() call, so the drivers can be inited
indifferent of time.
> +{
> + em_spc_t *em = &((gde_t *)gd)->em;
> +
> + /* Check flag active. */
> + if(!EARLY_MALLOC_IS_ACTIVE(em->flags))
> + return NULL;
Indent with tab please ... tools/checkpatch.pl will help here.
> + /* Choose block beginning address. */
> + phys_addr_t addr =
> early_malloc_align_up(((phys_addr_t)&em->heap)+em->size);
> +
> + /* Check free space. */
> + if(addr + size >= ((phys_addr_t)(&(em->heap))) + EARLY_HEAP_SIZE)
> + return NULL;
> +
> + /* Calculate next free space. */
> + em->size+=early_malloc_align_up(size);
> +
> + return (void *)addr;
> +}
> +
> +
> +int early_malloc_isaddress(void *addr)
> +{
> + if((((phys_addr_t)addr) >= (phys_addr_t)(&(((gde_t *)gd)->em.heap)))&&
> + (((phys_addr_t)addr) < ((phys_addr_t)(&(((gde_t
> *)gd)->em.heap)))+EARLY_HEAP_SIZE))
See container_of() ... and you can really split the checks.
> + return 1;
> + else
> + return 0;
> +}
> +
> +void early_free(void *addr)
> +{
> + /* NOOP - Early malloc does not support free(). */
This goes to free() call ...
> +}
> +
> +void early_malloc_disab(gde_t *gd)
> +{
> + EARLY_MALLOC_DISABLE(gd->em.flags);
> +}
> diff --git a/include/common.h b/include/common.h
> index a2c6b27..486925f 100644
> --- a/include/common.h
> +++ b/include/common.h
> @@ -171,6 +171,7 @@ typedef void (interrupt_handler_t)(void *);
>
> #include <asm/u-boot.h> /* boot information for Linux kernel */
> #include <asm/global_data.h> /* global data used for startup functions
> */
> +#include <earlymalloc.h> /* Early mallocator data structure that extends
> global data. */
Drop this altogether.
[...]
> +
> +typedef struct early_malloc_spc {
> + char flags;
> + short size;
> + char heap[EARLY_HEAP_SIZE];
> +} em_spc_t;
Drop the typedef please.
> +/*
> + * Platform data extended for the early mallocator.
> + * This structure holds the original global data (and it starts at
> + * the very same address), but it is longer because it holds
> + * early malloc space in the end.
> + * This is a trick with data structures: This datastructure is
> + * pre-allocated by lib/asm-offsets.c but this structure is not to
> + * be relocated as whole because struct global_data is used during
> + * normal operations as well as during relocation phase.
> + */
> +typedef struct global_data_extended {
I'm not convinced about the typedef here either ... others?
> + gd_t gd; /* Original Global Data
> structure */
> + em_spc_t em; /* Early-malloc space.
> */
> +} gde_t;
> +
> +/* Initial flags block. Active flag set. */
> +#define EARLY_MALLOC_INIT_FLAGS 0x80
> +
> +/* Alignment size - number of bytes to align to it's mupliple. */
> +#define EARLY_MALLOC_ALIGN_MULTIPLE (sizeof(phys_addr_t))
> +#define EARLY_MALLOC_ALIGN_MASK (EARLY_MALLOC_ALIGN_MULTIPLE-1)
> +
> +
> +#define EARLY_MALLOC_ALIGN_DOWN(addr) ((phys_addr_t)addr &
> (~EARLY_MALLOC_ALIGN_MASK))
> +#define EARLY_MALLOC_IS_ALIGNED(addr) (!(((phys_addr_t)addr) &
> EARLY_MALLOC_ALIGN_MASK))
> +#define EARLY_MALLOC_FLAG_ACTIVE 0x80
> +#define EARLY_MALLOC_IS_ACTIVE(flags) (flags & EARLY_MALLOC_FLAG_ACTIVE)
> +#define EARLY_MALLOC_DISABLE(flags)
> (flags=(flags&(~EARLY_MALLOC_FLAG_ACTIVE)))
You won't need this whole file I think ...
> +
> +
> +void early_malloc_init(void);
> +int early_malloc_isactive(void);
> +int early_free_isactive(void);
> +void *early_malloc(size_t size);
> +void early_free(void *addr);
> +void early_malloc_disab(gde_t *gd);
> +int early_malloc_isaddress(void *);
> +
> +#endif
> diff --git a/lib/asm-offsets.c b/lib/asm-offsets.c
> index c88f5d4..6e39826 100644
> --- a/lib/asm-offsets.c
> +++ b/lib/asm-offsets.c
> @@ -23,7 +23,7 @@ int main(void)
> {
> /* Round up to make sure size gives nice stack alignment */
> DEFINE(GENERATED_GBL_DATA_SIZE,
> - (sizeof(struct global_data) + 15) & ~15);
> + (sizeof(struct global_data_extended) + 15) & ~15);
And if you adjusted the global data to be the "container of both, you won't need
this here either.
>
> DEFINE(GENERATED_BD_INFO_SIZE,
> (sizeof(struct bd_info) + 15) & ~15);
2
2
Hi,
I have just tried the latest U-boot and I am getting the following
when trying to load today's linux-next:
U-Boot 2012.07-rc3 (Jul 27 2012 - 14:45:19)
Freescale i.MX28 family at 454 MHz
BOOT: SSP SD/MMC #0, 3V3
I2C: ready
DRAM: 128 MiB
MMC: MXS MMC: 0
In: serial
Out: serial
Err: serial
Net: FEC0, FEC1
Hit any key to stop autoboot: 0
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 10.29.244.22
Using FEC0 device
TFTP from server 10.29.240.146; our IP address is 10.29.244.22
Filename 'uImage'.
Load address: 0x42000000
Loading: ## Warning: gatewayip needed but not set
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
####
done
Bytes transferred = 3343968 (330660 hex)
## Booting kernel from Legacy Image at 42000000 ...
Image Name: Linux-3.5.0-next-20120727+
Created: 2012-07-27 17:27:30 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3343904 Bytes = 3.2 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
Loading Kernel Image ... data abort
pc : [<47fa74f0>] lr : [<47f86f44>]
sp : 47b80ca8 ip : 80338620 fp : 00000000
r10: 42330660 r9 : 42000040 r8 : 47b80f68
r7 : 42000000 r6 : 00000000 r5 : 47b80d1c r4 : 00000000
r3 : ffffffff r2 : 0033061f r1 : 42330660 r0 : 80008000
Flags: nzCv IRQs off FIQs off Mode SVC_32
Resetting CPU ...
resetting ...
If I use the latest stable kernel I get:
U-Boot 2012.07-rc3 (Jul 27 2012 - 14:45:19)
Freescale i.MX28 family at 454 MHz
BOOT: SSP SD/MMC #0, 3V3
I2C: ready
DRAM: 128 MiB
MMC: MXS MMC: 0
In: serial
Out: serial
Err: serial
Net: FEC0, FEC1
Hit any key to stop autoboot: 0
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 10.29.244.22
Using FEC0 device
TFTP from server 10.29.240.146; our IP address is 10.29.244.22
Filename 'uImage'.
Load address: 0x42000000
Loading: ## Warning: gatewayip needed but not set
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
###################################
done
Bytes transferred = 3170352 (306030 hex)
## Booting kernel from Legacy Image at 42000000 ...
Image Name: Linux-3.4.6
Created: 2012-07-26 23:30:59 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3170288 Bytes = 3 MiB
Load Address: 90008000
Entry Point: 90008000
Verifying Checksum ... OK
Loading Kernel Image ...
Is there any patch missing or any ideas?
Thanks,
Fabio Estevam
3
10

[U-Boot] [PATCH 1/2] spi: microblaze: Adds driver for Xilinx SPI controller
by Stephan Linz 28 Jul '12
by Stephan Linz 28 Jul '12
28 Jul '12
This is an improved version of the driver patch original
submitted by Graeme Smecher <graeme.smecher(a)mail.mcgill.ca>
The changes are:
- remove hard coded Xilinx BSP defines (XPAR_SPI_*) and
use CONFIG_SYS_SPI_BASE from config.h instead
- add extensive register struct definitions
- remove offset calculation for register access and
use the new register struct instead
- move default SPI controller configuration from
spi_setup_slave() to spi_claim_bus()
- add spi_set_speed()
- insert SPI controller deactivation in spi_release_bus()
- protect while loops in spi_xfer() with counter / timeouts
- support SPI mode flags: LSB_FIRST, CPHA, CPOL, LOOP
Come from:
http://patchwork.ozlabs.org/patch/71797/
Applied with:
git apply -v --whitespace=fix --reject \
U-Boot-Adds-driver-for-Xilinx-xps_spi-SPI-controller.patch
Fix manual:
drivers/spi/Makefile
Signed-off-by: Stephan Linz <linz(a)li-pro.net>
---
drivers/spi/Makefile | 1 +
drivers/spi/xilinx_spi.c | 210 ++++++++++++++++++++++++++++++++++++++++++++++
drivers/spi/xilinx_spi.h | 135 +++++++++++++++++++++++++++++
3 files changed, 346 insertions(+), 0 deletions(-)
create mode 100644 drivers/spi/xilinx_spi.c
create mode 100644 drivers/spi/xilinx_spi.h
diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
index c967d87..3ae38e5 100644
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
@@ -44,6 +44,7 @@ COBJS-$(CONFIG_SOFT_SPI) += soft_spi.o
COBJS-$(CONFIG_SH_SPI) += sh_spi.o
COBJS-$(CONFIG_FSL_ESPI) += fsl_espi.o
COBJS-$(CONFIG_TEGRA2_SPI) += tegra2_spi.o
+COBJS-$(CONFIG_XILINX_SPI) += xilinx_spi.o
COBJS := $(COBJS-y)
SRCS := $(COBJS:.o=.c)
diff --git a/drivers/spi/xilinx_spi.c b/drivers/spi/xilinx_spi.c
new file mode 100644
index 0000000..4d83bd3
--- /dev/null
+++ b/drivers/spi/xilinx_spi.c
@@ -0,0 +1,210 @@
+/*
+ * Xilinx SPI driver
+ *
+ * supports 8 bit SPI transfers only, with or w/o FIFO
+ *
+ * based on bfin_spi.c, by way of altera_spi.c
+ * Copyright (c) 2005-2008 Analog Devices Inc.
+ * Copyright (c) 2010 Thomas Chou <thomas(a)wytron.com.tw>
+ * Copyright (c) 2010 Graeme Smecher <graeme.smecher(a)mail.mcgill.ca>
+ * Copyright (c) 2012 Stephan Linz <linz(a)li-pro.net>
+ *
+ * Licensed under the GPL-2 or later.
+ *
+ * [0]: http://www.xilinx.com/support/documentation
+ *
+ * [S]: [0]/ip_documentation/xps_spi.pdf
+ * [0]/ip_documentation/axi_spi_ds742.pdf
+ */
+#include <config.h>
+#include <common.h>
+#include <malloc.h>
+#include <spi.h>
+
+#include "xilinx_spi.h"
+
+#ifndef CONFIG_SYS_XILINX_SPI_LIST
+#define CONFIG_SYS_XILINX_SPI_LIST { CONFIG_SYS_SPI_BASE }
+#endif
+
+#ifndef CONFIG_XILINX_SPI_IDLE_VAL
+#define CONFIG_XILINX_SPI_IDLE_VAL 0xff
+#endif
+
+#define XILSPI_SPICR_DFLT_ON (SPICR_MANUAL_SS | \
+ SPICR_MASTER_MODE | \
+ SPICR_SPE)
+
+#define XILSPI_SPICR_DFLT_OFF (SPICR_MASTER_INHIBIT | \
+ SPICR_MANUAL_SS)
+
+#define XILSPI_MAX_XFER_BITS 8
+
+static unsigned long xilinx_spi_base_list[] = CONFIG_SYS_XILINX_SPI_LIST;
+
+__attribute__((weak))
+int spi_cs_is_valid(unsigned int bus, unsigned int cs)
+{
+ return bus < ARRAY_SIZE(xilinx_spi_base_list) && cs < 32;
+}
+
+__attribute__((weak))
+void spi_cs_activate(struct spi_slave *slave)
+{
+ struct xilinx_spi_slave *xilspi = to_xilinx_spi_slave(slave);
+ writel(SPISSR_ACT(slave->cs), &xilspi->regs->spissr);
+}
+
+__attribute__((weak))
+void spi_cs_deactivate(struct spi_slave *slave)
+{
+ struct xilinx_spi_slave *xilspi = to_xilinx_spi_slave(slave);
+ writel(SPISSR_OFF, &xilspi->regs->spissr);
+}
+
+void spi_init(void)
+{
+ /* do nothing */
+}
+
+void spi_set_speed(struct spi_slave *slave, uint hz)
+{
+ /* xilinx spi core does not support programmable speed */
+}
+
+struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
+ unsigned int max_hz, unsigned int mode)
+{
+ struct xilinx_spi_slave *xilspi;
+ struct xilinx_spi_reg *regs;
+
+ if (!spi_cs_is_valid(bus, cs)) {
+ printf("XILSPI error: %s: unsupported bus %d / cs %d\n",
+ __func__, bus, cs);
+ return NULL;
+ }
+
+ xilspi = malloc(sizeof(*xilspi));
+ if (!xilspi) {
+ printf("XILSPI error: %s: malloc of SPI structure failed\n",
+ __func__);
+ return NULL;
+ }
+ xilspi->slave.bus = bus;
+ xilspi->slave.cs = cs;
+ xilspi->regs = (struct xilinx_spi_reg *)xilinx_spi_base_list[bus];
+ xilspi->freq = max_hz;
+ xilspi->mode = mode;
+ debug("%s: bus:%i cs:%i base:%p mode:%x max_hz:%d\n", __func__,
+ bus, cs, xilspi->regs, xilspi->mode, xilspi->freq);
+
+ return &xilspi->slave;
+}
+
+void spi_free_slave(struct spi_slave *slave)
+{
+ struct xilinx_spi_slave *xilspi = to_xilinx_spi_slave(slave);
+ free(xilspi);
+}
+
+int spi_claim_bus(struct spi_slave *slave)
+{
+ struct xilinx_spi_slave *xilspi = to_xilinx_spi_slave(slave);
+ u32 spicr;
+
+ debug("%s: bus:%i cs:%i\n", __func__, slave->bus, slave->cs);
+ writel(SPISSR_OFF, &xilspi->regs->spissr);
+
+ spicr = XILSPI_SPICR_DFLT_ON;
+ if (xilspi->mode & SPI_LSB_FIRST)
+ spicr |= SPICR_LSB_FIRST;
+ if (xilspi->mode & SPI_CPHA)
+ spicr |= SPICR_CPHA;
+ if (xilspi->mode & SPI_CPOL)
+ spicr |= SPICR_CPOL;
+ if (xilspi->mode & SPI_LOOP)
+ spicr |= SPICR_LOOP;
+
+ writel(spicr, &xilspi->regs->spicr);
+ return 0;
+}
+
+void spi_release_bus(struct spi_slave *slave)
+{
+ struct xilinx_spi_slave *xilspi = to_xilinx_spi_slave(slave);
+
+ debug("%s: bus:%i cs:%i\n", __func__, slave->bus, slave->cs);
+ writel(SPISSR_OFF, &xilspi->regs->spissr);
+ writel(XILSPI_SPICR_DFLT_OFF, &xilspi->regs->spicr);
+}
+
+int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout,
+ void *din, unsigned long flags)
+{
+ struct xilinx_spi_slave *xilspi = to_xilinx_spi_slave(slave);
+ /* assume spi core configured to do 8 bit transfers */
+ unsigned int bytes = bitlen / XILSPI_MAX_XFER_BITS;
+ const unsigned char *txp = dout;
+ unsigned char *rxp = din;
+ unsigned rxecount = 17; /* max. 16 elements in FIFO, leftover 1 */
+
+ debug("%s: bus:%i cs:%i bitlen:%i bytes:%i flags:%lx\n", __func__,
+ slave->bus, slave->cs, bitlen, bytes, flags);
+ if (bitlen == 0)
+ goto done;
+
+ if (bitlen % XILSPI_MAX_XFER_BITS) {
+ printf("XILSPI warning: %s: Not a multiple of %d bits\n",
+ __func__, XILSPI_MAX_XFER_BITS);
+ flags |= SPI_XFER_END;
+ goto done;
+ }
+
+ /* empty read buffer */
+ while (rxecount && !(readl(&xilspi->regs->spisr) & SPISR_RX_EMPTY)) {
+ readl(&xilspi->regs->spidrr);
+ rxecount--;
+ }
+
+ if (!rxecount) {
+ printf("XILSPI error: %s: Rx buffer not empty\n", __func__);
+ return -1;
+ }
+
+ if (flags & SPI_XFER_BEGIN)
+ spi_cs_activate(slave);
+
+ while (bytes--) {
+ unsigned timeout = /* at least 1usec or greater, leftover 1 */
+ xilspi->freq > XILSPI_MAX_XFER_BITS * 1000000 ? 2 :
+ (XILSPI_MAX_XFER_BITS * 1000000 / xilspi->freq) + 1;
+
+ /* get Tx element from data out buffer and count up */
+ unsigned char d = txp ? *txp++ : CONFIG_XILINX_SPI_IDLE_VAL;
+ debug("%s: tx:%x ", __func__, d);
+
+ /* write out and wait for processing (receive data) */
+ writel(d & SPIDTR_8BIT_MASK, &xilspi->regs->spidtr);
+ while (timeout && readl(&xilspi->regs->spisr)
+ & SPISR_RX_EMPTY) {
+ timeout--;
+ udelay(1);
+ }
+
+ if (!timeout) {
+ printf("XILSPI error: %s: Xfer timeout\n", __func__);
+ return -1;
+ }
+
+ /* read Rx element and push into data in buffer */
+ d = readl(&xilspi->regs->spidrr) & SPIDRR_8BIT_MASK;
+ if (rxp)
+ *rxp++ = d;
+ debug("rx:%x\n", d);
+ }
+ done:
+ if (flags & SPI_XFER_END)
+ spi_cs_deactivate(slave);
+
+ return 0;
+}
diff --git a/drivers/spi/xilinx_spi.h b/drivers/spi/xilinx_spi.h
new file mode 100644
index 0000000..32610d2
--- /dev/null
+++ b/drivers/spi/xilinx_spi.h
@@ -0,0 +1,135 @@
+/*
+ * Xilinx SPI driver
+ *
+ * XPS/AXI bus interface
+ *
+ * based on bfin_spi.c, by way of altera_spi.c
+ * Copyright (c) 2005-2008 Analog Devices Inc.
+ * Copyright (c) 2010 Thomas Chou <thomas(a)wytron.com.tw>
+ * Copyright (c) 2010 Graeme Smecher <graeme.smecher(a)mail.mcgill.ca>
+ * Copyright (c) 2012 Stephan Linz <linz(a)li-pro.net>
+ *
+ * Licensed under the GPL-2 or later.
+ *
+ * [0]: http://www.xilinx.com/support/documentation
+ *
+ * [S]: [0]/ip_documentation/xps_spi.pdf
+ * [0]/ip_documentation/axi_spi_ds742.pdf
+ */
+#ifndef _XILINX_SPI_
+#define _XILINX_SPI_
+
+#include <asm/types.h>
+#include <asm/io.h>
+
+/*
+ * Xilinx SPI Register Definition
+ *
+ * [1]: [0]/ip_documentation/xps_spi.pdf
+ * page 8, Register Descriptions
+ * [2]: [0]/ip_documentation/axi_spi_ds742.pdf
+ * page 7, Register Overview Table
+ */
+struct xilinx_spi_reg {
+ u32 __space0__[7];
+ u32 dgier; /* Device Global Interrupt Enable Register (DGIER) */
+ u32 ipisr; /* IP Interrupt Status Register (IPISR) */
+ u32 __space1__;
+ u32 ipier; /* IP Interrupt Enable Register (IPIER) */
+ u32 __space2__[5];
+ u32 srr; /* Softare Reset Register (SRR) */
+ u32 __space3__[7];
+ u32 spicr; /* SPI Control Register (SPICR) */
+ u32 spisr; /* SPI Status Register (SPISR) */
+ u32 spidtr; /* SPI Data Transmit Register (SPIDTR) */
+ u32 spidrr; /* SPI Data Receive Register (SPIDRR) */
+ u32 spissr; /* SPI Slave Select Register (SPISSR) */
+ u32 spitfor; /* SPI Transmit FIFO Occupancy Register (SPITFOR) */
+ u32 spirfor; /* SPI Receive FIFO Occupancy Register (SPIRFOR) */
+};
+
+/* Device Global Interrupt Enable Register (dgier), [1] p15, [2] p15 */
+#define DGIER_GIE (1 << 31)
+
+/* IP Interrupt Status Register (ipisr), [1] p15, [2] p15 */
+#define IPISR_DRR_NOT_EMPTY (1 << 8)
+#define IPISR_SLAVE_SELECT (1 << 7)
+#define IPISR_TXF_HALF_EMPTY (1 << 6)
+#define IPISR_DRR_OVERRUN (1 << 5)
+#define IPISR_DRR_FULL (1 << 4)
+#define IPISR_DTR_UNDERRUN (1 << 3)
+#define IPISR_DTR_EMPTY (1 << 2)
+#define IPISR_SLAVE_MODF (1 << 1)
+#define IPISR_MODF (1 << 0)
+
+/* IP Interrupt Enable Register (ipier), [1] p17, [2] p18 */
+#define IPIER_DRR_NOT_EMPTY (1 << 8)
+#define IPIER_SLAVE_SELECT (1 << 7)
+#define IPIER_TXF_HALF_EMPTY (1 << 6)
+#define IPIER_DRR_OVERRUN (1 << 5)
+#define IPIER_DRR_FULL (1 << 4)
+#define IPIER_DTR_UNDERRUN (1 << 3)
+#define IPIER_DTR_EMPTY (1 << 2)
+#define IPIER_SLAVE_MODF (1 << 1)
+#define IPIER_MODF (1 << 0)
+
+/* Softare Reset Register (srr), [1] p9, [2] p8 */
+#define SRR_RESET_CODE 0x0000000A
+
+/* SPI Control Register (spicr), [1] p9, [2] p8 */
+#define SPICR_LSB_FIRST (1 << 9)
+#define SPICR_MASTER_INHIBIT (1 << 8)
+#define SPICR_MANUAL_SS (1 << 7)
+#define SPICR_RXFIFO_RESEST (1 << 6)
+#define SPICR_TXFIFO_RESEST (1 << 5)
+#define SPICR_CPHA (1 << 4)
+#define SPICR_CPOL (1 << 3)
+#define SPICR_MASTER_MODE (1 << 2)
+#define SPICR_SPE (1 << 1)
+#define SPICR_LOOP (1 << 0)
+
+/* SPI Status Register (spisr), [1] p11, [2] p10 */
+#define SPISR_SLAVE_MODE_SELECT (1 << 5)
+#define SPISR_MODF (1 << 4)
+#define SPISR_TX_FULL (1 << 3)
+#define SPISR_TX_EMPTY (1 << 2)
+#define SPISR_RX_FULL (1 << 1)
+#define SPISR_RX_EMPTY (1 << 0)
+
+/* SPI Data Transmit Register (spidtr), [1] p12, [2] p12 */
+#define SPIDTR_8BIT_MASK (0xff << 0)
+#define SPIDTR_16BIT_MASK (0xffff << 0)
+#define SPIDTR_32BIT_MASK (0xffffffff << 0)
+
+/* SPI Data Receive Register (spidrr), [1] p12, [2] p12 */
+#define SPIDRR_8BIT_MASK (0xff << 0)
+#define SPIDRR_16BIT_MASK (0xffff << 0)
+#define SPIDRR_32BIT_MASK (0xffffffff << 0)
+
+/* SPI Slave Select Register (spissr), [1] p13, [2] p13 */
+#define SPISSR_MASK(cs) (1 << (cs))
+#define SPISSR_ACT(cs) ~SPISSR_MASK(cs)
+#define SPISSR_OFF ~0UL
+
+/* SPI Transmit FIFO Occupancy Register (spitfor), [1] p13, [2] p14 */
+#define SPITFOR_OCYVAL_POS 0
+#define SPITFOR_OCYVAL_MASK (0xf << SPITFOR_OCYVAL_POS)
+
+/* SPI Receive FIFO Occupancy Register (spirfor), [1] p14, [2] p14 */
+#define SPIRFOR_OCYVAL_POS 0
+#define SPIRFOR_OCYVAL_MASK (0xf << SPIRFOR_OCYVAL_POS)
+
+struct xilinx_spi_slave {
+ struct spi_slave slave;
+ struct xilinx_spi_reg *regs;
+ unsigned int freq;
+ unsigned int mode;
+};
+
+static inline struct xilinx_spi_slave *to_xilinx_spi_slave(
+ struct spi_slave *slave)
+{
+ return container_of(slave, struct xilinx_spi_slave, slave);
+}
+
+#endif /* _XILINX_SPI_ */
--
1.7.0.4
2
3

[U-Boot] [PATCH] MIPS: fix renaming of inca-swap-bytes to xway-swap-bytes
by daniel.schwierzeck@gmail.com 28 Jul '12
by daniel.schwierzeck@gmail.com 28 Jul '12
28 Jul '12
From: Daniel Schwierzeck <daniel.schwierzeck(a)gmail.com>
Fix some remains of the renaming of inca-swap-bytes introduced in
commit 60b74bde9280e85f4423c05a50ecc41de56ad980
MIPS: INCA-IP: rename inca-swap-bytes host tool
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck(a)gmail.com>
---
Makefile | 2 +-
tools/.gitignore | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index d57c15e..013d139 100644
--- a/Makefile
+++ b/Makefile
@@ -792,7 +792,7 @@ clobber: tidy
@rm -f $(obj)u-boot.dtb
@rm -f $(obj)u-boot.sb
@rm -f $(obj)u-boot.spr
- @rm -f $(obj)tools/inca-swap-bytes
+ @rm -f $(obj)tools/xway-swap-bytes
@rm -f $(obj)arch/powerpc/cpu/mpc824x/bedbug_603e.c
@rm -f $(obj)arch/powerpc/cpu/mpc83xx/ddr-gen?.c
@rm -fr $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
diff --git a/tools/.gitignore b/tools/.gitignore
index e4d2c2f..3557a75 100644
--- a/tools/.gitignore
+++ b/tools/.gitignore
@@ -9,7 +9,7 @@
/ncb
/ncp
/ubsha1
-/inca-swap-bytes
+/xway-swap-bytes
/*.exe
/easylogo/easylogo
/env/crc32.c
--
1.7.11.3
1
0