龙芯pmon快速启动方法
龙芯pmon快速启动方法
以ls2k1000 pmon为例
一、去掉没有用的外设
去掉GPU
在vim Targets/LS2K/conf/ls2k
里添加
option NOGPU原理:
备注:必须使用pmon下的设备树,此方法才能去掉GPU去掉Nand
在vim Targets/LS2K/conf/ls2k
里注释掉如下内容
#select nand
#select spinand_lld
#option CONFIG_LS2K_NAND原理:
bootdelay 环境变量设为0
其他设备
ls2k配置文件在vim Targets/LS2K/conf/ls2k
,想掉某个未用设备,直接在这个文件里注释掉,编译能正常通过即可!
二、去掉pmon启动时打印信息
参考下边补丁文件进行修改…
From 6955e716f9490cc5550b8d2d2cec37e5f4dfcc15 Mon Sep 17 00:00:00 2001
From: xupengjun <xupengjun@loongson.cn>
Date: Wed, 28 Oct 2020 15:56:29 +0800
Subject: [PATCH] pmon quick start, config file ls2k add FASTUP---Targets/LS2K/conf/ls2k | 48 +++++++++++--------Targets/LS2K/dev/localbus.c | 3 +-Targets/LS2K/include/pmon_target.h | 8 ++++.../LS2K/ls2k/ddr_dir/loongson3_ddr2_config.S | 4 +-Targets/LS2K/ls2k/loongson3_clksetting.S | 15 ++++--Targets/LS2K/ls2k/start.S | 23 +++++++--Targets/LS2K/ls2k/tgt_machdep.c | 4 ++pmon/cmds/cmd_main/cmd_main.c | 3 +-pmon/common/main.c | 8 +++-pmon/dev/mainbus.c | 2 +pmon/dev/pcibr.c | 3 +-sys/dev/gmac/if_gmac.c | 2 +sys/dev/gmac/synopGMAC_network_interface.c | 4 +-sys/dev/gmac/synopGMAC_plat.h | 4 ++sys/dev/pci/ahci.c | 9 +++-sys/dev/pci/pci.c | 3 +-sys/dev/pci/pciconf.c | 13 ++++-sys/dev/pci/ppb.c | 3 +-sys/kern/init_main.c | 6 +++sys/kern/subr_autoconf.c | 9 ++++sys/net/if.c | 2 +sys/scsi/scsiconf.c | 2 +22 files changed, 134 insertions(+), 44 deletions(-)diff --git a/Targets/LS2K/conf/ls2k b/Targets/LS2K/conf/ls2k
index 03852d45..91b68e18 100644
--- a/Targets/LS2K/conf/ls2k
+++ b/Targets/LS2K/conf/ls2k
@@ -37,7 +37,7 @@ option LS3_HT # Enable the IO cache coherent for ls2koption loongson3A3option LSMC_2
-#option ARB_LEVEL
+option ARB_LEVELoption DDR3_DIMM@@ -115,7 +115,7 @@ select mod_vgaconoption VGA_NO_ROM # display card has no rom#select mod_sisfboption NOPCINAMES # Save some space for x86emu
-#option FASTBOOT
+option FASTBOOT#select vt82c686 #via686a/b codeselect mod_framebuffer
@@ -137,7 +137,7 @@ option HAVE_TOD # Time-Of-Day clockoption INTERNAL_RTC # chip internal RTC#option EXTERNAL_RTC # external RTCoption HAVE_NVENV # Platform has non-volatile env mem
-option HAVE_LOGO # Output splash logo
+#option HAVE_LOGO # Output splash logooption USE_SUPERIO_UART#option VESAFB#option USE_LEGACY_RTC
@@ -180,15 +180,15 @@ ahci_cdrom* at ahci?pcinvme* at pci? dev ? function ?nvme* at pcinvme?-ohci* at pci? dev ? function ? # OHCI
-usb* at ohci?
+#ohci* at pci? dev ? function ? # OHCI
+##usb* at ohci?#lehci* at pci? dev ? function ? # EHCI#usb* at lehci?-lxhci0 at localbus0 base 0xbfe38000 # xHCI
-xhci0 at lxhci0
-usb* at xhci0
-select mod_usb_xhci
+##lxhci0 at localbus0 base 0xbfe38000 # xHCI
+##xhci0 at lxhci0
+##usb* at xhci0
+##select mod_usb_xhci#lohci0 at localbus0 base 0xbfe38000 # OHCI#usb* at lohci0
@@ -223,12 +223,12 @@ select igb1#usb* at usbbus ? #ohci1 at pci? dev ? function ?-select mod_usb
-select mod_usb_storage
+###select mod_usb
+###select mod_usb_storage#select mod_usb_uhci
-select mod_usb_ohci
+###select mod_usb_ohci#select mod_usb_ehci
-select mod_usb_kbd
+##select mod_usb_kbd#### IDE controllers
@@ -269,7 +269,7 @@ select gzipoption INPUT_FROM_BOTHoption OUTPUT_TO_BOTHoption KBD_CHECK_FAST
-option TEST_USB_HOST
+#option TEST_USB_HOSToption CONFIG_SLOW_PCI_FOR_BROKENDEVoption CONFIG_VIDEO_SW_CURSOR#option CONFIG_USB_HOTPLUG
@@ -277,18 +277,18 @@ option CONFIG_VIDEO_SW_CURSORselect httpselect tcpselect inet
-select nand
+#select nandselect cmd_xyzmodemoption HPET_RTC#select spinand_mt29f
-select m25p80
+#select m25p80select canselect yaffsfs#option LS2H_SPI_HIGHSPEED#option DISABLE_HARD_LEVELING
-select spinand_lld
+#select spinand_lld#option DDR_PARAM_018="0x3030303016100000"##option DDR_PARAM_1e8="0x0f0f0f0f0f0f0f0f"##option DDR_PARAM_1e0="0x0f0f0f0f0f0f0f0f"
@@ -347,9 +347,14 @@ option BEEP_GPIO=0#option HS0636#select sii9022a
-select nand_bch
+#select nand_bch
+#option DDR_PARAM_018="0x2020202016100000"
+#option DDR_S1=0xc0a18404
+#option CONFIG_LS2K_NAND#select nand_bch
@@ -410,6 +415,7 @@ select i2c#option CONFIG_VIDEO_LOGO#option CONFIG_VIDEO_BMP_LOGOoption DDR_FREQ=400
-option CORE_FREQ=800
-option LOWPOWER
+option CORE_FREQ=1000
+#option LOWPOWERselect raw_ether
+option FASTUP
diff --git a/Targets/LS2K/dev/localbus.c b/Targets/LS2K/dev/localbus.c
index 08c99dd5..dac296f4 100644
--- a/Targets/LS2K/dev/localbus.c
+++ b/Targets/LS2K/dev/localbus.c
@@ -129,8 +129,9 @@ localbusattach(parent, self, aux)struct device *self;void *aux;{+#ifndef FASTUPprintf("\n");
-
+#endifconfig_scan(localbusscan, self);}diff --git a/Targets/LS2K/include/pmon_target.h b/Targets/LS2K/include/pmon_target.h
index 89c90901..8b294695 100644
--- a/Targets/LS2K/include/pmon_target.h
+++ b/Targets/LS2K/include/pmon_target.h
@@ -33,6 +33,9 @@#include <target/bonito.h>+#ifdef FASTUP
+#define SBD_DEBUG
+#endif#ifdef SBD_DEBUG#define SBD_DISPLAY(text, code) /* No display function */#else
@@ -40,6 +43,7 @@ void hexserial __P((int));#define SBD_DISPLAY(text, code) tgt_display(text, code)#endif+/** Name of envvar that has to be set to enable expert mode.*/
@@ -69,5 +73,9 @@ extern int mtd_rescan(char *,char *);#define TGT_DEFENV {"mtdparts","nand-flash:30M@0(kernel),-(rootfs);spinand_flash:30M@0(kernel),-(rootfs)",0,&mtd_rescan}, \{"bootdelay","3",0,0}#else
+#ifndef FASTUP#define TGT_DEFENV {"bootdelay","3",0,0}
+#else
+#define TGT_DEFENV {"bootdelay","0",0,0}
+#endif#endif
diff --git a/Targets/LS2K/ls2k/ddr_dir/loongson3_ddr2_config.S b/Targets/LS2K/ls2k/ddr_dir/loongson3_ddr2_config.S
index 031cb92b..4123cc8d 100644
--- a/Targets/LS2K/ls2k/ddr_dir/loongson3_ddr2_config.S
+++ b/Targets/LS2K/ls2k/ddr_dir/loongson3_ddr2_config.S
@@ -177,7 +177,7 @@and s1, s1, a1or s1, s1, t11:
-#if 1
+#if PRINT_MSG/* show value of s1 */PRINTSTR("\r\nnew s1 = 0x");dsrl a0, s1, 32
@@ -247,7 +247,7 @@dli a1, 0xffffffff00000000and t1, t1, a1or s1, s1, t1
-#if 1
+#if PRINT_MSG/* show value of s1 */PRINTSTR("\r\nnew s1 = 0x");dsrl a0, s1, 32
diff --git a/Targets/LS2K/ls2k/loongson3_clksetting.S b/Targets/LS2K/ls2k/loongson3_clksetting.S
index 0e69363d..face0763 100644
--- a/Targets/LS2K/ls2k/loongson3_clksetting.S
+++ b/Targets/LS2K/ls2k/loongson3_clksetting.S
@@ -141,11 +141,12 @@ ATTENTION:ori a0, a0, PLL_CHANG_COMMITsd a0, 0x0(t0)+#ifndef FASTUPbal hexserialnopTTYDBG ("\r\nMEM :")
-
+#endifli t0, 0xbfe10490li t1, (0x1 << 19) //power down pll first
@@ -193,11 +194,12 @@ ATTENTION:ori a0, a0, 0x3sw a0, 0x0(t0)+#ifndef FASTUPbal hexserialnopTTYDBG ("\r\nDC :")
-
+#endifli t0, 0xbfe104a0li t1, (0x1 << 19) //power down pll firstsd t1, 0x0(t0)
@@ -219,11 +221,12 @@ ATTENTION:ori a0, a0, 0x3sw a0, 0x0(t0)+#ifndef FASTUPbal hexserialnopTTYDBG ("\r\nPIX0 :")
-
+#endifli t0, 0xbfe104b0 //pll_pix0li t1, (0x1 << 19) //power down pll firstsd t1, 0x0(t0)
@@ -245,11 +248,12 @@ ATTENTION:ori a0, a0, 0x1sw a0, 0x0(t0)+#ifndef FASTUPbal hexserialnopTTYDBG ("\r\nPIX1 :")
-
+#endifli t0, 0xbfe104c0 //pll_pix1li t1, (0x1 << 19) //power down pll firstsd t1, 0x0(t0)
@@ -271,8 +275,9 @@ ATTENTION:ori a0, a0, 0x1sw a0, 0x0(t0)+#ifndef FASTUPbal hexserialnop
-
+#endif#endif
diff --git a/Targets/LS2K/ls2k/start.S b/Targets/LS2K/ls2k/start.S
index 18c699d6..009765c2 100644
--- a/Targets/LS2K/ls2k/start.S
+++ b/Targets/LS2K/ls2k/start.S
@@ -46,7 +46,7 @@#include "target/cacheops.h" //mtf-#define TTYDEBUG
+//#define TTYDEBUG#ifdef TTYDEBUG#define TTYDBG(x) \.rdata;98: .asciz x; .text; la a0, 98b; bal stringserial; nop
@@ -54,8 +54,13 @@#define TTYDBG(x)#endif#define HAVE_TARGET_GETCHAR
+
+#ifndef FASTUP#define PRINTSTR(x) \.rdata;98: .asciz x; .text; la a0, 98b; bal stringserial; nop
+#else
+#define PRINTSTR(x)
+#endif#define CONFIG_CACHE_64K_4WAY 1 @@ -1133,9 +1138,11 @@ pcie_cfg_done:syncld a0, 0x0(t1)
+#ifndef FASTUPbal hexserial64nop#endif
+#endif#if 0li t0, 0xbfe10000
@@ -1308,7 +1315,7 @@ start_now:#include "ddr_dir/ddr_config_define.h"//#define DDR_DLL_BYPASS#define DISABLE_DIMM_ECC
-#define PRINT_MSG
+//#define PRINT_MSG#ifdef ARB_LEVEL#define AUTO_ARB_LEVEL#endif
@@ -1366,8 +1373,9 @@ start_now:and a0, a0, 0xfdsb a0, 0x1(t0)sync
-
- li t0, 0xbfe10420
+
+#ifndef FASTUP
+ li t0, 0xbfe10420ld a0, 0x0(t0)move t6, a0dsrl a0, t6, 32
@@ -1443,7 +1451,7 @@ start_now:daddiu t5, t5, 8bnez t1, 1bnop
-
+#endif###########################################ifdef DEBUG_DDR#ifdef DEBUG_DDR_PARAM
@@ -1500,6 +1508,7 @@ start_now:bootnow:+#ifndef FASTUPTTYDBG(" start = 0x")la a0, startbal hexserial
@@ -1516,6 +1525,8 @@ bootnow:la a0, _endbal hexserialnop
+#endif
+#if 0 //ls2h old codeTTYDBG("\r\n")bal spd_info_store
@@ -1534,12 +1545,14 @@ bootnow:1: and t3, t0, 0x0000ffffbnez t3, 2fnop
+#ifndef FASTUPmove a0, t0bal hexserialnopli a0, '\r'bal tgt_putcharnop
+#endif2: lw t3, 0(t1)sw t3, 0(t0)
diff --git a/Targets/LS2K/ls2k/tgt_machdep.c b/Targets/LS2K/ls2k/tgt_machdep.c
index 47990e5e..0d31bfc9 100644
--- a/Targets/LS2K/ls2k/tgt_machdep.c
+++ b/Targets/LS2K/ls2k/tgt_machdep.c
@@ -375,7 +375,9 @@ void initmips(unsigned long long raw_memsz)bcopy(MipsException, (char *)GEN_EXC_VEC,MipsExceptionEnd - MipsException);SBD_DISPLAY("BEV0", 0);
+#ifndef FASTUPprintf("BEV in SR set to zero.\n");
+#endif/*disable spi instruct fetch before enter spi io mode*/#ifdef DEBUG_BY_EJTAG*(volatile int *)0xbfe10080 = 0x001000f0;
@@ -1217,8 +1219,10 @@ void tgt_memprint()void tgt_machprint(){+#ifndef FASTUPprintf("Copyright 2000-2002, Opsycon AB, Sweden.\n");printf("Copyright 2005, ICT CAS.\n");
+#endifprintf("CPU %s @", md_cpuname());}diff --git a/pmon/cmds/cmd_main/cmd_main.c b/pmon/cmds/cmd_main/cmd_main.c
index d9fc6fc8..519916f0 100644
--- a/pmon/cmds/cmd_main/cmd_main.c
+++ b/pmon/cmds/cmd_main/cmd_main.c
@@ -1670,11 +1670,12 @@ int check_password(int page)spl0();tgt_poll();}
-
+#if NMODE_USB_KBDif (bios_available && usb_kbd_code == 0x8){kbd_code = 0x7f;}
+#endif#endifswitch(tag){diff --git a/pmon/common/main.c b/pmon/common/main.c
index bedf9fde..130bdb81 100644
--- a/pmon/common/main.c
+++ b/pmon/common/main.c
@@ -620,9 +620,11 @@ static int autoload(char *s)dly = 8;}+#ifndef FASTUPSBD_DISPLAY ("AUTO", CHKPNT_AUTO);printf("Press <Enter> to execute loading image:%s\n",s);printf("Press any other key to abort.\n");
+#endifioctl (STDIN, CBREAK, &sav);lastt = 0;if (!dly) ioctl (STDIN, FIONREAD, &cnt);
@@ -881,6 +883,7 @@ dbginit (char *adr)/* Set up initial console terminal state */ioctl(STDIN, TCGETA, &consterm);+#ifndef FASTUP#ifdef HAVE_LOGOtgt_logo();#else
@@ -888,6 +891,7 @@ dbginit (char *adr)#endifprintf ("\nConfiguration [%s,%s", TARGETNAME,BYTE_ORDER == BIG_ENDIAN ? "EB" : "EL");
+#ifdef INETprintf (",NET");#endif
@@ -901,14 +905,16 @@ dbginit (char *adr)printf ("Supported loaders [%s]\n", getExecString());printf ("Supported filesystems [%s]\n", getFSString());printf ("This software may be redistributed under the BSD copyright.\n");
-
+#endifprint_cpu_info();print_mem_freq();printf ("Memory size %lld MB .\n", memorysize_total);+#ifndef FASTUPtgt_memprint();
+#endif#if defined(SMP)tgt_smpstartup();#endif
diff --git a/pmon/dev/mainbus.c b/pmon/dev/mainbus.c
index 924c8f83..59059f6f 100644
--- a/pmon/dev/mainbus.c
+++ b/pmon/dev/mainbus.c
@@ -78,7 +78,9 @@ mainbus_attach(parent, self, aux)struct confargs nca;int i;+#ifndef FASTUPprintf("\n");
+#endifsc->sc_bus.bh_dv = (struct device *)sc;sc->sc_bus.bh_type = BUS_MAIN;sc->sc_bus.bh_intr_establish = NULL;
diff --git a/pmon/dev/pcibr.c b/pmon/dev/pcibr.c
index d6dfd544..ea45f06c 100644
--- a/pmon/dev/pcibr.c
+++ b/pmon/dev/pcibr.c
@@ -111,8 +111,9 @@ pcibrattach(parent, self, aux)/* struct pcibr_config *lcp; */struct pcibus_attach_args pba;+#ifndef FASTUPprintf("\n");
-
+#endif/** Generic.*/
diff --git a/sys/dev/gmac/if_gmac.c b/sys/dev/gmac/if_gmac.c
index b0871eec..aa54a49f 100644
--- a/sys/dev/gmac/if_gmac.c
+++ b/sys/dev/gmac/if_gmac.c
@@ -106,7 +106,9 @@ pcisyn_attach(parent, self, aux)return;}+#ifndef FASTUPprintf("membasep=0x%x\n",(int)membasep);
+#endif#if defined(LS7A) || defined(LOONGSON_2K)synopGMAC_init_network_interface(sc->dv_xname, (int)(membasep|0x80000000));
diff --git a/sys/dev/gmac/synopGMAC_network_interface.c b/sys/dev/gmac/synopGMAC_network_interface.c
index 066d141d..77d66fc9 100755
--- a/sys/dev/gmac/synopGMAC_network_interface.c
+++ b/sys/dev/gmac/synopGMAC_network_interface.c
@@ -2053,10 +2053,10 @@ int init_phy(struct synopGMACdevice *gmacdev)//printf("==== Warning: reset gmac phy 88E151X!\n");alaska88e151x_config_init(gmacdev);} else{- printf("==== Warning: unrecoganized marvel gmac phy!\n");
+ TR("==== Warning: unrecoganized marvel gmac phy!\n");}} else{- printf("==== Warning: unrecoganized gmac phy!\n");
+ TR("==== Warning: unrecoganized gmac phy!\n");};return 0;#else
diff --git a/sys/dev/gmac/synopGMAC_plat.h b/sys/dev/gmac/synopGMAC_plat.h
index 0e27c105..e6316de1 100755
--- a/sys/dev/gmac/synopGMAC_plat.h
+++ b/sys/dev/gmac/synopGMAC_plat.h
@@ -94,7 +94,11 @@ typedef unsigned long dma_addr_t;#else#define TR0(fmt, args...) printf(fmt, ##args) #endif
+#ifndef FASTUP#define TR(fmt, args...) printf(fmt, ##args)
+#else
+#define TR(fmt, args...)
+#endif//typedef int bool;enum synopGMAC_boolean
diff --git a/sys/dev/pci/ahci.c b/sys/dev/pci/ahci.c
index 1f99a132..743b0e11 100755
--- a/sys/dev/pci/ahci.c
+++ b/sys/dev/pci/ahci.c
@@ -82,7 +82,11 @@#define WAIT_MS_DATAIO 10000#define WAIT_MS_FLUSH 5000#define WAIT_MS_LINKUP 200
+#ifndef FASTUP#define debug printf
+#else
+#define debug
+#endifint ahci_host_init(struct ahci_probe_ent *probe_ent);static void *ahci_init_one(u32 regbase);
@@ -147,10 +151,11 @@ static void ahci_attach(struct device *parent, struct device *self, void *aux)printf(" Can't find mem space\n");return;}
+#ifndef FASTUPprintf("Found memory space: memt->bus_base=0x%x, baseaddr=0x%x""size=0x%x\n", memt->bus_base, (u32) (membasep),(u32) (memsizep));
-
+#endif#if 0 /* set 1.0 mode */int temp = *(int *)((membasep + 0x12c) | memt->bus_base);printf("0x12C =%x\n", temp);
@@ -165,7 +170,9 @@ static void ahci_attach(struct device *parent, struct device *self, void *aux)}linkmap = probe_ent->link_port_map;
+#ifndef FASTUPprintf("ahci: linkmap=%x\n", linkmap);
+#endiffor (i = 0; i < probe_ent->n_ports; i++) {if (((linkmap >> i) & 0x01)) {info.sata_reg_base =
diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c
index c9be8592..a865dbda 100644
--- a/sys/dev/pci/pci.c
+++ b/sys/dev/pci/pci.c
@@ -119,8 +119,9 @@ pciattach(parent, self, aux)int bus, device, maxndevs, function, nfunctions;pci_attach_hook(parent, self, pba);
+#ifndef FASTUPprintf("\n");
-
+#endifiot = pba->pba_iot;memt = pba->pba_memt;pc = pba->pba_pc;
diff --git a/sys/dev/pci/pciconf.c b/sys/dev/pci/pciconf.c
index 9a4cda9e..9d589c7f 100644
--- a/sys/dev/pci/pciconf.c
+++ b/sys/dev/pci/pciconf.c
@@ -58,6 +58,10 @@#include "pcivar.h"#include "pcireg.h"+#ifdef FASTUP
+#define PCIVERBOSE 0
+#endif
+#ifndef PCIVERBOSE#if defined(LOONGSON_2K) || defined(LS7A)#define PCIVERBOSE 5
@@ -389,7 +393,6 @@ static void pcie_write_mrrs(struct pci_device *dev)printf("Failed attempting to set the MPS\n");}}
-static voidprint_bdf (int bus, int device, int function){@@ -910,6 +913,7 @@ _pci_query_dev (struct pci_device *dev, int bus, int device, int initialise)if (_pciverbose >= 2) {PRINTF ("completed\n");}
+#elseid = _pci_conf_read(tag, PCI_ID_REG);
@@ -1377,14 +1381,19 @@ _pci_businit (int init){char *v;+#ifndef FASTUPtgt_putchar('P');
+#endifv = getenv("pciverbose");
+#ifndef FASTUPtgt_putchar('1');
+#endifif (v) {_pciverbose = atol(v);}
+#ifndef FASTUPtgt_putchar('2');
-
+#endif/* intialise the PCI bridge */if (/*init*/ 1) {SBD_DISPLAY ("PCIH", CHKPNT_PCIH);
diff --git a/sys/dev/pci/ppb.c b/sys/dev/pci/ppb.c
index fcc7c047..bf7bdee4 100644
--- a/sys/dev/pci/ppb.c
+++ b/sys/dev/pci/ppb.c
@@ -97,8 +97,9 @@ ppbattach(parent, self, aux)struct pcibus_attach_args pba;pcireg_t busdata;+#ifndef FASTUPprintf("\n");
-
+#endifbusdata = pci_conf_read(pc, pa->pa_tag, PPB_REG_BUSINFO);if (PPB_BUSINFO_SECONDARY(busdata) == 0) {diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c
index d8fe36a3..4b5e48f7 100644
--- a/sys/kern/init_main.c
+++ b/sys/kern/init_main.c
@@ -161,16 +161,22 @@ extern vm_map_t mb_map, kernel_map;}ifinit();
+#ifndef FASTUPprintf("ifinit done.\n");
+#endifdomaininit();
+#ifndef FASTUPprintf("domaininit done.\n");
+#endifsplx(s);}/* * Initialise process table, we become first "process" */
+#ifndef FASTUPprintf("init_proc....\n");
+#endifinit_proc ();/* enable realtime clock interrupts */
diff --git a/sys/kern/subr_autoconf.c b/sys/kern/subr_autoconf.c
index fbb43dc6..bcf772f7 100644
--- a/sys/kern/subr_autoconf.c
+++ b/sys/kern/subr_autoconf.c
@@ -354,8 +354,10 @@ config_found_sm(parent, aux, print, submatch)return dev;}
+#ifndef FASTUPif (print)printf(msgs[(*print)(aux, parent->dv_xname)]);
+#endif#if NMOD_USB_OHCIif(ohci_index)
@@ -450,7 +452,11 @@ config_attach(parent, match, aux, print)device_ref(dev);if (parent == ROOT)
+ {+#ifndef FASTUPprintf("%s (root)", dev->dv_xname);
+#endif
+ }else {#ifdef INTERFACE_3A780E
@@ -468,9 +474,12 @@ if (strstr(dev->dv_xname, "wd") != NULL || strstr(dev->dv_xname, "cd") != NULL |b_name[i] = NULL;}#endif
+
+#ifndef FASTUPprintf("%s at %s", dev->dv_xname, parent->dv_xname);if (print)(void) (*print)(aux, (char *)0);
+#endif#if NMOD_USB_OHCIif(ohci_index)
diff --git a/sys/net/if.c b/sys/net/if.c
index 65fd998e..154f2947 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -183,7 +183,9 @@ voidif_attach(ifp)struct ifnet *ifp;{+#ifndef FASTUPprintf("in if attach\n");
+#endifif (if_index == 0) {TAILQ_INIT(&ifnet);}
diff --git a/sys/scsi/scsiconf.c b/sys/scsi/scsiconf.c
index fa775979..2877f86f 100644
--- a/sys/scsi/scsiconf.c
+++ b/sys/scsi/scsiconf.c
@@ -1080,7 +1080,9 @@ scsi_probedev(struct scsibus_softc *scsi, int target, int lun)//wan: scsi=sb inif ((cf = config_search(scsibussubmatch, (struct device *)scsi,&sa)) == 0) {//wan: cf=cfdata[19]"sd"scsibusprint(&sa, scsi->sc_dev.dv_xname);
+#ifndef FASTUPprintf(" not configured\n");
+#endifgoto free_devid;}--
2.25.1
三、修改后预期效果
如果外设使用的不多,通过以上修改pmon启动时间大致在4s以内
龙芯pmon快速启动方法相关推荐
- 龙芯PMON(2K1000)启动流程(三、C语言部分③)
3.6 NAND初始化 dbginit(NULL)执行完成后,说明重要的核心设备初始化过程已经告一段落.接下来设置把BEV清零. BEV1 BEV0 BEV in SR set to zero. (内 ...
- 龙芯PMON(2K1000)启动流程(二、汇编部分)
1.pmon 文件相关的地址问题 cpu眼中的地址是虚拟地址,cpu 取指和取数据的地址是物理地址,经过北桥解释后的地址是总线地址,编译器产生的地址(包括解析了所有引用和重定位的符号后)为程序地址 ...
- 龙芯PMON(2K1000)启动流程(三、C语言部分②)
3.3 tgt_devinit(Targets/LS2K/ls2k/tgt_machdep.c:699) tgt_devinit函数完成pmon阶段PCI设备的初始化,tgt_devinit调用了_p ...
- 龙芯PMON(2K1000)启动流程(三、C语言部分①)
1.程序框架 ├──initmips(raw_memsz) //Targets/LS2K/ls2k/tgt_machdep.c:231 │ ├────ejtag_init(); //由DEBUG_BY ...
- 龙芯PMON(2K1000)启动流程(一、总述)
一.总流程 1.ls2k1000 cpu开始执行start.S(Targets/LS2K/ls2k/start.S)中的代码 2.然后跳转到 initmips(-)(zloader.ls2k/init ...
- Zhong__交换机各种情况下端口快速启动方法
时间:2018.07.05 环境:使用模拟器 目的: 说明: 作者:Zhong QQ交流群:121160124 欢迎加入! Cisco交换机 实验名称:交换机端口快速启动方法 实验人员:Zhong b ...
- 龙芯多核处理器启动概要
0.约定 为了便于理解,根据最新版的<龙芯3A处理器用户手册>约定以下术语: 处理器节点:包含4个GS464核的1个3A处理器称为1个处理器节点 处理器核: 3A中的每个GS464核就是一 ...
- 在x86_64平台上编译龙芯pmon
编译环境 系统:deepin15.11 平台:x86_64 交叉编译器:gcc-4.4.7-7215-n64-loongson 搭建交叉编译环境 见在x86_64平台上搭建龙芯MIPS64交叉编译环境 ...
- redis快速启动方法
redis快速启动 redis下载后可以下载一个图形界面管理工具 但是启动还是得去到redis安装目录下再启动cmd命令行 输入命令启动服务很麻烦 目前大部分都是重复得文章还是错的 常用的两种方法: ...
- 龙芯linux安装checkinstall方法
原文地址:https://blog.csdn.net/peihexian/article/details/108884345 先说背景: 龙芯3a3000,中标麒麟linux,因为编译程序需要,卸载了 ...
最新文章
- 小学生家庭教育与学习心理
- Linux IPC POSIX 消息队列
- Linux 在一个命令行上执行多个命令
- 【转】删除过期数据通用程序
- oracle数据库sqlloader,sql loader ---ORACLE SQLLDR
- 21.判断栈弹出顺序是否正确
- 华为Mate 50系列明年初发布:麒麟990/骁龙8 Gen1加持
- c语言学习-使用指针对三个变量互相赋值
- 被利用达数百万次、瞄准 Linux 系统的 Top 15漏洞
- matplotlib可视化学习笔记
- Freecad的Python脚本
- 弱水三千,只取一瓢饮
- 深入探讨大数据权限管理方案-从哲学到技术
- Linux进程(二):生命周期
- 同步压缩变变时频分析和盲源分离
- Eclipse插件安装最简单方式--以Eclipse中文语言包汉化为例(附汉化包)
- 流媒体服务器主板型号怎么看,玩转NAS 篇五:双2.5G接口+J4125处理器,对于NAS意味着什么?威联通453Dmini对比453Bmini...
- 深度优先搜索Or深度优先遍历详解
- 故障报修系统php,【假期挖坑】PHP综合报修系统 V1.0
- AcWing 1143. 联络员