Hello u-boot team,
Can you please provide some comments on this patch-set
Please consider this for inclusion
Regards
Vipin
On 11/2/2012 11:09 PM, Vipin KUMAR wrote:
This patchset is split in several pieces
- Drivers: This is essentially a few new drivers and fixes in already exiasting
drivers
- Enhancement: This series enhances the already existing spear support
- spear13xx: This is a totally new suppoort for spear13xx architecture
Armando Visconti (2):
mtd/st_smi: Add support for Micron N25Q128 Flash
spi/arm-pl022: Add support for ARM PL022 spi controller
Pratyush Anand (1):
usb/gadget/designware_otg: Add support for designware otg
Shiraz Hashim (3):
usbtty: adapt buffers for large packet support
net/macb: Add arch specific routine to get mdio control
net/macb: workaround for transmission hang issue
Vipin Kumar (40):
mtd/st_smi: Clear error flags while initiating a fresh write
mtd/st_smi: Avoid issuing multiple WE commands
mtd/st_smi: Write to flash in a tight loop
mtd/st_smi: Use page sizes respective to flash
usbh/ehci: Increase timeout for enumeration
sdhci: Add sdhci support for spear devices
net/designware: Do not select MIIPORT for RGMII interface
usb/host/ehci: Add support for EHCI on spear
misc/crypto: Add support for C3
armv7/ltimer: Add support for local timer on armv7 cpus
imls: Add support to list images in NAND device
u-boot/spl: Add u-boot-spl.img to u-boot targets
arm/boards: Define a new config option CONFIG_BOOT_PARAMS_P
SPEAr: Remove extra spear board configurations
spear/configs: Split config files hierarchically into plat, arch, soc
and board
spear/include: Clean up the spear include files
spear/board: Cleanup spear related board files
spear: Append MISC_ as prefix to misc register bitmasks
spear: Read ethaddr from I2C memory
spear: Cleanup SoC area
spear/spl: Cleanup spear SPL
spear: Add POST memory support
spear: Enable ehci support
spear3xx: FIX: Enable access to memory for spear310 and spear320
spear: Add cache support
spear3xx: Add pinmux support
spear320plc: Correct the MACB interface
spear/configs: Modify several configurations
spear320: Add support for SD/MMC
spear320-hmi: Add support for hmi machine
spear6xx/spear3xx: Add support to boot via NAND device
spear/spl: Add support to boot from Parallel NOR device
spear300evb: Add SPL support
spear1340: Add support for spear1340 SoC
spear1310: Add support for spear1310 SoC
spear1340evb: Add support for evb machine
spear1310evb: Add support for evb machine
spear1340lcad: Add support for LCAD machine
spear1340evb: Add SPL support
spear1310evb: Add SPL support
MAINTAINERS | 4 +
Makefile | 10 +
README | 6 +
arch/arm/cpu/arm926ejs/spear/Makefile | 26 +-
arch/arm/cpu/arm926ejs/spear/cache.c | 32 +
arch/arm/cpu/arm926ejs/spear/cpu.c | 93 +-
arch/arm/cpu/arm926ejs/spear/emi.c | 80 ++
arch/arm/cpu/arm926ejs/spear/reset.c | 2 +-
arch/arm/cpu/arm926ejs/spear/spear300.c | 140 +++
arch/arm/cpu/arm926ejs/spear/spear310.c | 162 +++
arch/arm/cpu/arm926ejs/spear/spear320.c | 860 ++++++++++++++++
arch/arm/cpu/arm926ejs/spear/spear3xx.c | 130 +++
arch/arm/cpu/arm926ejs/spear/spear600.c | 236 -----
arch/arm/cpu/arm926ejs/spear/spear6xx.c | 43 +
arch/arm/cpu/arm926ejs/spear/spl-spear3xx.c | 171 ++++
arch/arm/cpu/arm926ejs/spear/spl-spear600.c | 98 ++
arch/arm/cpu/arm926ejs/spear/spl.c | 181 +---
arch/arm/cpu/arm926ejs/spear/spl_boot.c | 206 +++-
arch/arm/cpu/arm926ejs/spear/spl_nand.c | 121 +++
arch/arm/cpu/arm926ejs/spear/start.S | 58 +-
arch/arm/cpu/arm926ejs/spear/timer.c | 8 +-
arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds | 65 +-
arch/arm/cpu/armv7/Makefile | 17 +-
arch/arm/cpu/armv7/ca9_ltimer.c | 154 +++
arch/arm/cpu/armv7/spear13xx/Makefile | 71 ++
arch/arm/cpu/armv7/spear13xx/reset.c | 47 +
arch/arm/cpu/armv7/spear13xx/spear1310-pinmux.c | 860 ++++++++++++++++
arch/arm/cpu/armv7/spear13xx/spear1310.c | 205 ++++
arch/arm/cpu/armv7/spear13xx/spear1340-pinmux.c | 439 ++++++++
arch/arm/cpu/armv7/spear13xx/spear1340.c | 270 +++++
arch/arm/cpu/armv7/spear13xx/spear13xx.c | 62 ++
arch/arm/cpu/armv7/spear13xx/spl-boot.c | 76 ++
arch/arm/cpu/armv7/spear13xx/spl-lvl_gatetrn.c | 239 +++++
arch/arm/cpu/armv7/spear13xx/spl-lvl_read.c | 229 +++++
arch/arm/cpu/armv7/spear13xx/spl-lvl_write.c | 608 +++++++++++
arch/arm/cpu/armv7/spear13xx/spl-spear1310.c | 230 +++++
arch/arm/cpu/armv7/spear13xx/spl-spear1340.c | 210 ++++
arch/arm/cpu/armv7/spear13xx/spl-spear13xx.c | 162 +++
arch/arm/cpu/armv7/spear13xx/spl-swlvl.c | 93 ++
arch/arm/cpu/armv7/spear13xx/start.S | 137 +++
arch/arm/cpu/armv7/spear13xx/u-boot-spl.lds | 45 +
arch/arm/cpu/armv7/spear13xx/wakeup.S | 60 ++
arch/arm/include/asm/arch-spear/bootrom_table.h | 54 +
arch/arm/include/asm/arch-spear/clk.h | 5 +
.../include/asm/arch-spear/{spr_emi.h => emi.h} | 8 +-
arch/arm/include/asm/arch-spear/generic.h | 123 +++
.../include/asm/arch-spear/{spr_gpt.h => gpt.h} | 4 +-
arch/arm/include/asm/arch-spear/hardware.h | 78 +-
.../include/asm/arch-spear/{spr_misc.h => misc.h} | 208 ++--
.../include/asm/arch-spear/{spr_ssp.h => mmc.h} | 26 +-
arch/arm/include/asm/arch-spear/pinmux.h | 133 +++
arch/arm/include/asm/arch-spear/spear300.h | 83 ++
arch/arm/include/asm/arch-spear/spear310.h | 75 ++
arch/arm/include/asm/arch-spear/spear320.h | 490 +++++++++
arch/arm/include/asm/arch-spear/spear3xx.h | 64 ++
arch/arm/include/asm/arch-spear/spear600.h | 58 ++
arch/arm/include/asm/arch-spear/spl_nand.h | 181 ++++
arch/arm/include/asm/arch-spear/spl_pnor.h | 34 +
arch/arm/include/asm/arch-spear/spr_defs.h | 69 --
.../asm/arch-spear/{spr_syscntl.h => syscntl.h} | 21 +-
arch/arm/include/asm/arch-spear13xx/boot.h | 106 ++
arch/arm/include/asm/arch-spear13xx/c3.h | 63 ++
arch/arm/include/asm/arch-spear13xx/generic.h | 41 +
arch/arm/include/asm/arch-spear13xx/gpio.h | 42 +
arch/arm/include/asm/arch-spear13xx/hardware.h | 33 +
arch/arm/include/asm/arch-spear13xx/misc.h | 34 +
arch/arm/include/asm/arch-spear13xx/mmc.h | 29 +
arch/arm/include/asm/arch-spear13xx/mpmc.h | 332 ++++++
arch/arm/include/asm/arch-spear13xx/pinmux.h | 114 +++
arch/arm/include/asm/arch-spear13xx/spear1310.h | 244 +++++
.../include/asm/arch-spear13xx/spear1310_misc.h | 358 +++++++
arch/arm/include/asm/arch-spear13xx/spear1340.h | 159 +++
.../include/asm/arch-spear13xx/spear1340_misc.h | 357 +++++++
arch/arm/include/asm/arch-spear13xx/spear13xx.h | 50 +
arch/arm/include/asm/ca9_ltimer.h | 40 +
arch/arm/lib/board.c | 12 +
board/spear/common/Makefile | 50 -
board/spear/spear310/Makefile | 45 -
board/{spear/spear600 => st/spear}/Makefile | 17 +-
board/st/spear/config.mk | 27 +
board/{spear/spear320 => st/spear/ddr}/Makefile | 23 +-
.../ddr/spear600_mt47h128m8_3_266_cl5_async.c | 3 +-
.../spear/ddr/spear600_mt47h32m16_333_cl5_psync.c | 8 +-
.../ddr/spear600_mt47h32m16_37e_166_cl4_sync.c | 3 +-
.../ddr/spear600_mt47h64m16_3_333_cl5_psync.c | 8 +-
board/st/spear/ddr/spr3xx_mt46h32m16_6_166_cl3.c | 140 +++
.../spear/ddr/spr3xx_mt47h64m16_3_166_cl4_async.c | 146 +++
.../spear/ddr/spr3xx_mt47h64m16_3_266_cl5_async.c | 146 +++
.../spear/ddr/spr3xx_mt47h64m16_3_333_cl5_async.c | 152 +++
.../spear320/spear320.c => st/spear/spear300evb.c} | 56 +-
.../spear310/spear310.c => st/spear/spear310evb.c} | 57 +-
.../spear300/spear300.c => st/spear/spear320hmi.c} | 66 +-
board/st/spear/spear320plc.c | 144 +++
board/st/spear/spear600evb.c | 179 ++++
.../common/spr_misc.c => st/spear/spear_common.c} | 175 +---
.../spear/spear_lowlevel_init.S} | 14 -
board/{spear/x600 => st/spear}/x600.c | 0
board/{spear/x600/fpga.c => st/spear/x600fpga.c} | 0
board/{spear/x600/fpga.h => st/spear/x600fpga.h} | 0
board/{spear/x600 => st/spear13xx}/Makefile | 16 +-
board/st/spear13xx/config.mk | 27 +
.../{spear/spear300 => st/spear13xx/ddr}/Makefile | 25 +-
board/st/spear13xx/ddr/h5tq2g63bfr_pbc_400_cl6.c | 238 +++++
board/st/spear13xx/ddr/h5tq2g63bfr_pbc_533_cl8.c | 238 +++++
board/st/spear13xx/ddr/k4b2g1646c_k0_400_cl6.c | 238 +++++
board/st/spear13xx/ddr/k4b2g1646c_k0_533_cl8.c | 238 +++++
.../ddr/mt41j128m16_15e_400_cl6_dqs_dq_term_en.c | 238 +++++
.../ddr/mt41j256m8187e_400_cl6_dqs_dq_term_en.c | 246 +++++
.../ddr/mt41j256m8187e_533_cl7_dqs_dq_term_en.c | 246 +++++
.../ddr/mt41j64m16_15e_400_cl6_dqs_dq_term_en.c | 238 +++++
.../ddr/mt41j64m16_15e_533_cl7_dqs_dq_term_en.c | 238 +++++
.../spear13xx/ddr/mt47h128m16rt187e_400_cl6_ddr2.c | 239 +++++
.../spear13xx/ddr/mt47h128m16rt187e_533_cl7_ddr2.c | 239 +++++
board/st/spear13xx/spear1310evb.c | 93 ++
board/st/spear13xx/spear1340evb.c | 94 ++
.../spear600.c => st/spear13xx/spear1340lcad.c} | 60 +-
board/st/spear13xx/spear13xx_common.c | 53 +
board/st/spear13xx/spl-spear1310evb.c | 50 +
board/st/spear13xx/spl-spear1340evb.c | 57 ++
boards.cfg | 45 +-
common/cmd_bootm.c | 98 ++
common/usb_hub.c | 27 +-
drivers/misc/Makefile | 1 +
drivers/misc/c3.c | 122 +++
drivers/mmc/Makefile | 1 +
drivers/mmc/spear_sdhci.c | 44 +
drivers/mtd/st_smi.c | 73 +-
drivers/net/designware.c | 4 +-
drivers/net/macb.c | 48 +-
drivers/serial/usbtty.c | 2 +-
drivers/serial/usbtty.h | 2 +
drivers/spi/Makefile | 1 +
drivers/spi/pl022_spi.c | 308 ++++++
drivers/usb/gadget/Makefile | 1 +
drivers/usb/gadget/designware_otg.c | 1063 ++++++++++++++++++++
drivers/usb/host/Makefile | 1 +
drivers/usb/host/ehci-spear.c | 70 ++
include/configs/spear-common.h | 251 -----
include/configs/spear.h | 242 +++++
include/configs/spear1310-evb.h | 118 +++
include/configs/spear1310.h | 35 +
include/configs/spear1340-evb.h | 124 +++
include/configs/spear1340-lcad.h | 91 ++
include/configs/spear1340.h | 30 +
include/configs/spear13xx.h | 121 +++
include/configs/spear300-evb.h | 114 +++
include/configs/{spear6xx_evb.h => spear300.h} | 45 +-
include/configs/spear310-evb.h | 145 +++
include/configs/spear310.h | 76 ++
include/configs/spear320-evb.h | 109 ++
include/configs/spear320-hmi.h | 117 +++
include/configs/spear320.h | 66 ++
include/configs/spear3xx.h | 65 ++
include/configs/spear3xx_evb.h | 173 ----
include/configs/spear600-evb.h | 119 +++
include/configs/spear600.h | 69 ++
include/configs/x600.h | 2 +-
include/linux/bitops.h | 12 +
include/linux/mtd/st_smi.h | 1 -
include/usb/designware_otg.h | 500 +++++++++
include/usbdevice.h | 4 +-
spl/Makefile | 11 +
162 files changed, 18111 insertions(+), 1684 deletions(-)
create mode 100644 arch/arm/cpu/arm926ejs/spear/cache.c
create mode 100644 arch/arm/cpu/arm926ejs/spear/emi.c
create mode 100644 arch/arm/cpu/arm926ejs/spear/spear300.c
create mode 100644 arch/arm/cpu/arm926ejs/spear/spear310.c
create mode 100644 arch/arm/cpu/arm926ejs/spear/spear320.c
create mode 100644 arch/arm/cpu/arm926ejs/spear/spear3xx.c
delete mode 100644 arch/arm/cpu/arm926ejs/spear/spear600.c
create mode 100644 arch/arm/cpu/arm926ejs/spear/spear6xx.c
create mode 100644 arch/arm/cpu/arm926ejs/spear/spl-spear3xx.c
create mode 100644 arch/arm/cpu/arm926ejs/spear/spl-spear600.c
create mode 100644 arch/arm/cpu/arm926ejs/spear/spl_nand.c
create mode 100644 arch/arm/cpu/armv7/ca9_ltimer.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/Makefile
create mode 100644 arch/arm/cpu/armv7/spear13xx/reset.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/spear1310-pinmux.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/spear1310.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/spear1340-pinmux.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/spear1340.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/spear13xx.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/spl-boot.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/spl-lvl_gatetrn.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/spl-lvl_read.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/spl-lvl_write.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/spl-spear1310.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/spl-spear1340.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/spl-spear13xx.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/spl-swlvl.c
create mode 100644 arch/arm/cpu/armv7/spear13xx/start.S
create mode 100644 arch/arm/cpu/armv7/spear13xx/u-boot-spl.lds
create mode 100644 arch/arm/cpu/armv7/spear13xx/wakeup.S
create mode 100644 arch/arm/include/asm/arch-spear/bootrom_table.h
rename arch/arm/include/asm/arch-spear/{spr_emi.h => emi.h} (94%)
create mode 100644 arch/arm/include/asm/arch-spear/generic.h
rename arch/arm/include/asm/arch-spear/{spr_gpt.h => gpt.h} (97%)
rename arch/arm/include/asm/arch-spear/{spr_misc.h => misc.h} (52%)
rename arch/arm/include/asm/arch-spear/{spr_ssp.h => mmc.h} (69%)
create mode 100644 arch/arm/include/asm/arch-spear/pinmux.h
create mode 100644 arch/arm/include/asm/arch-spear/spear300.h
create mode 100644 arch/arm/include/asm/arch-spear/spear310.h
create mode 100644 arch/arm/include/asm/arch-spear/spear320.h
create mode 100644 arch/arm/include/asm/arch-spear/spear3xx.h
create mode 100644 arch/arm/include/asm/arch-spear/spear600.h
create mode 100644 arch/arm/include/asm/arch-spear/spl_nand.h
create mode 100644 arch/arm/include/asm/arch-spear/spl_pnor.h
delete mode 100644 arch/arm/include/asm/arch-spear/spr_defs.h
rename arch/arm/include/asm/arch-spear/{spr_syscntl.h => syscntl.h} (71%)
create mode 100644 arch/arm/include/asm/arch-spear13xx/boot.h
create mode 100644 arch/arm/include/asm/arch-spear13xx/c3.h
create mode 100644 arch/arm/include/asm/arch-spear13xx/generic.h
create mode 100644 arch/arm/include/asm/arch-spear13xx/gpio.h
create mode 100644 arch/arm/include/asm/arch-spear13xx/hardware.h
create mode 100644 arch/arm/include/asm/arch-spear13xx/misc.h
create mode 100644 arch/arm/include/asm/arch-spear13xx/mmc.h
create mode 100644 arch/arm/include/asm/arch-spear13xx/mpmc.h
create mode 100644 arch/arm/include/asm/arch-spear13xx/pinmux.h
create mode 100644 arch/arm/include/asm/arch-spear13xx/spear1310.h
create mode 100644 arch/arm/include/asm/arch-spear13xx/spear1310_misc.h
create mode 100644 arch/arm/include/asm/arch-spear13xx/spear1340.h
create mode 100644 arch/arm/include/asm/arch-spear13xx/spear1340_misc.h
create mode 100644 arch/arm/include/asm/arch-spear13xx/spear13xx.h
create mode 100644 arch/arm/include/asm/ca9_ltimer.h
delete mode 100644 board/spear/common/Makefile
delete mode 100644 board/spear/spear310/Makefile
rename board/{spear/spear600 => st/spear}/Makefile (74%)
create mode 100644 board/st/spear/config.mk
rename board/{spear/spear320 => st/spear/ddr}/Makefile (63%)
rename arch/arm/cpu/arm926ejs/spear/spr600_mt47h128m8_3_266_cl5_async.c =>
board/st/spear/ddr/spear600_mt47h128m8_3_266_cl5_async.c (95%)
rename arch/arm/cpu/arm926ejs/spear/spr600_mt47h32m16_333_cl5_psync.c =>
board/st/spear/ddr/spear600_mt47h32m16_333_cl5_psync.c (91%)
rename arch/arm/cpu/arm926ejs/spear/spr600_mt47h32m16_37e_166_cl4_sync.c =>
board/st/spear/ddr/spear600_mt47h32m16_37e_166_cl4_sync.c (95%)
rename arch/arm/cpu/arm926ejs/spear/spr600_mt47h64m16_3_333_cl5_psync.c =>
board/st/spear/ddr/spear600_mt47h64m16_3_333_cl5_psync.c (91%)
create mode 100644 board/st/spear/ddr/spr3xx_mt46h32m16_6_166_cl3.c
create mode 100644 board/st/spear/ddr/spr3xx_mt47h64m16_3_166_cl4_async.c
create mode 100644 board/st/spear/ddr/spr3xx_mt47h64m16_3_266_cl5_async.c
create mode 100644 board/st/spear/ddr/spr3xx_mt47h64m16_3_333_cl5_async.c
rename board/{spear/spear320/spear320.c => st/spear/spear300evb.c} (69%)
rename board/{spear/spear310/spear310.c => st/spear/spear310evb.c} (68%)
rename board/{spear/spear300/spear300.c => st/spear/spear320hmi.c} (58%)
create mode 100644 board/st/spear/spear320plc.c
create mode 100644 board/st/spear/spear600evb.c
rename board/{spear/common/spr_misc.c => st/spear/spear_common.c} (52%)
rename board/{spear/common/spr_lowlevel_init.S =>
st/spear/spear_lowlevel_init.S} (88%)
rename board/{spear/x600 => st/spear}/x600.c (100%)
rename board/{spear/x600/fpga.c => st/spear/x600fpga.c} (100%)
rename board/{spear/x600/fpga.h => st/spear/x600fpga.h} (100%)
rename board/{spear/x600 => st/spear13xx}/Makefile (76%)
create mode 100644 board/st/spear13xx/config.mk
rename board/{spear/spear300 => st/spear13xx/ddr}/Makefile (57%)
create mode 100644 board/st/spear13xx/ddr/h5tq2g63bfr_pbc_400_cl6.c
create mode 100644 board/st/spear13xx/ddr/h5tq2g63bfr_pbc_533_cl8.c
create mode 100644 board/st/spear13xx/ddr/k4b2g1646c_k0_400_cl6.c
create mode 100644 board/st/spear13xx/ddr/k4b2g1646c_k0_533_cl8.c
create mode 100644
board/st/spear13xx/ddr/mt41j128m16_15e_400_cl6_dqs_dq_term_en.c
create mode 100644
board/st/spear13xx/ddr/mt41j256m8187e_400_cl6_dqs_dq_term_en.c
create mode 100644
board/st/spear13xx/ddr/mt41j256m8187e_533_cl7_dqs_dq_term_en.c
create mode 100644
board/st/spear13xx/ddr/mt41j64m16_15e_400_cl6_dqs_dq_term_en.c
create mode 100644
board/st/spear13xx/ddr/mt41j64m16_15e_533_cl7_dqs_dq_term_en.c
create mode 100644 board/st/spear13xx/ddr/mt47h128m16rt187e_400_cl6_ddr2.c
create mode 100644 board/st/spear13xx/ddr/mt47h128m16rt187e_533_cl7_ddr2.c
create mode 100644 board/st/spear13xx/spear1310evb.c
create mode 100644 board/st/spear13xx/spear1340evb.c
rename board/{spear/spear600/spear600.c => st/spear13xx/spear1340lcad.c}
(60%)
create mode 100644 board/st/spear13xx/spear13xx_common.c
create mode 100644 board/st/spear13xx/spl-spear1310evb.c
create mode 100644 board/st/spear13xx/spl-spear1340evb.c
create mode 100644 drivers/misc/c3.c
create mode 100644 drivers/mmc/spear_sdhci.c
create mode 100644 drivers/spi/pl022_spi.c
create mode 100644 drivers/usb/gadget/designware_otg.c
create mode 100644 drivers/usb/host/ehci-spear.c
delete mode 100644 include/configs/spear-common.h
create mode 100644 include/configs/spear.h
create mode 100644 include/configs/spear1310-evb.h
create mode 100644 include/configs/spear1310.h
create mode 100644 include/configs/spear1340-evb.h
create mode 100644 include/configs/spear1340-lcad.h
create mode 100644 include/configs/spear1340.h
create mode 100644 include/configs/spear13xx.h
create mode 100644 include/configs/spear300-evb.h
rename include/configs/{spear6xx_evb.h => spear300.h} (54%)
create mode 100644 include/configs/spear310-evb.h
create mode 100644 include/configs/spear310.h
create mode 100644 include/configs/spear320-evb.h
create mode 100644 include/configs/spear320-hmi.h
create mode 100644 include/configs/spear320.h
create mode 100644 include/configs/spear3xx.h
delete mode 100644 include/configs/spear3xx_evb.h
create mode 100644 include/configs/spear600-evb.h
create mode 100644 include/configs/spear600.h
create mode 100644 include/usb/designware_otg.h
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot