From 1eb4c3190eac3399818e725983332c6f2f22511f Mon Sep 17 00:00:00 2001 From: kieron Date: Sun, 8 Apr 2018 13:41:49 +0000 Subject: [PATCH] git-svn-id: https://spexeah.com:8443/svn/Asuro@401 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5107712 -> 5107712 bytes bin/kernel.bin | Bin 53476 -> 53476 bytes iso/boot/asuro.bin | Bin 53476 -> 53476 bytes lib/E1000.ppu | Bin 14375 -> 14388 bytes lib/PCI.ppu | Bin 7430 -> 7889 bytes lib/USB.ppu | Bin 3725 -> 3725 bytes lib/kernel.ppu | Bin 4303 -> 4303 bytes lib/libpconsole.a | Bin 102784 -> 102784 bytes lib/libpmultiboot.a | Bin 29040 -> 29040 bytes lib/libpsystem.a | Bin 155060 -> 155060 bytes src/driver/bus/PCI.pas | 20 +++++++++++++++++++- src/driver/network/E1000.pas | 12 +++++++----- 12 files changed, 26 insertions(+), 6 deletions(-) diff --git a/Asuro.iso b/Asuro.iso index da5a4b101712896510a995a125d774fd06655c7e..18fec2938e26a507d4dfc8c7f4186a341f446794 100644 GIT binary patch delta 14023 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 F|34gg>Ye}q delta 13866 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 delta 4638 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 R%*4pUScy@rexXJN{udCxju8L= diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index 15b76f659b67a7f1309253a4ac28c24469e19c5d..a358e4421892de7843e8e1af0433a9b3a65a5a8a 100755 GIT binary patch delta 4878 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 delta 4638 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 R%*4pUScy@rexXJN{udCxju8L= diff --git a/lib/E1000.ppu b/lib/E1000.ppu index 3c649f25b23c0cb8367a2c8177c31f6e63e35115..d2635fdeab0baf6d916c328118c7dbcb62dcff54 100644 GIT binary patch delta 198 zcmZ2pu%$pYARyGx*p#K2k%5`vK!6ehj|Bt6y5L(^cOFUG5I0fQkV!~pV!&mNhSfV9 znF7viovh8ci1EedbBx>^ygsbV3=9muVA5~%GtLvtjLef0c$Fq+bMQ@0<#CvNgiCs} zF5eXv#neoEe`?UTYN1_+&Gu@lqC`()H%5K{-dB5J|8t&me&;;Tp685jUu<>- z0+G7YKojS2OKrmsiu{zLaMLK}GEg08+0_|p4f`S?zc&QW>=13&{z)@QYLn?I_u+Ac8wc4`83YqPm+{C+!2)HqwGrH0>Ks`L%=R z?jKk`PS_hu>DE|0_gBbcY)JOGJjTrVSZKE6FT2TjjAEm5oOUslv=tf2J^f$JxQKJ+ z8silTO{v(`lHI-#VfUyIiv7RWM$*0k;$T3suHFi2SbOy=GuaGA^mWa_HMnK_!eIP4Q609Ah n!a%aSm$C*m`-!Ye$;L_7$XR;3mSmzY)=!&hZ}%0K9F_k7TP3{~ delta 829 zcmYk4O-vI}5XaxV-R;tC#g?|fc7f7{Rz7+VDMn04uuTYJt34n$qfjVRp;cQ9QKJVE zjCvw-Fvj53ka*B+(&#}kUW_p@;iAF#5sV4Zcoh#^oc*X_llPx_Gr#$7_PyO0Ts|7k zW>5F_^@~fu1okQ$VP9Jq`@FQieg8vzIL;Wmx)SaZ9&NsTnu!4n=oNU$u`JHxkQB!! zaw9D_%5uG)lzag5IPRE(7`}JJA&t9^5M)r3hkQ9nASAOVPPin)7Z|6mW_J5Y<#KMKm|Q3`NY{Wm#9$ZH~+$RW?E4~PY74FL#|G$bQ@I|!%teeL80{E9x5TB$J^-|q0*?0U1%9io+M1T zSh-AN`z;#SpglHBk!;Lw;=9)j@17uO*6vfv#w6VGb-Hd->8??RDt5P?yE#RvFll^L zRkdhfXY8>&MY0v5#PG;8saT#X(E(Ls76EM5O4uce{{Lv+K=TX59HEICTDH;a6x#?r zV7f+TC^)93uM~3AL?>(X4N5%Jx+US4rsjh2kG0Z*K$_Iqkxd;xYhBhDm?OYeC|XyU pAw--jO-#{QDR%cB#jt6RBi(0o=_*sDV!kj#@2y?vDn4$D{sWv*kjVf5 diff --git a/lib/USB.ppu b/lib/USB.ppu index af5ca4946a8b375d10f5eaffc9a5c48d59646b3e..a7f12dc25f6b7b220f4a3530b0c1c46c3486f324 100644 GIT binary patch delta 19 acmeB`?UkKS&(W}Yha*$KnXMb!+4ulWVF#}O delta 19 bcmeB`?UkKS&vB=D|MQvGblf(!v+)4{Sd0js diff --git a/lib/kernel.ppu b/lib/kernel.ppu index 193a20f3a1cee8c69e33235f146430f56d34ba5c..7423f3232473a64f61487594a939a5b3b3b9044c 100644 GIT binary patch delta 21 dcmX@FcwTYC6-JJR)jJ%S0?usRe24Kf9{_Cv3HAU0 delta 21 dcmX@FcwTYC6-JIb&HJCvyr$!}`3~b}J^*7|^cN}Hu}s$jwp`=I`90V0N9`xwm*6422{S?MeSt6AT;4)29?Nlc@jum}&1+(o)2 zcMDPV(VvLK!eKjR=!g2Z~IXMLKC+fMfO{9jgz^RUz&Hsb)k&Mgone zz1&VM{UVi4Ezp5$M#wnhL5f%?PS-b}><)1j(MF51R$bFH&j4fdoW}56LqoqcUx4%Rrxs(d$ugoEP>D3Fo)!^^CmBJ5xq9<)XCv|(Yt|oYK^j6k^fj7^2v3Jmh+1+T@Np!FQv9PxhrYmDq_u{y zRz1!&6XZWGL(a~r9DZ`;lAVRknL9}LgqINAnAdYR488b+wDDI0($?NwVw4TdOHtOW zY;dkb7@5Gey3I(4J&H_Qg}JLNFR$EYtthWjpONxjdn_=$Z#(n&j{@9YV2H0^3I|1U!X4nAfT2Z=9SMh^O(m5>Ixv54Ge(-7pyapGWu7i8roA3)e+C27Tp(Fs&? n)yiv5GJuxvYbBjU%%SXSfsIq$_!FJa>m|m7!6eUk$vfRYWBUVq delta 1395 zcmZXUe@IhN6vw$sm%15h@g@cSD$rEsoUI|KS$_n|YfO-gSWQ$YtWcsqBqb~%bbqXe zH+&!=LuG%+3iYH0&JRo?PE0EN5DWIXQZ+StY&=UI=mOoCoqlrW<_{-<_{p+EyNVE4snf2l_HGWT__T=iget*0LPsD238-I%Y)nlQstnI%mmzL z{M=4$JtCD(FVNoWW=K2hLyDL$PS(_->=tnv(ME&1R(0JZ&j54%oX+rEM`l7FRhePg z6GSPJ_cb!LH@`$AdDRLRuFfHQ@wJP*)evaAox~4*q9bKLCvAJQx-JcFbq}KjY(2xM zLij%FFpT@4AZ_i(%lJs0-inF2?Lv@=JPdXWmoibWjxpF9O)woG%x9IiG!*N~v4Mlq_f6pfT&l79A z)A@hf1tpwETKJeX>?87Q2{|Y~DpPErcvqZ6p) nty0!Jq!%sU)ksidu}D^W{G?BFw5) zl!d!WeDhWnZ8%SC^Dp&daGu2GJK91hJWa;Qf6e$O%diM-R@2?b$Y%<40>TBG6^u0C z%EdM(nYytcEWK$X#W*=%USRWEtBXi(xoPto?l1Ap@9jB}3=nc&1m}rwKJWG)N#%Jr zpm89#++pI|tl)hD$w+2jUbr@~%~}Dcka&C{i+Evf65D(#F$GD^Bee~Q2M)>k+3=7A VMamAQ$u)UgF#Y127v`O30swNvkxc*q delta 510 zcmezHi1EWC#tCvPre;Ql8idu}D^W{G?BFw5) zl!d!WeDhWnZ8%SC^Dp&daGu2GJK91hJWa;Qf6e$O%diM-R@2?b$Y%<40>TBG6^u0C z%EdM(nYytcEWK$X#W*=%USRWEtBXi(xoPto?l1Ap@9jB}3=nc&1m}rwKJWG)N#%Jr zpm89#++pI|tl)hD$w+2jUbr@~%~}Dcka&C{i+Evf65D(#F$GD^Bee~Q2M)>k+3=7A VMamAQ$u)UgF#Y127v`O30sxnpkaPe5 diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 1f3a5c688b9bbf37f255d5d3ba37bb00313c25dd..bb4cf78e774459fe7098e5608793cec24f624182 100644 GIT binary patch delta 3274 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 diff --git a/src/driver/bus/PCI.pas b/src/driver/bus/PCI.pas index eb1aabbb..bf7b05c8 100644 --- a/src/driver/bus/PCI.pas +++ b/src/driver/bus/PCI.pas @@ -15,7 +15,7 @@ uses util, console, drivertypes, - lmemorymanager, + lmemorymanager, vmemorymanager, drivermanagement; @@ -78,6 +78,7 @@ function loadDeviceConfig(bus : uint8; slot : uint8; func : uint8) : boolean; function getDeviceInfo(class_code : uint8; subclass_code : uint8; prog_if : uint8; var count : uint32) : TdeviceArray; //(Will in future)returns TPCI_DEVICE.vendor_id := 0xFFFF if no device found. procedure requestConfig(bus : uint8; slot : uint8; func : uint8; row : uint8); procedure writeConfig(bus: uint8; slot : uint8; func : uint8; row : uint8; val : uint32); +procedure setBusMaster(bus : uint8; slot : uint8; func : uint8; master : boolean); implementation @@ -166,6 +167,23 @@ begin outl(PCI_PORT_CONF_DATA, val); end; +procedure setBusMaster(bus : uint8; slot : uint8; func : uint8; master : boolean); +var + data : uint32; + +begin + requestConfig(bus, slot, func, 1); + data := inl($CFC); + if master then begin + data := data OR $00000004; + end else begin + data := data AND $FFFFFFFB; + end; + writeConfig(bus, slot, func, 1, data); + requestConfig(bus, slot, func, 1); + data := inl($CFC); +end; + procedure requestConfig(bus : uint8; slot : uint8; func : uint8; row : uint8); var addr : uint32; diff --git a/src/driver/network/E1000.pas b/src/driver/network/E1000.pas index a5839a43..2cabe83c 100644 --- a/src/driver/network/E1000.pas +++ b/src/driver/network/E1000.pas @@ -308,7 +308,7 @@ var i : uint32; begin - ptr:= puint8(kalloc(sizeof(TE1000_tx_desc) * E1000_NUM_TX_DESC + 16)); + ptr:= puint8(kalloc(sizeof(TE1000_tx_desc) * (E1000_NUM_TX_DESC + 16))); descs:= PE1000_tx_desc(ptr); for i:=0 to E1000_NUM_TX_DESC do begin tx_descs[i]:= PE1000_tx_desc(uint32(descs + i*16)); @@ -432,7 +432,9 @@ begin kpalloc(io_base); kpalloc(mem_base); + setBusMaster(PCI_Info^.bus, PCI_Info^.slot, PCI_Info^.func, true); eeprom_exists:= false; + detectEEPROM(); if eeprom_exists then console.outputln('E1000 Driver', 'EEPROM Exists: YES.') else console.outputln('E1000 Driver', 'EEPROM Exists: NO.'); if not readMACAddress() then begin @@ -449,14 +451,14 @@ begin writeCommand($5200 + i*4, 0); end; - //IDT.set_gate(32 + PCI_Info^.interrupt_line, uint32(@fire), $08, ISR_RING_0); - //enableInturrupt(); + IDT.set_gate(32 + PCI_Info^.interrupt_line, uint32(@fire), $08, ISR_RING_0); + enableInturrupt(); rxinit(); txinit(); load:= true; - if load then registercommand('E1000_SEND_TEST', @console_command_sendtest, 'Test sending a ARP Request'); + if load then registercommand('E1000', @console_command_sendtest, 'Test sending a ARP Request'); console.outputln('E1000 Driver', 'Load Finish.'); end; @@ -518,7 +520,7 @@ var old_cur : uint8; begin - tx_descs[tx_curr]^.address:= uint64(p_data - KERNEL_VIRTUAL_BASE); + tx_descs[tx_curr]^.address:= uint32(uint32(p_data) - KERNEL_VIRTUAL_BASE); tx_descs[tx_curr]^.length:= p_len; tx_descs[tx_curr]^.cmd:= CMD_EOP OR CMD_IFCS OR CMD_RS OR CMD_RPS; tx_descs[tx_curr]^.status:= 0;