diff options
Diffstat (limited to 'c/src/lib/libbsp/powerpc/motorola_powerpc/README.qemu')
-rw-r--r-- | c/src/lib/libbsp/powerpc/motorola_powerpc/README.qemu | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/README.qemu b/c/src/lib/libbsp/powerpc/motorola_powerpc/README.qemu deleted file mode 100644 index 9ccf3779a9..0000000000 --- a/c/src/lib/libbsp/powerpc/motorola_powerpc/README.qemu +++ /dev/null @@ -1,124 +0,0 @@ -The 'qemuprep'/'qemuprep-altivec' BSPs are variants of -'motorola_powerpc' that can run under QEMU. They are *not* -binary compatible with other variants of 'motorola_powerpc' -(nor with each other). - -Most significant differences to real hardware: - - no OpenPIC, just a 8259 PIC (even though qemu implements an openpic - at least to some extent it is not configured into the prep platform - as of qemu-0.14.1). - - no VME (absense of the VME controller is detected by the BSP) - - the only network chip supported by both, qemu and vanilla RTEMS - is the ISA NE2000 controller. Note that the default interrupt line - settings used by RTEMS and QEMU differ: RTEMS uses 5 and QEMU 9. - This can be addressed by passing a RTEMS commandline option - --ne2k-irq=9. - Other controllers (i8559, e1000, pcnet) implemented by qemu can - also be used but require unbundled RTEMS drivers (libbsdport). - Note that the bundled 'if_fxp' has not been ported to PPC and works - on x86 only. - - unlike a real motorola board you can run qemu emulating a 7400 CPU - which features altivec. I.e., you can use this BSP (altivec-enabled - variant) to test altivec-enabled code. - -Compatibility: qemu had quite a few bugs related to the PREP platform. -Version 0.12.4, for example, required patches. 0.14.1 seems to have -fixed the show-stoppers. Hence, you *need* at least qemu-0.14.1 for -this BSP; it should work without the need for patching QEMU. - -BIOS: qemu requires you to use a BIOS. The one that came with qemu -0.12.4 didn't work for me so I created a minimal dummy that provides -enough functionality for the RTEMS bootloader to work. - -BSP Variants: -You can compile the BSP for either a 604 CPU or a 7400 (altivec-enabled). -Note that you cannot run the altivec-enabled BSP variant on a CPU w/o -altivec/SIMD hardware. The non-altivec variant is called 'qemuprep' -and the altivec-enabled one 'qemuprep-altivec'. Hence, you can -configure RTEMS: - -604/non-altivec variant only: - configure --target=powerpc-rtems --enable-rtemsbsp=qemuprep -7400/altivec variant only: - configure --target=powerpc-rtems --enable-rtemsbsp=qemuprep-altivec -both variants: - configure --target=powerpc-rtems --enable-rtemsbsp='qemuprep qemuprep-altivec' - -Building QEMU: -In case you have no pre-built qemu-0.14.1 you can -compile it yourself: - -cd qemu-0.14.1 -configure --target-list=ppc-softmmu -make - -Running QEMU: -A number of command-line options are important (BTW: make sure -you run the PPC/PREP emulator and not a natively installed i386/PC -emulating 'qemu') - --M prep --- select machine type: prep --cpu 604 --- select 604 CPU for non-altivec variant --cpu 7400 --- select 7400 CPU for altivec variant - - NOTE: the 7455 and 7457 emulations are buggy as of - qemu-0.14.1 and they won't work. - --bios <rtems-install-prefix>/powerpc-rtems/qemuprep/qemu_fakerom.bin --bios <rtems-install-prefix>/powerpc-rtems/qemuprep-altivec/qemu_fakerom.bin - --- select proprietary dummy 'BIOS' - --nographic --- redirect serial/IO to console where qemu is run - --kernel <path> --- path to your RTEMS executable (.ralf file, e.g., 'hello.ralf') --no-reboot --- terminate after one run --append <arg> --- RTEMS kernel comand line (use e.g., to modify - ne2000 driver interrupt line) - -Networking: -(We assume your RTEMS application is correctly configured and -built for networking using the ne2k adapter [other adapters -can be used with unbundled/libbsdport drivers]) - -I use networking with a 'tap' interface on the host machine -and can then communicate with the emulated target in any -desired way. The Ethernet address specified in the RTEMS network interface -configuration and the Qemu command line must match, otherwise uni-cast frames -are not received. It is best to use a NULL pointer in the RTEMS network -interface configuration for the Ethernet address, so that the default from Qemu -is used. Make sure that your firewall settings allow communication between -different Qemu instances and your host. - -On (linux) host: - -# create a 'permanent' tap device that can be used by myself -# (as non-root user). -sudo tunctl -u `id -u` -# configure tap0 interface -sudo ifconfig tap0 10.1.1.1 netmask 255.255.255.0 up -# provide a suitable dhcpd config file (for the emulated -# platform to boot: IP address etc. -# -# execute dhcp on host -sudo dhcpd -d tap0 - -Start emulated prep platform: - -ppc-softmmu/qemu-system-ppc \ - -M prep \ - -cpu 7400 \ - -bios <rtems-prefix>/powerpc-rtems/qemuprep-altivec/lib/qemu_fakerom.bin \ - -kernel <my_path>/my_app.ralf \ - -append --ne2k-irq=9 \ - -nographic \ - -no-reboot \ - -net nic,model=ne2k_isa \ - -net tap,vlan=0,ifname=tap0,script=no,downscript=no - -Again: if you use the non-altivec BSP variant, use -cpu 604 -and if you use the altivec-enabled variant then you MUST use --cpu 7400. - -Have fun. - -Till Straumann, 2011/07/18 |