Re: dd miniroot.fs into CF card from non-amiga NetBSD box

Rin Okuyama <[email protected]>
Newsgroups gmane.os.netbsd.ports.amiga
Message-ID <[email protected]>
On 2017/02/24 0:14, Michael van Elst wrote:
>> By changing CPU board from 68060 to 68030, errors for wdc0 disappeared.
>
> Looks like the calibration of 'delay()' doesn't work for your board.
> Maybe you can catch the dmesg output, a 50MHz 68060 shows here:
>
> Calibrating delay loop... 21/1024 us

Hmm, how can I calibrate it?

(1) decrease the initial value of delaydivisor

amiga/amiga_init.c:

    932          if (machineid & AMIGA_68060)
    933                  delaydivisor = (1024 * 1) / 80; /* 80 MHz 68060 w. BTC */
    935          else if (machineid & AMIGA_68040)
    936                  delaydivisor = (1024 * 3) / 40; /* 40 MHz 68040 */

--->

    933                  delaydivisor = (1024 / 2) / 80; /* 80 MHz 68060 w. BTC */

for example.

or

(2) increase the argument of delay() in calibrate_delay()

dev/clock.c:

    328  static void
    329  calibrate_delay(device_t self)
    330  {
    331          unsigned long t1, t2;
    332          extern u_int32_t delaydivisor;
    333                  /* XXX this should be defined elsewhere */
    334
    335          if (self)
    336                  printf("Calibrating delay loop... ");
    337
    338          do {
    339                  t1 = clk_gettick();
    340                  delay(1024);
    341                  t2 = clk_gettick();
    342          } while (t2 <= t1);
    343          t2 = ((t2 - t1) * 1000000) / (amiga_clk_interval * hz);
    344          delaydivisor = (delaydivisor * t2 + 1023) >> 10;

--->

    338          do {
    339                  t1 = clk_gettick();
    340                  delay(4096);
    341                  t2 = clk_gettick();
    342          } while (t2 <= t1);
    343          t2 = ((t2 - t1) * 1000000) / (amiga_clk_interval * hz);
    344          delaydivisor = (delaydivisor * t2 + 4095) >> 12;

or both?

>> Timeout errors for ne0 also disappeared. However, unfortunately, ne0
>> still cannot be usable. If I switch on my A1200 with ne0 inserted, the
>> machine does not boot. I guess this is a compatibility issue. I ordered
>> an "easynet pcmcia network card". I hope it will work...
>
> I remember the A1200 "PCMCIA" slot had several issues.

I ordered a known to work (at least on AmigaOS) card. I will test it. If
it fails, I will try the hardware fix suggested by John.

Thanks,
rin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.