Skip to content

Commit

Permalink
Initial import of slof-JX-1.7.0-4
Browse files Browse the repository at this point in the history
Signed-off-by: Benjamin Herrenschmidt <[email protected]>
  • Loading branch information
ozbenh committed Nov 30, 2010
0 parents commit aaad509
Show file tree
Hide file tree
Showing 423 changed files with 62,267 additions and 0 deletions.
1 change: 1 addition & 0 deletions .target
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
js2x
Binary file added FlashingSLOF.pdf
Binary file not shown.
93 changes: 93 additions & 0 deletions INSTALL
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
Slimline Open Firmware - SLOF

Copyright (C) 2005, 2008 IBM Corporation


BUILD
===============================================================================

To build SLOF you need:
- Recent GNU tools, configured for powerpc64-linux
- GCC: 3.3.3 and newer are known to work
- Binutils: use a version as new as possible
- Subversion

- set the CROSS variable
- something like export CROSS="powerpc64-unknown-linux-gnu-"
when using a cross compiler
or
- export CROSS=""
when using a native compiler

- four more files to build a bootable image:
- libipmi.oco
- takeover.oco
- i2c_bmc.oco
- ipmi_oem.oco
these files are also provided through developerworks and have to be
also downloaded just like the SLOF source code

- starting with the SLOF release JX-1.6.0-0 it is necessary to
download a x86 emulator which is used to execute the BIOS
of VGA card; to download the x86 emulator following steps are
required:
- cd other-licence/x86emu/
- ./x86emu_download.sh # this downloads the x86 emulator sources
- cd -

- make js2x

INSTALL
===============================================================================

Detailed information about how to use SLOF on JS20 and JS21 can be found in
the document FlashingSLOF.pdf

The JS20 and JS21 blades both have 2 "flashsides". They have a 8MB flash part
which is divided into a 4MB "temporary" side and a 4MB "permanent" side.

The temporary side is the flashside used for the normal operation and the
permanent side is used as a backup if the temporary should ever fail.

Therefore it is important that the permanent flash side is not changed so
that if ever required the original firmware can be restored.

SLOF usually warns or in most cases does not easily allow to overwrite the
permanent side.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! !
! WITH THE FOLLOWING STEPS YOU MIGHT DESTROY YOUR FIRMWARE !
! IMAGE AND LOOSE YOUR WARRANTY ! !
! YOU MAY NEED TO CALL SERVICE, IF THE FIRMWARE IMAGE IS !
! DESTROYED ! !
! !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

UNINSTALL
===============================================================================

If you want to boot the original firmware again, you need to boot the blade
from the management module. If auto-boot is enabled you have to press "s"
to reach the firmware prompt.
On the SLOF command line, type:

0 > other-firmware

and it should get you back to running the original firmware. To permanently
get it back, after booting Linux from there, type

$ update_flash -r
$ halt

You will boot on the PERM side. To boot from the TEMP side again, you need to
restart the Blade System MGMT Processor.

Following steps are needed on
Management Module -> Blade Tasks -> Power/Restart

Power Off Blade
Restart Blade System Mgmt Processor
Power On Blade
8 changes: 8 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Copyright (c) 2004, 2008 IBM Corporation
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of IBM nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
133 changes: 133 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
# *****************************************************************************
# * Copyright (c) 2004, 2008 IBM Corporation
# * All rights reserved.
# * This program and the accompanying materials
# * are made available under the terms of the BSD License
# * which accompanies this distribution, and is available at
# * http://www.opensource.org/licenses/bsd-license.php
# *
# * Contributors:
# * IBM Corporation - initial implementation
# ****************************************************************************/

include make.rules

STD_BOARDS = $(shell targets=""; \
for a in `echo board-*`; do \
if [ -e $$a/config ]; then \
targets="$$targets $$a"; \
else \
cd $$a; \
for b in `echo config* | sed -e s/config.//g`; do \
if [ "X$$b" != "Xsimics" ]; then \
if [ "X$$b" != "X`echo $$a|sed -e s/board-//g`" ]; then \
targets="$$targets $$a-$$b"; \
else \
targets="$$targets $$b"; \
fi fi \
done; \
cd ..; \
fi; \
done; \
echo $$targets | sed -e s/board-//g)

all:
@if [ ! -f .target ]; then \
echo "Please specify a build target:"; \
echo " $(STD_BOARDS)"; \
exit 1; \
fi
@make `cat .target`

rom:
@echo "******* Build $(BOARD) System ********"
@echo $(BOARD) > .target
@make -C board-$(BOARD)
@$(RM) -f .crc_flash
rw:
@echo "******* Build $(BOARD) system (RISCWatch boot) ********"
@echo $(BOARD) > .target
@make -C board-$(BOARD) l2b
@$(RM) -f .crc_flash

$(STD_BOARDS):
@echo "******** Building $@ system ********"
@if [ -f .target ]; then \
if [ `cat .target` != $@ ]; then \
echo "Configuration changed - cleaning up first..."; \
make distclean; \
echo $@ > .target; \
fi; \
else \
echo $@ > .target; \
fi
@b=`echo $@ | grep "-"`; \
if [ -n "$$b" ]; then \
subboard=$${b##*-}; \
board=$${b%%-*}; \
make -C board-$$board SUBBOARD=$$subboard; \
else \
make -C board-$@; \
fi
@$(RM) .crc_flash

test_all:
@for i in $(STD_BOARDS); do make distclean $$i; done

driver:
@echo "******** Building $(BOARD) system ********"
@b=`echo $(BOARD) | grep "-"`; \
if [ -n "$$b" ]; then \
subboard=$${b##*-}; \
board=$${b%%-*}; \
DRIVER=1 make -C board-$$board SUBBOARD=$$subboard driver; \
else \
DRIVER=1 make -C board-$(BOARD) driver; \
fi
@$(RM) -f .crc_flash .boot_xdr.ffs

cli:
make -C clients

# Rules for making clean:
clean_here:
rm -f boot_rom.bin .boot_rom.ffs boot_xdr.bin .boot_xdr.ffs
rm -f boot_l2-dd2.ad boot_l2b.bin .crc_flash


clean: clean_here
@if [ -e .target ]; then \
tar=`cat .target`; \
b=`echo $$tar | grep "-"`; \
if [ -n "$$b" ]; then \
subboard=$${b##*-}; \
board=$${b%%-*}; \
make -C board-$$board SUBBOARD=$$subboard clean; \
else \
pwd; \
make -C board-$$tar clean; \
fi \
fi

distclean: clean_here
@if [ -e .target ]; then \
tar=`cat .target`; \
b=`echo $$tar | grep "-"`; \
if [ -n "$$b" ]; then \
subboard=$${b##*-}; \
board=$${b%%-*}; \
make -C board-$$board SUBBOARD=$$subboard distclean; \
else \
make -C board-$$tar distclean; \
fi; \
rm -f .target; \
fi

distclean_all: clean_here
@for dir in board-* ; do \
$(MAKE) -C $$dir distclean || exit 1; \
done
rm -f .target

cli-clean:
make -C clients clean
Loading

0 comments on commit aaad509

Please sign in to comment.