[U-Boot-Users] [PATCH 3/13] SPARC: bootm SPARC support

Hello Wolfgang,
This patch adds support for SPARC u-boot images to bootm. The IH_ARCH_SPARC indentifier in the image header is recognized. The IH_ARCH_SPARC indentifier has already been implemented in mkimage.
--------------------- U-Boot 1.3.2-00273-gf85e20a (Mar 28 2008 - 13:13:48)GAISLER LEON3 GR-XC3S-1500
CPU: LEON3 Board: GR-XC3S-1500 FLASH: 8 MB In: serial Out: serial Err: serial Net: GRETH 10/100
Type "run flash_nfs" to mount root filesystem over NFS
Hit any key to stop autoboot: 0 => setenv scratch 41000000 => run getkernel Using GRETH 10/100 device TFTP from server 192.168.0.20; our IP address is 192.168.0.179 Filename '/uImage'. Load address: 0x41000000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ############################################ done Bytes transferred = 2550387 (26ea73 hex) => bootm ## Booting kernel from Legacy Image at 41000000 ... Image Name: Linux-2.6.21.1 Image Type: SPARC Linux Kernel Image (gzip compressed) Data Size: 2550323 Bytes = 2.4 MB Load Address: 40004000 Entry Point: f0004000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK ## Found SPARC Linux kernel 2.6.21 ... Booting Linux Booting Linux... PROMLIB: Sun Boot Prom Version 0 Revision 0 Linux version 2.6.21.1 (daniel@neptune) (gcc version 3.2.2) #17 Tue Dec 18 16:57 ARCH: LEON Vendors Slaves Ahb masters: 0( 1: 3| 0): VENDOR_GAISLER GAISLER_LEON3 1( 1: 1c| 0): VENDOR_GAISLER GAISLER_AHBJTAG 2( 1: 1d| 0): VENDOR_GAISLER GAISLER_ETHMAC 3( 1: 1f|10): VENDOR_GAISLER Unknown device 1f 4( 1: 1f|11): VENDOR_GAISLER Unknown device 1f Ahb slaves: 0( 4: f| 0): VENDOR_ESA ESA_MCTRL +0: 0x0 (raw:0x3e002) +1: 0x20000000 (raw:0x2000e002) +2: 0x40000000 (raw:0x4003c002) 1( 1: 6| 0): VENDOR_GAISLER GAISLER_APBMST +0: 0x80000000 (raw:0x8000fff2) 2( 1: 4| 0): VENDOR_GAISLER GAISLER_LEON3DSU +0: 0x90000000 (raw:0x9000f002) Apb slaves: 0( 4: f| 0): VENDOR_ESA ESA_MCTRL + 0: 0x80000000 (raw:0xfff1) 1( 1: c| 2): VENDOR_GAISLER GAISLER_APBUART + 0: 0x80000100 (raw:0x10fff1) 2( 1: d| 0): VENDOR_GAISLER GAISLER_IRQMP + 0: 0x80000200 (raw:0x20fff1) 3( 1: 11| 8): VENDOR_GAISLER GAISLER_GPTIMER + 0: 0x80000300 (raw:0x30fff1) 4( 1: 1d|12): VENDOR_GAISLER GAISLER_ETHMAC + 0: 0x80000b00 (raw:0xb0fff1) 5( 1: 1f|10): VENDOR_GAISLER Unknown device 1f + 0: 0x80000c00 (raw:0xc0fff1) 6( 1: 1f|11): VENDOR_GAISLER Unknown device 1f + 0: 0x80000d00 (raw:0xd0fff1) 7( 1: 52| 7): VENDOR_GAISLER Unknown device 52 + 0: 0x80000f00 (raw:0xf0fff1) TYPE: Leon2/3 System-on-a-Chip Ethernet address: 0:0:7a:cc:0:12 CACHE: direct mapped cache, set size 1k CACHE: not flushing on every context switch Boot time fixup v1.6. 4/Mar/98 Jakub Jelinek (jj@ultra.linux.cz). Patching kernu node 2: /cpu00 (type:cpu) (props:.node device_type mid mmu-nctx clock-frequency) PROM: Built device tree from rootnode 1 with 918 bytes of memory. DEBUG: psr.impl = 0xf fsr.vers = 0x7 Built 1 zonelists. Total pages: 15318 Kernel command line: console=ttyS0,38400 root=/dev/nfs rw nfsroot=192.168.0.20: PID hash table entries: 256 (order: 8, 1024 bytes) Todo: init master_l10_counter Attaching grlib apbuart serial drivers (clk:40hz): Console: colour dummy device 80x25 .... ---------------
This patch is also available at ftp://ftp.gaisler.com/gaisler.com/u-boot/patches.
Best Regards, Daniel Hellstrom
common/image.c | 2 +- include/image.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/common/image.c b/common/image.c index f04826a..ce49bb2 100644 --- a/common/image.c +++ b/common/image.c @@ -1014,7 +1014,7 @@ int boot_get_ramdisk (int argc, char *argv[], bootm_headers_t *images, return 0; }
-#if defined(CONFIG_PPC) || defined(CONFIG_M68K) +#if defined(CONFIG_PPC) || defined(CONFIG_M68K) || defined(CONFIG_SPARC) /** * boot_ramdisk_high - relocate init ramdisk * @lmb: pointer to lmb handle, will be used for memory mgmt diff --git a/include/image.h b/include/image.h index 36143e2..c1a6cbb 100644 --- a/include/image.h +++ b/include/image.h @@ -419,6 +419,8 @@ static inline int image_check_target_arch (image_header_t *hdr) if (!image_check_arch (hdr, IH_ARCH_PPC)) #elif defined(__sh__) if (!image_check_arch (hdr, IH_ARCH_SH)) +#elif defined(__sparc__) + if (!image_check_arch (hdr, IH_ARCH_SPARC)) #else # error Unknown CPU type #endif @@ -571,6 +573,8 @@ static inline int fit_image_check_target_arch (const void *fdt, int node) if (!fit_image_check_arch (fdt, node, IH_ARCH_PPC)) #elif defined(__sh__) if (!fit_image_check_arch (fdt, node, IH_ARCH_SH)) +#elif defined(__sparc__) + if (!fit_image_check_arch (fdt, node, IH_ARCH_SPARC)) #else # error Unknown CPU type #endif
participants (1)
-
Daniel Hellstrom