qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] PMON2000 compilation and kernel question


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] PMON2000 compilation and kernel question
Date: Wed, 6 Mar 2019 12:25:10 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1

On 3/6/19 11:21 AM, Andrew Randrianasulu wrote:
> Hello, all.
> 
> I was compiling those pmons for last two days, and I happy to say most of my 
> hackery was
> unnecessary.
> 
> Just unpack pmon_1c.tar.gz and toolchain-pmon.tar.bz2
> compile tools in pmon/tools (just make), create  directory 
> /opt/pmon2000/tools, install tools,
> be sure /opt/pmon2000/tools/bin in your $PATH, put compiler in 
> /usr/local/comp, put build.sh 
> script from unpacked toolchain tree into pmon.zloader dir, reset tree (git 
> checkout -b label) 
> to some known or desired commit

Excellent! Helpful notes.

> few of them I tested:
> 
> 9048810a267835e8efb0496fd99884bd500c43a0
> 
> 17471780223332a7016959bcb9784ba249bd8660
> 
> dd26466da98371470af957993a600719466305f9
> 
> for last one you probably want to revert "move highmemcpy highset into lib.",
> because it was breaking zloader.2edev compilation for me.
> 
> Now, most of my hacks were unnecessary, you can just use this Bonito file
> in Targets/Bonito2edev/conf/:
> 
> ==============
> # $Id: Bonito,v 1.1.1.1 2006/09/14 01:59:09 root Exp $ # #      GENERIC 
> configuration for Galileo EV64240 # #  This file is supposed to be included 
> by target file after #  endian has been defined.
> #
> machine         Bonito2edev        mips    # CPU Architecture, Platform
> config          pmon
> 
> #
> #  Define target endian
> #
> makeoptions     ENDIAN=EL               # Little endian version.
> 
> 
> #include "conf/GENERIC_ALL"
> 
> #
> # System Name and Target Name
> #
> option          SYSTYPE="\"Bonito\""
> option          TARGETNAME="\"Bonito\""
> 
> #
> # Platform options
> #
> option          BONITOEL
> option      DEVBD2E
> option          MIPS
> option          INET
> 
> select          mod_flash_amd           # AMD flash device programming
> select          mod_flash_intel         # intel flash device programming
> select          mod_flash_sst           # intel flash device programming
> select          mod_debugger            # Debugging module
> select          mod_symbols             # Symbol table handling
> select          mod_s3load              # Srecord loading
> #select         mod_fastload            # LSI Fastload
> select          mod_elfload             # ELF loading
> 
> #
> # Command selection. Selects pmon commands
> #
> select          cmd_newmt
> select          cmd_setup
> select          mod_display
> select          cmd_about               # Display info about PMON
> select          cmd_boot                # Boot wrapper
> select          cmd_mycmd
> select          cmd_xmodem
> select          ramfiles
> select          cmd_newmt
> select          cmd_cache               # Cache enabling
> #select         cmd_call                # Call a function command
> select          cmd_date                # Time of day command
> select          cmd_env                 # Full blown environment command set
> select          cmd_flash               # Flash programming cmds
> select          cmd_hist                # Command history
> select          cmd_ifaddr              # Interface address command
> select          cmd_l                   # Disassemble
> select          cmd_mem                 # Memory manipulation commands
> select          cmd_more                # More paginator
> select          cmd_mt                  # Simple memory test command
> select          cmd_misc                # Reboot & Flush etc.
> #select         cmd_stty                # TTY setings command
> select          cmd_tr                  # Host port-through command
> select          cmd_devls               # Device list
> select          cmd_set                 # As cmd_env but not req. cmd_hist
> select          cmd_testdisk
> select          cmd_test
> select          pmon_zmodem_rz
> #
> select          cmd_shell               # Shell commands, vers, help, eval
> #
> #
> # Platform options
> #
> select          mod_uart_ns16550        # Standard UART driver
> #option         CONS_BAUD=B9600
> option          CONS_BAUD=B115200
> select          ext2
> select          fatfs
> #select         mod_x86emu              # X86 emulation for VGA
> option  MY40IO
> #select         mod_x86emu_int10
> select          mod_vgacon
> select          mod_framebuffer
> option          X640x480
> option          CONFIG_VIDEO_16BPP
> option          NOPCINAMES              # Save some space for x86emu
> #option         FASTBOOT
> select      vt82c686        #via686a/b code
> 
> #
> # Functional options.
> #
> option          NOSNOOP                 # Caches are no-snooping
> 
> #
> # HAVE options. What tgt level provide
> #
> option          HAVE_TOD                # Time-Of-Day clock
> option          HAVE_NVENV              #  Platform has non-volatile env mem
> option          HAVE_LOGO               # Output splash logo
> option          USE_SUPERIO_UART
> #option         USE_LEGACY_RTC
> #option         GODSONEV2A
> #option         LINUX_PC
> #option         LONGMENG
> option          RADEON7000
> #option         DEBUG_EMU_VGA
> option          AUTOLOAD
> #option         CONFIG_PCI0_LARGE_MEM
> #option         CONFIG_PCI0_HUGE_MEM
> #option         CONFIG_PCI0_GAINT_MEM
> option          CONFIG_CACHE_64K_4WAY
> option      NVRAM_IN_FLASH
> 
> #
> #  Now the Machine specification
> #
> mainbus0        at root
> localbus0       at mainbus0
> #fd0         at mainbus0
> pcibr*          at mainbus0
> #pcibr1         at mainbus0
> pci*            at pcibr?
> #ppb*           at pci? dev ? function ?        # PCI-PCI bridges
> #pci*           at ppb? bus ?
> 
> #### USB
> #uhci*          at pci? dev ? function ?
> 
> #### SCSI support
> #siop*          at pci? dev ? function ?        # Symbios/NCR 53c...
> #scsibus*       at siop?
> #sd*            at scsibus? target ? lun ?
> #cd*            at scsibus? target ? lun ?
> 
> #### Networking Devices
> #gt0            at localbus? base 4
> #gt1            at localbus? base 5
> #gt2            at localbus? base 6
> # fxp normally only used for debugging (enable/disable both)
> fxp*            at pci? dev ? function ?        # Intel 82559 Device
> inphy*          at mii? phy ?                   # Intel 82555 PHYs
> rtl*        at pci? dev ? function ?
> uhci*            at pci? dev ? function ?
> #ohci0           at pci? dev ? function ?
> usb*             at usbbus ?
> #ohci1           at pci? dev ? function ?
> 
> select      mod_usb
> select          mod_usb_storage
> select      mod_usb_uhci
> #select                 mod_usb_ohci
> select      mod_usb_kbd
> 
> 
> #### IDE controllers
> pciide*         at pci ? dev ? function ? flags 0x0000
> atp*           at pci? dev ? function ?  #sata atp8620
> sata*       at atp?
> #### IDE hard drives
> wd*             at pciide? channel ? drive ? flags 0x0000
> 
> #### Pseudo devices
> pseudo-device   loop    1       # network loopback
> 
> ide_cd*         at pciide? channel ? drive ? flags 0x0001
> select          iso9660
> option IDECD
> #option HAVE_NB_SERIAL
> option USE_ENVMAC
> #option LOOKLIKE_PC
> #select cmd_lwdhcp
> #select cmd_bootp
> option WDC_NORESET
> option FOR_GXEMUL
> select fatfs
> option FLOATINGPT
> select gzip
> option VIA686B_POWERFIXUP
> option INPUT_FROM_BOTH
> option OUTPUT_TO_BOTH
> option PCI_IDSEL_VIA686B=17
> 
> ==========
> 
> In other words, just DISABLE both x86_emu and x86_emu_int10h, enable 
> framebuffer, 
> set 640x480 resolution and 16 bpp bit depth.
> 
> After this, you can make it
> cd zloader.2edev
> LANG=C ./build.sh
> (otherwise in can put localized date in pmon, it will be shown wrong).
> 
> ==========
> #!/bin/bash
> export MKDEP=makedepend
> export PATH=/usr/local/comp/mips-elf/gcc-2.95.3/bin/:$PATH
> make cfg            #ёьРВЕдЦГ
> make tgt=ram
> mv gzram pmon_ram.bin
> make tgt=rom    #ІъЙъЙХЦЖОДјю gzrom.bin
> mv gzrom.bin  pmon.bin
> mkdir -d /var/lib/tftpboot
> cp pmon.bin pmon_ram.bin /var/lib/tftpboot
> =============
> 
> note, my mkdir doesn't understand 'd' option, but script finishes anyway.
> watch for errors, especially if you enabled some more options.
> 
> Newer pmon source fails to compile for me due to some mtd changes.
> 
> After this , I run resulted pmon like this 
> (using Zoltan's patch for ati-vga device on top of current qemu):

How I see this can be integrated in QEMU is creating a Dockerfile
starting with "FROM qemu:debian-mips64el-cross" then a bunch of "RUN"
lines which do the same as your script and finally generates the
pmon.bin which we'll add to repository and ship as roms/pmon_2e.bin.

> mips64el-softmmu/qemu-system-mips64el -M fulong2e  -cpu Loongson-2E -m 1G  
> -bios /dev/shm/pmon-my/pmon/zloader.2edev/pmon.bin -device 
> ati-vga,model=rv100 -hda /dev/shm/LONGSOON_disk  -cdrom 
> /dev/shm/debian-8.0.0-mipsel-xfce-CD-1.iso -display sdl,gl=on
> 
> it can see both disk and CD, but sadly I was unable to find any working 
> kernel?!
> 
> vmlinux-2e just hangs early, and vmlinux-3.16.0-4-loongson-2e extracted from 
> debian pkg
> hangs a litle latter in boot process. Tried without -m option, and with 2F 
> CPU. 
> I mean even with just -kernel, no bios involved.
> 
> Also, while I was able to compile-in uhci support, adding usb-kbd device 
> freezes pmon. And newly-added 
> EHCI support apparently limited to only some CPUs/boards :/ At least I was 
> unable to compile pmon in 
> this config and with mod_usb_ehci.
> 
> Oh, and sadly my little "disable bitblit" patch was still needed:
> 
> diff --git a/fb/cfb_console.c b/fb/cfb_console.c
> index 6663ef7..f29c43f 100644
> --- a/fb/cfb_console.c
> +++ b/fb/cfb_console.c
> @@ -113,7 +113,7 @@ CONFIG_VIDEO_HW_CURSOR:          - Uses the hardware 
> cursor capability of the
>  #define CONFIG_VIDEO_LOGO
>  #define        CONFIG_VIDEO_BMP_LOGO
>  //#define DEBUG_CFG_CONSOLE
> -#define VIDEO_HW_BITBLT
> +//#define VIDEO_HW_BITBLT
>  #elif defined(SMI712)
>  #define CONFIG_VIDEO_SW_CURSOR
>  //#define CONFIG_VIDEO_LOGO
> 
> otherwise pmon was not scrolling help text or any messages up.

This doesn't seem PMON related but a feature of the fulong2e that QEMU
doesn't model yet.

Regards,

Phil.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]